diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 40b18322..8ef7722b 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -24,11 +24,11 @@ jobs: - name: Install dependencies run: npm install - working-directory: ./client + working-directory: ./frontend/website - name: Create the docs directory locally in CI - run: npx typedoc --out ../docs/client @types/*.d.ts src/**/*.ts - working-directory: ./client + run: npx typedoc --out ../../docs/website @types/*.d.ts src/**/*.ts + working-directory: ./frontend/website - name: Install Doxygen uses: ssciwr/doxygen-install@v1 diff --git a/.gitignore b/.gitignore index 0a8e93ca..d0d2df97 100644 --- a/.gitignore +++ b/.gitignore @@ -7,12 +7,12 @@ hgt /backend/vcpkg_installed -/client/TODO.txt -/client/public/javascripts/bundle.js -/client/public/plugins -/client/plugins/controltips/index.js -/client/public/databases/units/old -/client/plugins/databasemanager/index.js +/frontend/server/TODO.txt +/frontend/server/public/javascripts/bundle.js +/frontend/server/public/plugins +/frontend/server/plugins/controltips/index.js +/frontend/server/public/databases/units/old +/frontend/server/plugins/databasemanager/index.js /src/html /src/latex @@ -30,4 +30,8 @@ leaflet.nauticscale.js leaflet.css package-lock.json -!client/bin +!frontend/server/bin +/mock-dcs +/frontend/setup +frontend/server/public/plugins/controltipsplugin/index.js +frontend/website/plugins/controltips/index.js diff --git a/DCS Olympus Manager.lnk b/DCS Olympus Manager.lnk new file mode 100644 index 00000000..109a12b4 Binary files /dev/null and b/DCS Olympus Manager.lnk differ diff --git a/INSTRUCTIONS.txt b/INSTRUCTIONS.txt index 956356e9..9b61c8a5 100644 --- a/INSTRUCTIONS.txt +++ b/INSTRUCTIONS.txt @@ -36,14 +36,14 @@ INSTALLATION INSTRUCTIONS 7) Open Olympus via the shortcut and login using any username and the Game Master password set using the Manager. (NOTE: not your DCS server password). Local installation: run the client from the provided desktop shortcut or start it using the "View and manage instances" page of the Manager. Dedicated server: users must first start the Olympus server from the provided desktop shortcut or using the "View and manage instances" page of the Manager. - Then log in using any browser and visiting "http:\\:" (client port is 3000 by default, but can be edited using the Manager) + Then log in using any browser and visiting "http:\\:" (frontend port is 3000 by default, but can be edited using the Manager) 8) You can use the manager at any time to change the ports and/or passwords. If you do, REMEMBER TO RESTART OLYMPUS AND DCS. NOTES: a) when launching the Manager you will be prompted to allow Electron to create a firewall rule. This is optional and can be denied without effect on the operation of the Manager; -b) if you are using Olympus on a dedicated server with a router, you must enable port forwarding on the client port (3000 by default); +b) if you are using Olympus on a dedicated server with a router, you must enable port forwarding on the frontend port (3000 by default); c) unlike Olympus v1.0.3, running the netsh command is no longer required. It is also no longer required to create firewall rules or port forwarding for the backend port. (Optional) If you already performed this steps in the past you can delete the firewall and netsh rules. diff --git a/README.md b/README.md index 61760bc7..7d3b6751 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ # DCS Olympus -![alt text](https://github.com/Pax1601/DCSOlympus/blob/main/client/sample.png?raw=true) +![alt text](https://github.com/Pax1601/DCSOlympus/blob/main/frontend/website/sample.png?raw=true) ### What is this? DCS: Olympus is a free and open-source mod for DCS that enables dynamic real-time control through a map interface. The user is able to spawn units/groups, deploy a variety of effects such as smoke, flares, or explosions, and waypoints/tasks can be given to AI units in real-time in a way similar to a classic RTS game. diff --git a/backend/core/src/server.cpp b/backend/core/src/server.cpp index 1c5ded18..e582d7b9 100644 --- a/backend/core/src/server.cpp +++ b/backend/core/src/server.cpp @@ -296,14 +296,14 @@ void Server::task() ss << ifstream.rdbuf(); std::error_code errorCode; json::value config = json::value::parse(ss.str(), errorCode); - if (config.is_object() && config.has_object_field(L"server") && - config[L"server"].has_string_field(L"address") && config[L"server"].has_number_field(L"port")) + if (config.is_object() && config.has_object_field(L"backend") && + config[L"backend"].has_string_field(L"address") && config[L"backend"].has_number_field(L"port")) { - address = "http://" + to_string(config[L"server"][L"address"]) + ":" + to_string(config[L"server"][L"port"].as_number().to_int32()); - log("Starting server on " + address); + address = "http://" + to_string(config[L"backend"][L"address"]) + ":" + to_string(config[L"backend"][L"port"].as_number().to_int32()); + log("Starting backend on " + address); } else - log("Error reading configuration file. Starting server on " + address); + log("Error reading configuration file. Starting backend on " + address); if (config.is_object() && config.has_object_field(L"authentication")) { diff --git a/client/.vscode/settings.json b/client/.vscode/settings.json deleted file mode 100644 index 7a73a41b..00000000 --- a/client/.vscode/settings.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/client/.vscode/tasks.json b/client/.vscode/tasks.json deleted file mode 100644 index c1df1f6e..00000000 --- a/client/.vscode/tasks.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "server", - "type": "shell", - "command": "npm run debug", - "isBackground": true - }, - { - "label": "server-nodcs", - "type": "shell", - "command": "npm run debug-nodcs", - "isBackground": true - } - ] -} \ No newline at end of file diff --git a/client/Dockerfile b/client/Dockerfile deleted file mode 100644 index 23fc6e3e..00000000 --- a/client/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM node:20-alpine AS appbuild - -WORKDIR /usr/src/app -COPY package.json ./ -COPY package-lock.json ./ -RUN npm install -COPY . . -RUN npm run build-release-linux - -FROM node:20-alpine -WORKDIR /usr/src/app -COPY package.json ./ -COPY package-lock.json ./ -RUN npm install --omit=dev -COPY . . -COPY --from=appbuild /usr/src/app/public ./public -EXPOSE 3000 -CMD npm start diff --git a/client/configurator.js b/client/configurator.js deleted file mode 100644 index fce7f9e5..00000000 --- a/client/configurator.js +++ /dev/null @@ -1,194 +0,0 @@ -const fs = require('fs') -const path = require('path') -const yargs = require('yargs'); -const prompt = require('prompt-sync')({sigint: true}); -const sha256 = require('sha256'); -var jsonPath = path.join('..', 'olympus.json'); -var regedit = require('regedit') - -const shellFoldersKey = 'HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders' -const saveGamesKey = '{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}' - -/* Set the acceptable values */ -yargs.alias('a', 'address').describe('a', 'Backend address').string('a'); -yargs.alias('b', 'backendPort').describe('b', 'Backend port').number('b'); -yargs.alias('c', 'clientPort').describe('c', 'Client port').number('c'); -yargs.alias('p', 'gameMasterPassword').describe('p', 'Game Master password').string('p'); -yargs.alias('bp', 'blueCommanderPassword').describe('bp', 'Blue Commander password').string('bp'); -yargs.alias('rp', 'redCommanderPassword').describe('rp', 'Red Commander password').string('rp'); -yargs.alias('d', 'directory').describe('d', 'Directory where the DCS Olympus configurator is located').string('rp'); -args = yargs.argv; - -async function run() { - /* Check that we can read the json */ - if (fs.existsSync(jsonPath)) { - var json = JSON.parse(fs.readFileSync(jsonPath, 'utf-8')); - - var address = args.address ?? json["server"]["address"]; - var clientPort = args.clientPort ?? json["client"]["port"]; - var backendPort = args.backendPort ?? json["server"]["port"]; - var gameMasterPassword = args.gameMasterPassword? sha256(args.gameMasterPassword): json["authentication"]["gameMasterPassword"]; - var blueCommanderPassword = args.blueCommanderPassword? sha256(args.blueCommanderPassword): json["authentication"]["blueCommanderPassword"]; - var redCommanderPassword = args.redCommanderPassword? sha256(args.redCommanderPassword): json["authentication"]["redCommanderPassword"]; - - /* Run in interactive mode */ - if (args.address === undefined && args.clientPort === undefined && args.backendPort === undefined && - args.gameMasterPassword === undefined && args.blueCommanderPassword === undefined && args.redCommanderPassword === undefined) { - - var newValue; - var result; - - /* Get the new address */ - newValue = prompt(`Insert an address or press Enter to keep current value ${address}. Use * for any address: `); - address = newValue !== ""? newValue: address; - - /* Get the new client port */ - while (true) { - newValue = prompt(`Insert a client port or press Enter to keep current value ${clientPort}. Integers between 1025 and 65535: `); - if (newValue === "") - break; - result = Number(newValue); - - if (!isNaN(result) && Number.isInteger(result) && result > 1024 && result <= 65535) - break; - } - clientPort = newValue? result: clientPort; - - /* Get the new backend port */ - while (true) { - newValue = prompt(`Insert a backend port or press Enter to keep current value ${backendPort}. Integers between 1025 and 65535: `); - if (newValue === "") - break; - result = Number(newValue); - - if (!isNaN(result) && Number.isInteger(result) && result > 1024 && result <= 65535 && result != clientPort) - break; - - if (result === clientPort) - console.log("Client port and backend port must be different."); - } - backendPort = newValue? result: backendPort; - - /* Get the new Game Master password */ - while (true) { - newValue = prompt(`Insert a new Game Master password or press Enter to keep current value: `, {echo: "*"}); - gameMasterPassword = newValue !== ""? sha256(newValue): gameMasterPassword; - - // Check if Game Master password is unique - if (gameMasterPassword === blueCommanderPassword || gameMasterPassword === redCommanderPassword) { - console.log("Game Master password must be different from other passwords. Please try again."); - continue; - } - break; - } - - /* Get the new Blue Commander password */ - while (true) { - newValue = prompt(`Insert a new Blue Commander password or press Enter to keep current value: `, {echo: "*"}); - blueCommanderPassword = newValue !== ""? sha256(newValue): blueCommanderPassword; - - // Check if Blue Commander password is unique - if (blueCommanderPassword === gameMasterPassword || blueCommanderPassword === redCommanderPassword) { - console.log("Blue Commander password must be different from other passwords. Please try again."); - continue; - } - break; - } - - /* Get the new Red Commander password */ - while (true) { - newValue = prompt(`Insert a new Red Commander password or press Enter to keep current value: `, {echo: "*"}); - redCommanderPassword = newValue !== ""? sha256(newValue): redCommanderPassword; - - // Check if Red Commander password is unique - if (redCommanderPassword === gameMasterPassword || redCommanderPassword === blueCommanderPassword) { - console.log("Red Commander password must be different from other passwords. Please try again."); - continue; - } - break; - } - } - - /* Apply the inputs */ - json["server"]["address"] = address; - json["client"]["port"] = clientPort; - json["server"]["port"] = backendPort; - json["authentication"]["gameMasterPassword"] = gameMasterPassword; - json["authentication"]["blueCommanderPassword"] = blueCommanderPassword; - json["authentication"]["redCommanderPassword"] = redCommanderPassword; - - /* Write the result to disk */ - const serialized = JSON.stringify(json, null, 4); - fs.writeFileSync(jsonPath, serialized, 'utf8'); - console.log("Olympus.json updated correctly, goodbye!"); - } - else { - console.error("Error, could not read olympus.json file!") - } - - /* Wait a bit before closing the window */ - await new Promise(resolve => setTimeout(resolve, 3000)); -} - -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', "* _____ _____ _____ ____ _ *"); -console.log('\x1b[36m%s\x1b[0m', "* | __ \\ / ____|/ ____| / __ \\| | *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | | (___ | | | | |_ _ _ __ ___ _ __ _ _ ___ *"); -console.log('\x1b[36m%s\x1b[0m', "* | | | | | \\___ \\ | | | | | | | | '_ ` _ \\| '_ \\| | | / __| *"); -console.log('\x1b[36m%s\x1b[0m', "* | |__| | |____ ____) | | |__| | | |_| | | | | | | |_) | |_| \\__ \\ *"); -console.log('\x1b[36m%s\x1b[0m', "* |_____/ \\_____|_____/ \\____/|_|\\__, |_| |_| |_| .__/ \\__,_|___/ *"); -console.log('\x1b[36m%s\x1b[0m', "* __/ | | | *"); -console.log('\x1b[36m%s\x1b[0m', "* |___/ |_| *"); -console.log('\x1b[36m%s\x1b[0m', "*********************************************************************"); -console.log('\x1b[36m%s\x1b[0m', ""); - -console.log("DCS Olympus configurator {{OLYMPUS_VERSION_NUMBER}}.{{OLYMPUS_COMMIT_HASH}}"); -console.log(""); - -/* Run the configurator */ -if (args.directory) { - jsonPath = path.join(args.directory, "olympus.json"); -} -else { - /* Automatically detect possible DCS installation folders */ - regedit.list(shellFoldersKey, function(err, result) { - if (err) { - console.log(err); - } - else { - if (result[shellFoldersKey] !== undefined && result[shellFoldersKey]["exists"] && result[shellFoldersKey]['values'][saveGamesKey] !== undefined && result[shellFoldersKey]['values'][saveGamesKey]['value'] !== undefined) - { - const searchpath = result[shellFoldersKey]['values'][saveGamesKey]['value']; - const folders = fs.readdirSync(searchpath); - var options = []; - folders.forEach((folder) => { - if (fs.existsSync(path.join(searchpath, folder, "Logs", "dcs.log"))) { - options.push(folder); - } - }) - console.log("The following DCS Saved Games folders have been automatically detected.") - options.forEach((folder, index) => { - console.log(`(${index + 1}) ${folder}`) - }); - while (true) { - var newValue = prompt(`Please choose a folder onto which the configurator shall operate by typing the associated number: `) - result = Number(newValue); - - if (!isNaN(result) && Number.isInteger(result) && result > 0 && result <= options.length) { - jsonPath = path.join(searchpath, options[result - 1], "Config", "olympus.json"); - break; - } - else { - console.log(`Please type a number between 1 and ${options.length}`); - } - } - - } else { - console.error("An error occured while trying to fetch the location of the DCS folder. Please type the folder location manually.") - jsonPath = path.join(prompt(`DCS Saved Games folder location: `), "olympus.json"); - } - console.log(`Configurator will run on ${jsonPath}, if this is incorrect please restart the configurator`) - run(); - } - }) -} diff --git a/client/copy.sh b/client/copy.sh deleted file mode 100755 index b809b1fc..00000000 --- a/client/copy.sh +++ /dev/null @@ -1,4 +0,0 @@ -cp ./node_modules/leaflet/dist/leaflet.css ./public/stylesheets/leaflet/leaflet.css -cp ./node_modules/leaflet-gesture-handling/dist/leaflet-gesture-handling.css ./public/stylesheets/leaflet/leaflet-gesture-handling.css -cp ./node_modules/leaflet.nauticscale/dist/leaflet.nauticscale.js ./public/javascripts/leaflet.nauticscale.js -cp ./node_modules/leaflet-path-drag/dist/L.Path.Drag.js ./public/javascripts/L.Path.Drag.js diff --git a/client/plugins/_boilerplate/copy.bat b/client/plugins/_boilerplate/copy.bat deleted file mode 100644 index 73b65b51..00000000 --- a/client/plugins/_boilerplate/copy.bat +++ /dev/null @@ -1,8 +0,0 @@ -mkdir .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin - -copy .\\index.js .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\index.js -copy .\\plugin.json .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\plugin.json -copy .\\style.css .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\style.css - -mkdir .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\images -copy .\\images\\*.* .\\..\\DCSOlympus\\client\\public\\plugins\\boilerplateplugin\\images\\ \ No newline at end of file diff --git a/client/plugins/controltips/copy.bat b/client/plugins/controltips/copy.bat deleted file mode 100644 index e0a9d89d..00000000 --- a/client/plugins/controltips/copy.bat +++ /dev/null @@ -1,5 +0,0 @@ -mkdir .\\..\\..\\public\\plugins\\controltipsplugin - -copy .\\index.js .\\..\\..\\public\\plugins\\controltipsplugin\\index.js -copy .\\plugin.json .\\..\\..\\public\\plugins\\controltipsplugin\\plugin.json -copy .\\style.css .\\..\\..\\public\\plugins\\controltipsplugin\\style.css \ No newline at end of file diff --git a/client/plugins/controltips/package-lock.json b/client/plugins/controltips/package-lock.json deleted file mode 100644 index 967172cf..00000000 --- a/client/plugins/controltips/package-lock.json +++ /dev/null @@ -1,6317 +0,0 @@ -{ - "name": "ControlTipsPlugin", - "version": "v0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "ControlTipsPlugin", - "version": "v0.0.1", - "devDependencies": { - "@babel/preset-env": "^7.21.4", - "@types/node": "^18.16.1", - "@types/sortablejs": "^1.15.0", - "babelify": "^10.0.0", - "browserify": "^17.0.0", - "concurrently": "^7.6.0", - "cp": "^0.2.0", - "esmify": "^2.1.1", - "nodemon": "^2.0.20", - "requirejs": "^2.3.6", - "sortablejs": "^1.15.0", - "tinyify": "^4.0.0", - "tsify": "^5.0.4", - "tslib": "latest", - "typescript": "^4.9.4", - "usng.js": "^0.4.5", - "watchify": "^4.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@browserify/envify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/envify/-/envify-6.0.0.tgz", - "integrity": "sha512-ovxHR0KTsRCyMNwD7MGV0+VCU1sT6Ds+itC4DaQHM41eUId+w5Jd0qlhLVoDkkIVBnkY3BAAM8yb2QfpBlHkPw==", - "dev": true, - "dependencies": { - "acorn-node": "^2.0.1", - "dash-ast": "^2.0.1", - "multisplice": "^1.0.0", - "through2": "^4.0.2" - }, - "bin": { - "envify": "bin/envify" - } - }, - "node_modules/@browserify/envify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/envify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@browserify/uglifyify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/uglifyify/-/uglifyify-6.0.0.tgz", - "integrity": "sha512-48M2a3novsgKhUSo/B3ja10awc7unliK1HfW6aYBJdLFQj3wXDx9BBJVfj6MVYERSQVEVjNHQQ7IK89h4MpCLw==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.9.0", - "minimatch": "^3.0.2", - "terser": "^5.15.1", - "through2": "^4.0.2", - "xtend": "^4.0.1" - } - }, - "node_modules/@browserify/uglifyify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@browserify/uglifyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/uglifyify/node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@browserify/uglifyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@goto-bus-stop/common-shake": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@goto-bus-stop/common-shake/-/common-shake-2.4.0.tgz", - "integrity": "sha512-LO+7v+UbxE3IyAS4Suf/KYB7Zq9DEIHibwDe6Wph4apNEfDyyxP7BSxzRS/Qa9lUH5gsm9eL9nF8EE1E0/nQkQ==", - "dev": true, - "dependencies": { - "acorn-walk": "^7.0.0", - "debug": "^3.2.6", - "escope": "^3.6.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@types/node": { - "version": "18.18.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.11.tgz", - "integrity": "sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/sortablejs": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.6.tgz", - "integrity": "sha512-/G23qmK63iBjke89C1KvyFGMC7sooH4OKPuhOhLZUttZJ49dw7y7oimqICFe2PHCdQ4Cfb9tsF/Xy8kYr1/nIg==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-node": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-2.0.1.tgz", - "integrity": "sha512-VLR5sHqjk+8c5hrKeP2fWaIHb8eewsoxnZ8r2qpwRHXMHuC7KyOPflnOx9dLssVQUurzJ7rO0OzIFjHcndafWw==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", - "dev": true - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-import-to-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", - "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", - "dev": true, - "dependencies": { - "babel-template": "^6.26.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babelify": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", - "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "bin": { - "browser-pack": "bin/cmd.js" - } - }, - "node_modules/browser-pack-flat": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/browser-pack-flat/-/browser-pack-flat-3.5.0.tgz", - "integrity": "sha512-u3iJUjs+TC/NGIL2GLyIcn5ppoNZXhTWqSW/gQbGIGvQiXXCQQzr5VWfACFraXQn2JrDlyRnKLeOs5AWXzKI6A==", - "dev": true, - "dependencies": { - "combine-source-map": "^0.8.0", - "convert-source-map": "^1.5.1", - "count-lines": "^0.1.2", - "dedent": "^0.7.0", - "estree-is-member-expression": "^1.0.0", - "estree-is-require": "^1.0.0", - "esutils": "^2.0.2", - "JSONStream": "^1.3.2", - "path-parse": "^1.0.5", - "scope-analyzer": "^2.0.0", - "stream-combiner": "^0.2.2", - "through2": "^3.0.1", - "transform-ast": "^2.4.2", - "umd": "^3.0.3", - "wrap-comment": "^1.0.0" - }, - "bin": { - "browser-pack-flat": "cli.js" - } - }, - "node_modules/browser-pack-flat/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", - "dev": true - }, - "node_modules/browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "dependencies": { - "resolve": "^1.17.0" - } - }, - "node_modules/browser-unpack": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/browser-unpack/-/browser-unpack-1.4.2.tgz", - "integrity": "sha512-uHkiY4bmXjjBBWoKH1aRnEGTQxUUCCcVtoJfH9w1lmGGjETY4u93Zk+GRYkCE/SRMrdoMTINQ/1/manr/3aMVA==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "concat-stream": "^1.5.0", - "minimist": "^1.1.1" - }, - "bin": { - "browser-unpack": "bin/cmd.js" - } - }, - "node_modules/browser-unpack/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserify": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "node_modules/bundle-collapser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/bundle-collapser/-/bundle-collapser-1.4.0.tgz", - "integrity": "sha512-Gd3K3+3KI1Utuk+gwAvuOVOjT/2XLGL8tU6FwDKk04LlOZkYfT0pwQllsG1Dv8RRhgcjNxZSDmmSXb0AOkwSwg==", - "dev": true, - "dependencies": { - "browser-pack": "^6.0.2", - "browser-unpack": "^1.1.0", - "concat-stream": "^1.5.0", - "falafel": "^2.1.0", - "minimist": "^1.1.1", - "through2": "^2.0.0" - }, - "bin": { - "bundle-collapser": "bin/cmd.js" - } - }, - "node_modules/cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001563", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", - "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", - "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "node_modules/combine-source-map/node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", - "dev": true - }, - "node_modules/combine-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-shakeify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-1.1.2.tgz", - "integrity": "sha512-r2zRKPCbCx1l9BT8nVGZssZXrH9jeLl5qfHKxUwSBT7Kr9l1jSjZsItZE/jXo+GYDyO3kQfsyV7Poid475MgWQ==", - "dev": true, - "dependencies": { - "@goto-bus-stop/common-shake": "^2.3.0", - "convert-source-map": "^1.5.1", - "through2": "^2.0.3", - "transform-ast": "^2.4.3", - "wrap-comment": "^1.0.1" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concurrently": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", - "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", - "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^17.3.1" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/concurrently/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concurrently/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/count-lines": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/count-lines/-/count-lines-0.1.2.tgz", - "integrity": "sha512-YS8P4UYXX/hrDyLU3r/A5OcCNwdNbJFJckbe8j+x2Jhxsr2J4/rYl0sDwOljLZL7Uxc4s7mRSNcQD8dSjobz+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cp": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cp/-/cp-0.2.0.tgz", - "integrity": "sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA==", - "dev": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dash-ast": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", - "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", - "dev": true - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "dependencies": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "bin": { - "deps-sort": "bin/cmd.js" - } - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/detective/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.589", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz", - "integrity": "sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "node_modules/es6-set": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "es6-iterator": "~2.0.3", - "es6-symbol": "^3.1.3", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-set/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", - "dev": true, - "dependencies": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esmify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", - "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "babel-plugin-import-to-require": "^1.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "^1.6.2", - "duplexer2": "^0.1.4", - "through2": "^2.0.5" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-is-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", - "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", - "dev": true - }, - "node_modules/estree-is-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-identifier/-/estree-is-identifier-1.0.0.tgz", - "integrity": "sha512-2BDRGrkQJV/NhCAmmE33A35WAaxq3WQaGHgQuD//7orGWfpFqj8Srkwvx0TH+20yIdOF1yMQwi8anv5ISec2AQ==", - "dev": true - }, - "node_modules/estree-is-member-expression": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-member-expression/-/estree-is-member-expression-1.0.0.tgz", - "integrity": "sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg==", - "dev": true - }, - "node_modules/estree-is-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-require/-/estree-is-require-1.0.0.tgz", - "integrity": "sha512-oWxQdSEmnUwNZsDQYiBNpVxKEhMmsJQSSxnDrwsr1MWtooCLfhgzsNGzmokdmfK0EzEIS5V4LPvqxv1Kmb1vvA==", - "dev": true, - "dependencies": { - "estree-is-identifier": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/falafel/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/from2-string/-/from2-string-1.1.0.tgz", - "integrity": "sha512-m8vCh+KnXXXBtfF2VUbiYlQ+nczLcntB0BrtNgpmLkHylhObe9WF1b2LZjBBzrZzA6P4mkEla6ZYQoOUTG8cYA==", - "dev": true, - "dependencies": { - "from2": "^2.0.3" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", - "dev": true, - "dependencies": { - "source-map": "~0.5.3" - } - }, - "node_modules/inline-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "bin": { - "insert-module-globals": "bin/cmd.js" - } - }, - "node_modules/insert-module-globals/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/insert-module-globals/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", - "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.1" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/merge-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/minify-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minify-stream/-/minify-stream-2.1.0.tgz", - "integrity": "sha512-P5xE4EQRkn7Td54VGcgfDMFx1jmKPPIXCdcMfrbXS6cNHK4dO1LXwtYFb48hHrSmZfT+jlGImvHgSZEkbpNtCw==", - "dev": true, - "dependencies": { - "concat-stream": "^2.0.0", - "convert-source-map": "^1.5.0", - "duplexify": "^4.1.1", - "from2-string": "^1.1.0", - "terser": "^4.7.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/minify-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "dependencies": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/multi-stage-sourcemap": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.3.1.tgz", - "integrity": "sha512-UiTLYjqeIoVnJHyWGskwMKIhtZKK9uXUjSTWuwatarrc0d2H/6MAVFdwvEA/aKOHamIn7z4tfvxjz+FYucFpNQ==", - "dev": true, - "dependencies": { - "source-map": "^0.1.34" - } - }, - "node_modules/multi-stage-sourcemap/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/multisplice": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/multisplice/-/multisplice-1.0.0.tgz", - "integrity": "sha512-KU5tVjIdTGsMb92JlWwEZCGrvtI1ku9G9GuNbWdQT/Ici1ztFXX0L8lWpbbC3pISVMfBNL56wdqplHvva2XSlA==", - "dev": true - }, - "node_modules/mutexify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", - "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", - "dev": true, - "dependencies": { - "queue-tick": "^1.0.0" - } - }, - "node_modules/nanobench": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", - "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^0.1.2", - "chalk": "^1.1.3", - "mutexify": "^1.1.0", - "pretty-hrtime": "^1.0.2" - }, - "bin": { - "nanobench": "run.js", - "nanobench-compare": "compare.js" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "node_modules/outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA==", - "dev": true, - "dependencies": { - "shell-quote": "^1.4.2" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", - "dev": true, - "dependencies": { - "path-platform": "~0.11.15" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true, - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scope-analyzer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", - "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", - "dev": true, - "dependencies": { - "array-from": "^2.1.1", - "dash-ast": "^2.0.1", - "es6-map": "^0.1.5", - "es6-set": "^0.1.5", - "es6-symbol": "^3.1.1", - "estree-is-function": "^1.0.0", - "get-assigned-identifiers": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", - "dev": true - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } - }, - "node_modules/syntax-error/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/terser": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", - "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", - "dev": true, - "dependencies": { - "commander": "~2.17.1", - "source-map": "~0.6.1", - "source-map-support": "~0.5.9" - }, - "bin": { - "terser": "bin/uglifyjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", - "dev": true, - "dependencies": { - "process": "~0.11.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tinyify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-4.0.0.tgz", - "integrity": "sha512-jNDxImwUrJJAU2NyGG144J8aWx2ni39UuBo7ppCXFRmhSH0CbpWL4HgjNvrsAW05WQAgNZePwAlEemNuB+byaA==", - "dev": true, - "dependencies": { - "@browserify/envify": "^6.0.0", - "@browserify/uglifyify": "^6.0.0", - "browser-pack-flat": "^3.0.9", - "bundle-collapser": "^1.3.0", - "common-shakeify": "^1.1.1", - "minify-stream": "^2.0.1", - "multisplice": "^1.0.0", - "terser": "3.16.1", - "through2": "^4.0.2", - "unassertify": "^3.0.1" - } - }, - "node_modules/tinyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tinyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/transform-ast": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", - "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "convert-source-map": "^1.5.1", - "dash-ast": "^1.0.0", - "is-buffer": "^2.0.0", - "magic-string": "^0.23.2", - "merge-source-map": "1.0.4", - "nanobench": "^2.1.1" - } - }, - "node_modules/transform-ast/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/transform-ast/node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/tsconfig": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", - "integrity": "sha512-Cq65A3kVp6BbsUgg9DRHafaGmbMb9EhAc7fjWvudNWKjkbWrt43FnrtZt6awshH1R0ocfF2Z0uxock3lVqEgOg==", - "dev": true, - "dependencies": { - "any-promise": "^1.3.0", - "parse-json": "^2.2.0", - "strip-bom": "^2.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tsify": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/tsify/-/tsify-5.0.4.tgz", - "integrity": "sha512-XAZtQ5OMPsJFclkZ9xMZWkSNyMhMxEPsz3D2zu79yoKorH9j/DT4xCloJeXk5+cDhosEibu4bseMVjyPOAyLJA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.1.0", - "fs.realpath": "^1.0.0", - "object-assign": "^4.1.0", - "semver": "^6.1.0", - "through2": "^2.0.0", - "tsconfig": "^5.0.3" - }, - "engines": { - "node": ">=0.12" - }, - "peerDependencies": { - "browserify": ">= 10.x", - "typescript": ">= 2.8" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true, - "bin": { - "umd": "bin/cli.js" - } - }, - "node_modules/unassert": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unassert/-/unassert-2.0.2.tgz", - "integrity": "sha512-P6OOg/aRdQmWH+b0g+T4U+9MgL+DG7w6oQPG+N3F2IMuvvd1WfZ5alT/Rjik2lMFVyhfACUxF7PGP1VCwSHlQA==", - "dev": true, - "dependencies": { - "estraverse": "^5.0.0" - } - }, - "node_modules/unassert/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/unassertify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/unassertify/-/unassertify-3.0.1.tgz", - "integrity": "sha512-461ykSPY3oWU+39J5haiq7S/hcYy1oGJ2nHU92lqdL3jft+pSU6oAbb7o6VVmM7nZGLqppszgyzfpCnRBFgFtw==", - "dev": true, - "dependencies": { - "acorn": "^8.0.0", - "convert-source-map": "^1.1.1", - "escodegen": "^2.0.0", - "multi-stage-sourcemap": "^0.3.1", - "through": "^2.3.7", - "unassert": "^2.0.0" - } - }, - "node_modules/unassertify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, - "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/undeclared-identifiers/node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/undeclared-identifiers/node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "node_modules/usng.js": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/usng.js/-/usng.js-0.4.5.tgz", - "integrity": "sha512-JTJcFFDy/JqA5iiU8DqMOV5gJiL3ZdXH0hCKYaRMDbbredhFna5Ok4C1YDFU07mTGAgm+5FzHaaOzQnO/3BzWQ==", - "dev": true, - "bin": { - "usng-cli": "bin/cli.js" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/watchify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", - "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", - "dev": true, - "dependencies": { - "anymatch": "^3.1.0", - "browserify": "^17.0.0", - "chokidar": "^3.4.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^4.0.2", - "xtend": "^4.0.2" - }, - "bin": { - "watchify": "bin/cmd.js" - }, - "engines": { - "node": ">= 8.10.0" - } - }, - "node_modules/watchify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-comment": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrap-comment/-/wrap-comment-1.0.1.tgz", - "integrity": "sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - } -} diff --git a/client/plugins/databasemanager/copy.bat b/client/plugins/databasemanager/copy.bat deleted file mode 100644 index 34127e37..00000000 --- a/client/plugins/databasemanager/copy.bat +++ /dev/null @@ -1,5 +0,0 @@ -mkdir .\\..\\..\\public\\plugins\\databasemanager - -copy .\\index.js .\\..\\..\\public\\plugins\\databasemanager\\index.js -copy .\\plugin.json .\\..\\..\\public\\plugins\\databasemanager\\plugin.json -copy .\\style.css .\\..\\..\\public\\plugins\\databasemanager\\style.css \ No newline at end of file diff --git a/client/plugins/databasemanager/package-lock.json b/client/plugins/databasemanager/package-lock.json deleted file mode 100644 index 5ff5edad..00000000 --- a/client/plugins/databasemanager/package-lock.json +++ /dev/null @@ -1,6214 +0,0 @@ -{ - "name": "DatabaseManagerPlugin", - "version": "v0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "DatabaseManagerPlugin", - "version": "v0.0.1", - "devDependencies": { - "@babel/preset-env": "^7.21.4", - "@types/node": "^18.16.1", - "@types/sortablejs": "^1.15.0", - "babelify": "^10.0.0", - "browserify": "^17.0.0", - "concurrently": "^7.6.0", - "cp": "^0.2.0", - "esmify": "^2.1.1", - "nodemon": "^2.0.20", - "requirejs": "^2.3.6", - "sortablejs": "^1.15.0", - "tinyify": "^4.0.0", - "tsify": "^5.0.4", - "tslib": "latest", - "typescript": "^4.9.4", - "usng.js": "^0.4.5", - "watchify": "^4.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@browserify/envify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/envify/-/envify-6.0.0.tgz", - "integrity": "sha512-ovxHR0KTsRCyMNwD7MGV0+VCU1sT6Ds+itC4DaQHM41eUId+w5Jd0qlhLVoDkkIVBnkY3BAAM8yb2QfpBlHkPw==", - "dev": true, - "dependencies": { - "acorn-node": "^2.0.1", - "dash-ast": "^2.0.1", - "multisplice": "^1.0.0", - "through2": "^4.0.2" - }, - "bin": { - "envify": "bin/envify" - } - }, - "node_modules/@browserify/envify/node_modules/acorn-node": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-2.0.1.tgz", - "integrity": "sha512-VLR5sHqjk+8c5hrKeP2fWaIHb8eewsoxnZ8r2qpwRHXMHuC7KyOPflnOx9dLssVQUurzJ7rO0OzIFjHcndafWw==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/@browserify/envify/node_modules/dash-ast": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", - "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", - "dev": true - }, - "node_modules/@browserify/envify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/envify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@browserify/uglifyify": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@browserify/uglifyify/-/uglifyify-6.0.0.tgz", - "integrity": "sha512-48M2a3novsgKhUSo/B3ja10awc7unliK1HfW6aYBJdLFQj3wXDx9BBJVfj6MVYERSQVEVjNHQQ7IK89h4MpCLw==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.9.0", - "minimatch": "^3.0.2", - "terser": "^5.15.1", - "through2": "^4.0.2", - "xtend": "^4.0.1" - } - }, - "node_modules/@browserify/uglifyify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@browserify/uglifyify/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/@browserify/uglifyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@browserify/uglifyify/node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@browserify/uglifyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/@goto-bus-stop/common-shake": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@goto-bus-stop/common-shake/-/common-shake-2.4.0.tgz", - "integrity": "sha512-LO+7v+UbxE3IyAS4Suf/KYB7Zq9DEIHibwDe6Wph4apNEfDyyxP7BSxzRS/Qa9lUH5gsm9eL9nF8EE1E0/nQkQ==", - "dev": true, - "dependencies": { - "acorn-walk": "^7.0.0", - "debug": "^3.2.6", - "escope": "^3.6.0" - } - }, - "node_modules/@goto-bus-stop/common-shake/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@types/node": { - "version": "18.18.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz", - "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/sortablejs": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.15.7.tgz", - "integrity": "sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", - "dev": true - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-import-to-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", - "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", - "dev": true, - "dependencies": { - "babel-template": "^6.26.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babelify": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", - "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "bin": { - "browser-pack": "bin/cmd.js" - } - }, - "node_modules/browser-pack-flat": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/browser-pack-flat/-/browser-pack-flat-3.5.0.tgz", - "integrity": "sha512-u3iJUjs+TC/NGIL2GLyIcn5ppoNZXhTWqSW/gQbGIGvQiXXCQQzr5VWfACFraXQn2JrDlyRnKLeOs5AWXzKI6A==", - "dev": true, - "dependencies": { - "combine-source-map": "^0.8.0", - "convert-source-map": "^1.5.1", - "count-lines": "^0.1.2", - "dedent": "^0.7.0", - "estree-is-member-expression": "^1.0.0", - "estree-is-require": "^1.0.0", - "esutils": "^2.0.2", - "JSONStream": "^1.3.2", - "path-parse": "^1.0.5", - "scope-analyzer": "^2.0.0", - "stream-combiner": "^0.2.2", - "through2": "^3.0.1", - "transform-ast": "^2.4.2", - "umd": "^3.0.3", - "wrap-comment": "^1.0.0" - }, - "bin": { - "browser-pack-flat": "cli.js" - } - }, - "node_modules/browser-pack-flat/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/browser-pack-flat/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", - "dev": true - }, - "node_modules/browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "dependencies": { - "resolve": "^1.17.0" - } - }, - "node_modules/browser-unpack": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/browser-unpack/-/browser-unpack-1.4.2.tgz", - "integrity": "sha512-uHkiY4bmXjjBBWoKH1aRnEGTQxUUCCcVtoJfH9w1lmGGjETY4u93Zk+GRYkCE/SRMrdoMTINQ/1/manr/3aMVA==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "concat-stream": "^1.5.0", - "minimist": "^1.1.1" - }, - "bin": { - "browser-unpack": "bin/cmd.js" - } - }, - "node_modules/browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserify": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, - "node_modules/bundle-collapser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/bundle-collapser/-/bundle-collapser-1.4.0.tgz", - "integrity": "sha512-Gd3K3+3KI1Utuk+gwAvuOVOjT/2XLGL8tU6FwDKk04LlOZkYfT0pwQllsG1Dv8RRhgcjNxZSDmmSXb0AOkwSwg==", - "dev": true, - "dependencies": { - "browser-pack": "^6.0.2", - "browser-unpack": "^1.1.0", - "concat-stream": "^1.5.0", - "falafel": "^2.1.0", - "minimist": "^1.1.1", - "through2": "^2.0.0" - }, - "bin": { - "bundle-collapser": "bin/cmd.js" - } - }, - "node_modules/cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001564", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", - "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", - "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/common-shakeify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-1.1.2.tgz", - "integrity": "sha512-r2zRKPCbCx1l9BT8nVGZssZXrH9jeLl5qfHKxUwSBT7Kr9l1jSjZsItZE/jXo+GYDyO3kQfsyV7Poid475MgWQ==", - "dev": true, - "dependencies": { - "@goto-bus-stop/common-shake": "^2.3.0", - "convert-source-map": "^1.5.1", - "through2": "^2.0.3", - "transform-ast": "^2.4.3", - "wrap-comment": "^1.0.1" - } - }, - "node_modules/common-shakeify/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concurrently": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz", - "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", - "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^17.3.1" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/concurrently/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concurrently/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", - "dev": true - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/count-lines": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/count-lines/-/count-lines-0.1.2.tgz", - "integrity": "sha512-YS8P4UYXX/hrDyLU3r/A5OcCNwdNbJFJckbe8j+x2Jhxsr2J4/rYl0sDwOljLZL7Uxc4s7mRSNcQD8dSjobz+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cp": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cp/-/cp-0.2.0.tgz", - "integrity": "sha512-4ftCvShHjIZG/zzomHyunNpBof3sOFTTmU6s6q9DdqAL/ANqrKV3pr6Z6kVfBI4hjn59DFLImrBqn7GuuMqSZA==", - "dev": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "dependencies": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "bin": { - "deps-sort": "bin/cmd.js" - } - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detective": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.8.2", - "defined": "^1.0.0", - "minimist": "^1.2.6" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.593", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.593.tgz", - "integrity": "sha512-c7+Hhj87zWmdpmjDONbvNKNo24tvmD4mjal1+qqTYTrlF0/sNpAcDlU0Ki84ftA/5yj3BF2QhSGEC0Rky6larg==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "node_modules/es6-set": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "es6-iterator": "~2.0.3", - "es6-symbol": "^3.1.3", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-set/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", - "dev": true, - "dependencies": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esmify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", - "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "babel-plugin-import-to-require": "^1.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "^1.6.2", - "duplexer2": "^0.1.4", - "through2": "^2.0.5" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-is-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", - "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", - "dev": true - }, - "node_modules/estree-is-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-identifier/-/estree-is-identifier-1.0.0.tgz", - "integrity": "sha512-2BDRGrkQJV/NhCAmmE33A35WAaxq3WQaGHgQuD//7orGWfpFqj8Srkwvx0TH+20yIdOF1yMQwi8anv5ISec2AQ==", - "dev": true - }, - "node_modules/estree-is-member-expression": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-member-expression/-/estree-is-member-expression-1.0.0.tgz", - "integrity": "sha512-Ec+X44CapIGExvSZN+pGkmr5p7HwUVQoPQSd458Lqwvaf4/61k/invHSh4BYK8OXnCkfEhWuIoG5hayKLQStIg==", - "dev": true - }, - "node_modules/estree-is-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-is-require/-/estree-is-require-1.0.0.tgz", - "integrity": "sha512-oWxQdSEmnUwNZsDQYiBNpVxKEhMmsJQSSxnDrwsr1MWtooCLfhgzsNGzmokdmfK0EzEIS5V4LPvqxv1Kmb1vvA==", - "dev": true, - "dependencies": { - "estree-is-identifier": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/falafel": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", - "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "isarray": "^2.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/falafel/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/from2-string/-/from2-string-1.1.0.tgz", - "integrity": "sha512-m8vCh+KnXXXBtfF2VUbiYlQ+nczLcntB0BrtNgpmLkHylhObe9WF1b2LZjBBzrZzA6P4mkEla6ZYQoOUTG8cYA==", - "dev": true, - "dependencies": { - "from2": "^2.0.3" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", - "dev": true, - "dependencies": { - "source-map": "~0.5.3" - } - }, - "node_modules/insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "bin": { - "insert-module-globals": "bin/cmd.js" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", - "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.1" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/minify-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minify-stream/-/minify-stream-2.1.0.tgz", - "integrity": "sha512-P5xE4EQRkn7Td54VGcgfDMFx1jmKPPIXCdcMfrbXS6cNHK4dO1LXwtYFb48hHrSmZfT+jlGImvHgSZEkbpNtCw==", - "dev": true, - "dependencies": { - "concat-stream": "^2.0.0", - "convert-source-map": "^1.5.0", - "duplexify": "^4.1.1", - "from2-string": "^1.1.0", - "terser": "^4.7.0", - "xtend": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/minify-stream/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/minify-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minify-stream/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/minify-stream/node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "dependencies": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multi-stage-sourcemap": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.3.1.tgz", - "integrity": "sha512-UiTLYjqeIoVnJHyWGskwMKIhtZKK9uXUjSTWuwatarrc0d2H/6MAVFdwvEA/aKOHamIn7z4tfvxjz+FYucFpNQ==", - "dev": true, - "dependencies": { - "source-map": "^0.1.34" - } - }, - "node_modules/multi-stage-sourcemap/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/multisplice": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/multisplice/-/multisplice-1.0.0.tgz", - "integrity": "sha512-KU5tVjIdTGsMb92JlWwEZCGrvtI1ku9G9GuNbWdQT/Ici1ztFXX0L8lWpbbC3pISVMfBNL56wdqplHvva2XSlA==", - "dev": true - }, - "node_modules/mutexify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", - "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", - "dev": true, - "dependencies": { - "queue-tick": "^1.0.0" - } - }, - "node_modules/nanobench": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", - "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^0.1.2", - "chalk": "^1.1.3", - "mutexify": "^1.1.0", - "pretty-hrtime": "^1.0.2" - }, - "bin": { - "nanobench": "run.js", - "nanobench-compare": "compare.js" - } - }, - "node_modules/nanobench/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanobench/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "node_modules/outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha512-BnNY/RwnDrkmQdUa9U+OfN/Y7AWmKuUPCCd+hbRclZnnANvYpO72zp/a6Q4n829hPbdqEac31XCcsvlEvb+rtA==", - "dev": true, - "dependencies": { - "shell-quote": "^1.4.2" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", - "dev": true, - "dependencies": { - "path-platform": "~0.11.15" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true, - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/scope-analyzer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", - "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", - "dev": true, - "dependencies": { - "array-from": "^2.1.1", - "dash-ast": "^2.0.1", - "es6-map": "^0.1.5", - "es6-set": "^0.1.5", - "es6-symbol": "^3.1.1", - "estree-is-function": "^1.0.0", - "get-assigned-identifiers": "^1.1.0" - } - }, - "node_modules/scope-analyzer/node_modules/dash-ast": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", - "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dev": true, - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", - "dev": true - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } - }, - "node_modules/terser": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", - "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", - "dev": true, - "dependencies": { - "commander": "~2.17.1", - "source-map": "~0.6.1", - "source-map-support": "~0.5.9" - }, - "bin": { - "terser": "bin/uglifyjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", - "dev": true, - "dependencies": { - "process": "~0.11.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tinyify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tinyify/-/tinyify-4.0.0.tgz", - "integrity": "sha512-jNDxImwUrJJAU2NyGG144J8aWx2ni39UuBo7ppCXFRmhSH0CbpWL4HgjNvrsAW05WQAgNZePwAlEemNuB+byaA==", - "dev": true, - "dependencies": { - "@browserify/envify": "^6.0.0", - "@browserify/uglifyify": "^6.0.0", - "browser-pack-flat": "^3.0.9", - "bundle-collapser": "^1.3.0", - "common-shakeify": "^1.1.1", - "minify-stream": "^2.0.1", - "multisplice": "^1.0.0", - "terser": "3.16.1", - "through2": "^4.0.2", - "unassertify": "^3.0.1" - } - }, - "node_modules/tinyify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tinyify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/transform-ast": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", - "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "convert-source-map": "^1.5.1", - "dash-ast": "^1.0.0", - "is-buffer": "^2.0.0", - "magic-string": "^0.23.2", - "merge-source-map": "1.0.4", - "nanobench": "^2.1.1" - } - }, - "node_modules/transform-ast/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/transform-ast/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/tsconfig": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", - "integrity": "sha512-Cq65A3kVp6BbsUgg9DRHafaGmbMb9EhAc7fjWvudNWKjkbWrt43FnrtZt6awshH1R0ocfF2Z0uxock3lVqEgOg==", - "dev": true, - "dependencies": { - "any-promise": "^1.3.0", - "parse-json": "^2.2.0", - "strip-bom": "^2.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tsify": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/tsify/-/tsify-5.0.4.tgz", - "integrity": "sha512-XAZtQ5OMPsJFclkZ9xMZWkSNyMhMxEPsz3D2zu79yoKorH9j/DT4xCloJeXk5+cDhosEibu4bseMVjyPOAyLJA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.1.0", - "fs.realpath": "^1.0.0", - "object-assign": "^4.1.0", - "semver": "^6.1.0", - "through2": "^2.0.0", - "tsconfig": "^5.0.3" - }, - "engines": { - "node": ">=0.12" - }, - "peerDependencies": { - "browserify": ">= 10.x", - "typescript": ">= 2.8" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true, - "bin": { - "umd": "bin/cli.js" - } - }, - "node_modules/unassert": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unassert/-/unassert-2.0.2.tgz", - "integrity": "sha512-P6OOg/aRdQmWH+b0g+T4U+9MgL+DG7w6oQPG+N3F2IMuvvd1WfZ5alT/Rjik2lMFVyhfACUxF7PGP1VCwSHlQA==", - "dev": true, - "dependencies": { - "estraverse": "^5.0.0" - } - }, - "node_modules/unassert/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/unassertify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/unassertify/-/unassertify-3.0.1.tgz", - "integrity": "sha512-461ykSPY3oWU+39J5haiq7S/hcYy1oGJ2nHU92lqdL3jft+pSU6oAbb7o6VVmM7nZGLqppszgyzfpCnRBFgFtw==", - "dev": true, - "dependencies": { - "acorn": "^8.0.0", - "convert-source-map": "^1.1.1", - "escodegen": "^2.0.0", - "multi-stage-sourcemap": "^0.3.1", - "through": "^2.3.7", - "unassert": "^2.0.0" - } - }, - "node_modules/unassertify/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, - "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "node_modules/usng.js": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/usng.js/-/usng.js-0.4.5.tgz", - "integrity": "sha512-JTJcFFDy/JqA5iiU8DqMOV5gJiL3ZdXH0hCKYaRMDbbredhFna5Ok4C1YDFU07mTGAgm+5FzHaaOzQnO/3BzWQ==", - "dev": true, - "bin": { - "usng-cli": "bin/cli.js" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/watchify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", - "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", - "dev": true, - "dependencies": { - "anymatch": "^3.1.0", - "browserify": "^17.0.0", - "chokidar": "^3.4.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^4.0.2", - "xtend": "^4.0.2" - }, - "bin": { - "watchify": "bin/cmd.js" - }, - "engines": { - "node": ">= 8.10.0" - } - }, - "node_modules/watchify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-comment": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrap-comment/-/wrap-comment-1.0.1.tgz", - "integrity": "sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - } -} diff --git a/client/public/stylesheets/leaflet/leaflet.css b/client/public/stylesheets/leaflet/leaflet.css deleted file mode 100644 index 9ade8dc4..00000000 --- a/client/public/stylesheets/leaflet/leaflet.css +++ /dev/null @@ -1,661 +0,0 @@ -/* required styles */ - -.leaflet-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-container, -.leaflet-pane > svg, -.leaflet-pane > canvas, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; - } -.leaflet-container { - overflow: hidden; - } -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; - } -/* Prevents IE11 from highlighting tiles in blue */ -.leaflet-tile::selection { - background: transparent; -} -/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ -.leaflet-safari .leaflet-tile { - image-rendering: -webkit-optimize-contrast; - } -/* hack that prevents hw layers "stretching" when loading new tiles */ -.leaflet-safari .leaflet-tile-container { - width: 1600px; - height: 1600px; - -webkit-transform-origin: 0 0; - } -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; - } -/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ -/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container .leaflet-overlay-pane svg { - max-width: none !important; - max-height: none !important; - } -.leaflet-container .leaflet-marker-pane img, -.leaflet-container .leaflet-shadow-pane img, -.leaflet-container .leaflet-tile-pane img, -.leaflet-container img.leaflet-image-layer, -.leaflet-container .leaflet-tile { - max-width: none !important; - max-height: none !important; - width: auto; - padding: 0; - } - -.leaflet-container img.leaflet-tile { - /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ - mix-blend-mode: plus-lighter; -} - -.leaflet-container.leaflet-touch-zoom { - -ms-touch-action: pan-x pan-y; - touch-action: pan-x pan-y; - } -.leaflet-container.leaflet-touch-drag { - -ms-touch-action: pinch-zoom; - /* Fallback for FF which doesn't support pinch-zoom */ - touch-action: none; - touch-action: pinch-zoom; -} -.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { - -ms-touch-action: none; - touch-action: none; -} -.leaflet-container { - -webkit-tap-highlight-color: transparent; -} -.leaflet-container a { - -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); -} -.leaflet-tile { - filter: inherit; - visibility: hidden; - } -.leaflet-tile-loaded { - visibility: inherit; - } -.leaflet-zoom-box { - width: 0; - height: 0; - -moz-box-sizing: border-box; - box-sizing: border-box; - z-index: 800; - } -/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ -.leaflet-overlay-pane svg { - -moz-user-select: none; - } - -.leaflet-pane { z-index: 400; } - -.leaflet-tile-pane { z-index: 200; } -.leaflet-overlay-pane { z-index: 400; } -.leaflet-shadow-pane { z-index: 500; } -.leaflet-marker-pane { z-index: 600; } -.leaflet-tooltip-pane { z-index: 650; } -.leaflet-popup-pane { z-index: 700; } - -.leaflet-map-pane canvas { z-index: 100; } -.leaflet-map-pane svg { z-index: 200; } - -.leaflet-vml-shape { - width: 1px; - height: 1px; - } -.lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } - - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.leaflet-top { - top: 0; - } -.leaflet-right { - right: 0; - } -.leaflet-bottom { - bottom: 0; - } -.leaflet-left { - left: 0; - } -.leaflet-control { - float: left; - clear: both; - } -.leaflet-right .leaflet-control { - float: right; - } -.leaflet-top .leaflet-control { - margin-top: 10px; - } -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } -.leaflet-left .leaflet-control { - margin-left: 10px; - } -.leaflet-right .leaflet-control { - margin-right: 10px; - } - - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } -.leaflet-zoom-animated { - -webkit-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - } -svg.leaflet-zoom-animated { - will-change: transform; -} - -.leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile { - -webkit-transition: none; - -moz-transition: none; - transition: none; - } - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } - - -/* cursors */ - -.leaflet-interactive { - cursor: pointer; - } -.leaflet-grab { - cursor: -webkit-grab; - cursor: -moz-grab; - cursor: grab; - } -.leaflet-crosshair, -.leaflet-crosshair .leaflet-interactive { - cursor: crosshair; - } -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; - } -.leaflet-dragging .leaflet-grab, -.leaflet-dragging .leaflet-grab .leaflet-interactive, -.leaflet-dragging .leaflet-marker-draggable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - cursor: grabbing; - } - -/* marker & overlays interactivity */ -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-image-layer, -.leaflet-pane > svg path, -.leaflet-tile-container { - pointer-events: none; - } - -.leaflet-marker-icon.leaflet-interactive, -.leaflet-image-layer.leaflet-interactive, -.leaflet-pane > svg path.leaflet-interactive, -svg.leaflet-image-layer.leaflet-interactive path { - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline-offset: 1px; - } -.leaflet-container a { - color: #0078A8; - } -.leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255,255,255,0.5); - } - - -/* general typography */ -.leaflet-container { - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; - font-size: 12px; - font-size: 0.75rem; - line-height: 1.5; - } - - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.leaflet-bar a { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } -.leaflet-bar a, -.leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.leaflet-bar a:hover, -.leaflet-bar a:focus { - background-color: #f4f4f4; - } -.leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - -.leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } -.leaflet-touch .leaflet-bar a:first-child { - border-top-left-radius: 2px; - border-top-right-radius: 2px; - } -.leaflet-touch .leaflet-bar a:last-child { - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; - } - -/* zoom control */ - -.leaflet-control-zoom-in, -.leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } - -.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { - font-size: 22px; - } - - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.leaflet-control-layers-toggle { - background-image: url(images/layers.png); - width: 36px; - height: 36px; - } -.leaflet-retina .leaflet-control-layers-toggle { - background-image: url(images/layers-2x.png); - background-size: 26px 26px; - } -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.leaflet-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.leaflet-control-layers label { - display: block; - font-size: 13px; - font-size: 1.08333em; - } -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - -/* Default icon URLs */ -.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ - background-image: url(images/marker-icon.png); - } - - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.8); - margin: 0; - } -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; - line-height: 1.4; - } -.leaflet-control-attribution a { - text-decoration: none; - } -.leaflet-control-attribution a:hover, -.leaflet-control-attribution a:focus { - text-decoration: underline; - } -.leaflet-attribution-flag { - display: inline !important; - vertical-align: baseline !important; - width: 1em; - height: 0.6669em; - } -.leaflet-left .leaflet-control-scale { - margin-left: 5px; - } -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - white-space: nowrap; - -moz-box-sizing: border-box; - box-sizing: border-box; - background: rgba(255, 255, 255, 0.8); - text-shadow: 1px 1px #fff; - } -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - box-shadow: none; - } -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; - margin-bottom: 20px; - } -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } -.leaflet-popup-content { - margin: 13px 24px 13px 20px; - line-height: 1.3; - font-size: 13px; - font-size: 1.08333em; - min-height: 1px; - } -.leaflet-popup-content p { - margin: 17px 0; - margin: 1.3em 0; - } -.leaflet-popup-tip-container { - width: 40px; - height: 20px; - position: absolute; - left: 50%; - margin-top: -1px; - margin-left: -20px; - overflow: hidden; - pointer-events: none; - } -.leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - pointer-events: auto; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - } -.leaflet-popup-content-wrapper, -.leaflet-popup-tip { - background: white; - color: #333; - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - border: none; - text-align: center; - width: 24px; - height: 24px; - font: 16px/24px Tahoma, Verdana, sans-serif; - color: #757575; - text-decoration: none; - background: transparent; - } -.leaflet-container a.leaflet-popup-close-button:hover, -.leaflet-container a.leaflet-popup-close-button:focus { - color: #585858; - } -.leaflet-popup-scrolled { - overflow: auto; - } - -.leaflet-oldie .leaflet-popup-content-wrapper { - -ms-zoom: 1; - } -.leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } - -.leaflet-oldie .leaflet-control-zoom, -.leaflet-oldie .leaflet-control-layers, -.leaflet-oldie .leaflet-popup-content-wrapper, -.leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } - - -/* div icon */ - -.leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } - - -/* Tooltip */ -/* Base styles for the element that has a tooltip */ -.leaflet-tooltip { - position: absolute; - padding: 6px; - background-color: #fff; - border: 1px solid #fff; - border-radius: 3px; - color: #222; - white-space: nowrap; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - pointer-events: none; - box-shadow: 0 1px 3px rgba(0,0,0,0.4); - } -.leaflet-tooltip.leaflet-interactive { - cursor: pointer; - pointer-events: auto; - } -.leaflet-tooltip-top:before, -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - position: absolute; - pointer-events: none; - border: 6px solid transparent; - background: transparent; - content: ""; - } - -/* Directions */ - -.leaflet-tooltip-bottom { - margin-top: 6px; -} -.leaflet-tooltip-top { - margin-top: -6px; -} -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-top:before { - left: 50%; - margin-left: -6px; - } -.leaflet-tooltip-top:before { - bottom: 0; - margin-bottom: -12px; - border-top-color: #fff; - } -.leaflet-tooltip-bottom:before { - top: 0; - margin-top: -12px; - margin-left: -6px; - border-bottom-color: #fff; - } -.leaflet-tooltip-left { - margin-left: -6px; -} -.leaflet-tooltip-right { - margin-left: 6px; -} -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - top: 50%; - margin-top: -6px; - } -.leaflet-tooltip-left:before { - right: 0; - margin-right: -12px; - border-left-color: #fff; - } -.leaflet-tooltip-right:before { - left: 0; - margin-left: -12px; - border-right-color: #fff; - } - -/* Printing */ - -@media print { - /* Prevent printers from removing background-images of controls. */ - .leaflet-control { - -webkit-print-color-adjust: exact; - print-color-adjust: exact; - } - } diff --git a/client/scripts/build-debug.bat b/client/scripts/build-debug.bat deleted file mode 100644 index 636c4acf..00000000 --- a/client/scripts/build-debug.bat +++ /dev/null @@ -1,4 +0,0 @@ -cd scripts -call copy.bat -cd .. -call browserify ./src/index.ts --debug -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] \ No newline at end of file diff --git a/client/scripts/build-release.bat b/client/scripts/build-release.bat deleted file mode 100644 index c71ab8d0..00000000 --- a/client/scripts/build-release.bat +++ /dev/null @@ -1,15 +0,0 @@ -cd scripts -call copy.bat -cd .. -call browserify ./src/index.ts -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] - -echo D|xcopy /Y /S /E .\bin ..\build\client\bin -echo D|xcopy /Y /S /E .\public ..\build\client\public -echo D|xcopy /Y /S /E .\routes ..\build\client\routes -echo D|xcopy /Y /S /E .\views ..\build\client\views - -echo F|xcopy /Y .\app.js ..\build\client\app.js -echo F|xcopy /Y .\client.js ..\build\client\client.js -echo F|xcopy /Y .\package.json ..\build\client\package.json - -echo F|xcopy /Y /I .\*.vbs ..\build\client \ No newline at end of file diff --git a/client/scripts/copy.bat b/client/scripts/copy.bat deleted file mode 100644 index e6568eaa..00000000 --- a/client/scripts/copy.bat +++ /dev/null @@ -1,6 +0,0 @@ -cd .. -echo F|xcopy /Y .\node_modules\leaflet\dist\leaflet.css .\public\stylesheets\leaflet\leaflet.css -echo F|xcopy /Y .\node_modules\leaflet-gesture-handling\dist\leaflet-gesture-handling.css .\public\stylesheets\leaflet\leaflet-gesture-handling.css -echo F|xcopy /Y .\node_modules\leaflet.nauticscale\dist\leaflet.nauticscale.js .\public\javascripts\leaflet.nauticscale.js -echo F|xcopy /Y .\node_modules\leaflet-path-drag\dist\L.Path.Drag.js .\public\javascripts\L.Path.Drag.js -cd scripts diff --git a/client/scripts/debug-nodcs.bat b/client/scripts/debug-nodcs.bat deleted file mode 100644 index 300fd4e7..00000000 --- a/client/scripts/debug-nodcs.bat +++ /dev/null @@ -1,10 +0,0 @@ -cd scripts -call ./copy.bat -cd .. - -REM create a "fake" dcs Saved Games folder -mkdir "%temp%\DCS Olympus\dcs" -echo F|xcopy /Y "..\olympus.json" "%temp%\DCS Olympus\dcs\Config\olympus.json" -echo D|xcopy /Y /S /E "..\databases" "%temp%\DCS Olympus\dcs\Mods\Services\Olympus\databases" - -concurrently --kill-others "node ./bin/demo --config \"%temp%\DCS Olympus\dcs\Config\olympus.json\"" "npm run watch" "nodemon --ignore ./public/databases/ ./bin/www -- --config \"%temp%\DCS Olympus\dcs\Config\olympus.json\"" \ No newline at end of file diff --git a/client/scripts/debug.bat b/client/scripts/debug.bat deleted file mode 100644 index 70a6dad9..00000000 --- a/client/scripts/debug.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off -cd scripts -call ./copy.bat -cd .. - -set /p "config=Enter DCS Saved Games folder location: " -concurrently --kill-others "npm run watch" "nodemon --ignore ./public/databases/ ./bin/www -- --config \"%config%\Config\Olympus.json\"" \ No newline at end of file diff --git a/client/scripts/watch.bat b/client/scripts/watch.bat deleted file mode 100644 index 5bc3948a..00000000 --- a/client/scripts/watch.bat +++ /dev/null @@ -1 +0,0 @@ -watchify ./src/index.ts --debug -o ./public/javascripts/bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] \ No newline at end of file diff --git a/client/src/schemas/schema.ts b/client/src/schemas/schema.ts deleted file mode 100644 index 5ad4c527..00000000 --- a/client/src/schemas/schema.ts +++ /dev/null @@ -1,82 +0,0 @@ -import Ajv from "ajv"; -import { AnySchemaObject } from "ajv/dist/core"; - - -// For future extension -abstract class JSONSchemaValidator { - - #ajv:Ajv; - #compiledValidator:any; - #schema!:AnySchemaObject; - - constructor( schema:AnySchemaObject ) { - this.#schema = schema; - - this.#ajv = new Ajv({ - "allErrors": true - }); - - this.#compiledValidator = this.getAjv().compile(this.getSchema()); - - } - - getAjv() { - return this.#ajv; - } - - getCompiledValidator() { - return this.#compiledValidator; - } - - getErrors() { - return this.getCompiledValidator().errors; - } - - getSchema() { - return this.#schema; - } - - validate(data:any) { - return (this.getCompiledValidator())(data); - } - -} - - -export class AirbasesJSONSchemaValidator extends JSONSchemaValidator { - - constructor() { - - const schema = require("../schemas/airbases.schema.json"); - - super( schema ); - - [ - require( "../../public/databases/airbases/caucasus.json" ), - require( "../../public/databases/airbases/falklands.json" ), - require( "../../public/databases/airbases/marianas.json" ), - require( "../../public/databases/airbases/nevada.json" ), - require( "../../public/databases/airbases/normandy.json" ), - require( "../../public/databases/airbases/persiangulf.json" ), - require( "../../public/databases/airbases/sinaimap.json" ), - require( "../../public/databases/airbases/syria.json" ), - require( "../../public/databases/airbases/thechannel.json" ) - ].forEach( data => { - const validate = this.getAjv().compile(this.getSchema()); - const valid = validate(data); - - if (!valid) console.error(validate.errors); - }); - } - -} - - -export class ImportFileJSONSchemaValidator extends JSONSchemaValidator { - - constructor() { - const schema = require("../schemas/importdata.schema.json"); - super( schema ); - } - -} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 05f1ae58..00000000 --- a/docker-compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3' - -services: - client: - build: client - ports: - - 3000:3000 - volumes: - - ./olympus.json:/usr/src/olympus.json diff --git a/frontend/check_setup.bat b/frontend/check_setup.bat new file mode 100644 index 00000000..f3f8e6f0 --- /dev/null +++ b/frontend/check_setup.bat @@ -0,0 +1,10 @@ +@echo off + +echo check_setup starting... +if exist "setup" ( + echo setup.bat has already been called, skipping... +) else ( + echo setup.bat has not been called yet, installing! + call .\setup.bat +) +echo check_setup completed! \ No newline at end of file diff --git a/frontend/server/.vscode/extensions.json b/frontend/server/.vscode/extensions.json new file mode 100644 index 00000000..0966999c --- /dev/null +++ b/frontend/server/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "rioj7.command-variable" + ] +} \ No newline at end of file diff --git a/frontend/server/.vscode/launch.json b/frontend/server/.vscode/launch.json new file mode 100644 index 00000000..7b401894 --- /dev/null +++ b/frontend/server/.vscode/launch.json @@ -0,0 +1,41 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Server (DCS)", + "skipFiles": [ + "/**" + ], + "args": ["--config", "${input:enterDir}/Config/olympus.json"], + "program": "./bin/www" + }, + { + "type": "node", + "request": "launch", + "name": "Launch Server (No DCS)", + "skipFiles": [ + "/**" + ], + "args": ["--config", "${input:enterDir}/Config/olympus.json"], + "program": "./bin/www", + "preLaunchTask": "demo-server" + } + ], + "inputs": [ + { + "id": "enterDir", + "type": "command", + "command": "extension.commandvariable.promptStringRemember", + "args": { + "key": "dir", + "description": "DCS Saved Games folder (leave default for mock dcs)", + "default": "../../mock-dcs" + } + } + ] +} \ No newline at end of file diff --git a/frontend/server/.vscode/tasks.json b/frontend/server/.vscode/tasks.json new file mode 100644 index 00000000..6b76fb4f --- /dev/null +++ b/frontend/server/.vscode/tasks.json @@ -0,0 +1,38 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "check-setup", + "type": "shell", + "command": "cd .. ; ./check_setup.bat", + "isBackground": false + }, + { + "label": "demo-server", + "type": "shell", + "command": "./scripts/demo-server.bat", + "args": ["${input:enterDir}/Config/olympus.json"], + "isBackground": true, + "dependsOn": ["check-setup"], + "problemMatcher":{ + "owner": "custom", + "base": "$tsc-watch", + "background": { + "activeOnStart": true, + "beginsPattern": "Please wait", + "endsPattern": "Waiting for connections..." + } + } + } + ], + "inputs": [ + { + "id": "enterDir", + "type": "command", + "command": "extension.commandvariable.remember", + "args": { "key": "dir" } + } + ] +} \ No newline at end of file diff --git a/client/app.js b/frontend/server/app.js similarity index 95% rename from client/app.js rename to frontend/server/app.js index f82384a9..7fbdf87a 100644 --- a/client/app.js +++ b/frontend/server/app.js @@ -33,7 +33,7 @@ module.exports = function (configLocation) { /* Define middleware */ app.use(logger('dev')); - app.use('/olympus', createProxyMiddleware({ target: `http://${config["server"]["address"]}:${config["server"]["port"]}`, changeOrigin: true })); + app.use('/olympus', createProxyMiddleware({ target: `http://${config["backend"]["address"]}:${config["backend"]["port"]}`, changeOrigin: true })); app.use(bodyParser.json({ limit: '50mb' })); app.use(bodyParser.urlencoded({ limit: '50mb', extended: true })); app.use(express.static(path.join(__dirname, 'public'))); diff --git a/client/bin/demo b/frontend/server/bin/demo similarity index 95% rename from client/bin/demo rename to frontend/server/bin/demo index ba3a07df..b9cc8d3e 100644 --- a/client/bin/demo +++ b/frontend/server/bin/demo @@ -36,11 +36,11 @@ var http = require('http'); */ var configPort = null; -if (config["server"] != undefined && config["server"]["port"] != undefined) { - configPort = config["server"]["port"]; +if (config["backend"] != undefined && config["backend"]["port"] != undefined) { + configPort = config["backend"]["port"]; } -var port = normalizePort(configPort || '3000'); +var port = normalizePort(configPort || '3001'); app.set('port', port); console.log("Express server listening on port: " + port) diff --git a/client/bin/www b/frontend/server/bin/www similarity index 97% rename from client/bin/www rename to frontend/server/bin/www index dc3cad2e..f5895c99 100644 --- a/client/bin/www +++ b/frontend/server/bin/www @@ -20,10 +20,10 @@ console.log("Please wait while DCS Olympus Server starts up..."); console.log(`Config location: ${args["config"]}`) /* Load the configuration file */ -var clientPort = 0; +var frontendPort = 0; if (fs.existsSync(args["config"])) { var json = JSON.parse(fs.readFileSync(args["config"], 'utf-8')); - clientPort = json["client"]["port"]; + frontendPort = json["frontend"]["port"]; } else { console.log("Failed to read config, aborting!"); return; @@ -35,7 +35,7 @@ var debug = require('debug')('client:server'); var http = require('http'); /* Normalize port */ -var port = normalizePort(clientPort); +var port = normalizePort(frontendPort); app.set('port', port); console.log("Express server listening on port: " + port) diff --git a/client/client.js b/frontend/server/client.js similarity index 91% rename from client/client.js rename to frontend/server/client.js index 45abe24e..fa944924 100644 --- a/client/client.js +++ b/frontend/server/client.js @@ -8,10 +8,10 @@ yargs.alias('c', 'config').describe('c', 'olympus.json config location').string( args = yargs.argv; console.log(`Config location: ${args["config"]}`) -var clientPort = 3000; +var frontendPort = 3000; if (fs.existsSync(args["config"])) { var json = JSON.parse(fs.readFileSync(args["config"], 'utf-8')); - clientPort = json["client"]["port"]; + frontendPort = json["frontend"]["port"]; } else { console.log("Failed to read config, trying default port"); } @@ -21,7 +21,7 @@ function createWindow() { icon: "./../img/olympus.ico" }) - win.loadURL(`http://localhost:${clientPort}`); + win.loadURL(`http://localhost:${frontendPort}`); win.setMenuBarVisibility(false); win.maximize(); } diff --git a/client/client.vbs b/frontend/server/client.vbs similarity index 100% rename from client/client.vbs rename to frontend/server/client.vbs diff --git a/client/demo.js b/frontend/server/demo.js similarity index 100% rename from client/demo.js rename to frontend/server/demo.js diff --git a/frontend/server/package.json b/frontend/server/package.json new file mode 100644 index 00000000..03a5346d --- /dev/null +++ b/frontend/server/package.json @@ -0,0 +1,31 @@ +{ + "name": "DCSOlympus Server", + "main": "client.js", + "version": "{{OLYMPUS_VERSION_NUMBER}}", + "scripts": { + "build-release": "call ./scripts/build-release.bat", + "server": "node ./bin/www", + "client": "electron ." + }, + "private": true, + "dependencies": { + "appjs": "^0.0.20", + "appjs-win32": "^0.0.19", + "body-parser": "^1.20.2", + "debug": "~2.6.9", + "ejs": "^3.1.8", + "electron": "^28.0.0", + "express": "^4.18.2", + "express-basic-auth": "^1.2.1", + "http-proxy-middleware": "^2.0.6", + "morgan": "~1.9.1", + "open": "^10.0.0", + "regedit": "^5.1.2", + "save": "^2.9.0", + "sha256": "^0.2.0", + "srtm-elevation": "^2.1.2", + "tcp-ping-port": "^1.0.1", + "uuid": "^9.0.1", + "yargs": "^17.7.2" + } +} \ No newline at end of file diff --git a/client/public/databases/airbases/caucasus.json b/frontend/server/public/databases/airbases/caucasus.json similarity index 100% rename from client/public/databases/airbases/caucasus.json rename to frontend/server/public/databases/airbases/caucasus.json diff --git a/client/public/databases/airbases/falklands.json b/frontend/server/public/databases/airbases/falklands.json similarity index 100% rename from client/public/databases/airbases/falklands.json rename to frontend/server/public/databases/airbases/falklands.json diff --git a/client/public/databases/airbases/marianas.json b/frontend/server/public/databases/airbases/marianas.json similarity index 100% rename from client/public/databases/airbases/marianas.json rename to frontend/server/public/databases/airbases/marianas.json diff --git a/client/public/databases/airbases/nevada.json b/frontend/server/public/databases/airbases/nevada.json similarity index 100% rename from client/public/databases/airbases/nevada.json rename to frontend/server/public/databases/airbases/nevada.json diff --git a/client/public/databases/airbases/normandy.json b/frontend/server/public/databases/airbases/normandy.json similarity index 100% rename from client/public/databases/airbases/normandy.json rename to frontend/server/public/databases/airbases/normandy.json diff --git a/client/public/databases/airbases/persiangulf.json b/frontend/server/public/databases/airbases/persiangulf.json similarity index 100% rename from client/public/databases/airbases/persiangulf.json rename to frontend/server/public/databases/airbases/persiangulf.json diff --git a/client/public/databases/airbases/sinaimap.json b/frontend/server/public/databases/airbases/sinaimap.json similarity index 100% rename from client/public/databases/airbases/sinaimap.json rename to frontend/server/public/databases/airbases/sinaimap.json diff --git a/client/public/databases/airbases/syria.json b/frontend/server/public/databases/airbases/syria.json similarity index 100% rename from client/public/databases/airbases/syria.json rename to frontend/server/public/databases/airbases/syria.json diff --git a/client/public/databases/airbases/thechannel.json b/frontend/server/public/databases/airbases/thechannel.json similarity index 100% rename from client/public/databases/airbases/thechannel.json rename to frontend/server/public/databases/airbases/thechannel.json diff --git a/client/public/images/countries/ac.svg b/frontend/server/public/images/countries/ac.svg similarity index 100% rename from client/public/images/countries/ac.svg rename to frontend/server/public/images/countries/ac.svg diff --git a/client/public/images/countries/ad.svg b/frontend/server/public/images/countries/ad.svg similarity index 100% rename from client/public/images/countries/ad.svg rename to frontend/server/public/images/countries/ad.svg diff --git a/client/public/images/countries/ae.svg b/frontend/server/public/images/countries/ae.svg similarity index 100% rename from client/public/images/countries/ae.svg rename to frontend/server/public/images/countries/ae.svg diff --git a/client/public/images/countries/af.svg b/frontend/server/public/images/countries/af.svg similarity index 100% rename from client/public/images/countries/af.svg rename to frontend/server/public/images/countries/af.svg diff --git a/client/public/images/countries/ag.svg b/frontend/server/public/images/countries/ag.svg similarity index 100% rename from client/public/images/countries/ag.svg rename to frontend/server/public/images/countries/ag.svg diff --git a/client/public/images/countries/ai.svg b/frontend/server/public/images/countries/ai.svg similarity index 100% rename from client/public/images/countries/ai.svg rename to frontend/server/public/images/countries/ai.svg diff --git a/client/public/images/countries/al.svg b/frontend/server/public/images/countries/al.svg similarity index 100% rename from client/public/images/countries/al.svg rename to frontend/server/public/images/countries/al.svg diff --git a/client/public/images/countries/am.svg b/frontend/server/public/images/countries/am.svg similarity index 100% rename from client/public/images/countries/am.svg rename to frontend/server/public/images/countries/am.svg diff --git a/client/public/images/countries/ao.svg b/frontend/server/public/images/countries/ao.svg similarity index 100% rename from client/public/images/countries/ao.svg rename to frontend/server/public/images/countries/ao.svg diff --git a/client/public/images/countries/aq.svg b/frontend/server/public/images/countries/aq.svg similarity index 100% rename from client/public/images/countries/aq.svg rename to frontend/server/public/images/countries/aq.svg diff --git a/client/public/images/countries/ar.svg b/frontend/server/public/images/countries/ar.svg similarity index 100% rename from client/public/images/countries/ar.svg rename to frontend/server/public/images/countries/ar.svg diff --git a/client/public/images/countries/arab.svg b/frontend/server/public/images/countries/arab.svg similarity index 100% rename from client/public/images/countries/arab.svg rename to frontend/server/public/images/countries/arab.svg diff --git a/client/public/images/countries/as.svg b/frontend/server/public/images/countries/as.svg similarity index 100% rename from client/public/images/countries/as.svg rename to frontend/server/public/images/countries/as.svg diff --git a/client/public/images/countries/at.svg b/frontend/server/public/images/countries/at.svg similarity index 100% rename from client/public/images/countries/at.svg rename to frontend/server/public/images/countries/at.svg diff --git a/client/public/images/countries/au.svg b/frontend/server/public/images/countries/au.svg similarity index 100% rename from client/public/images/countries/au.svg rename to frontend/server/public/images/countries/au.svg diff --git a/client/public/images/countries/aw.svg b/frontend/server/public/images/countries/aw.svg similarity index 100% rename from client/public/images/countries/aw.svg rename to frontend/server/public/images/countries/aw.svg diff --git a/client/public/images/countries/ax.svg b/frontend/server/public/images/countries/ax.svg similarity index 100% rename from client/public/images/countries/ax.svg rename to frontend/server/public/images/countries/ax.svg diff --git a/client/public/images/countries/az.svg b/frontend/server/public/images/countries/az.svg similarity index 100% rename from client/public/images/countries/az.svg rename to frontend/server/public/images/countries/az.svg diff --git a/client/public/images/countries/ba.svg b/frontend/server/public/images/countries/ba.svg similarity index 100% rename from client/public/images/countries/ba.svg rename to frontend/server/public/images/countries/ba.svg diff --git a/client/public/images/countries/bb.svg b/frontend/server/public/images/countries/bb.svg similarity index 100% rename from client/public/images/countries/bb.svg rename to frontend/server/public/images/countries/bb.svg diff --git a/client/public/images/countries/bd.svg b/frontend/server/public/images/countries/bd.svg similarity index 100% rename from client/public/images/countries/bd.svg rename to frontend/server/public/images/countries/bd.svg diff --git a/client/public/images/countries/be.svg b/frontend/server/public/images/countries/be.svg similarity index 100% rename from client/public/images/countries/be.svg rename to frontend/server/public/images/countries/be.svg diff --git a/client/public/images/countries/bf.svg b/frontend/server/public/images/countries/bf.svg similarity index 100% rename from client/public/images/countries/bf.svg rename to frontend/server/public/images/countries/bf.svg diff --git a/client/public/images/countries/bg.svg b/frontend/server/public/images/countries/bg.svg similarity index 100% rename from client/public/images/countries/bg.svg rename to frontend/server/public/images/countries/bg.svg diff --git a/client/public/images/countries/bh.svg b/frontend/server/public/images/countries/bh.svg similarity index 100% rename from client/public/images/countries/bh.svg rename to frontend/server/public/images/countries/bh.svg diff --git a/client/public/images/countries/bi.svg b/frontend/server/public/images/countries/bi.svg similarity index 100% rename from client/public/images/countries/bi.svg rename to frontend/server/public/images/countries/bi.svg diff --git a/client/public/images/countries/bj.svg b/frontend/server/public/images/countries/bj.svg similarity index 100% rename from client/public/images/countries/bj.svg rename to frontend/server/public/images/countries/bj.svg diff --git a/client/public/images/countries/bl.svg b/frontend/server/public/images/countries/bl.svg similarity index 100% rename from client/public/images/countries/bl.svg rename to frontend/server/public/images/countries/bl.svg diff --git a/client/public/images/countries/blue.svg b/frontend/server/public/images/countries/blue.svg similarity index 100% rename from client/public/images/countries/blue.svg rename to frontend/server/public/images/countries/blue.svg diff --git a/client/public/images/countries/bm.svg b/frontend/server/public/images/countries/bm.svg similarity index 100% rename from client/public/images/countries/bm.svg rename to frontend/server/public/images/countries/bm.svg diff --git a/client/public/images/countries/bn.svg b/frontend/server/public/images/countries/bn.svg similarity index 100% rename from client/public/images/countries/bn.svg rename to frontend/server/public/images/countries/bn.svg diff --git a/client/public/images/countries/bo.svg b/frontend/server/public/images/countries/bo.svg similarity index 100% rename from client/public/images/countries/bo.svg rename to frontend/server/public/images/countries/bo.svg diff --git a/client/public/images/countries/bq.svg b/frontend/server/public/images/countries/bq.svg similarity index 100% rename from client/public/images/countries/bq.svg rename to frontend/server/public/images/countries/bq.svg diff --git a/client/public/images/countries/br.svg b/frontend/server/public/images/countries/br.svg similarity index 100% rename from client/public/images/countries/br.svg rename to frontend/server/public/images/countries/br.svg diff --git a/client/public/images/countries/bs.svg b/frontend/server/public/images/countries/bs.svg similarity index 100% rename from client/public/images/countries/bs.svg rename to frontend/server/public/images/countries/bs.svg diff --git a/client/public/images/countries/bt.svg b/frontend/server/public/images/countries/bt.svg similarity index 100% rename from client/public/images/countries/bt.svg rename to frontend/server/public/images/countries/bt.svg diff --git a/client/public/images/countries/bv.svg b/frontend/server/public/images/countries/bv.svg similarity index 100% rename from client/public/images/countries/bv.svg rename to frontend/server/public/images/countries/bv.svg diff --git a/client/public/images/countries/bw.svg b/frontend/server/public/images/countries/bw.svg similarity index 100% rename from client/public/images/countries/bw.svg rename to frontend/server/public/images/countries/bw.svg diff --git a/client/public/images/countries/by.svg b/frontend/server/public/images/countries/by.svg similarity index 100% rename from client/public/images/countries/by.svg rename to frontend/server/public/images/countries/by.svg diff --git a/client/public/images/countries/bz.svg b/frontend/server/public/images/countries/bz.svg similarity index 100% rename from client/public/images/countries/bz.svg rename to frontend/server/public/images/countries/bz.svg diff --git a/client/public/images/countries/ca.svg b/frontend/server/public/images/countries/ca.svg similarity index 100% rename from client/public/images/countries/ca.svg rename to frontend/server/public/images/countries/ca.svg diff --git a/client/public/images/countries/cc.svg b/frontend/server/public/images/countries/cc.svg similarity index 100% rename from client/public/images/countries/cc.svg rename to frontend/server/public/images/countries/cc.svg diff --git a/client/public/images/countries/cd.svg b/frontend/server/public/images/countries/cd.svg similarity index 100% rename from client/public/images/countries/cd.svg rename to frontend/server/public/images/countries/cd.svg diff --git a/client/public/images/countries/cefta.svg b/frontend/server/public/images/countries/cefta.svg similarity index 100% rename from client/public/images/countries/cefta.svg rename to frontend/server/public/images/countries/cefta.svg diff --git a/client/public/images/countries/cf.svg b/frontend/server/public/images/countries/cf.svg similarity index 100% rename from client/public/images/countries/cf.svg rename to frontend/server/public/images/countries/cf.svg diff --git a/client/public/images/countries/cg.svg b/frontend/server/public/images/countries/cg.svg similarity index 100% rename from client/public/images/countries/cg.svg rename to frontend/server/public/images/countries/cg.svg diff --git a/client/public/images/countries/ch.svg b/frontend/server/public/images/countries/ch.svg similarity index 100% rename from client/public/images/countries/ch.svg rename to frontend/server/public/images/countries/ch.svg diff --git a/client/public/images/countries/ci.svg b/frontend/server/public/images/countries/ci.svg similarity index 100% rename from client/public/images/countries/ci.svg rename to frontend/server/public/images/countries/ci.svg diff --git a/client/public/images/countries/ck.svg b/frontend/server/public/images/countries/ck.svg similarity index 100% rename from client/public/images/countries/ck.svg rename to frontend/server/public/images/countries/ck.svg diff --git a/client/public/images/countries/cl.svg b/frontend/server/public/images/countries/cl.svg similarity index 100% rename from client/public/images/countries/cl.svg rename to frontend/server/public/images/countries/cl.svg diff --git a/client/public/images/countries/cm.svg b/frontend/server/public/images/countries/cm.svg similarity index 100% rename from client/public/images/countries/cm.svg rename to frontend/server/public/images/countries/cm.svg diff --git a/client/public/images/countries/cn.svg b/frontend/server/public/images/countries/cn.svg similarity index 100% rename from client/public/images/countries/cn.svg rename to frontend/server/public/images/countries/cn.svg diff --git a/client/public/images/countries/co.svg b/frontend/server/public/images/countries/co.svg similarity index 100% rename from client/public/images/countries/co.svg rename to frontend/server/public/images/countries/co.svg diff --git a/client/public/images/countries/codes.json b/frontend/server/public/images/countries/codes.json similarity index 100% rename from client/public/images/countries/codes.json rename to frontend/server/public/images/countries/codes.json diff --git a/client/public/images/countries/cp.svg b/frontend/server/public/images/countries/cp.svg similarity index 100% rename from client/public/images/countries/cp.svg rename to frontend/server/public/images/countries/cp.svg diff --git a/client/public/images/countries/cr.svg b/frontend/server/public/images/countries/cr.svg similarity index 100% rename from client/public/images/countries/cr.svg rename to frontend/server/public/images/countries/cr.svg diff --git a/client/public/images/countries/cu.svg b/frontend/server/public/images/countries/cu.svg similarity index 100% rename from client/public/images/countries/cu.svg rename to frontend/server/public/images/countries/cu.svg diff --git a/client/public/images/countries/cv.svg b/frontend/server/public/images/countries/cv.svg similarity index 100% rename from client/public/images/countries/cv.svg rename to frontend/server/public/images/countries/cv.svg diff --git a/client/public/images/countries/cw.svg b/frontend/server/public/images/countries/cw.svg similarity index 100% rename from client/public/images/countries/cw.svg rename to frontend/server/public/images/countries/cw.svg diff --git a/client/public/images/countries/cx.svg b/frontend/server/public/images/countries/cx.svg similarity index 100% rename from client/public/images/countries/cx.svg rename to frontend/server/public/images/countries/cx.svg diff --git a/client/public/images/countries/cy.svg b/frontend/server/public/images/countries/cy.svg similarity index 100% rename from client/public/images/countries/cy.svg rename to frontend/server/public/images/countries/cy.svg diff --git a/client/public/images/countries/cz.svg b/frontend/server/public/images/countries/cz.svg similarity index 100% rename from client/public/images/countries/cz.svg rename to frontend/server/public/images/countries/cz.svg diff --git a/client/public/images/countries/de.svg b/frontend/server/public/images/countries/de.svg similarity index 100% rename from client/public/images/countries/de.svg rename to frontend/server/public/images/countries/de.svg diff --git a/client/public/images/countries/dg.svg b/frontend/server/public/images/countries/dg.svg similarity index 100% rename from client/public/images/countries/dg.svg rename to frontend/server/public/images/countries/dg.svg diff --git a/client/public/images/countries/dj.svg b/frontend/server/public/images/countries/dj.svg similarity index 100% rename from client/public/images/countries/dj.svg rename to frontend/server/public/images/countries/dj.svg diff --git a/client/public/images/countries/dk.svg b/frontend/server/public/images/countries/dk.svg similarity index 100% rename from client/public/images/countries/dk.svg rename to frontend/server/public/images/countries/dk.svg diff --git a/client/public/images/countries/dm.svg b/frontend/server/public/images/countries/dm.svg similarity index 100% rename from client/public/images/countries/dm.svg rename to frontend/server/public/images/countries/dm.svg diff --git a/client/public/images/countries/do.svg b/frontend/server/public/images/countries/do.svg similarity index 100% rename from client/public/images/countries/do.svg rename to frontend/server/public/images/countries/do.svg diff --git a/client/public/images/countries/dz.svg b/frontend/server/public/images/countries/dz.svg similarity index 100% rename from client/public/images/countries/dz.svg rename to frontend/server/public/images/countries/dz.svg diff --git a/client/public/images/countries/eac.svg b/frontend/server/public/images/countries/eac.svg similarity index 100% rename from client/public/images/countries/eac.svg rename to frontend/server/public/images/countries/eac.svg diff --git a/client/public/images/countries/ec.svg b/frontend/server/public/images/countries/ec.svg similarity index 100% rename from client/public/images/countries/ec.svg rename to frontend/server/public/images/countries/ec.svg diff --git a/client/public/images/countries/ee.svg b/frontend/server/public/images/countries/ee.svg similarity index 100% rename from client/public/images/countries/ee.svg rename to frontend/server/public/images/countries/ee.svg diff --git a/client/public/images/countries/eg.svg b/frontend/server/public/images/countries/eg.svg similarity index 100% rename from client/public/images/countries/eg.svg rename to frontend/server/public/images/countries/eg.svg diff --git a/client/public/images/countries/eh.svg b/frontend/server/public/images/countries/eh.svg similarity index 100% rename from client/public/images/countries/eh.svg rename to frontend/server/public/images/countries/eh.svg diff --git a/client/public/images/countries/er.svg b/frontend/server/public/images/countries/er.svg similarity index 100% rename from client/public/images/countries/er.svg rename to frontend/server/public/images/countries/er.svg diff --git a/client/public/images/countries/es-ct.svg b/frontend/server/public/images/countries/es-ct.svg similarity index 100% rename from client/public/images/countries/es-ct.svg rename to frontend/server/public/images/countries/es-ct.svg diff --git a/client/public/images/countries/es-ga.svg b/frontend/server/public/images/countries/es-ga.svg similarity index 100% rename from client/public/images/countries/es-ga.svg rename to frontend/server/public/images/countries/es-ga.svg diff --git a/client/public/images/countries/es-pv.svg b/frontend/server/public/images/countries/es-pv.svg similarity index 100% rename from client/public/images/countries/es-pv.svg rename to frontend/server/public/images/countries/es-pv.svg diff --git a/client/public/images/countries/es.svg b/frontend/server/public/images/countries/es.svg similarity index 100% rename from client/public/images/countries/es.svg rename to frontend/server/public/images/countries/es.svg diff --git a/client/public/images/countries/et.svg b/frontend/server/public/images/countries/et.svg similarity index 100% rename from client/public/images/countries/et.svg rename to frontend/server/public/images/countries/et.svg diff --git a/client/public/images/countries/eu.svg b/frontend/server/public/images/countries/eu.svg similarity index 100% rename from client/public/images/countries/eu.svg rename to frontend/server/public/images/countries/eu.svg diff --git a/client/public/images/countries/fi.svg b/frontend/server/public/images/countries/fi.svg similarity index 100% rename from client/public/images/countries/fi.svg rename to frontend/server/public/images/countries/fi.svg diff --git a/client/public/images/countries/fj.svg b/frontend/server/public/images/countries/fj.svg similarity index 100% rename from client/public/images/countries/fj.svg rename to frontend/server/public/images/countries/fj.svg diff --git a/client/public/images/countries/fk.svg b/frontend/server/public/images/countries/fk.svg similarity index 100% rename from client/public/images/countries/fk.svg rename to frontend/server/public/images/countries/fk.svg diff --git a/client/public/images/countries/fm.svg b/frontend/server/public/images/countries/fm.svg similarity index 100% rename from client/public/images/countries/fm.svg rename to frontend/server/public/images/countries/fm.svg diff --git a/client/public/images/countries/fo.svg b/frontend/server/public/images/countries/fo.svg similarity index 100% rename from client/public/images/countries/fo.svg rename to frontend/server/public/images/countries/fo.svg diff --git a/client/public/images/countries/fr.svg b/frontend/server/public/images/countries/fr.svg similarity index 100% rename from client/public/images/countries/fr.svg rename to frontend/server/public/images/countries/fr.svg diff --git a/client/public/images/countries/ga.svg b/frontend/server/public/images/countries/ga.svg similarity index 100% rename from client/public/images/countries/ga.svg rename to frontend/server/public/images/countries/ga.svg diff --git a/client/public/images/countries/gb-eng.svg b/frontend/server/public/images/countries/gb-eng.svg similarity index 100% rename from client/public/images/countries/gb-eng.svg rename to frontend/server/public/images/countries/gb-eng.svg diff --git a/client/public/images/countries/gb-nir.svg b/frontend/server/public/images/countries/gb-nir.svg similarity index 100% rename from client/public/images/countries/gb-nir.svg rename to frontend/server/public/images/countries/gb-nir.svg diff --git a/client/public/images/countries/gb-sct.svg b/frontend/server/public/images/countries/gb-sct.svg similarity index 100% rename from client/public/images/countries/gb-sct.svg rename to frontend/server/public/images/countries/gb-sct.svg diff --git a/client/public/images/countries/gb-wls.svg b/frontend/server/public/images/countries/gb-wls.svg similarity index 100% rename from client/public/images/countries/gb-wls.svg rename to frontend/server/public/images/countries/gb-wls.svg diff --git a/client/public/images/countries/gb.svg b/frontend/server/public/images/countries/gb.svg similarity index 100% rename from client/public/images/countries/gb.svg rename to frontend/server/public/images/countries/gb.svg diff --git a/client/public/images/countries/gd.svg b/frontend/server/public/images/countries/gd.svg similarity index 100% rename from client/public/images/countries/gd.svg rename to frontend/server/public/images/countries/gd.svg diff --git a/client/public/images/countries/ge.svg b/frontend/server/public/images/countries/ge.svg similarity index 100% rename from client/public/images/countries/ge.svg rename to frontend/server/public/images/countries/ge.svg diff --git a/client/public/images/countries/gf.svg b/frontend/server/public/images/countries/gf.svg similarity index 100% rename from client/public/images/countries/gf.svg rename to frontend/server/public/images/countries/gf.svg diff --git a/client/public/images/countries/gg.svg b/frontend/server/public/images/countries/gg.svg similarity index 100% rename from client/public/images/countries/gg.svg rename to frontend/server/public/images/countries/gg.svg diff --git a/client/public/images/countries/gh.svg b/frontend/server/public/images/countries/gh.svg similarity index 100% rename from client/public/images/countries/gh.svg rename to frontend/server/public/images/countries/gh.svg diff --git a/client/public/images/countries/gi.svg b/frontend/server/public/images/countries/gi.svg similarity index 100% rename from client/public/images/countries/gi.svg rename to frontend/server/public/images/countries/gi.svg diff --git a/client/public/images/countries/gl.svg b/frontend/server/public/images/countries/gl.svg similarity index 100% rename from client/public/images/countries/gl.svg rename to frontend/server/public/images/countries/gl.svg diff --git a/client/public/images/countries/gm.svg b/frontend/server/public/images/countries/gm.svg similarity index 100% rename from client/public/images/countries/gm.svg rename to frontend/server/public/images/countries/gm.svg diff --git a/client/public/images/countries/gn.svg b/frontend/server/public/images/countries/gn.svg similarity index 100% rename from client/public/images/countries/gn.svg rename to frontend/server/public/images/countries/gn.svg diff --git a/client/public/images/countries/gp.svg b/frontend/server/public/images/countries/gp.svg similarity index 100% rename from client/public/images/countries/gp.svg rename to frontend/server/public/images/countries/gp.svg diff --git a/client/public/images/countries/gq.svg b/frontend/server/public/images/countries/gq.svg similarity index 100% rename from client/public/images/countries/gq.svg rename to frontend/server/public/images/countries/gq.svg diff --git a/client/public/images/countries/gr.svg b/frontend/server/public/images/countries/gr.svg similarity index 100% rename from client/public/images/countries/gr.svg rename to frontend/server/public/images/countries/gr.svg diff --git a/client/public/images/countries/gs.svg b/frontend/server/public/images/countries/gs.svg similarity index 100% rename from client/public/images/countries/gs.svg rename to frontend/server/public/images/countries/gs.svg diff --git a/client/public/images/countries/gt.svg b/frontend/server/public/images/countries/gt.svg similarity index 100% rename from client/public/images/countries/gt.svg rename to frontend/server/public/images/countries/gt.svg diff --git a/client/public/images/countries/gu.svg b/frontend/server/public/images/countries/gu.svg similarity index 100% rename from client/public/images/countries/gu.svg rename to frontend/server/public/images/countries/gu.svg diff --git a/client/public/images/countries/gw.svg b/frontend/server/public/images/countries/gw.svg similarity index 100% rename from client/public/images/countries/gw.svg rename to frontend/server/public/images/countries/gw.svg diff --git a/client/public/images/countries/gy.svg b/frontend/server/public/images/countries/gy.svg similarity index 100% rename from client/public/images/countries/gy.svg rename to frontend/server/public/images/countries/gy.svg diff --git a/client/public/images/countries/hk.svg b/frontend/server/public/images/countries/hk.svg similarity index 100% rename from client/public/images/countries/hk.svg rename to frontend/server/public/images/countries/hk.svg diff --git a/client/public/images/countries/hm.svg b/frontend/server/public/images/countries/hm.svg similarity index 100% rename from client/public/images/countries/hm.svg rename to frontend/server/public/images/countries/hm.svg diff --git a/client/public/images/countries/hn.svg b/frontend/server/public/images/countries/hn.svg similarity index 100% rename from client/public/images/countries/hn.svg rename to frontend/server/public/images/countries/hn.svg diff --git a/client/public/images/countries/hr.svg b/frontend/server/public/images/countries/hr.svg similarity index 100% rename from client/public/images/countries/hr.svg rename to frontend/server/public/images/countries/hr.svg diff --git a/client/public/images/countries/ht.svg b/frontend/server/public/images/countries/ht.svg similarity index 100% rename from client/public/images/countries/ht.svg rename to frontend/server/public/images/countries/ht.svg diff --git a/client/public/images/countries/hu.svg b/frontend/server/public/images/countries/hu.svg similarity index 100% rename from client/public/images/countries/hu.svg rename to frontend/server/public/images/countries/hu.svg diff --git a/client/public/images/countries/ic.svg b/frontend/server/public/images/countries/ic.svg similarity index 100% rename from client/public/images/countries/ic.svg rename to frontend/server/public/images/countries/ic.svg diff --git a/client/public/images/countries/id.svg b/frontend/server/public/images/countries/id.svg similarity index 100% rename from client/public/images/countries/id.svg rename to frontend/server/public/images/countries/id.svg diff --git a/client/public/images/countries/ie.svg b/frontend/server/public/images/countries/ie.svg similarity index 100% rename from client/public/images/countries/ie.svg rename to frontend/server/public/images/countries/ie.svg diff --git a/client/public/images/countries/il.svg b/frontend/server/public/images/countries/il.svg similarity index 100% rename from client/public/images/countries/il.svg rename to frontend/server/public/images/countries/il.svg diff --git a/client/public/images/countries/im.svg b/frontend/server/public/images/countries/im.svg similarity index 100% rename from client/public/images/countries/im.svg rename to frontend/server/public/images/countries/im.svg diff --git a/client/public/images/countries/in.svg b/frontend/server/public/images/countries/in.svg similarity index 100% rename from client/public/images/countries/in.svg rename to frontend/server/public/images/countries/in.svg diff --git a/client/public/images/countries/io.svg b/frontend/server/public/images/countries/io.svg similarity index 100% rename from client/public/images/countries/io.svg rename to frontend/server/public/images/countries/io.svg diff --git a/client/public/images/countries/iq.svg b/frontend/server/public/images/countries/iq.svg similarity index 100% rename from client/public/images/countries/iq.svg rename to frontend/server/public/images/countries/iq.svg diff --git a/client/public/images/countries/ir.svg b/frontend/server/public/images/countries/ir.svg similarity index 100% rename from client/public/images/countries/ir.svg rename to frontend/server/public/images/countries/ir.svg diff --git a/client/public/images/countries/is.svg b/frontend/server/public/images/countries/is.svg similarity index 100% rename from client/public/images/countries/is.svg rename to frontend/server/public/images/countries/is.svg diff --git a/client/public/images/countries/it.svg b/frontend/server/public/images/countries/it.svg similarity index 100% rename from client/public/images/countries/it.svg rename to frontend/server/public/images/countries/it.svg diff --git a/client/public/images/countries/je.svg b/frontend/server/public/images/countries/je.svg similarity index 100% rename from client/public/images/countries/je.svg rename to frontend/server/public/images/countries/je.svg diff --git a/client/public/images/countries/jm.svg b/frontend/server/public/images/countries/jm.svg similarity index 100% rename from client/public/images/countries/jm.svg rename to frontend/server/public/images/countries/jm.svg diff --git a/client/public/images/countries/jo.svg b/frontend/server/public/images/countries/jo.svg similarity index 100% rename from client/public/images/countries/jo.svg rename to frontend/server/public/images/countries/jo.svg diff --git a/client/public/images/countries/jp.svg b/frontend/server/public/images/countries/jp.svg similarity index 100% rename from client/public/images/countries/jp.svg rename to frontend/server/public/images/countries/jp.svg diff --git a/client/public/images/countries/ke.svg b/frontend/server/public/images/countries/ke.svg similarity index 100% rename from client/public/images/countries/ke.svg rename to frontend/server/public/images/countries/ke.svg diff --git a/client/public/images/countries/kg.svg b/frontend/server/public/images/countries/kg.svg similarity index 100% rename from client/public/images/countries/kg.svg rename to frontend/server/public/images/countries/kg.svg diff --git a/client/public/images/countries/kh.svg b/frontend/server/public/images/countries/kh.svg similarity index 100% rename from client/public/images/countries/kh.svg rename to frontend/server/public/images/countries/kh.svg diff --git a/client/public/images/countries/ki.svg b/frontend/server/public/images/countries/ki.svg similarity index 100% rename from client/public/images/countries/ki.svg rename to frontend/server/public/images/countries/ki.svg diff --git a/client/public/images/countries/km.svg b/frontend/server/public/images/countries/km.svg similarity index 100% rename from client/public/images/countries/km.svg rename to frontend/server/public/images/countries/km.svg diff --git a/client/public/images/countries/kn.svg b/frontend/server/public/images/countries/kn.svg similarity index 100% rename from client/public/images/countries/kn.svg rename to frontend/server/public/images/countries/kn.svg diff --git a/client/public/images/countries/kp.svg b/frontend/server/public/images/countries/kp.svg similarity index 100% rename from client/public/images/countries/kp.svg rename to frontend/server/public/images/countries/kp.svg diff --git a/client/public/images/countries/kr.svg b/frontend/server/public/images/countries/kr.svg similarity index 100% rename from client/public/images/countries/kr.svg rename to frontend/server/public/images/countries/kr.svg diff --git a/client/public/images/countries/kw.svg b/frontend/server/public/images/countries/kw.svg similarity index 100% rename from client/public/images/countries/kw.svg rename to frontend/server/public/images/countries/kw.svg diff --git a/client/public/images/countries/ky.svg b/frontend/server/public/images/countries/ky.svg similarity index 100% rename from client/public/images/countries/ky.svg rename to frontend/server/public/images/countries/ky.svg diff --git a/client/public/images/countries/kz.svg b/frontend/server/public/images/countries/kz.svg similarity index 100% rename from client/public/images/countries/kz.svg rename to frontend/server/public/images/countries/kz.svg diff --git a/client/public/images/countries/la.svg b/frontend/server/public/images/countries/la.svg similarity index 100% rename from client/public/images/countries/la.svg rename to frontend/server/public/images/countries/la.svg diff --git a/client/public/images/countries/lb.svg b/frontend/server/public/images/countries/lb.svg similarity index 100% rename from client/public/images/countries/lb.svg rename to frontend/server/public/images/countries/lb.svg diff --git a/client/public/images/countries/lc.svg b/frontend/server/public/images/countries/lc.svg similarity index 100% rename from client/public/images/countries/lc.svg rename to frontend/server/public/images/countries/lc.svg diff --git a/client/public/images/countries/li.svg b/frontend/server/public/images/countries/li.svg similarity index 100% rename from client/public/images/countries/li.svg rename to frontend/server/public/images/countries/li.svg diff --git a/client/public/images/countries/lk.svg b/frontend/server/public/images/countries/lk.svg similarity index 100% rename from client/public/images/countries/lk.svg rename to frontend/server/public/images/countries/lk.svg diff --git a/client/public/images/countries/lr.svg b/frontend/server/public/images/countries/lr.svg similarity index 100% rename from client/public/images/countries/lr.svg rename to frontend/server/public/images/countries/lr.svg diff --git a/client/public/images/countries/ls.svg b/frontend/server/public/images/countries/ls.svg similarity index 100% rename from client/public/images/countries/ls.svg rename to frontend/server/public/images/countries/ls.svg diff --git a/client/public/images/countries/lt.svg b/frontend/server/public/images/countries/lt.svg similarity index 100% rename from client/public/images/countries/lt.svg rename to frontend/server/public/images/countries/lt.svg diff --git a/client/public/images/countries/lu.svg b/frontend/server/public/images/countries/lu.svg similarity index 100% rename from client/public/images/countries/lu.svg rename to frontend/server/public/images/countries/lu.svg diff --git a/client/public/images/countries/lv.svg b/frontend/server/public/images/countries/lv.svg similarity index 100% rename from client/public/images/countries/lv.svg rename to frontend/server/public/images/countries/lv.svg diff --git a/client/public/images/countries/ly.svg b/frontend/server/public/images/countries/ly.svg similarity index 100% rename from client/public/images/countries/ly.svg rename to frontend/server/public/images/countries/ly.svg diff --git a/client/public/images/countries/ma.svg b/frontend/server/public/images/countries/ma.svg similarity index 100% rename from client/public/images/countries/ma.svg rename to frontend/server/public/images/countries/ma.svg diff --git a/client/public/images/countries/mc.svg b/frontend/server/public/images/countries/mc.svg similarity index 100% rename from client/public/images/countries/mc.svg rename to frontend/server/public/images/countries/mc.svg diff --git a/client/public/images/countries/md.svg b/frontend/server/public/images/countries/md.svg similarity index 100% rename from client/public/images/countries/md.svg rename to frontend/server/public/images/countries/md.svg diff --git a/client/public/images/countries/me.svg b/frontend/server/public/images/countries/me.svg similarity index 100% rename from client/public/images/countries/me.svg rename to frontend/server/public/images/countries/me.svg diff --git a/client/public/images/countries/mf.svg b/frontend/server/public/images/countries/mf.svg similarity index 100% rename from client/public/images/countries/mf.svg rename to frontend/server/public/images/countries/mf.svg diff --git a/client/public/images/countries/mg.svg b/frontend/server/public/images/countries/mg.svg similarity index 100% rename from client/public/images/countries/mg.svg rename to frontend/server/public/images/countries/mg.svg diff --git a/client/public/images/countries/mh.svg b/frontend/server/public/images/countries/mh.svg similarity index 100% rename from client/public/images/countries/mh.svg rename to frontend/server/public/images/countries/mh.svg diff --git a/client/public/images/countries/mk.svg b/frontend/server/public/images/countries/mk.svg similarity index 100% rename from client/public/images/countries/mk.svg rename to frontend/server/public/images/countries/mk.svg diff --git a/client/public/images/countries/ml.svg b/frontend/server/public/images/countries/ml.svg similarity index 100% rename from client/public/images/countries/ml.svg rename to frontend/server/public/images/countries/ml.svg diff --git a/client/public/images/countries/mm.svg b/frontend/server/public/images/countries/mm.svg similarity index 100% rename from client/public/images/countries/mm.svg rename to frontend/server/public/images/countries/mm.svg diff --git a/client/public/images/countries/mn.svg b/frontend/server/public/images/countries/mn.svg similarity index 100% rename from client/public/images/countries/mn.svg rename to frontend/server/public/images/countries/mn.svg diff --git a/client/public/images/countries/mo.svg b/frontend/server/public/images/countries/mo.svg similarity index 100% rename from client/public/images/countries/mo.svg rename to frontend/server/public/images/countries/mo.svg diff --git a/client/public/images/countries/mp.svg b/frontend/server/public/images/countries/mp.svg similarity index 100% rename from client/public/images/countries/mp.svg rename to frontend/server/public/images/countries/mp.svg diff --git a/client/public/images/countries/mq.svg b/frontend/server/public/images/countries/mq.svg similarity index 100% rename from client/public/images/countries/mq.svg rename to frontend/server/public/images/countries/mq.svg diff --git a/client/public/images/countries/mr.svg b/frontend/server/public/images/countries/mr.svg similarity index 100% rename from client/public/images/countries/mr.svg rename to frontend/server/public/images/countries/mr.svg diff --git a/client/public/images/countries/ms.svg b/frontend/server/public/images/countries/ms.svg similarity index 100% rename from client/public/images/countries/ms.svg rename to frontend/server/public/images/countries/ms.svg diff --git a/client/public/images/countries/mt.svg b/frontend/server/public/images/countries/mt.svg similarity index 100% rename from client/public/images/countries/mt.svg rename to frontend/server/public/images/countries/mt.svg diff --git a/client/public/images/countries/mu.svg b/frontend/server/public/images/countries/mu.svg similarity index 100% rename from client/public/images/countries/mu.svg rename to frontend/server/public/images/countries/mu.svg diff --git a/client/public/images/countries/mv.svg b/frontend/server/public/images/countries/mv.svg similarity index 100% rename from client/public/images/countries/mv.svg rename to frontend/server/public/images/countries/mv.svg diff --git a/client/public/images/countries/mw.svg b/frontend/server/public/images/countries/mw.svg similarity index 100% rename from client/public/images/countries/mw.svg rename to frontend/server/public/images/countries/mw.svg diff --git a/client/public/images/countries/mx.svg b/frontend/server/public/images/countries/mx.svg similarity index 100% rename from client/public/images/countries/mx.svg rename to frontend/server/public/images/countries/mx.svg diff --git a/client/public/images/countries/my.svg b/frontend/server/public/images/countries/my.svg similarity index 100% rename from client/public/images/countries/my.svg rename to frontend/server/public/images/countries/my.svg diff --git a/client/public/images/countries/mz.svg b/frontend/server/public/images/countries/mz.svg similarity index 100% rename from client/public/images/countries/mz.svg rename to frontend/server/public/images/countries/mz.svg diff --git a/client/public/images/countries/na.svg b/frontend/server/public/images/countries/na.svg similarity index 100% rename from client/public/images/countries/na.svg rename to frontend/server/public/images/countries/na.svg diff --git a/client/public/images/countries/nc.svg b/frontend/server/public/images/countries/nc.svg similarity index 100% rename from client/public/images/countries/nc.svg rename to frontend/server/public/images/countries/nc.svg diff --git a/client/public/images/countries/ne.svg b/frontend/server/public/images/countries/ne.svg similarity index 100% rename from client/public/images/countries/ne.svg rename to frontend/server/public/images/countries/ne.svg diff --git a/client/public/images/countries/nf.svg b/frontend/server/public/images/countries/nf.svg similarity index 100% rename from client/public/images/countries/nf.svg rename to frontend/server/public/images/countries/nf.svg diff --git a/client/public/images/countries/ng.svg b/frontend/server/public/images/countries/ng.svg similarity index 100% rename from client/public/images/countries/ng.svg rename to frontend/server/public/images/countries/ng.svg diff --git a/client/public/images/countries/ni.svg b/frontend/server/public/images/countries/ni.svg similarity index 100% rename from client/public/images/countries/ni.svg rename to frontend/server/public/images/countries/ni.svg diff --git a/client/public/images/countries/nl.svg b/frontend/server/public/images/countries/nl.svg similarity index 100% rename from client/public/images/countries/nl.svg rename to frontend/server/public/images/countries/nl.svg diff --git a/client/public/images/countries/no.svg b/frontend/server/public/images/countries/no.svg similarity index 100% rename from client/public/images/countries/no.svg rename to frontend/server/public/images/countries/no.svg diff --git a/client/public/images/countries/np.svg b/frontend/server/public/images/countries/np.svg similarity index 100% rename from client/public/images/countries/np.svg rename to frontend/server/public/images/countries/np.svg diff --git a/client/public/images/countries/nr.svg b/frontend/server/public/images/countries/nr.svg similarity index 100% rename from client/public/images/countries/nr.svg rename to frontend/server/public/images/countries/nr.svg diff --git a/client/public/images/countries/nu.svg b/frontend/server/public/images/countries/nu.svg similarity index 100% rename from client/public/images/countries/nu.svg rename to frontend/server/public/images/countries/nu.svg diff --git a/client/public/images/countries/nz.svg b/frontend/server/public/images/countries/nz.svg similarity index 100% rename from client/public/images/countries/nz.svg rename to frontend/server/public/images/countries/nz.svg diff --git a/client/public/images/countries/om.svg b/frontend/server/public/images/countries/om.svg similarity index 100% rename from client/public/images/countries/om.svg rename to frontend/server/public/images/countries/om.svg diff --git a/client/public/images/countries/pa.svg b/frontend/server/public/images/countries/pa.svg similarity index 100% rename from client/public/images/countries/pa.svg rename to frontend/server/public/images/countries/pa.svg diff --git a/client/public/images/countries/pe.svg b/frontend/server/public/images/countries/pe.svg similarity index 100% rename from client/public/images/countries/pe.svg rename to frontend/server/public/images/countries/pe.svg diff --git a/client/public/images/countries/pf.svg b/frontend/server/public/images/countries/pf.svg similarity index 100% rename from client/public/images/countries/pf.svg rename to frontend/server/public/images/countries/pf.svg diff --git a/client/public/images/countries/pg.svg b/frontend/server/public/images/countries/pg.svg similarity index 100% rename from client/public/images/countries/pg.svg rename to frontend/server/public/images/countries/pg.svg diff --git a/client/public/images/countries/ph.svg b/frontend/server/public/images/countries/ph.svg similarity index 100% rename from client/public/images/countries/ph.svg rename to frontend/server/public/images/countries/ph.svg diff --git a/client/public/images/countries/pk.svg b/frontend/server/public/images/countries/pk.svg similarity index 100% rename from client/public/images/countries/pk.svg rename to frontend/server/public/images/countries/pk.svg diff --git a/client/public/images/countries/pl.svg b/frontend/server/public/images/countries/pl.svg similarity index 100% rename from client/public/images/countries/pl.svg rename to frontend/server/public/images/countries/pl.svg diff --git a/client/public/images/countries/pm.svg b/frontend/server/public/images/countries/pm.svg similarity index 100% rename from client/public/images/countries/pm.svg rename to frontend/server/public/images/countries/pm.svg diff --git a/client/public/images/countries/pn.svg b/frontend/server/public/images/countries/pn.svg similarity index 100% rename from client/public/images/countries/pn.svg rename to frontend/server/public/images/countries/pn.svg diff --git a/client/public/images/countries/pr.svg b/frontend/server/public/images/countries/pr.svg similarity index 100% rename from client/public/images/countries/pr.svg rename to frontend/server/public/images/countries/pr.svg diff --git a/client/public/images/countries/ps.svg b/frontend/server/public/images/countries/ps.svg similarity index 100% rename from client/public/images/countries/ps.svg rename to frontend/server/public/images/countries/ps.svg diff --git a/client/public/images/countries/pt.svg b/frontend/server/public/images/countries/pt.svg similarity index 100% rename from client/public/images/countries/pt.svg rename to frontend/server/public/images/countries/pt.svg diff --git a/client/public/images/countries/pw.svg b/frontend/server/public/images/countries/pw.svg similarity index 100% rename from client/public/images/countries/pw.svg rename to frontend/server/public/images/countries/pw.svg diff --git a/client/public/images/countries/py.svg b/frontend/server/public/images/countries/py.svg similarity index 100% rename from client/public/images/countries/py.svg rename to frontend/server/public/images/countries/py.svg diff --git a/client/public/images/countries/qa.svg b/frontend/server/public/images/countries/qa.svg similarity index 100% rename from client/public/images/countries/qa.svg rename to frontend/server/public/images/countries/qa.svg diff --git a/client/public/images/countries/re.svg b/frontend/server/public/images/countries/re.svg similarity index 100% rename from client/public/images/countries/re.svg rename to frontend/server/public/images/countries/re.svg diff --git a/client/public/images/countries/red.svg b/frontend/server/public/images/countries/red.svg similarity index 100% rename from client/public/images/countries/red.svg rename to frontend/server/public/images/countries/red.svg diff --git a/client/public/images/countries/ro.svg b/frontend/server/public/images/countries/ro.svg similarity index 100% rename from client/public/images/countries/ro.svg rename to frontend/server/public/images/countries/ro.svg diff --git a/client/public/images/countries/rs.svg b/frontend/server/public/images/countries/rs.svg similarity index 100% rename from client/public/images/countries/rs.svg rename to frontend/server/public/images/countries/rs.svg diff --git a/client/public/images/countries/ru.svg b/frontend/server/public/images/countries/ru.svg similarity index 100% rename from client/public/images/countries/ru.svg rename to frontend/server/public/images/countries/ru.svg diff --git a/client/public/images/countries/rw.svg b/frontend/server/public/images/countries/rw.svg similarity index 100% rename from client/public/images/countries/rw.svg rename to frontend/server/public/images/countries/rw.svg diff --git a/client/public/images/countries/sa.svg b/frontend/server/public/images/countries/sa.svg similarity index 100% rename from client/public/images/countries/sa.svg rename to frontend/server/public/images/countries/sa.svg diff --git a/client/public/images/countries/sb.svg b/frontend/server/public/images/countries/sb.svg similarity index 100% rename from client/public/images/countries/sb.svg rename to frontend/server/public/images/countries/sb.svg diff --git a/client/public/images/countries/sc.svg b/frontend/server/public/images/countries/sc.svg similarity index 100% rename from client/public/images/countries/sc.svg rename to frontend/server/public/images/countries/sc.svg diff --git a/client/public/images/countries/sd.svg b/frontend/server/public/images/countries/sd.svg similarity index 100% rename from client/public/images/countries/sd.svg rename to frontend/server/public/images/countries/sd.svg diff --git a/client/public/images/countries/se.svg b/frontend/server/public/images/countries/se.svg similarity index 100% rename from client/public/images/countries/se.svg rename to frontend/server/public/images/countries/se.svg diff --git a/client/public/images/countries/sg.svg b/frontend/server/public/images/countries/sg.svg similarity index 100% rename from client/public/images/countries/sg.svg rename to frontend/server/public/images/countries/sg.svg diff --git a/client/public/images/countries/sh.svg b/frontend/server/public/images/countries/sh.svg similarity index 100% rename from client/public/images/countries/sh.svg rename to frontend/server/public/images/countries/sh.svg diff --git a/client/public/images/countries/si.svg b/frontend/server/public/images/countries/si.svg similarity index 100% rename from client/public/images/countries/si.svg rename to frontend/server/public/images/countries/si.svg diff --git a/client/public/images/countries/sj.svg b/frontend/server/public/images/countries/sj.svg similarity index 100% rename from client/public/images/countries/sj.svg rename to frontend/server/public/images/countries/sj.svg diff --git a/client/public/images/countries/sk.svg b/frontend/server/public/images/countries/sk.svg similarity index 100% rename from client/public/images/countries/sk.svg rename to frontend/server/public/images/countries/sk.svg diff --git a/client/public/images/countries/sl.svg b/frontend/server/public/images/countries/sl.svg similarity index 100% rename from client/public/images/countries/sl.svg rename to frontend/server/public/images/countries/sl.svg diff --git a/client/public/images/countries/sm.svg b/frontend/server/public/images/countries/sm.svg similarity index 100% rename from client/public/images/countries/sm.svg rename to frontend/server/public/images/countries/sm.svg diff --git a/client/public/images/countries/sn.svg b/frontend/server/public/images/countries/sn.svg similarity index 100% rename from client/public/images/countries/sn.svg rename to frontend/server/public/images/countries/sn.svg diff --git a/client/public/images/countries/so.svg b/frontend/server/public/images/countries/so.svg similarity index 100% rename from client/public/images/countries/so.svg rename to frontend/server/public/images/countries/so.svg diff --git a/client/public/images/countries/social.svg b/frontend/server/public/images/countries/social.svg similarity index 100% rename from client/public/images/countries/social.svg rename to frontend/server/public/images/countries/social.svg diff --git a/client/public/images/countries/sr.svg b/frontend/server/public/images/countries/sr.svg similarity index 100% rename from client/public/images/countries/sr.svg rename to frontend/server/public/images/countries/sr.svg diff --git a/client/public/images/countries/ss.svg b/frontend/server/public/images/countries/ss.svg similarity index 100% rename from client/public/images/countries/ss.svg rename to frontend/server/public/images/countries/ss.svg diff --git a/client/public/images/countries/st.svg b/frontend/server/public/images/countries/st.svg similarity index 100% rename from client/public/images/countries/st.svg rename to frontend/server/public/images/countries/st.svg diff --git a/client/public/images/countries/sv.svg b/frontend/server/public/images/countries/sv.svg similarity index 100% rename from client/public/images/countries/sv.svg rename to frontend/server/public/images/countries/sv.svg diff --git a/client/public/images/countries/sx.svg b/frontend/server/public/images/countries/sx.svg similarity index 100% rename from client/public/images/countries/sx.svg rename to frontend/server/public/images/countries/sx.svg diff --git a/client/public/images/countries/sy.svg b/frontend/server/public/images/countries/sy.svg similarity index 100% rename from client/public/images/countries/sy.svg rename to frontend/server/public/images/countries/sy.svg diff --git a/client/public/images/countries/sz.svg b/frontend/server/public/images/countries/sz.svg similarity index 100% rename from client/public/images/countries/sz.svg rename to frontend/server/public/images/countries/sz.svg diff --git a/client/public/images/countries/ta.svg b/frontend/server/public/images/countries/ta.svg similarity index 100% rename from client/public/images/countries/ta.svg rename to frontend/server/public/images/countries/ta.svg diff --git a/client/public/images/countries/tc.svg b/frontend/server/public/images/countries/tc.svg similarity index 100% rename from client/public/images/countries/tc.svg rename to frontend/server/public/images/countries/tc.svg diff --git a/client/public/images/countries/td.svg b/frontend/server/public/images/countries/td.svg similarity index 100% rename from client/public/images/countries/td.svg rename to frontend/server/public/images/countries/td.svg diff --git a/client/public/images/countries/tf.svg b/frontend/server/public/images/countries/tf.svg similarity index 100% rename from client/public/images/countries/tf.svg rename to frontend/server/public/images/countries/tf.svg diff --git a/client/public/images/countries/tg.svg b/frontend/server/public/images/countries/tg.svg similarity index 100% rename from client/public/images/countries/tg.svg rename to frontend/server/public/images/countries/tg.svg diff --git a/client/public/images/countries/th.svg b/frontend/server/public/images/countries/th.svg similarity index 100% rename from client/public/images/countries/th.svg rename to frontend/server/public/images/countries/th.svg diff --git a/client/public/images/countries/third.svg b/frontend/server/public/images/countries/third.svg similarity index 100% rename from client/public/images/countries/third.svg rename to frontend/server/public/images/countries/third.svg diff --git a/client/public/images/countries/tj.svg b/frontend/server/public/images/countries/tj.svg similarity index 100% rename from client/public/images/countries/tj.svg rename to frontend/server/public/images/countries/tj.svg diff --git a/client/public/images/countries/tk.svg b/frontend/server/public/images/countries/tk.svg similarity index 100% rename from client/public/images/countries/tk.svg rename to frontend/server/public/images/countries/tk.svg diff --git a/client/public/images/countries/tl.svg b/frontend/server/public/images/countries/tl.svg similarity index 100% rename from client/public/images/countries/tl.svg rename to frontend/server/public/images/countries/tl.svg diff --git a/client/public/images/countries/tm.svg b/frontend/server/public/images/countries/tm.svg similarity index 100% rename from client/public/images/countries/tm.svg rename to frontend/server/public/images/countries/tm.svg diff --git a/client/public/images/countries/tn.svg b/frontend/server/public/images/countries/tn.svg similarity index 100% rename from client/public/images/countries/tn.svg rename to frontend/server/public/images/countries/tn.svg diff --git a/client/public/images/countries/to.svg b/frontend/server/public/images/countries/to.svg similarity index 100% rename from client/public/images/countries/to.svg rename to frontend/server/public/images/countries/to.svg diff --git a/client/public/images/countries/tr.svg b/frontend/server/public/images/countries/tr.svg similarity index 100% rename from client/public/images/countries/tr.svg rename to frontend/server/public/images/countries/tr.svg diff --git a/client/public/images/countries/tt.svg b/frontend/server/public/images/countries/tt.svg similarity index 100% rename from client/public/images/countries/tt.svg rename to frontend/server/public/images/countries/tt.svg diff --git a/client/public/images/countries/tv.svg b/frontend/server/public/images/countries/tv.svg similarity index 100% rename from client/public/images/countries/tv.svg rename to frontend/server/public/images/countries/tv.svg diff --git a/client/public/images/countries/tw.svg b/frontend/server/public/images/countries/tw.svg similarity index 100% rename from client/public/images/countries/tw.svg rename to frontend/server/public/images/countries/tw.svg diff --git a/client/public/images/countries/tz.svg b/frontend/server/public/images/countries/tz.svg similarity index 100% rename from client/public/images/countries/tz.svg rename to frontend/server/public/images/countries/tz.svg diff --git a/client/public/images/countries/ua.svg b/frontend/server/public/images/countries/ua.svg similarity index 100% rename from client/public/images/countries/ua.svg rename to frontend/server/public/images/countries/ua.svg diff --git a/client/public/images/countries/ug.svg b/frontend/server/public/images/countries/ug.svg similarity index 100% rename from client/public/images/countries/ug.svg rename to frontend/server/public/images/countries/ug.svg diff --git a/client/public/images/countries/um.svg b/frontend/server/public/images/countries/um.svg similarity index 100% rename from client/public/images/countries/um.svg rename to frontend/server/public/images/countries/um.svg diff --git a/client/public/images/countries/un.svg b/frontend/server/public/images/countries/un.svg similarity index 100% rename from client/public/images/countries/un.svg rename to frontend/server/public/images/countries/un.svg diff --git a/client/public/images/countries/unk.svg b/frontend/server/public/images/countries/unk.svg similarity index 100% rename from client/public/images/countries/unk.svg rename to frontend/server/public/images/countries/unk.svg diff --git a/client/public/images/countries/us.svg b/frontend/server/public/images/countries/us.svg similarity index 100% rename from client/public/images/countries/us.svg rename to frontend/server/public/images/countries/us.svg diff --git a/client/public/images/countries/ussr.svg b/frontend/server/public/images/countries/ussr.svg similarity index 100% rename from client/public/images/countries/ussr.svg rename to frontend/server/public/images/countries/ussr.svg diff --git a/client/public/images/countries/uy.svg b/frontend/server/public/images/countries/uy.svg similarity index 100% rename from client/public/images/countries/uy.svg rename to frontend/server/public/images/countries/uy.svg diff --git a/client/public/images/countries/uz.svg b/frontend/server/public/images/countries/uz.svg similarity index 100% rename from client/public/images/countries/uz.svg rename to frontend/server/public/images/countries/uz.svg diff --git a/client/public/images/countries/va.svg b/frontend/server/public/images/countries/va.svg similarity index 100% rename from client/public/images/countries/va.svg rename to frontend/server/public/images/countries/va.svg diff --git a/client/public/images/countries/vc.svg b/frontend/server/public/images/countries/vc.svg similarity index 100% rename from client/public/images/countries/vc.svg rename to frontend/server/public/images/countries/vc.svg diff --git a/client/public/images/countries/ve.svg b/frontend/server/public/images/countries/ve.svg similarity index 100% rename from client/public/images/countries/ve.svg rename to frontend/server/public/images/countries/ve.svg diff --git a/client/public/images/countries/vg.svg b/frontend/server/public/images/countries/vg.svg similarity index 100% rename from client/public/images/countries/vg.svg rename to frontend/server/public/images/countries/vg.svg diff --git a/client/public/images/countries/vi.svg b/frontend/server/public/images/countries/vi.svg similarity index 100% rename from client/public/images/countries/vi.svg rename to frontend/server/public/images/countries/vi.svg diff --git a/client/public/images/countries/vn.svg b/frontend/server/public/images/countries/vn.svg similarity index 100% rename from client/public/images/countries/vn.svg rename to frontend/server/public/images/countries/vn.svg diff --git a/client/public/images/countries/vu.svg b/frontend/server/public/images/countries/vu.svg similarity index 100% rename from client/public/images/countries/vu.svg rename to frontend/server/public/images/countries/vu.svg diff --git a/client/public/images/countries/wf.svg b/frontend/server/public/images/countries/wf.svg similarity index 100% rename from client/public/images/countries/wf.svg rename to frontend/server/public/images/countries/wf.svg diff --git a/client/public/images/countries/ws.svg b/frontend/server/public/images/countries/ws.svg similarity index 100% rename from client/public/images/countries/ws.svg rename to frontend/server/public/images/countries/ws.svg diff --git a/client/public/images/countries/xk.svg b/frontend/server/public/images/countries/xk.svg similarity index 100% rename from client/public/images/countries/xk.svg rename to frontend/server/public/images/countries/xk.svg diff --git a/client/public/images/countries/xx.svg b/frontend/server/public/images/countries/xx.svg similarity index 100% rename from client/public/images/countries/xx.svg rename to frontend/server/public/images/countries/xx.svg diff --git a/client/public/images/countries/ye.svg b/frontend/server/public/images/countries/ye.svg similarity index 100% rename from client/public/images/countries/ye.svg rename to frontend/server/public/images/countries/ye.svg diff --git a/client/public/images/countries/yt.svg b/frontend/server/public/images/countries/yt.svg similarity index 100% rename from client/public/images/countries/yt.svg rename to frontend/server/public/images/countries/yt.svg diff --git a/client/public/images/countries/yug.svg b/frontend/server/public/images/countries/yug.svg similarity index 100% rename from client/public/images/countries/yug.svg rename to frontend/server/public/images/countries/yug.svg diff --git a/client/public/images/countries/za.svg b/frontend/server/public/images/countries/za.svg similarity index 100% rename from client/public/images/countries/za.svg rename to frontend/server/public/images/countries/za.svg diff --git a/client/public/images/countries/zm.svg b/frontend/server/public/images/countries/zm.svg similarity index 100% rename from client/public/images/countries/zm.svg rename to frontend/server/public/images/countries/zm.svg diff --git a/client/public/images/countries/zw.svg b/frontend/server/public/images/countries/zw.svg similarity index 100% rename from client/public/images/countries/zw.svg rename to frontend/server/public/images/countries/zw.svg diff --git a/client/public/images/favicons/android-chrome-192x192.png b/frontend/server/public/images/favicons/android-chrome-192x192.png similarity index 100% rename from client/public/images/favicons/android-chrome-192x192.png rename to frontend/server/public/images/favicons/android-chrome-192x192.png diff --git a/client/public/images/favicons/android-chrome-512x512.png b/frontend/server/public/images/favicons/android-chrome-512x512.png similarity index 100% rename from client/public/images/favicons/android-chrome-512x512.png rename to frontend/server/public/images/favicons/android-chrome-512x512.png diff --git a/client/public/images/favicons/apple-touch-icon.png b/frontend/server/public/images/favicons/apple-touch-icon.png similarity index 100% rename from client/public/images/favicons/apple-touch-icon.png rename to frontend/server/public/images/favicons/apple-touch-icon.png diff --git a/client/public/images/favicons/favicon-16x16.png b/frontend/server/public/images/favicons/favicon-16x16.png similarity index 100% rename from client/public/images/favicons/favicon-16x16.png rename to frontend/server/public/images/favicons/favicon-16x16.png diff --git a/client/public/images/favicons/favicon-32x32.png b/frontend/server/public/images/favicons/favicon-32x32.png similarity index 100% rename from client/public/images/favicons/favicon-32x32.png rename to frontend/server/public/images/favicons/favicon-32x32.png diff --git a/client/public/images/favicons/favicon.ico b/frontend/server/public/images/favicons/favicon.ico similarity index 100% rename from client/public/images/favicons/favicon.ico rename to frontend/server/public/images/favicons/favicon.ico diff --git a/client/public/images/favicons/site.webmanifest b/frontend/server/public/images/favicons/site.webmanifest similarity index 100% rename from client/public/images/favicons/site.webmanifest rename to frontend/server/public/images/favicons/site.webmanifest diff --git a/client/public/images/icon-round.png b/frontend/server/public/images/icon-round.png similarity index 100% rename from client/public/images/icon-round.png rename to frontend/server/public/images/icon-round.png diff --git a/client/public/images/icon.png b/frontend/server/public/images/icon.png similarity index 100% rename from client/public/images/icon.png rename to frontend/server/public/images/icon.png diff --git a/client/public/images/olympus-4112x4112.png b/frontend/server/public/images/olympus-4112x4112.png similarity index 100% rename from client/public/images/olympus-4112x4112.png rename to frontend/server/public/images/olympus-4112x4112.png diff --git a/client/public/images/olympus-500x500.png b/frontend/server/public/images/olympus-500x500.png similarity index 100% rename from client/public/images/olympus-500x500.png rename to frontend/server/public/images/olympus-500x500.png diff --git a/client/public/images/units/a-10.png b/frontend/server/public/images/units/a-10.png similarity index 100% rename from client/public/images/units/a-10.png rename to frontend/server/public/images/units/a-10.png diff --git a/client/public/images/units/a-20.png b/frontend/server/public/images/units/a-20.png similarity index 100% rename from client/public/images/units/a-20.png rename to frontend/server/public/images/units/a-20.png diff --git a/client/public/images/units/a-29.png b/frontend/server/public/images/units/a-29.png similarity index 100% rename from client/public/images/units/a-29.png rename to frontend/server/public/images/units/a-29.png diff --git a/client/public/images/units/a-4.png b/frontend/server/public/images/units/a-4.png similarity index 100% rename from client/public/images/units/a-4.png rename to frontend/server/public/images/units/a-4.png diff --git a/client/public/images/units/a-400.png b/frontend/server/public/images/units/a-400.png similarity index 100% rename from client/public/images/units/a-400.png rename to frontend/server/public/images/units/a-400.png diff --git a/client/public/images/units/a-50.png b/frontend/server/public/images/units/a-50.png similarity index 100% rename from client/public/images/units/a-50.png rename to frontend/server/public/images/units/a-50.png diff --git a/client/public/images/units/a-6.png b/frontend/server/public/images/units/a-6.png similarity index 100% rename from client/public/images/units/a-6.png rename to frontend/server/public/images/units/a-6.png diff --git a/client/public/images/units/ah-1.png b/frontend/server/public/images/units/ah-1.png similarity index 100% rename from client/public/images/units/ah-1.png rename to frontend/server/public/images/units/ah-1.png diff --git a/client/public/images/units/ah-64.png b/frontend/server/public/images/units/ah-64.png similarity index 100% rename from client/public/images/units/ah-64.png rename to frontend/server/public/images/units/ah-64.png diff --git a/client/public/images/units/airUnit.png b/frontend/server/public/images/units/airUnit.png similarity index 100% rename from client/public/images/units/airUnit.png rename to frontend/server/public/images/units/airUnit.png diff --git a/client/public/images/units/airliner2engine.png b/frontend/server/public/images/units/airliner2engine.png similarity index 100% rename from client/public/images/units/airliner2engine.png rename to frontend/server/public/images/units/airliner2engine.png diff --git a/client/public/images/units/an-26.png b/frontend/server/public/images/units/an-26.png similarity index 100% rename from client/public/images/units/an-26.png rename to frontend/server/public/images/units/an-26.png diff --git a/client/public/images/units/av8bna.png b/frontend/server/public/images/units/av8bna.png similarity index 100% rename from client/public/images/units/av8bna.png rename to frontend/server/public/images/units/av8bna.png diff --git a/client/public/images/units/b-1.png b/frontend/server/public/images/units/b-1.png similarity index 100% rename from client/public/images/units/b-1.png rename to frontend/server/public/images/units/b-1.png diff --git a/client/public/images/units/b-17.png b/frontend/server/public/images/units/b-17.png similarity index 100% rename from client/public/images/units/b-17.png rename to frontend/server/public/images/units/b-17.png diff --git a/client/public/images/units/b-2.png b/frontend/server/public/images/units/b-2.png similarity index 100% rename from client/public/images/units/b-2.png rename to frontend/server/public/images/units/b-2.png diff --git a/client/public/images/units/b-52.png b/frontend/server/public/images/units/b-52.png similarity index 100% rename from client/public/images/units/b-52.png rename to frontend/server/public/images/units/b-52.png diff --git a/client/public/images/units/b707.png b/frontend/server/public/images/units/b707.png similarity index 100% rename from client/public/images/units/b707.png rename to frontend/server/public/images/units/b707.png diff --git a/client/public/images/units/bf109.png b/frontend/server/public/images/units/bf109.png similarity index 100% rename from client/public/images/units/bf109.png rename to frontend/server/public/images/units/bf109.png diff --git a/client/public/images/units/c-101.png b/frontend/server/public/images/units/c-101.png similarity index 100% rename from client/public/images/units/c-101.png rename to frontend/server/public/images/units/c-101.png diff --git a/client/public/images/units/c-130.png b/frontend/server/public/images/units/c-130.png similarity index 100% rename from client/public/images/units/c-130.png rename to frontend/server/public/images/units/c-130.png diff --git a/client/public/images/units/c-17.png b/frontend/server/public/images/units/c-17.png similarity index 100% rename from client/public/images/units/c-17.png rename to frontend/server/public/images/units/c-17.png diff --git a/client/public/images/units/c-5.png b/frontend/server/public/images/units/c-5.png similarity index 100% rename from client/public/images/units/c-5.png rename to frontend/server/public/images/units/c-5.png diff --git a/client/public/images/units/ch-47.png b/frontend/server/public/images/units/ch-47.png similarity index 100% rename from client/public/images/units/ch-47.png rename to frontend/server/public/images/units/ch-47.png diff --git a/client/public/images/units/ch-53.png b/frontend/server/public/images/units/ch-53.png similarity index 100% rename from client/public/images/units/ch-53.png rename to frontend/server/public/images/units/ch-53.png diff --git a/client/public/images/units/e-2.png b/frontend/server/public/images/units/e-2.png similarity index 100% rename from client/public/images/units/e-2.png rename to frontend/server/public/images/units/e-2.png diff --git a/client/public/images/units/e-3.png b/frontend/server/public/images/units/e-3.png similarity index 100% rename from client/public/images/units/e-3.png rename to frontend/server/public/images/units/e-3.png diff --git a/client/public/images/units/eurofighter.png b/frontend/server/public/images/units/eurofighter.png similarity index 100% rename from client/public/images/units/eurofighter.png rename to frontend/server/public/images/units/eurofighter.png diff --git a/client/public/images/units/f-1.png b/frontend/server/public/images/units/f-1.png similarity index 100% rename from client/public/images/units/f-1.png rename to frontend/server/public/images/units/f-1.png diff --git a/client/public/images/units/f-111.png b/frontend/server/public/images/units/f-111.png similarity index 100% rename from client/public/images/units/f-111.png rename to frontend/server/public/images/units/f-111.png diff --git a/client/public/images/units/f-117.png b/frontend/server/public/images/units/f-117.png similarity index 100% rename from client/public/images/units/f-117.png rename to frontend/server/public/images/units/f-117.png diff --git a/client/public/images/units/f-14.png b/frontend/server/public/images/units/f-14.png similarity index 100% rename from client/public/images/units/f-14.png rename to frontend/server/public/images/units/f-14.png diff --git a/client/public/images/units/f-15.png b/frontend/server/public/images/units/f-15.png similarity index 100% rename from client/public/images/units/f-15.png rename to frontend/server/public/images/units/f-15.png diff --git a/client/public/images/units/f-16c.png b/frontend/server/public/images/units/f-16c.png similarity index 100% rename from client/public/images/units/f-16c.png rename to frontend/server/public/images/units/f-16c.png diff --git a/client/public/images/units/f-22.png b/frontend/server/public/images/units/f-22.png similarity index 100% rename from client/public/images/units/f-22.png rename to frontend/server/public/images/units/f-22.png diff --git a/client/public/images/units/f-35.png b/frontend/server/public/images/units/f-35.png similarity index 100% rename from client/public/images/units/f-35.png rename to frontend/server/public/images/units/f-35.png diff --git a/client/public/images/units/f-4.png b/frontend/server/public/images/units/f-4.png similarity index 100% rename from client/public/images/units/f-4.png rename to frontend/server/public/images/units/f-4.png diff --git a/client/public/images/units/f-5.png b/frontend/server/public/images/units/f-5.png similarity index 100% rename from client/public/images/units/f-5.png rename to frontend/server/public/images/units/f-5.png diff --git a/client/public/images/units/f-86.png b/frontend/server/public/images/units/f-86.png similarity index 100% rename from client/public/images/units/f-86.png rename to frontend/server/public/images/units/f-86.png diff --git a/client/public/images/units/fa-18c.png b/frontend/server/public/images/units/fa-18c.png similarity index 100% rename from client/public/images/units/fa-18c.png rename to frontend/server/public/images/units/fa-18c.png diff --git a/client/public/images/units/fw190.png b/frontend/server/public/images/units/fw190.png similarity index 100% rename from client/public/images/units/fw190.png rename to frontend/server/public/images/units/fw190.png diff --git a/client/public/images/units/general1.png b/frontend/server/public/images/units/general1.png similarity index 100% rename from client/public/images/units/general1.png rename to frontend/server/public/images/units/general1.png diff --git a/client/public/images/units/gripen.png b/frontend/server/public/images/units/gripen.png similarity index 100% rename from client/public/images/units/gripen.png rename to frontend/server/public/images/units/gripen.png diff --git a/client/public/images/units/h-6.png b/frontend/server/public/images/units/h-6.png similarity index 100% rename from client/public/images/units/h-6.png rename to frontend/server/public/images/units/h-6.png diff --git a/client/public/images/units/hawk.png b/frontend/server/public/images/units/hawk.png similarity index 100% rename from client/public/images/units/hawk.png rename to frontend/server/public/images/units/hawk.png diff --git a/client/public/images/units/helicopter1.png b/frontend/server/public/images/units/helicopter1.png similarity index 100% rename from client/public/images/units/helicopter1.png rename to frontend/server/public/images/units/helicopter1.png diff --git a/client/public/images/units/i-16.png b/frontend/server/public/images/units/i-16.png similarity index 100% rename from client/public/images/units/i-16.png rename to frontend/server/public/images/units/i-16.png diff --git a/client/public/images/units/il-76.png b/frontend/server/public/images/units/il-76.png similarity index 100% rename from client/public/images/units/il-76.png rename to frontend/server/public/images/units/il-76.png diff --git a/client/public/images/units/j-10.png b/frontend/server/public/images/units/j-10.png similarity index 100% rename from client/public/images/units/j-10.png rename to frontend/server/public/images/units/j-10.png diff --git a/client/public/images/units/j-20.png b/frontend/server/public/images/units/j-20.png similarity index 100% rename from client/public/images/units/j-20.png rename to frontend/server/public/images/units/j-20.png diff --git a/client/public/images/units/j-7.png b/frontend/server/public/images/units/j-7.png similarity index 100% rename from client/public/images/units/j-7.png rename to frontend/server/public/images/units/j-7.png diff --git a/client/public/images/units/jf-17.png b/frontend/server/public/images/units/jf-17.png similarity index 100% rename from client/public/images/units/jf-17.png rename to frontend/server/public/images/units/jf-17.png diff --git a/client/public/images/units/ju-88.png b/frontend/server/public/images/units/ju-88.png similarity index 100% rename from client/public/images/units/ju-88.png rename to frontend/server/public/images/units/ju-88.png diff --git a/client/public/images/units/ka-27.png b/frontend/server/public/images/units/ka-27.png similarity index 100% rename from client/public/images/units/ka-27.png rename to frontend/server/public/images/units/ka-27.png diff --git a/client/public/images/units/ka-50.png b/frontend/server/public/images/units/ka-50.png similarity index 100% rename from client/public/images/units/ka-50.png rename to frontend/server/public/images/units/ka-50.png diff --git a/client/public/images/units/kc-10.png b/frontend/server/public/images/units/kc-10.png similarity index 100% rename from client/public/images/units/kc-10.png rename to frontend/server/public/images/units/kc-10.png diff --git a/client/public/images/units/kc-135.png b/frontend/server/public/images/units/kc-135.png similarity index 100% rename from client/public/images/units/kc-135.png rename to frontend/server/public/images/units/kc-135.png diff --git a/client/public/images/units/l-159.png b/frontend/server/public/images/units/l-159.png similarity index 100% rename from client/public/images/units/l-159.png rename to frontend/server/public/images/units/l-159.png diff --git a/client/public/images/units/l-39.png b/frontend/server/public/images/units/l-39.png similarity index 100% rename from client/public/images/units/l-39.png rename to frontend/server/public/images/units/l-39.png diff --git a/client/public/images/units/m2000.png b/frontend/server/public/images/units/m2000.png similarity index 100% rename from client/public/images/units/m2000.png rename to frontend/server/public/images/units/m2000.png diff --git a/client/public/images/units/mb-339.png b/frontend/server/public/images/units/mb-339.png similarity index 100% rename from client/public/images/units/mb-339.png rename to frontend/server/public/images/units/mb-339.png diff --git a/client/public/images/units/mi-24.png b/frontend/server/public/images/units/mi-24.png similarity index 100% rename from client/public/images/units/mi-24.png rename to frontend/server/public/images/units/mi-24.png diff --git a/client/public/images/units/mi-26.png b/frontend/server/public/images/units/mi-26.png similarity index 100% rename from client/public/images/units/mi-26.png rename to frontend/server/public/images/units/mi-26.png diff --git a/client/public/images/units/mi-28.png b/frontend/server/public/images/units/mi-28.png similarity index 100% rename from client/public/images/units/mi-28.png rename to frontend/server/public/images/units/mi-28.png diff --git a/client/public/images/units/mi-8.png b/frontend/server/public/images/units/mi-8.png similarity index 100% rename from client/public/images/units/mi-8.png rename to frontend/server/public/images/units/mi-8.png diff --git a/client/public/images/units/mig-15.png b/frontend/server/public/images/units/mig-15.png similarity index 100% rename from client/public/images/units/mig-15.png rename to frontend/server/public/images/units/mig-15.png diff --git a/client/public/images/units/mig-19.png b/frontend/server/public/images/units/mig-19.png similarity index 100% rename from client/public/images/units/mig-19.png rename to frontend/server/public/images/units/mig-19.png diff --git a/client/public/images/units/mig-21.png b/frontend/server/public/images/units/mig-21.png similarity index 100% rename from client/public/images/units/mig-21.png rename to frontend/server/public/images/units/mig-21.png diff --git a/client/public/images/units/mig-23.png b/frontend/server/public/images/units/mig-23.png similarity index 100% rename from client/public/images/units/mig-23.png rename to frontend/server/public/images/units/mig-23.png diff --git a/client/public/images/units/mig-25.png b/frontend/server/public/images/units/mig-25.png similarity index 100% rename from client/public/images/units/mig-25.png rename to frontend/server/public/images/units/mig-25.png diff --git a/client/public/images/units/mig-29.png b/frontend/server/public/images/units/mig-29.png similarity index 100% rename from client/public/images/units/mig-29.png rename to frontend/server/public/images/units/mig-29.png diff --git a/client/public/images/units/mosquito.png b/frontend/server/public/images/units/mosquito.png similarity index 100% rename from client/public/images/units/mosquito.png rename to frontend/server/public/images/units/mosquito.png diff --git a/client/public/images/units/oh-58.png b/frontend/server/public/images/units/oh-58.png similarity index 100% rename from client/public/images/units/oh-58.png rename to frontend/server/public/images/units/oh-58.png diff --git a/client/public/images/units/p-47.png b/frontend/server/public/images/units/p-47.png similarity index 100% rename from client/public/images/units/p-47.png rename to frontend/server/public/images/units/p-47.png diff --git a/client/public/images/units/p-51.png b/frontend/server/public/images/units/p-51.png similarity index 100% rename from client/public/images/units/p-51.png rename to frontend/server/public/images/units/p-51.png diff --git a/client/public/images/units/rafale.png b/frontend/server/public/images/units/rafale.png similarity index 100% rename from client/public/images/units/rafale.png rename to frontend/server/public/images/units/rafale.png diff --git a/client/public/images/units/rq-1.png b/frontend/server/public/images/units/rq-1.png similarity index 100% rename from client/public/images/units/rq-1.png rename to frontend/server/public/images/units/rq-1.png diff --git a/client/public/images/units/rq-4.png b/frontend/server/public/images/units/rq-4.png similarity index 100% rename from client/public/images/units/rq-4.png rename to frontend/server/public/images/units/rq-4.png diff --git a/client/public/images/units/s-3.png b/frontend/server/public/images/units/s-3.png similarity index 100% rename from client/public/images/units/s-3.png rename to frontend/server/public/images/units/s-3.png diff --git a/client/public/images/units/sa-342.png b/frontend/server/public/images/units/sa-342.png similarity index 100% rename from client/public/images/units/sa-342.png rename to frontend/server/public/images/units/sa-342.png diff --git a/client/public/images/units/spitfire.png b/frontend/server/public/images/units/spitfire.png similarity index 100% rename from client/public/images/units/spitfire.png rename to frontend/server/public/images/units/spitfire.png diff --git a/client/public/images/units/su-17.png b/frontend/server/public/images/units/su-17.png similarity index 100% rename from client/public/images/units/su-17.png rename to frontend/server/public/images/units/su-17.png diff --git a/client/public/images/units/su-24.png b/frontend/server/public/images/units/su-24.png similarity index 100% rename from client/public/images/units/su-24.png rename to frontend/server/public/images/units/su-24.png diff --git a/client/public/images/units/su-25.png b/frontend/server/public/images/units/su-25.png similarity index 100% rename from client/public/images/units/su-25.png rename to frontend/server/public/images/units/su-25.png diff --git a/client/public/images/units/su-27.png b/frontend/server/public/images/units/su-27.png similarity index 100% rename from client/public/images/units/su-27.png rename to frontend/server/public/images/units/su-27.png diff --git a/client/public/images/units/su-34.png b/frontend/server/public/images/units/su-34.png similarity index 100% rename from client/public/images/units/su-34.png rename to frontend/server/public/images/units/su-34.png diff --git a/client/public/images/units/su-57.png b/frontend/server/public/images/units/su-57.png similarity index 100% rename from client/public/images/units/su-57.png rename to frontend/server/public/images/units/su-57.png diff --git a/client/public/images/units/tornado.png b/frontend/server/public/images/units/tornado.png similarity index 100% rename from client/public/images/units/tornado.png rename to frontend/server/public/images/units/tornado.png diff --git a/client/public/images/units/tu-160.png b/frontend/server/public/images/units/tu-160.png similarity index 100% rename from client/public/images/units/tu-160.png rename to frontend/server/public/images/units/tu-160.png diff --git a/client/public/images/units/tu-22.png b/frontend/server/public/images/units/tu-22.png similarity index 100% rename from client/public/images/units/tu-22.png rename to frontend/server/public/images/units/tu-22.png diff --git a/client/public/images/units/tu-95.png b/frontend/server/public/images/units/tu-95.png similarity index 100% rename from client/public/images/units/tu-95.png rename to frontend/server/public/images/units/tu-95.png diff --git a/client/public/images/units/u-28.png b/frontend/server/public/images/units/u-28.png similarity index 100% rename from client/public/images/units/u-28.png rename to frontend/server/public/images/units/u-28.png diff --git a/client/public/images/units/uh-1.png b/frontend/server/public/images/units/uh-1.png similarity index 100% rename from client/public/images/units/uh-1.png rename to frontend/server/public/images/units/uh-1.png diff --git a/client/public/images/units/uh-60.png b/frontend/server/public/images/units/uh-60.png similarity index 100% rename from client/public/images/units/uh-60.png rename to frontend/server/public/images/units/uh-60.png diff --git a/client/public/images/units/viggen.png b/frontend/server/public/images/units/viggen.png similarity index 100% rename from client/public/images/units/viggen.png rename to frontend/server/public/images/units/viggen.png diff --git a/client/public/images/units/yak-40.png b/frontend/server/public/images/units/yak-40.png similarity index 100% rename from client/public/images/units/yak-40.png rename to frontend/server/public/images/units/yak-40.png diff --git a/client/public/images/units/yak-52.png b/frontend/server/public/images/units/yak-52.png similarity index 100% rename from client/public/images/units/yak-52.png rename to frontend/server/public/images/units/yak-52.png diff --git a/client/public/javascripts/placeholder b/frontend/server/public/javascripts/placeholder similarity index 100% rename from client/public/javascripts/placeholder rename to frontend/server/public/javascripts/placeholder diff --git a/client/plugins/controltips/plugin.json b/frontend/server/public/plugins/controltipsplugin/plugin.json similarity index 100% rename from client/plugins/controltips/plugin.json rename to frontend/server/public/plugins/controltipsplugin/plugin.json diff --git a/client/plugins/controltips/style.css b/frontend/server/public/plugins/controltipsplugin/style.css similarity index 100% rename from client/plugins/controltips/style.css rename to frontend/server/public/plugins/controltipsplugin/style.css diff --git a/client/plugins/databasemanager/index.js b/frontend/server/public/plugins/databasemanager/index.js similarity index 100% rename from client/plugins/databasemanager/index.js rename to frontend/server/public/plugins/databasemanager/index.js diff --git a/frontend/server/public/plugins/databasemanager/plugin.json b/frontend/server/public/plugins/databasemanager/plugin.json new file mode 100644 index 00000000..357d8f13 --- /dev/null +++ b/frontend/server/public/plugins/databasemanager/plugin.json @@ -0,0 +1,6 @@ +{ + "name": "Database Manager", + "version": "0.0.1", + "description": "This plugin allows to edit the unit databases", + "author": "DCSOlympus team" +} \ No newline at end of file diff --git a/client/plugins/databasemanager/style.css b/frontend/server/public/plugins/databasemanager/style.css similarity index 100% rename from client/plugins/databasemanager/style.css rename to frontend/server/public/plugins/databasemanager/style.css diff --git a/client/public/stylesheets/layout/layout.css b/frontend/server/public/stylesheets/layout/layout.css similarity index 100% rename from client/public/stylesheets/layout/layout.css rename to frontend/server/public/stylesheets/layout/layout.css diff --git a/client/public/stylesheets/markers/airbase.css b/frontend/server/public/stylesheets/markers/airbase.css similarity index 100% rename from client/public/stylesheets/markers/airbase.css rename to frontend/server/public/stylesheets/markers/airbase.css diff --git a/client/public/stylesheets/markers/bullseye.css b/frontend/server/public/stylesheets/markers/bullseye.css similarity index 100% rename from client/public/stylesheets/markers/bullseye.css rename to frontend/server/public/stylesheets/markers/bullseye.css diff --git a/client/public/stylesheets/markers/units.css b/frontend/server/public/stylesheets/markers/units.css similarity index 100% rename from client/public/stylesheets/markers/units.css rename to frontend/server/public/stylesheets/markers/units.css diff --git a/client/public/stylesheets/olympus.css b/frontend/server/public/stylesheets/olympus.css similarity index 100% rename from client/public/stylesheets/olympus.css rename to frontend/server/public/stylesheets/olympus.css diff --git a/client/public/stylesheets/other/contextmenus.css b/frontend/server/public/stylesheets/other/contextmenus.css similarity index 100% rename from client/public/stylesheets/other/contextmenus.css rename to frontend/server/public/stylesheets/other/contextmenus.css diff --git a/client/public/stylesheets/other/popup.css b/frontend/server/public/stylesheets/other/popup.css similarity index 100% rename from client/public/stylesheets/other/popup.css rename to frontend/server/public/stylesheets/other/popup.css diff --git a/client/public/stylesheets/other/toolbar.css b/frontend/server/public/stylesheets/other/toolbar.css similarity index 100% rename from client/public/stylesheets/other/toolbar.css rename to frontend/server/public/stylesheets/other/toolbar.css diff --git a/client/public/stylesheets/panels/connectionstatus.css b/frontend/server/public/stylesheets/panels/connectionstatus.css similarity index 100% rename from client/public/stylesheets/panels/connectionstatus.css rename to frontend/server/public/stylesheets/panels/connectionstatus.css diff --git a/client/public/stylesheets/panels/logpanel.css b/frontend/server/public/stylesheets/panels/logpanel.css similarity index 100% rename from client/public/stylesheets/panels/logpanel.css rename to frontend/server/public/stylesheets/panels/logpanel.css diff --git a/client/public/stylesheets/panels/mouseinfo.css b/frontend/server/public/stylesheets/panels/mouseinfo.css similarity index 100% rename from client/public/stylesheets/panels/mouseinfo.css rename to frontend/server/public/stylesheets/panels/mouseinfo.css diff --git a/client/public/stylesheets/panels/serverstatus.css b/frontend/server/public/stylesheets/panels/serverstatus.css similarity index 100% rename from client/public/stylesheets/panels/serverstatus.css rename to frontend/server/public/stylesheets/panels/serverstatus.css diff --git a/client/public/stylesheets/panels/unitcontrol.css b/frontend/server/public/stylesheets/panels/unitcontrol.css similarity index 100% rename from client/public/stylesheets/panels/unitcontrol.css rename to frontend/server/public/stylesheets/panels/unitcontrol.css diff --git a/client/public/stylesheets/panels/unitinfo.css b/frontend/server/public/stylesheets/panels/unitinfo.css similarity index 100% rename from client/public/stylesheets/panels/unitinfo.css rename to frontend/server/public/stylesheets/panels/unitinfo.css diff --git a/client/public/stylesheets/panels/unitlist.css b/frontend/server/public/stylesheets/panels/unitlist.css similarity index 100% rename from client/public/stylesheets/panels/unitlist.css rename to frontend/server/public/stylesheets/panels/unitlist.css diff --git a/client/public/stylesheets/style/style.css b/frontend/server/public/stylesheets/style/style.css similarity index 100% rename from client/public/stylesheets/style/style.css rename to frontend/server/public/stylesheets/style/style.css diff --git a/client/public/stylesheets/uikit/uikit.css b/frontend/server/public/stylesheets/uikit/uikit.css similarity index 100% rename from client/public/stylesheets/uikit/uikit.css rename to frontend/server/public/stylesheets/uikit/uikit.css diff --git a/client/public/themes/olympus/images/buttons/emissions/attack.svg b/frontend/server/public/themes/olympus/images/buttons/emissions/attack.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/emissions/attack.svg rename to frontend/server/public/themes/olympus/images/buttons/emissions/attack.svg diff --git a/client/public/themes/olympus/images/buttons/emissions/defend.svg b/frontend/server/public/themes/olympus/images/buttons/emissions/defend.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/emissions/defend.svg rename to frontend/server/public/themes/olympus/images/buttons/emissions/defend.svg diff --git a/client/public/themes/olympus/images/buttons/emissions/free.svg b/frontend/server/public/themes/olympus/images/buttons/emissions/free.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/emissions/free.svg rename to frontend/server/public/themes/olympus/images/buttons/emissions/free.svg diff --git a/client/public/themes/olympus/images/buttons/emissions/silent.svg b/frontend/server/public/themes/olympus/images/buttons/emissions/silent.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/emissions/silent.svg rename to frontend/server/public/themes/olympus/images/buttons/emissions/silent.svg diff --git a/client/public/themes/olympus/images/buttons/intensity/1.svg b/frontend/server/public/themes/olympus/images/buttons/intensity/1.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/intensity/1.svg rename to frontend/server/public/themes/olympus/images/buttons/intensity/1.svg diff --git a/client/public/themes/olympus/images/buttons/intensity/2.svg b/frontend/server/public/themes/olympus/images/buttons/intensity/2.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/intensity/2.svg rename to frontend/server/public/themes/olympus/images/buttons/intensity/2.svg diff --git a/client/public/themes/olympus/images/buttons/intensity/3.svg b/frontend/server/public/themes/olympus/images/buttons/intensity/3.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/intensity/3.svg rename to frontend/server/public/themes/olympus/images/buttons/intensity/3.svg diff --git a/client/public/themes/olympus/images/buttons/other/arrow-down-solid.svg b/frontend/server/public/themes/olympus/images/buttons/other/arrow-down-solid.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/other/arrow-down-solid.svg rename to frontend/server/public/themes/olympus/images/buttons/other/arrow-down-solid.svg diff --git a/client/public/themes/olympus/images/buttons/other/back.svg b/frontend/server/public/themes/olympus/images/buttons/other/back.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/other/back.svg rename to frontend/server/public/themes/olympus/images/buttons/other/back.svg diff --git a/client/public/themes/olympus/images/buttons/other/clock-rotate-left-solid.svg b/frontend/server/public/themes/olympus/images/buttons/other/clock-rotate-left-solid.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/other/clock-rotate-left-solid.svg rename to frontend/server/public/themes/olympus/images/buttons/other/clock-rotate-left-solid.svg diff --git a/client/public/themes/olympus/images/buttons/other/delete.svg b/frontend/server/public/themes/olympus/images/buttons/other/delete.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/other/delete.svg rename to frontend/server/public/themes/olympus/images/buttons/other/delete.svg diff --git a/client/public/themes/olympus/images/buttons/other/edit.svg b/frontend/server/public/themes/olympus/images/buttons/other/edit.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/other/edit.svg rename to frontend/server/public/themes/olympus/images/buttons/other/edit.svg diff --git a/client/public/themes/olympus/images/buttons/other/lock-open-solid.svg b/frontend/server/public/themes/olympus/images/buttons/other/lock-open-solid.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/other/lock-open-solid.svg rename to frontend/server/public/themes/olympus/images/buttons/other/lock-open-solid.svg diff --git a/client/public/themes/olympus/images/buttons/other/lock-solid.svg b/frontend/server/public/themes/olympus/images/buttons/other/lock-solid.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/other/lock-solid.svg rename to frontend/server/public/themes/olympus/images/buttons/other/lock-solid.svg diff --git a/client/public/themes/olympus/images/buttons/roe/designated.svg b/frontend/server/public/themes/olympus/images/buttons/roe/designated.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/roe/designated.svg rename to frontend/server/public/themes/olympus/images/buttons/roe/designated.svg diff --git a/client/public/themes/olympus/images/buttons/roe/free.svg b/frontend/server/public/themes/olympus/images/buttons/roe/free.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/roe/free.svg rename to frontend/server/public/themes/olympus/images/buttons/roe/free.svg diff --git a/client/public/themes/olympus/images/buttons/roe/hold.svg b/frontend/server/public/themes/olympus/images/buttons/roe/hold.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/roe/hold.svg rename to frontend/server/public/themes/olympus/images/buttons/roe/hold.svg diff --git a/client/public/themes/olympus/images/buttons/roe/return.svg b/frontend/server/public/themes/olympus/images/buttons/roe/return.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/roe/return.svg rename to frontend/server/public/themes/olympus/images/buttons/roe/return.svg diff --git a/client/public/themes/olympus/images/buttons/scatter/1.svg b/frontend/server/public/themes/olympus/images/buttons/scatter/1.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/scatter/1.svg rename to frontend/server/public/themes/olympus/images/buttons/scatter/1.svg diff --git a/client/public/themes/olympus/images/buttons/scatter/2.svg b/frontend/server/public/themes/olympus/images/buttons/scatter/2.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/scatter/2.svg rename to frontend/server/public/themes/olympus/images/buttons/scatter/2.svg diff --git a/client/public/themes/olympus/images/buttons/scatter/3.svg b/frontend/server/public/themes/olympus/images/buttons/scatter/3.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/scatter/3.svg rename to frontend/server/public/themes/olympus/images/buttons/scatter/3.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/aircraft.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/aircraft.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/aircraft.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/aircraft.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/explosion.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/explosion.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/explosion.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/explosion.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/groundunit.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/groundunit.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/groundunit.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/groundunit.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/helicopter.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/helicopter.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/helicopter.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/helicopter.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/more.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/more.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/more.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/more.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/navyunit.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/navyunit.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/navyunit.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/navyunit.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/sam.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/sam.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/sam.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/sam.svg diff --git a/client/public/themes/olympus/images/buttons/spawn/smoke.svg b/frontend/server/public/themes/olympus/images/buttons/spawn/smoke.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/spawn/smoke.svg rename to frontend/server/public/themes/olympus/images/buttons/spawn/smoke.svg diff --git a/client/public/themes/olympus/images/buttons/threat/evade.svg b/frontend/server/public/themes/olympus/images/buttons/threat/evade.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/threat/evade.svg rename to frontend/server/public/themes/olympus/images/buttons/threat/evade.svg diff --git a/client/public/themes/olympus/images/buttons/threat/manoeuvre.svg b/frontend/server/public/themes/olympus/images/buttons/threat/manoeuvre.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/threat/manoeuvre.svg rename to frontend/server/public/themes/olympus/images/buttons/threat/manoeuvre.svg diff --git a/client/public/themes/olympus/images/buttons/threat/none.svg b/frontend/server/public/themes/olympus/images/buttons/threat/none.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/threat/none.svg rename to frontend/server/public/themes/olympus/images/buttons/threat/none.svg diff --git a/client/public/themes/olympus/images/buttons/threat/passive.svg b/frontend/server/public/themes/olympus/images/buttons/threat/passive.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/threat/passive.svg rename to frontend/server/public/themes/olympus/images/buttons/threat/passive.svg diff --git a/client/public/themes/olympus/images/buttons/tools/draw-polygon-solid.svg b/frontend/server/public/themes/olympus/images/buttons/tools/draw-polygon-solid.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/tools/draw-polygon-solid.svg rename to frontend/server/public/themes/olympus/images/buttons/tools/draw-polygon-solid.svg diff --git a/client/public/themes/olympus/images/buttons/tools/ground.svg b/frontend/server/public/themes/olympus/images/buttons/tools/ground.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/tools/ground.svg rename to frontend/server/public/themes/olympus/images/buttons/tools/ground.svg diff --git a/client/public/themes/olympus/images/buttons/tools/pen-solid.svg b/frontend/server/public/themes/olympus/images/buttons/tools/pen-solid.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/tools/pen-solid.svg rename to frontend/server/public/themes/olympus/images/buttons/tools/pen-solid.svg diff --git a/client/public/themes/olympus/images/buttons/tools/tower.svg b/frontend/server/public/themes/olympus/images/buttons/tools/tower.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/tools/tower.svg rename to frontend/server/public/themes/olympus/images/buttons/tools/tower.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/airbase.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/airbase.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/airbase.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/airbase.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/aircraft.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/aircraft.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/aircraft.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/aircraft.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/circle-dot.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/circle-dot.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/circle-dot.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/circle-dot.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/dcs.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/dcs.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/dcs.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/dcs.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/flag.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/flag.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/flag.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/flag.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/groundunit-sam.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/groundunit-sam.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/groundunit-sam.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/groundunit-sam.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/groundunit.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/groundunit.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/groundunit.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/groundunit.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/head-side-virus-solid.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/head-side-virus-solid.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/head-side-virus-solid.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/head-side-virus-solid.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/helicopter.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/helicopter.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/helicopter.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/helicopter.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/human.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/human.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/human.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/human.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/navyunit.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/navyunit.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/navyunit.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/navyunit.svg diff --git a/client/public/themes/olympus/images/buttons/visibility/shield.svg b/frontend/server/public/themes/olympus/images/buttons/visibility/shield.svg similarity index 100% rename from client/public/themes/olympus/images/buttons/visibility/shield.svg rename to frontend/server/public/themes/olympus/images/buttons/visibility/shield.svg diff --git a/client/public/themes/olympus/images/icons/altitude.svg b/frontend/server/public/themes/olympus/images/icons/altitude.svg similarity index 100% rename from client/public/themes/olympus/images/icons/altitude.svg rename to frontend/server/public/themes/olympus/images/icons/altitude.svg diff --git a/client/public/themes/olympus/images/icons/arrow-pointer-solid.svg b/frontend/server/public/themes/olympus/images/icons/arrow-pointer-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/arrow-pointer-solid.svg rename to frontend/server/public/themes/olympus/images/icons/arrow-pointer-solid.svg diff --git a/client/public/themes/olympus/images/icons/arrows-to-eye-solid.svg b/frontend/server/public/themes/olympus/images/icons/arrows-to-eye-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/arrows-to-eye-solid.svg rename to frontend/server/public/themes/olympus/images/icons/arrows-to-eye-solid.svg diff --git a/client/public/themes/olympus/images/icons/bomb-solid.svg b/frontend/server/public/themes/olympus/images/icons/bomb-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/bomb-solid.svg rename to frontend/server/public/themes/olympus/images/icons/bomb-solid.svg diff --git a/client/public/themes/olympus/images/icons/burst-solid.svg b/frontend/server/public/themes/olympus/images/icons/burst-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/burst-solid.svg rename to frontend/server/public/themes/olympus/images/icons/burst-solid.svg diff --git a/client/public/themes/olympus/images/icons/check_square.svg b/frontend/server/public/themes/olympus/images/icons/check_square.svg similarity index 100% rename from client/public/themes/olympus/images/icons/check_square.svg rename to frontend/server/public/themes/olympus/images/icons/check_square.svg diff --git a/client/public/themes/olympus/images/icons/chevron-down-warning.svg b/frontend/server/public/themes/olympus/images/icons/chevron-down-warning.svg similarity index 100% rename from client/public/themes/olympus/images/icons/chevron-down-warning.svg rename to frontend/server/public/themes/olympus/images/icons/chevron-down-warning.svg diff --git a/client/public/themes/olympus/images/icons/chevron-down.svg b/frontend/server/public/themes/olympus/images/icons/chevron-down.svg similarity index 100% rename from client/public/themes/olympus/images/icons/chevron-down.svg rename to frontend/server/public/themes/olympus/images/icons/chevron-down.svg diff --git a/client/public/themes/olympus/images/icons/circle-info-solid.svg b/frontend/server/public/themes/olympus/images/icons/circle-info-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/circle-info-solid.svg rename to frontend/server/public/themes/olympus/images/icons/circle-info-solid.svg diff --git a/client/public/themes/olympus/images/icons/circle-question-regular.svg b/frontend/server/public/themes/olympus/images/icons/circle-question-regular.svg similarity index 100% rename from client/public/themes/olympus/images/icons/circle-question-regular.svg rename to frontend/server/public/themes/olympus/images/icons/circle-question-regular.svg diff --git a/client/public/themes/olympus/images/icons/climb.svg b/frontend/server/public/themes/olympus/images/icons/climb.svg similarity index 100% rename from client/public/themes/olympus/images/icons/climb.svg rename to frontend/server/public/themes/olympus/images/icons/climb.svg diff --git a/client/public/themes/olympus/images/icons/crosshairs-solid.svg b/frontend/server/public/themes/olympus/images/icons/crosshairs-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/crosshairs-solid.svg rename to frontend/server/public/themes/olympus/images/icons/crosshairs-solid.svg diff --git a/client/public/themes/olympus/images/icons/descent.svg b/frontend/server/public/themes/olympus/images/icons/descent.svg similarity index 100% rename from client/public/themes/olympus/images/icons/descent.svg rename to frontend/server/public/themes/olympus/images/icons/descent.svg diff --git a/client/public/themes/olympus/images/icons/diamond.svg b/frontend/server/public/themes/olympus/images/icons/diamond.svg similarity index 100% rename from client/public/themes/olympus/images/icons/diamond.svg rename to frontend/server/public/themes/olympus/images/icons/diamond.svg diff --git a/client/public/themes/olympus/images/icons/echelon-lh.svg b/frontend/server/public/themes/olympus/images/icons/echelon-lh.svg similarity index 100% rename from client/public/themes/olympus/images/icons/echelon-lh.svg rename to frontend/server/public/themes/olympus/images/icons/echelon-lh.svg diff --git a/client/public/themes/olympus/images/icons/echelon-rh.svg b/frontend/server/public/themes/olympus/images/icons/echelon-rh.svg similarity index 100% rename from client/public/themes/olympus/images/icons/echelon-rh.svg rename to frontend/server/public/themes/olympus/images/icons/echelon-rh.svg diff --git a/client/public/themes/olympus/images/icons/echelon.svg b/frontend/server/public/themes/olympus/images/icons/echelon.svg similarity index 100% rename from client/public/themes/olympus/images/icons/echelon.svg rename to frontend/server/public/themes/olympus/images/icons/echelon.svg diff --git a/client/public/themes/olympus/images/icons/explosion-solid.svg b/frontend/server/public/themes/olympus/images/icons/explosion-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/explosion-solid.svg rename to frontend/server/public/themes/olympus/images/icons/explosion-solid.svg diff --git a/client/public/themes/olympus/images/icons/eye-solid.svg b/frontend/server/public/themes/olympus/images/icons/eye-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/eye-solid.svg rename to frontend/server/public/themes/olympus/images/icons/eye-solid.svg diff --git a/client/public/themes/olympus/images/icons/fire-solid.svg b/frontend/server/public/themes/olympus/images/icons/fire-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/fire-solid.svg rename to frontend/server/public/themes/olympus/images/icons/fire-solid.svg diff --git a/client/public/themes/olympus/images/icons/follow.svg b/frontend/server/public/themes/olympus/images/icons/follow.svg similarity index 100% rename from client/public/themes/olympus/images/icons/follow.svg rename to frontend/server/public/themes/olympus/images/icons/follow.svg diff --git a/client/public/themes/olympus/images/icons/formation-end.svg b/frontend/server/public/themes/olympus/images/icons/formation-end.svg similarity index 100% rename from client/public/themes/olympus/images/icons/formation-end.svg rename to frontend/server/public/themes/olympus/images/icons/formation-end.svg diff --git a/client/public/themes/olympus/images/icons/formation-middle.svg b/frontend/server/public/themes/olympus/images/icons/formation-middle.svg similarity index 100% rename from client/public/themes/olympus/images/icons/formation-middle.svg rename to frontend/server/public/themes/olympus/images/icons/formation-middle.svg diff --git a/client/public/themes/olympus/images/icons/front.svg b/frontend/server/public/themes/olympus/images/icons/front.svg similarity index 100% rename from client/public/themes/olympus/images/icons/front.svg rename to frontend/server/public/themes/olympus/images/icons/front.svg diff --git a/client/public/themes/olympus/images/icons/fuel.svg b/frontend/server/public/themes/olympus/images/icons/fuel.svg similarity index 100% rename from client/public/themes/olympus/images/icons/fuel.svg rename to frontend/server/public/themes/olympus/images/icons/fuel.svg diff --git a/client/public/themes/olympus/images/icons/gamepad-solid.svg b/frontend/server/public/themes/olympus/images/icons/gamepad-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/gamepad-solid.svg rename to frontend/server/public/themes/olympus/images/icons/gamepad-solid.svg diff --git a/client/public/themes/olympus/images/icons/gears-solid.svg b/frontend/server/public/themes/olympus/images/icons/gears-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/gears-solid.svg rename to frontend/server/public/themes/olympus/images/icons/gears-solid.svg diff --git a/client/public/themes/olympus/images/icons/grip-lines-solid.svg b/frontend/server/public/themes/olympus/images/icons/grip-lines-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/grip-lines-solid.svg rename to frontend/server/public/themes/olympus/images/icons/grip-lines-solid.svg diff --git a/client/public/themes/olympus/images/icons/group-ground.svg b/frontend/server/public/themes/olympus/images/icons/group-ground.svg similarity index 100% rename from client/public/themes/olympus/images/icons/group-ground.svg rename to frontend/server/public/themes/olympus/images/icons/group-ground.svg diff --git a/client/public/themes/olympus/images/icons/group-navy.svg b/frontend/server/public/themes/olympus/images/icons/group-navy.svg similarity index 100% rename from client/public/themes/olympus/images/icons/group-navy.svg rename to frontend/server/public/themes/olympus/images/icons/group-navy.svg diff --git a/client/public/themes/olympus/images/icons/hand-solid.svg b/frontend/server/public/themes/olympus/images/icons/hand-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/hand-solid.svg rename to frontend/server/public/themes/olympus/images/icons/hand-solid.svg diff --git a/client/public/themes/olympus/images/icons/heading.svg b/frontend/server/public/themes/olympus/images/icons/heading.svg similarity index 100% rename from client/public/themes/olympus/images/icons/heading.svg rename to frontend/server/public/themes/olympus/images/icons/heading.svg diff --git a/client/public/themes/olympus/images/icons/health.svg b/frontend/server/public/themes/olympus/images/icons/health.svg similarity index 100% rename from client/public/themes/olympus/images/icons/health.svg rename to frontend/server/public/themes/olympus/images/icons/health.svg diff --git a/client/public/themes/olympus/images/icons/jet-fighter-up-solid.svg b/frontend/server/public/themes/olympus/images/icons/jet-fighter-up-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/jet-fighter-up-solid.svg rename to frontend/server/public/themes/olympus/images/icons/jet-fighter-up-solid.svg diff --git a/client/public/themes/olympus/images/icons/keyboard-solid.svg b/frontend/server/public/themes/olympus/images/icons/keyboard-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/keyboard-solid.svg rename to frontend/server/public/themes/olympus/images/icons/keyboard-solid.svg diff --git a/client/public/themes/olympus/images/icons/land-at-point.svg b/frontend/server/public/themes/olympus/images/icons/land-at-point.svg similarity index 100% rename from client/public/themes/olympus/images/icons/land-at-point.svg rename to frontend/server/public/themes/olympus/images/icons/land-at-point.svg diff --git a/client/public/themes/olympus/images/icons/line-abreast.svg b/frontend/server/public/themes/olympus/images/icons/line-abreast.svg similarity index 100% rename from client/public/themes/olympus/images/icons/line-abreast.svg rename to frontend/server/public/themes/olympus/images/icons/line-abreast.svg diff --git a/client/public/themes/olympus/images/icons/map-source.svg b/frontend/server/public/themes/olympus/images/icons/map-source.svg similarity index 100% rename from client/public/themes/olympus/images/icons/map-source.svg rename to frontend/server/public/themes/olympus/images/icons/map-source.svg diff --git a/client/public/themes/olympus/images/icons/miss-blue.svg b/frontend/server/public/themes/olympus/images/icons/miss-blue.svg similarity index 100% rename from client/public/themes/olympus/images/icons/miss-blue.svg rename to frontend/server/public/themes/olympus/images/icons/miss-blue.svg diff --git a/client/public/themes/olympus/images/icons/miss-red.svg b/frontend/server/public/themes/olympus/images/icons/miss-red.svg similarity index 100% rename from client/public/themes/olympus/images/icons/miss-red.svg rename to frontend/server/public/themes/olympus/images/icons/miss-red.svg diff --git a/client/public/themes/olympus/images/icons/miss.svg b/frontend/server/public/themes/olympus/images/icons/miss.svg similarity index 100% rename from client/public/themes/olympus/images/icons/miss.svg rename to frontend/server/public/themes/olympus/images/icons/miss.svg diff --git a/client/public/themes/olympus/images/icons/napalm.svg b/frontend/server/public/themes/olympus/images/icons/napalm.svg similarity index 100% rename from client/public/themes/olympus/images/icons/napalm.svg rename to frontend/server/public/themes/olympus/images/icons/napalm.svg diff --git a/client/public/themes/olympus/images/icons/person-military-pointing-solid.svg b/frontend/server/public/themes/olympus/images/icons/person-military-pointing-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/person-military-pointing-solid.svg rename to frontend/server/public/themes/olympus/images/icons/person-military-pointing-solid.svg diff --git a/client/public/themes/olympus/images/icons/pin.svg b/frontend/server/public/themes/olympus/images/icons/pin.svg similarity index 100% rename from client/public/themes/olympus/images/icons/pin.svg rename to frontend/server/public/themes/olympus/images/icons/pin.svg diff --git a/client/public/themes/olympus/images/icons/plane.svg b/frontend/server/public/themes/olympus/images/icons/plane.svg similarity index 100% rename from client/public/themes/olympus/images/icons/plane.svg rename to frontend/server/public/themes/olympus/images/icons/plane.svg diff --git a/client/public/themes/olympus/images/icons/ruler.svg b/frontend/server/public/themes/olympus/images/icons/ruler.svg similarity index 100% rename from client/public/themes/olympus/images/icons/ruler.svg rename to frontend/server/public/themes/olympus/images/icons/ruler.svg diff --git a/client/public/themes/olympus/images/icons/scenic-blue.svg b/frontend/server/public/themes/olympus/images/icons/scenic-blue.svg similarity index 100% rename from client/public/themes/olympus/images/icons/scenic-blue.svg rename to frontend/server/public/themes/olympus/images/icons/scenic-blue.svg diff --git a/client/public/themes/olympus/images/icons/scenic-red.svg b/frontend/server/public/themes/olympus/images/icons/scenic-red.svg similarity index 100% rename from client/public/themes/olympus/images/icons/scenic-red.svg rename to frontend/server/public/themes/olympus/images/icons/scenic-red.svg diff --git a/client/public/themes/olympus/images/icons/scenic.svg b/frontend/server/public/themes/olympus/images/icons/scenic.svg similarity index 100% rename from client/public/themes/olympus/images/icons/scenic.svg rename to frontend/server/public/themes/olympus/images/icons/scenic.svg diff --git a/client/public/themes/olympus/images/icons/secondaries.svg b/frontend/server/public/themes/olympus/images/icons/secondaries.svg similarity index 100% rename from client/public/themes/olympus/images/icons/secondaries.svg rename to frontend/server/public/themes/olympus/images/icons/secondaries.svg diff --git a/client/public/themes/olympus/images/icons/smog-solid.svg b/frontend/server/public/themes/olympus/images/icons/smog-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/smog-solid.svg rename to frontend/server/public/themes/olympus/images/icons/smog-solid.svg diff --git a/client/public/themes/olympus/images/icons/speed-decrease.svg b/frontend/server/public/themes/olympus/images/icons/speed-decrease.svg similarity index 100% rename from client/public/themes/olympus/images/icons/speed-decrease.svg rename to frontend/server/public/themes/olympus/images/icons/speed-decrease.svg diff --git a/client/public/themes/olympus/images/icons/speed-increase.svg b/frontend/server/public/themes/olympus/images/icons/speed-increase.svg similarity index 100% rename from client/public/themes/olympus/images/icons/speed-increase.svg rename to frontend/server/public/themes/olympus/images/icons/speed-increase.svg diff --git a/client/public/themes/olympus/images/icons/speed.svg b/frontend/server/public/themes/olympus/images/icons/speed.svg similarity index 100% rename from client/public/themes/olympus/images/icons/speed.svg rename to frontend/server/public/themes/olympus/images/icons/speed.svg diff --git a/client/public/themes/olympus/images/icons/square-check-solid.svg b/frontend/server/public/themes/olympus/images/icons/square-check-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/square-check-solid.svg rename to frontend/server/public/themes/olympus/images/icons/square-check-solid.svg diff --git a/client/public/themes/olympus/images/icons/square-regular.svg b/frontend/server/public/themes/olympus/images/icons/square-regular.svg similarity index 100% rename from client/public/themes/olympus/images/icons/square-regular.svg rename to frontend/server/public/themes/olympus/images/icons/square-regular.svg diff --git a/client/public/themes/olympus/images/icons/sword.svg b/frontend/server/public/themes/olympus/images/icons/sword.svg similarity index 100% rename from client/public/themes/olympus/images/icons/sword.svg rename to frontend/server/public/themes/olympus/images/icons/sword.svg diff --git a/client/public/themes/olympus/images/icons/trail.svg b/frontend/server/public/themes/olympus/images/icons/trail.svg similarity index 100% rename from client/public/themes/olympus/images/icons/trail.svg rename to frontend/server/public/themes/olympus/images/icons/trail.svg diff --git a/client/public/themes/olympus/images/icons/trash-can-regular.svg b/frontend/server/public/themes/olympus/images/icons/trash-can-regular.svg similarity index 100% rename from client/public/themes/olympus/images/icons/trash-can-regular.svg rename to frontend/server/public/themes/olympus/images/icons/trash-can-regular.svg diff --git a/client/public/themes/olympus/images/icons/triangle-exclamation-solid.svg b/frontend/server/public/themes/olympus/images/icons/triangle-exclamation-solid.svg similarity index 100% rename from client/public/themes/olympus/images/icons/triangle-exclamation-solid.svg rename to frontend/server/public/themes/olympus/images/icons/triangle-exclamation-solid.svg diff --git a/client/public/themes/olympus/images/icons/white-phosphorous.svg b/frontend/server/public/themes/olympus/images/icons/white-phosphorous.svg similarity index 100% rename from client/public/themes/olympus/images/icons/white-phosphorous.svg rename to frontend/server/public/themes/olympus/images/icons/white-phosphorous.svg diff --git a/client/public/themes/olympus/images/markers/airbase.svg b/frontend/server/public/themes/olympus/images/markers/airbase.svg similarity index 100% rename from client/public/themes/olympus/images/markers/airbase.svg rename to frontend/server/public/themes/olympus/images/markers/airbase.svg diff --git a/client/public/themes/olympus/images/markers/bullseye.svg b/frontend/server/public/themes/olympus/images/markers/bullseye.svg similarity index 100% rename from client/public/themes/olympus/images/markers/bullseye.svg rename to frontend/server/public/themes/olympus/images/markers/bullseye.svg diff --git a/client/public/themes/olympus/images/markers/draw.svg b/frontend/server/public/themes/olympus/images/markers/draw.svg similarity index 100% rename from client/public/themes/olympus/images/markers/draw.svg rename to frontend/server/public/themes/olympus/images/markers/draw.svg diff --git a/client/public/themes/olympus/images/markers/marker-icon.png b/frontend/server/public/themes/olympus/images/markers/marker-icon.png similarity index 100% rename from client/public/themes/olympus/images/markers/marker-icon.png rename to frontend/server/public/themes/olympus/images/markers/marker-icon.png diff --git a/client/public/themes/olympus/images/markers/marker-shadow.png b/frontend/server/public/themes/olympus/images/markers/marker-shadow.png similarity index 100% rename from client/public/themes/olympus/images/markers/marker-shadow.png rename to frontend/server/public/themes/olympus/images/markers/marker-shadow.png diff --git a/client/public/themes/olympus/images/markers/move.svg b/frontend/server/public/themes/olympus/images/markers/move.svg similarity index 100% rename from client/public/themes/olympus/images/markers/move.svg rename to frontend/server/public/themes/olympus/images/markers/move.svg diff --git a/client/public/themes/olympus/images/markers/smoke.svg b/frontend/server/public/themes/olympus/images/markers/smoke.svg similarity index 100% rename from client/public/themes/olympus/images/markers/smoke.svg rename to frontend/server/public/themes/olympus/images/markers/smoke.svg diff --git a/client/public/themes/olympus/images/markers/target - Copy.svg b/frontend/server/public/themes/olympus/images/markers/target - Copy.svg similarity index 100% rename from client/public/themes/olympus/images/markers/target - Copy.svg rename to frontend/server/public/themes/olympus/images/markers/target - Copy.svg diff --git a/client/public/themes/olympus/images/markers/target.svg b/frontend/server/public/themes/olympus/images/markers/target.svg similarity index 100% rename from client/public/themes/olympus/images/markers/target.svg rename to frontend/server/public/themes/olympus/images/markers/target.svg diff --git a/client/public/themes/olympus/images/parrot/parrot.png b/frontend/server/public/themes/olympus/images/parrot/parrot.png similarity index 100% rename from client/public/themes/olympus/images/parrot/parrot.png rename to frontend/server/public/themes/olympus/images/parrot/parrot.png diff --git a/client/public/themes/olympus/images/splash/1.jpg b/frontend/server/public/themes/olympus/images/splash/1.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/1.jpg rename to frontend/server/public/themes/olympus/images/splash/1.jpg diff --git a/client/public/themes/olympus/images/splash/1.png b/frontend/server/public/themes/olympus/images/splash/1.png similarity index 100% rename from client/public/themes/olympus/images/splash/1.png rename to frontend/server/public/themes/olympus/images/splash/1.png diff --git a/client/public/themes/olympus/images/splash/2.jpg b/frontend/server/public/themes/olympus/images/splash/2.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/2.jpg rename to frontend/server/public/themes/olympus/images/splash/2.jpg diff --git a/client/public/themes/olympus/images/splash/3.jpg b/frontend/server/public/themes/olympus/images/splash/3.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/3.jpg rename to frontend/server/public/themes/olympus/images/splash/3.jpg diff --git a/client/public/themes/olympus/images/splash/4.jpg b/frontend/server/public/themes/olympus/images/splash/4.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/4.jpg rename to frontend/server/public/themes/olympus/images/splash/4.jpg diff --git a/client/public/themes/olympus/images/splash/5.jpg b/frontend/server/public/themes/olympus/images/splash/5.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/5.jpg rename to frontend/server/public/themes/olympus/images/splash/5.jpg diff --git a/client/public/themes/olympus/images/splash/6.jpg b/frontend/server/public/themes/olympus/images/splash/6.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/6.jpg rename to frontend/server/public/themes/olympus/images/splash/6.jpg diff --git a/client/public/themes/olympus/images/splash/7.jpg b/frontend/server/public/themes/olympus/images/splash/7.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/7.jpg rename to frontend/server/public/themes/olympus/images/splash/7.jpg diff --git a/client/public/themes/olympus/images/splash/8.jpg b/frontend/server/public/themes/olympus/images/splash/8.jpg similarity index 100% rename from client/public/themes/olympus/images/splash/8.jpg rename to frontend/server/public/themes/olympus/images/splash/8.jpg diff --git a/client/public/themes/olympus/images/states/attack.svg b/frontend/server/public/themes/olympus/images/states/attack.svg similarity index 100% rename from client/public/themes/olympus/images/states/attack.svg rename to frontend/server/public/themes/olympus/images/states/attack.svg diff --git a/client/public/themes/olympus/images/states/awacs.svg b/frontend/server/public/themes/olympus/images/states/awacs.svg similarity index 100% rename from client/public/themes/olympus/images/states/awacs.svg rename to frontend/server/public/themes/olympus/images/states/awacs.svg diff --git a/client/public/themes/olympus/images/states/dcs.svg b/frontend/server/public/themes/olympus/images/states/dcs.svg similarity index 100% rename from client/public/themes/olympus/images/states/dcs.svg rename to frontend/server/public/themes/olympus/images/states/dcs.svg diff --git a/client/public/themes/olympus/images/states/follow.svg b/frontend/server/public/themes/olympus/images/states/follow.svg similarity index 100% rename from client/public/themes/olympus/images/states/follow.svg rename to frontend/server/public/themes/olympus/images/states/follow.svg diff --git a/client/public/themes/olympus/images/states/human.svg b/frontend/server/public/themes/olympus/images/states/human.svg similarity index 100% rename from client/public/themes/olympus/images/states/human.svg rename to frontend/server/public/themes/olympus/images/states/human.svg diff --git a/client/public/themes/olympus/images/states/idle.svg b/frontend/server/public/themes/olympus/images/states/idle.svg similarity index 100% rename from client/public/themes/olympus/images/states/idle.svg rename to frontend/server/public/themes/olympus/images/states/idle.svg diff --git a/client/public/themes/olympus/images/states/land-at-point.svg b/frontend/server/public/themes/olympus/images/states/land-at-point.svg similarity index 100% rename from client/public/themes/olympus/images/states/land-at-point.svg rename to frontend/server/public/themes/olympus/images/states/land-at-point.svg diff --git a/client/public/themes/olympus/images/states/miss-on-purpose.svg b/frontend/server/public/themes/olympus/images/states/miss-on-purpose.svg similarity index 100% rename from client/public/themes/olympus/images/states/miss-on-purpose.svg rename to frontend/server/public/themes/olympus/images/states/miss-on-purpose.svg diff --git a/client/public/themes/olympus/images/states/no-task.svg b/frontend/server/public/themes/olympus/images/states/no-task.svg similarity index 100% rename from client/public/themes/olympus/images/states/no-task.svg rename to frontend/server/public/themes/olympus/images/states/no-task.svg diff --git a/client/public/themes/olympus/images/states/off.svg b/frontend/server/public/themes/olympus/images/states/off.svg similarity index 100% rename from client/public/themes/olympus/images/states/off.svg rename to frontend/server/public/themes/olympus/images/states/off.svg diff --git a/client/public/themes/olympus/images/states/refuel.svg b/frontend/server/public/themes/olympus/images/states/refuel.svg similarity index 100% rename from client/public/themes/olympus/images/states/refuel.svg rename to frontend/server/public/themes/olympus/images/states/refuel.svg diff --git a/client/public/themes/olympus/images/states/rtb.svg b/frontend/server/public/themes/olympus/images/states/rtb.svg similarity index 100% rename from client/public/themes/olympus/images/states/rtb.svg rename to frontend/server/public/themes/olympus/images/states/rtb.svg diff --git a/client/public/themes/olympus/images/states/scenic-aaa.svg b/frontend/server/public/themes/olympus/images/states/scenic-aaa.svg similarity index 100% rename from client/public/themes/olympus/images/states/scenic-aaa.svg rename to frontend/server/public/themes/olympus/images/states/scenic-aaa.svg diff --git a/client/public/themes/olympus/images/states/simulate-fire-fight.svg b/frontend/server/public/themes/olympus/images/states/simulate-fire-fight.svg similarity index 100% rename from client/public/themes/olympus/images/states/simulate-fire-fight.svg rename to frontend/server/public/themes/olympus/images/states/simulate-fire-fight.svg diff --git a/client/public/themes/olympus/images/states/tanker.svg b/frontend/server/public/themes/olympus/images/states/tanker.svg similarity index 100% rename from client/public/themes/olympus/images/states/tanker.svg rename to frontend/server/public/themes/olympus/images/states/tanker.svg diff --git a/client/public/themes/olympus/images/units/aircraft.svg b/frontend/server/public/themes/olympus/images/units/aircraft.svg similarity index 100% rename from client/public/themes/olympus/images/units/aircraft.svg rename to frontend/server/public/themes/olympus/images/units/aircraft.svg diff --git a/client/public/themes/olympus/images/units/bomb.svg b/frontend/server/public/themes/olympus/images/units/bomb.svg similarity index 100% rename from client/public/themes/olympus/images/units/bomb.svg rename to frontend/server/public/themes/olympus/images/units/bomb.svg diff --git a/client/public/themes/olympus/images/units/death.svg b/frontend/server/public/themes/olympus/images/units/death.svg similarity index 100% rename from client/public/themes/olympus/images/units/death.svg rename to frontend/server/public/themes/olympus/images/units/death.svg diff --git a/client/public/themes/olympus/images/units/groundunit-aaa.svg b/frontend/server/public/themes/olympus/images/units/groundunit-aaa.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-aaa.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-aaa.svg diff --git a/client/public/themes/olympus/images/units/groundunit-apc.svg b/frontend/server/public/themes/olympus/images/units/groundunit-apc.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-apc.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-apc.svg diff --git a/client/public/themes/olympus/images/units/groundunit-artillery.svg b/frontend/server/public/themes/olympus/images/units/groundunit-artillery.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-artillery.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-artillery.svg diff --git a/client/public/themes/olympus/images/units/groundunit-ewr.svg b/frontend/server/public/themes/olympus/images/units/groundunit-ewr.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-ewr.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-ewr.svg diff --git a/client/public/themes/olympus/images/units/groundunit-infantry.svg b/frontend/server/public/themes/olympus/images/units/groundunit-infantry.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-infantry.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-infantry.svg diff --git a/client/public/themes/olympus/images/units/groundunit-sam-launcher.svg b/frontend/server/public/themes/olympus/images/units/groundunit-sam-launcher.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-sam-launcher.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-sam-launcher.svg diff --git a/client/public/themes/olympus/images/units/groundunit-sam-radar.svg b/frontend/server/public/themes/olympus/images/units/groundunit-sam-radar.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-sam-radar.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-sam-radar.svg diff --git a/client/public/themes/olympus/images/units/groundunit-sam.svg b/frontend/server/public/themes/olympus/images/units/groundunit-sam.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-sam.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-sam.svg diff --git a/client/public/themes/olympus/images/units/groundunit-tactical.svg b/frontend/server/public/themes/olympus/images/units/groundunit-tactical.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-tactical.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-tactical.svg diff --git a/client/public/themes/olympus/images/units/groundunit-tank.svg b/frontend/server/public/themes/olympus/images/units/groundunit-tank.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-tank.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-tank.svg diff --git a/client/public/themes/olympus/images/units/groundunit-truck.svg b/frontend/server/public/themes/olympus/images/units/groundunit-truck.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit-truck.svg rename to frontend/server/public/themes/olympus/images/units/groundunit-truck.svg diff --git a/client/public/themes/olympus/images/units/groundunit.svg b/frontend/server/public/themes/olympus/images/units/groundunit.svg similarity index 100% rename from client/public/themes/olympus/images/units/groundunit.svg rename to frontend/server/public/themes/olympus/images/units/groundunit.svg diff --git a/client/public/themes/olympus/images/units/helicopter.svg b/frontend/server/public/themes/olympus/images/units/helicopter.svg similarity index 100% rename from client/public/themes/olympus/images/units/helicopter.svg rename to frontend/server/public/themes/olympus/images/units/helicopter.svg diff --git a/client/public/themes/olympus/images/units/missile.svg b/frontend/server/public/themes/olympus/images/units/missile.svg similarity index 100% rename from client/public/themes/olympus/images/units/missile.svg rename to frontend/server/public/themes/olympus/images/units/missile.svg diff --git a/client/public/themes/olympus/images/units/navyunit.svg b/frontend/server/public/themes/olympus/images/units/navyunit.svg similarity index 100% rename from client/public/themes/olympus/images/units/navyunit.svg rename to frontend/server/public/themes/olympus/images/units/navyunit.svg diff --git a/client/public/themes/olympus/images/units/static.svg b/frontend/server/public/themes/olympus/images/units/static.svg similarity index 100% rename from client/public/themes/olympus/images/units/static.svg rename to frontend/server/public/themes/olympus/images/units/static.svg diff --git a/client/public/themes/olympus/theme.css b/frontend/server/public/themes/olympus/theme.css similarity index 100% rename from client/public/themes/olympus/theme.css rename to frontend/server/public/themes/olympus/theme.css diff --git a/client/public/themes/parrot/images/parrot.svg b/frontend/server/public/themes/parrot/images/parrot.svg similarity index 100% rename from client/public/themes/parrot/images/parrot.svg rename to frontend/server/public/themes/parrot/images/parrot.svg diff --git a/client/public/themes/parrot/theme.css b/frontend/server/public/themes/parrot/theme.css similarity index 100% rename from client/public/themes/parrot/theme.css rename to frontend/server/public/themes/parrot/theme.css diff --git a/client/routes/api/airbases.js b/frontend/server/routes/api/airbases.js similarity index 100% rename from client/routes/api/airbases.js rename to frontend/server/routes/api/airbases.js diff --git a/client/routes/api/atc.js b/frontend/server/routes/api/atc.js similarity index 100% rename from client/routes/api/atc.js rename to frontend/server/routes/api/atc.js diff --git a/client/routes/api/databases.js b/frontend/server/routes/api/databases.js similarity index 100% rename from client/routes/api/databases.js rename to frontend/server/routes/api/databases.js diff --git a/client/routes/api/elevation.js b/frontend/server/routes/api/elevation.js similarity index 77% rename from client/routes/api/elevation.js rename to frontend/server/routes/api/elevation.js index 33c2e926..14990bb1 100644 --- a/client/routes/api/elevation.js +++ b/frontend/server/routes/api/elevation.js @@ -4,14 +4,14 @@ const router = express.Router(); const TileSet = require('srtm-elevation').TileSet; const SRTMElevationDownloader = require('srtm-elevation').SRTMElevationDownloader; -let rawdata = fs.readFileSync('../olympus.json'); +let rawdata = fs.readFileSync('../../olympus.json'); let config = JSON.parse(rawdata); var tileset = null; -if (config["client"] === undefined || config["client"]["elevationProvider"] === undefined) +if (config["frontend"] === undefined || config["frontend"]["elevationProvider"] === undefined) tileset = new TileSet('./hgt'); else - tileset = new TileSet('./hgt', {downloader: new SRTMElevationDownloader('./hgt', config["client"]["elevationProvider"])}); + tileset = new TileSet('./hgt', {downloader: new SRTMElevationDownloader('./hgt', config["frontend"]["elevationProvider"])}); router.get( "/:lat/:lng", ( req, res ) => { tileset.getElevation([req.params.lat, req.params.lng], function(err, elevation) { diff --git a/client/routes/index.js b/frontend/server/routes/index.js similarity index 100% rename from client/routes/index.js rename to frontend/server/routes/index.js diff --git a/client/routes/plugins.js b/frontend/server/routes/plugins.js similarity index 100% rename from client/routes/plugins.js rename to frontend/server/routes/plugins.js diff --git a/client/routes/resources.js b/frontend/server/routes/resources.js similarity index 100% rename from client/routes/resources.js rename to frontend/server/routes/resources.js diff --git a/client/routes/uikit.js b/frontend/server/routes/uikit.js similarity index 100% rename from client/routes/uikit.js rename to frontend/server/routes/uikit.js diff --git a/client/routes/users.js b/frontend/server/routes/users.js similarity index 100% rename from client/routes/users.js rename to frontend/server/routes/users.js diff --git a/frontend/server/scripts/build-release.bat b/frontend/server/scripts/build-release.bat new file mode 100644 index 00000000..d415239d --- /dev/null +++ b/frontend/server/scripts/build-release.bat @@ -0,0 +1,12 @@ +call .\scripts\copy.bat + +echo D|xcopy /Y /S /E .\bin ..\..\build\frontend\bin +echo D|xcopy /Y /S /E .\public ..\..\build\frontend\public +echo D|xcopy /Y /S /E .\routes ..\..\build\frontend\routes +echo D|xcopy /Y /S /E .\views ..\..\build\frontend\views + +echo F|xcopy /Y .\app.js ..\..\build\frontend\app.js +echo F|xcopy /Y .\client.js ..\..\build\frontend\client.js +echo F|xcopy /Y .\package.json ..\..\build\frontend\package.json + +echo F|xcopy /Y /I .\*.vbs ..\..\build\frontend \ No newline at end of file diff --git a/frontend/server/scripts/copy.bat b/frontend/server/scripts/copy.bat new file mode 100644 index 00000000..170cff94 --- /dev/null +++ b/frontend/server/scripts/copy.bat @@ -0,0 +1,2 @@ +echo F|xcopy /Y ..\website\node_modules\leaflet\dist\leaflet.css .\public\stylesheets\leaflet\leaflet.css +echo F|xcopy /Y ..\website\node_modules\leaflet-gesture-handling\dist\leaflet-gesture-handling.css .\public\stylesheets\leaflet\leaflet-gesture-handling.css diff --git a/frontend/server/scripts/create-mock-dcs.bat b/frontend/server/scripts/create-mock-dcs.bat new file mode 100644 index 00000000..1d621eb9 --- /dev/null +++ b/frontend/server/scripts/create-mock-dcs.bat @@ -0,0 +1,2 @@ +echo F|xcopy /Y "..\..\olympus.json" "..\..\mock-dcs\Config\olympus.json" +echo D|xcopy /Y /S /E "..\..\databases" "..\..\mock-dcs\Mods\Services\Olympus\databases" \ No newline at end of file diff --git a/frontend/server/scripts/demo-server.bat b/frontend/server/scripts/demo-server.bat new file mode 100644 index 00000000..27a06af6 --- /dev/null +++ b/frontend/server/scripts/demo-server.bat @@ -0,0 +1,3 @@ +call .\scripts\copy.bat +call .\scripts\create-mock-dcs.bat +node .\bin\demo --config %1 \ No newline at end of file diff --git a/client/server.vbs b/frontend/server/server.vbs similarity index 100% rename from client/server.vbs rename to frontend/server/server.vbs diff --git a/client/views/contextmenus/airbase.ejs b/frontend/server/views/contextmenus/airbase.ejs similarity index 100% rename from client/views/contextmenus/airbase.ejs rename to frontend/server/views/contextmenus/airbase.ejs diff --git a/client/views/contextmenus/airbasespawn.ejs b/frontend/server/views/contextmenus/airbasespawn.ejs similarity index 100% rename from client/views/contextmenus/airbasespawn.ejs rename to frontend/server/views/contextmenus/airbasespawn.ejs diff --git a/client/views/contextmenus/coalitionarea.ejs b/frontend/server/views/contextmenus/coalitionarea.ejs similarity index 100% rename from client/views/contextmenus/coalitionarea.ejs rename to frontend/server/views/contextmenus/coalitionarea.ejs diff --git a/client/views/contextmenus/map.ejs b/frontend/server/views/contextmenus/map.ejs similarity index 100% rename from client/views/contextmenus/map.ejs rename to frontend/server/views/contextmenus/map.ejs diff --git a/client/views/contextmenus/unit.ejs b/frontend/server/views/contextmenus/unit.ejs similarity index 100% rename from client/views/contextmenus/unit.ejs rename to frontend/server/views/contextmenus/unit.ejs diff --git a/client/views/index.ejs b/frontend/server/views/index.ejs similarity index 100% rename from client/views/index.ejs rename to frontend/server/views/index.ejs diff --git a/client/views/other/dialogs.ejs b/frontend/server/views/other/dialogs.ejs similarity index 100% rename from client/views/other/dialogs.ejs rename to frontend/server/views/other/dialogs.ejs diff --git a/client/views/other/dialogs/advancedsettings.ejs b/frontend/server/views/other/dialogs/advancedsettings.ejs similarity index 100% rename from client/views/other/dialogs/advancedsettings.ejs rename to frontend/server/views/other/dialogs/advancedsettings.ejs diff --git a/client/views/other/dialogs/commandmodesettings.ejs b/frontend/server/views/other/dialogs/commandmodesettings.ejs similarity index 100% rename from client/views/other/dialogs/commandmodesettings.ejs rename to frontend/server/views/other/dialogs/commandmodesettings.ejs diff --git a/client/views/other/dialogs/customformation.ejs b/frontend/server/views/other/dialogs/customformation.ejs similarity index 100% rename from client/views/other/dialogs/customformation.ejs rename to frontend/server/views/other/dialogs/customformation.ejs diff --git a/client/views/other/dialogs/importexport.ejs b/frontend/server/views/other/dialogs/importexport.ejs similarity index 100% rename from client/views/other/dialogs/importexport.ejs rename to frontend/server/views/other/dialogs/importexport.ejs diff --git a/client/views/other/dialogs/slowdelete.ejs b/frontend/server/views/other/dialogs/slowdelete.ejs similarity index 100% rename from client/views/other/dialogs/slowdelete.ejs rename to frontend/server/views/other/dialogs/slowdelete.ejs diff --git a/client/views/other/dialogs/splash.ejs b/frontend/server/views/other/dialogs/splash.ejs similarity index 100% rename from client/views/other/dialogs/splash.ejs rename to frontend/server/views/other/dialogs/splash.ejs diff --git a/client/views/other/popups.ejs b/frontend/server/views/other/popups.ejs similarity index 100% rename from client/views/other/popups.ejs rename to frontend/server/views/other/popups.ejs diff --git a/client/views/panels/connectionstatus.ejs b/frontend/server/views/panels/connectionstatus.ejs similarity index 100% rename from client/views/panels/connectionstatus.ejs rename to frontend/server/views/panels/connectionstatus.ejs diff --git a/client/views/panels/hotgroup.ejs b/frontend/server/views/panels/hotgroup.ejs similarity index 100% rename from client/views/panels/hotgroup.ejs rename to frontend/server/views/panels/hotgroup.ejs diff --git a/client/views/panels/logpanel.ejs b/frontend/server/views/panels/logpanel.ejs similarity index 100% rename from client/views/panels/logpanel.ejs rename to frontend/server/views/panels/logpanel.ejs diff --git a/client/views/panels/mouseinfo.ejs b/frontend/server/views/panels/mouseinfo.ejs similarity index 100% rename from client/views/panels/mouseinfo.ejs rename to frontend/server/views/panels/mouseinfo.ejs diff --git a/client/views/panels/serverstatus.ejs b/frontend/server/views/panels/serverstatus.ejs similarity index 100% rename from client/views/panels/serverstatus.ejs rename to frontend/server/views/panels/serverstatus.ejs diff --git a/client/views/panels/unitcontrol.ejs b/frontend/server/views/panels/unitcontrol.ejs similarity index 100% rename from client/views/panels/unitcontrol.ejs rename to frontend/server/views/panels/unitcontrol.ejs diff --git a/client/views/panels/unitinfo.ejs b/frontend/server/views/panels/unitinfo.ejs similarity index 100% rename from client/views/panels/unitinfo.ejs rename to frontend/server/views/panels/unitinfo.ejs diff --git a/client/views/panels/unitlist.ejs b/frontend/server/views/panels/unitlist.ejs similarity index 100% rename from client/views/panels/unitlist.ejs rename to frontend/server/views/panels/unitlist.ejs diff --git a/client/views/toolbars/commandmode.ejs b/frontend/server/views/toolbars/commandmode.ejs similarity index 100% rename from client/views/toolbars/commandmode.ejs rename to frontend/server/views/toolbars/commandmode.ejs diff --git a/client/views/toolbars/primary.ejs b/frontend/server/views/toolbars/primary.ejs similarity index 100% rename from client/views/toolbars/primary.ejs rename to frontend/server/views/toolbars/primary.ejs diff --git a/client/views/uikit/uikit.ejs b/frontend/server/views/uikit/uikit.ejs similarity index 100% rename from client/views/uikit/uikit.ejs rename to frontend/server/views/uikit/uikit.ejs diff --git a/frontend/setup.bat b/frontend/setup.bat new file mode 100644 index 00000000..54ff5d29 --- /dev/null +++ b/frontend/setup.bat @@ -0,0 +1,15 @@ +cd website + +call npm install +call npm install -g watchify babelify tsify +call npm run build-debug + +cd .. + +cd server + +call npm install + +cd .. + +cd . > setup \ No newline at end of file diff --git a/client/.vscode/launch.json b/frontend/website/.vscode/launch.json similarity index 57% rename from client/.vscode/launch.json rename to frontend/website/.vscode/launch.json index b0f7480e..50f1a45e 100644 --- a/client/.vscode/launch.json +++ b/frontend/website/.vscode/launch.json @@ -13,19 +13,7 @@ "sourceMapPathOverrides": { "src/*": "${workspaceFolder}/src/*" }, - "preLaunchTask": "server", - "port": 9222 - }, - { - "type": "chrome", - "request": "launch", - "name": "Launch Chrome (No DCS)", - "url": "http://localhost:3000", - "webRoot": "${workspaceFolder}/public/", - "sourceMapPathOverrides": { - "src/*": "${workspaceFolder}/src/*" - }, - "preLaunchTask": "server-nodcs", + "preLaunchTask": "watch", "port": 9222 } ] diff --git a/frontend/website/.vscode/tasks.json b/frontend/website/.vscode/tasks.json new file mode 100644 index 00000000..88db0e1e --- /dev/null +++ b/frontend/website/.vscode/tasks.json @@ -0,0 +1,29 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "check-setup", + "type": "shell", + "command": "cd .. ; ./check_setup.bat", + "isBackground": false + }, + { + "label": "watch", + "type": "shell", + "command": "./scripts/watch.bat", + "isBackground": true, + "problemMatcher":{ + "owner": "custom", + "base": "$tsc-watch", + "background": { + "activeOnStart": true, + "beginsPattern": "watchify", + "endsPattern": "bytes written" + } + }, + "dependsOn": ["check-setup"] + } + ] +} \ No newline at end of file diff --git a/client/@types/olympus/index.d.ts b/frontend/website/@types/olympus/index.d.ts similarity index 99% rename from client/@types/olympus/index.d.ts rename to frontend/website/@types/olympus/index.d.ts index 30f2d79e..8886a56c 100644 --- a/client/@types/olympus/index.d.ts +++ b/frontend/website/@types/olympus/index.d.ts @@ -497,6 +497,7 @@ declare module "interfaces" { location: LatLng; altitude?: number; loadout?: string; + skill?: string; liveryID: string; } export interface ObjectIconOptions { @@ -907,6 +908,7 @@ declare module "controls/unitspawnmenu" { getLoadoutPreview(): HTMLDivElement; getAltitudeSlider(): Slider; setShowLoadout(showLoadout: boolean): void; + setShowSkill(showSkill: boolean): void; setShowAltitudeSlider(showAltitudeSlider: boolean): void; } export class AircraftSpawnMenu extends UnitSpawnMenu { @@ -2017,9 +2019,6 @@ declare module "schemas/schema" { getSchema(): AnySchemaObject; validate(data: any): any; } - export class AirbasesJSONSchemaValidator extends JSONSchemaValidator { - constructor(); - } export class ImportFileJSONSchemaValidator extends JSONSchemaValidator { constructor(); } diff --git a/client/package.json b/frontend/website/package.json similarity index 59% rename from client/package.json rename to frontend/website/package.json index 7928d875..4e08e622 100644 --- a/client/package.json +++ b/frontend/website/package.json @@ -1,38 +1,12 @@ { - "name": "DCSOlympus", - "main": "client.js", + "name": "DCSOlympus Website", "version": "{{OLYMPUS_VERSION_NUMBER}}", "private": true, "scripts": { - "build-debug": "call ./scripts/build-debug.bat", - "build-release": "call ./scripts/build-release.bat", "emit-declarations": "call ./scripts/emit-declarations.bat", - "server": "node ./bin/www", - "debug": "call ./scripts/debug.bat", - "debug-nodcs": "call ./scripts/debug-nodcs.bat", - "watch": "call ./scripts/watch.bat", - "client": "electron ." - }, - "dependencies": { - "appjs": "^0.0.20", - "appjs-win32": "^0.0.19", - "body-parser": "^1.20.2", - "debug": "~2.6.9", - "ejs": "^3.1.8", - "electron": "^28.0.0", - "express": "^4.18.2", - "express-basic-auth": "^1.2.1", - "http-proxy-middleware": "^2.0.6", - "js-sha256": "^0.10.1", - "morgan": "~1.9.1", - "open": "^10.0.0", - "regedit": "^5.1.2", - "save": "^2.9.0", - "sha256": "^0.2.0", - "srtm-elevation": "^2.1.2", - "tcp-ping-port": "^1.0.1", - "uuid": "^9.0.1", - "yargs": "^17.7.2" + "build-release": "call ./scripts/build-release.bat", + "build-debug": "call ./scripts/build-debug.bat", + "watch": "call ./scripts/watch.bat" }, "devDependencies": { "@babel/preset-env": "^7.21.4", @@ -64,6 +38,7 @@ "tslib": "latest", "typescript": "^4.9.4", "usng.js": "^0.4.5", - "watchify": "^4.0.0" + "watchify": "^4.0.0", + "js-sha256": "^0.10.1" } } diff --git a/frontend/website/plugins/_boilerplate/copy.bat b/frontend/website/plugins/_boilerplate/copy.bat new file mode 100644 index 00000000..be0fc21e --- /dev/null +++ b/frontend/website/plugins/_boilerplate/copy.bat @@ -0,0 +1,11 @@ +set plugin-name=boilerplateplugin + +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name% + +copy .\\index.js .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\index.js +copy .\\plugin.json .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\plugin.json +copy .\\style.css .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\style.css + + +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\images +copy .\\images\\*.* .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\images\\ \ No newline at end of file diff --git a/client/plugins/_boilerplate/images/placeholder1x1.png b/frontend/website/plugins/_boilerplate/images/placeholder1x1.png similarity index 100% rename from client/plugins/_boilerplate/images/placeholder1x1.png rename to frontend/website/plugins/_boilerplate/images/placeholder1x1.png diff --git a/client/plugins/_boilerplate/package.json b/frontend/website/plugins/_boilerplate/package.json similarity index 100% rename from client/plugins/_boilerplate/package.json rename to frontend/website/plugins/_boilerplate/package.json diff --git a/client/plugins/_boilerplate/plugin.json b/frontend/website/plugins/_boilerplate/plugin.json similarity index 100% rename from client/plugins/_boilerplate/plugin.json rename to frontend/website/plugins/_boilerplate/plugin.json diff --git a/client/plugins/_boilerplate/readme.md b/frontend/website/plugins/_boilerplate/readme.md similarity index 100% rename from client/plugins/_boilerplate/readme.md rename to frontend/website/plugins/_boilerplate/readme.md diff --git a/client/plugins/_boilerplate/src/boilerplate.ts b/frontend/website/plugins/_boilerplate/src/boilerplate.ts similarity index 100% rename from client/plugins/_boilerplate/src/boilerplate.ts rename to frontend/website/plugins/_boilerplate/src/boilerplate.ts diff --git a/client/plugins/_boilerplate/src/index.ts b/frontend/website/plugins/_boilerplate/src/index.ts similarity index 100% rename from client/plugins/_boilerplate/src/index.ts rename to frontend/website/plugins/_boilerplate/src/index.ts diff --git a/client/plugins/_boilerplate/style.css b/frontend/website/plugins/_boilerplate/style.css similarity index 100% rename from client/plugins/_boilerplate/style.css rename to frontend/website/plugins/_boilerplate/style.css diff --git a/client/plugins/_boilerplate/tsconfig.json b/frontend/website/plugins/_boilerplate/tsconfig.json similarity index 100% rename from client/plugins/_boilerplate/tsconfig.json rename to frontend/website/plugins/_boilerplate/tsconfig.json diff --git a/frontend/website/plugins/controltips/copy.bat b/frontend/website/plugins/controltips/copy.bat new file mode 100644 index 00000000..867598a7 --- /dev/null +++ b/frontend/website/plugins/controltips/copy.bat @@ -0,0 +1,7 @@ +set plugin-name=controltipsplugin + +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name% + +copy .\\index.js .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\index.js +copy .\\plugin.json .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\plugin.json +copy .\\style.css .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\style.css \ No newline at end of file diff --git a/client/plugins/controltips/package.json b/frontend/website/plugins/controltips/package.json similarity index 100% rename from client/plugins/controltips/package.json rename to frontend/website/plugins/controltips/package.json diff --git a/client/plugins/databasemanager/plugin.json b/frontend/website/plugins/controltips/plugin.json similarity index 100% rename from client/plugins/databasemanager/plugin.json rename to frontend/website/plugins/controltips/plugin.json diff --git a/client/plugins/controltips/src/controltipsplugin.ts b/frontend/website/plugins/controltips/src/controltipsplugin.ts similarity index 100% rename from client/plugins/controltips/src/controltipsplugin.ts rename to frontend/website/plugins/controltips/src/controltipsplugin.ts diff --git a/client/plugins/controltips/src/index.ts b/frontend/website/plugins/controltips/src/index.ts similarity index 100% rename from client/plugins/controltips/src/index.ts rename to frontend/website/plugins/controltips/src/index.ts diff --git a/frontend/website/plugins/controltips/style.css b/frontend/website/plugins/controltips/style.css new file mode 100644 index 00000000..0ab48856 --- /dev/null +++ b/frontend/website/plugins/controltips/style.css @@ -0,0 +1,33 @@ +#control-tips-panel { + align-self: center; + display: flex; + flex-flow: column wrap; + font-size: 13px; + justify-self: flex-end; + position: absolute; + right: 10px; + row-gap: 20px; + text-align: right; + z-index: 999; +} + +#control-tips-panel>* { + align-items: center; + align-self: end; + background-color: var(--background-steel); + border-radius: var(--border-radius-md); + color: white; + column-gap: 8px; + display: flex; + justify-items: right; + opacity: .9; + padding: 5px; + width: fit-content; +} + +#control-tips-panel>*>.key { + background-color: var(--background-grey); + border-radius: var(--border-radius-sm); + color: white; + padding: 1px 4px; +} \ No newline at end of file diff --git a/client/plugins/controltips/tsconfig.json b/frontend/website/plugins/controltips/tsconfig.json similarity index 100% rename from client/plugins/controltips/tsconfig.json rename to frontend/website/plugins/controltips/tsconfig.json diff --git a/client/plugins/databasemanager/.vscode/launch.json b/frontend/website/plugins/databasemanager/.vscode/launch.json similarity index 100% rename from client/plugins/databasemanager/.vscode/launch.json rename to frontend/website/plugins/databasemanager/.vscode/launch.json diff --git a/client/plugins/databasemanager/.vscode/tasks.json b/frontend/website/plugins/databasemanager/.vscode/tasks.json similarity index 100% rename from client/plugins/databasemanager/.vscode/tasks.json rename to frontend/website/plugins/databasemanager/.vscode/tasks.json diff --git a/frontend/website/plugins/databasemanager/copy.bat b/frontend/website/plugins/databasemanager/copy.bat new file mode 100644 index 00000000..56bc3cea --- /dev/null +++ b/frontend/website/plugins/databasemanager/copy.bat @@ -0,0 +1,7 @@ +set plugin-name=databasemanager + +mkdir .\\..\\..\\..\\server\\public\\plugins\\%plugin-name% + +copy .\\index.js .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\index.js +copy .\\plugin.json .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\plugin.json +copy .\\style.css .\\..\\..\\..\\server\\public\\plugins\\%plugin-name%\\style.css \ No newline at end of file diff --git a/frontend/website/plugins/databasemanager/index.js b/frontend/website/plugins/databasemanager/index.js new file mode 100644 index 00000000..9305ff01 --- /dev/null +++ b/frontend/website/plugins/databasemanager/index.js @@ -0,0 +1 @@ +!function(){var _$utils_8={};function addStringInput(a,t,e,i,n,s){var _=document.createElement("div"),l=document.createElement("dt"),r=document.createElement("dd");l.innerText=t;var o=document.createElement("input");o.value=e,o.textContent=e,o.type=null!=i?i:"text",o.disabled=null!=s&&s,o.onchange=()=>n(o.value),r.appendChild(o),_.appendChild(l),_.appendChild(r),_.classList.add("input-row"),a.appendChild(_)}function addDropdownInput(a,t,e,i,n,s){var _=document.createElement("div"),l=document.createElement("dt"),r=document.createElement("dd");l.innerText=t;var o=document.createElement("select");i.forEach(a=>{var t=document.createElement("option");t.value=a,t.innerText=a,o.appendChild(t)}),o.value=e,o.disabled=null!=s&&s,o.onchange=()=>n(o.value),r.appendChild(o),_.appendChild(l),_.appendChild(r),_.classList.add("input-row"),a.appendChild(_)}function addCheckboxInput(a,t,e,i,n){var s=document.createElement("div"),_=document.createElement("dt"),l=document.createElement("dd");_.innerText=t;var r=document.createElement("input");r.checked=e,r.type="checkbox",r.disabled=null!=n&&n,r.onchange=()=>i(r.checked),l.appendChild(r),s.appendChild(_),s.appendChild(l),s.classList.add("input-row"),a.appendChild(s)}function addLoadoutItemsEditor(a,t){var e=document.createElement("div");e.classList.add("dm-scroll-container","dm-items-container"),t.items.sort((a,t)=>a.name.localeCompare(t.name,void 0,{sensitivity:"base"})),t.items.forEach((i,n)=>{var s=document.createElement("div"),_=document.createElement("label");_.innerText="Name",s.appendChild(_);var l=document.createElement("input");s.appendChild(l),l.textContent=i.name,l.value=i.name,l.onchange=()=>{t.items[n].name=l.value};var r=document.createElement("label");r.innerText="Quantity",s.appendChild(r);var o=document.createElement("input");s.appendChild(o),o.textContent=String(i.quantity),o.value=String(i.quantity),o.type="number",o.step="1",o.onchange=()=>{t.items[n].quantity=parseInt(o.value)};var d=document.createElement("button");d.innerText="X",d.onclick=()=>{t.items.splice(n,1),a.dispatchEvent(new Event("refresh"))},s.appendChild(d),e.appendChild(s)}),a.appendChild(e);var i=document.createElement("div");i.classList.add("dm-new-item-input");var n=document.createElement("button");n.innerText="Add",i.appendChild(n),a.appendChild(i),n.addEventListener("click",e=>{null==t||t.items.push({name:"",quantity:1}),a.dispatchEvent(new Event("refresh"))})}function addNewElementInput(a,t){var e=document.createElement("div");e.classList.add("dm-new-element-input");var i=document.createElement("input");e.appendChild(i);var n=document.createElement("button");n.innerText="Add",n.addEventListener("click",a=>t(a,i)),e.appendChild(n),a.appendChild(e)}function addBlueprintsScroll(div,database,filter,callback){var scrollDiv=document.createElement("div");if(scrollDiv.classList.add("dm-scroll-container"),null!==database){var blueprints=database.blueprints;for(let key of Object.keys(blueprints).sort((a,t)=>a.localeCompare(t,void 0,{sensitivity:"base"}))){var addKey=!0;if(""!==filter)try{var blueprint=blueprints[key];addKey=eval(filter)}catch(_a){console.error("An error has occurred evaluating the blueprint filter")}if(addKey){var rowDiv=document.createElement("div");scrollDiv.appendChild(rowDiv);let a=document.createElement("div");a.innerHTML=`
${key}
${blueprints[key].label}
`,a.onclick=()=>{callback(key);const t=document.getElementsByClassName("blueprint-selected");for(let a=0;a{console.log(t.checked),blueprints[key].enabled=t.checked},rowDiv.appendChild(t);var button=document.createElement("button");button.innerText="X",button.onclick=()=>{delete blueprints[key],div.dispatchEvent(new Event("refresh"))},rowDiv.appendChild(button)}}}div.appendChild(scrollDiv)}function addLoadoutsScroll(a,t,e){var i=document.createElement("div");i.classList.add("dm-scroll-container","dm-loadout-container"),t.sort((a,t)=>a.name.localeCompare(t.name,void 0,{sensitivity:"base"})),t.forEach((n,s)=>{var _=document.createElement("div");i.appendChild(_);var l=document.createElement("label");if(l.textContent=n.name,l.onclick=()=>{e(n)},_.appendChild(l),"Empty loadout"!==n.name){let e=document.createElement("input");e.type="checkbox",e.checked=n.enabled,e.onclick=()=>{console.log(e.checked),n.enabled=e.checked},_.appendChild(e);var r=document.createElement("button");r.innerText="X",r.onclick=()=>{t.splice(s,1),a.dispatchEvent(new Event("refresh"))},_.appendChild(r)}}),a.appendChild(i)}function arrayToString(a){return"["+a.join(", ")+"]"}function stringToArray(a){var t;return null!==(t=a.match(/(\w)+/g))&&void 0!==t?t:[]}Object.defineProperty(_$utils_8,"__esModule",{value:!0}),_$utils_8.stringToArray=_$utils_8.arrayToString=_$utils_8.addLoadoutsScroll=_$utils_8.addBlueprintsScroll=_$utils_8.addNewElementInput=_$utils_8.addLoadoutItemsEditor=_$utils_8.addCheckboxInput=_$utils_8.addDropdownInput=_$utils_8.addStringInput=void 0,_$utils_8.addStringInput=addStringInput,_$utils_8.addDropdownInput=addDropdownInput,_$utils_8.addCheckboxInput=addCheckboxInput,_$utils_8.addLoadoutItemsEditor=addLoadoutItemsEditor,_$utils_8.addNewElementInput=addNewElementInput,_$utils_8.addBlueprintsScroll=addBlueprintsScroll,_$utils_8.addLoadoutsScroll=addLoadoutsScroll,_$utils_8.arrayToString=arrayToString,_$utils_8.stringToArray=stringToArray;var _$uniteditor_7={};Object.defineProperty(_$uniteditor_7,"__esModule",{value:!0}),_$uniteditor_7.UnitEditor=void 0,_$uniteditor_7.UnitEditor=class{constructor(a,t,e){this.blueprint=null,this.database=null,this.visible=!1,this.contentDiv1=a,this.contentDiv2=t,this.contentDiv3=e,this.contentDiv1.addEventListener("refresh",()=>{this.visible&&this.show()}),this.contentDiv2.addEventListener("refresh",()=>{this.visible&&null!==this.blueprint&&this.setBlueprint(this.blueprint)}),this.contentDiv3.addEventListener("refresh",()=>{this.visible&&null!==this.blueprint&&this.setBlueprint(this.blueprint)})}setDatabase(a){this.database=JSON.parse(JSON.stringify({blueprints:a.getBlueprints(!0)}))}show(a=""){if(this.visible=!0,this.contentDiv1.replaceChildren(),this.contentDiv2.replaceChildren(),this.contentDiv3.replaceChildren(),null!=this.database){var t=document.createElement("label");t.innerText="Units list",this.contentDiv1.appendChild(t);var e=document.createElement("input");e.value=a,this.contentDiv1.appendChild(e),e.onchange=a=>{this.show(a.target.value)},this.addBlueprints(a)}}hide(){this.visible=!1,this.contentDiv1.replaceChildren(),this.contentDiv2.replaceChildren(),this.contentDiv3.replaceChildren()}getDatabase(){return this.database}addBlueprints(a=""){this.database&&((0,_$utils_8.addBlueprintsScroll)(this.contentDiv1,this.database,a,a=>{null!=this.database&&this.setBlueprint(this.database.blueprints[a])}),(0,_$utils_8.addNewElementInput)(this.contentDiv1,(a,t)=>{""!=t.value&&this.addBlueprint(t.value)}))}};var _$loadouteditor_5={},_LoadoutEditor_contentDiv,_LoadoutEditor_loadout,_LoadoutEditor_visible,__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$loadouteditor_5,"__esModule",{value:!0}),_$loadouteditor_5.LoadoutEditor=void 0,_$loadouteditor_5.LoadoutEditor=class{constructor(a){_LoadoutEditor_contentDiv.set(this,void 0),_LoadoutEditor_loadout.set(this,null),_LoadoutEditor_visible.set(this,!1),__classPrivateFieldSet(this,_LoadoutEditor_contentDiv,a,"f"),__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").addEventListener("refresh",()=>{__classPrivateFieldGet(this,_LoadoutEditor_visible,"f")&&this.show()})}setLoadout(a){__classPrivateFieldSet(this,_LoadoutEditor_loadout,a,"f")}show(){__classPrivateFieldSet(this,_LoadoutEditor_visible,!0,"f"),__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").replaceChildren();var a=document.createElement("label");if(a.innerText="Loadout properties",__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").appendChild(a),__classPrivateFieldGet(this,_LoadoutEditor_loadout,"f")){var t=__classPrivateFieldGet(this,_LoadoutEditor_loadout,"f");(0,_$utils_8.addStringInput)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),"Name",t.name,"text",a=>{t.name=a,__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").dispatchEvent(new Event("refresh"))}),(0,_$utils_8.addStringInput)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),"Code",t.code,"text",a=>{t.code=a}),(0,_$utils_8.addStringInput)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),"Roles",(0,_$utils_8.arrayToString)(t.roles),"text",a=>{t.roles=(0,_$utils_8.stringToArray)(a)}),(0,_$utils_8.addLoadoutItemsEditor)(__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f"),__classPrivateFieldGet(this,_LoadoutEditor_loadout,"f"))}}hide(){__classPrivateFieldSet(this,_LoadoutEditor_visible,!1,"f"),__classPrivateFieldGet(this,_LoadoutEditor_contentDiv,"f").replaceChildren()}},_LoadoutEditor_contentDiv=new WeakMap,_LoadoutEditor_loadout=new WeakMap,_LoadoutEditor_visible=new WeakMap;var _$airuniteditor_1={},_AirUnitEditor_loadoutEditor,____classPrivateFieldSet_1=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_1=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$airuniteditor_1,"__esModule",{value:!0}),_$airuniteditor_1.AirUnitEditor=void 0;class AirUnitEditor extends _$uniteditor_7.UnitEditor{constructor(a,t,e){super(a,t,e),_AirUnitEditor_loadoutEditor.set(this,null),____classPrivateFieldSet_1(this,_AirUnitEditor_loadoutEditor,new _$loadouteditor_5.LoadoutEditor(this.contentDiv3),"f"),this.contentDiv3.addEventListener("refresh",()=>{var a;this.visible&&(null===(a=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===a||a.show())})}setBlueprint(a){var t,e,i,n,s,_,l,r;this.blueprint=a,null!==this.blueprint&&(this.contentDiv2.replaceChildren(),(r=document.createElement("label")).innerText="Unit properties",this.contentDiv2.appendChild(r),(0,_$utils_8.addStringInput)(this.contentDiv2,"Name",a.name,"text",t=>{a.name=t},!0),(0,_$utils_8.addStringInput)(this.contentDiv2,"Label",a.label,"text",t=>{a.label=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Short label",a.shortLabel,"text",t=>{a.shortLabel=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Coalition",a.coalition,["","blue","red"],t=>{a.coalition=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Era",a.era,["WW2","Early Cold War","Mid Cold War","Late Cold War","Modern"],t=>{a.era=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Filename",null!==(t=a.filename)&&void 0!==t?t:"","text",t=>{a.filename=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Cost",null!==(e=String(a.cost))&&void 0!==e?e:"","number",t=>{a.cost=parseFloat(t)}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can target point",null!==(i=a.canTargetPoint)&&void 0!==i&&i,t=>{a.canTargetPoint=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Description",null!==(n=a.description)&&void 0!==n?n:"","text",t=>{a.description=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Tags",null!==(s=a.tags)&&void 0!==s?s:"","text",t=>{a.tags=t}),(r=document.createElement("label")).innerText="Loadouts",this.contentDiv2.appendChild(r),(0,_$utils_8.addLoadoutsScroll)(this.contentDiv2,null!==(_=a.loadouts)&&void 0!==_?_:[],a=>{var t,e;null===(t=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===t||t.setLoadout(a),null===(e=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===e||e.show()}),(0,_$utils_8.addNewElementInput)(this.contentDiv2,(a,t)=>{this.addLoadout(t.value)}),null===(l=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===l||l.hide())}addBlueprint(a){null!=this.database&&(this.database.blueprints[a]={name:a,coalition:"",label:"",shortLabel:"",era:"",loadouts:[],enabled:!0},this.show(),this.setBlueprint(this.database.blueprints[a]))}addLoadout(a){var t;a&&null!==this.blueprint&&(null===(t=this.blueprint.loadouts)||void 0===t||t.push({name:a,code:"",fuel:1,items:[],roles:[],enabled:!0}),this.setBlueprint(this.blueprint))}hide(){var a;super.hide(),null===(a=____classPrivateFieldGet_1(this,_AirUnitEditor_loadoutEditor,"f"))||void 0===a||a.hide()}}_$airuniteditor_1.AirUnitEditor=AirUnitEditor,_AirUnitEditor_loadoutEditor=new WeakMap;var _$grounduniteditor_3={},_GroundUnitEditor_blueprint,____classPrivateFieldSet_3=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_3=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$grounduniteditor_3,"__esModule",{value:!0}),_$grounduniteditor_3.GroundUnitEditor=void 0;class GroundUnitEditor extends _$uniteditor_7.UnitEditor{constructor(a,t,e){super(a,t,e),_GroundUnitEditor_blueprint.set(this,null)}setBlueprint(a){var t,e,i,n,s,_,l,r,o,d,u,c,g,v,b,h,p,P,D,M,m;if(____classPrivateFieldSet_3(this,_GroundUnitEditor_blueprint,a,"f"),null!==____classPrivateFieldGet_3(this,_GroundUnitEditor_blueprint,"f")){this.contentDiv2.replaceChildren();var f=document.createElement("label");f.innerText="Unit properties",this.contentDiv2.appendChild(f),(0,_$utils_8.addStringInput)(this.contentDiv2,"Name",a.name,"text",t=>{a.name=t},!0),(0,_$utils_8.addStringInput)(this.contentDiv2,"Label",a.label,"text",t=>{a.label=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Short label",a.shortLabel,"text",t=>{a.shortLabel=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Type",null!==(t=a.type)&&void 0!==t?t:"","text",t=>{a.type=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Unit when grouped",null!==(e=a.unitWhenGrouped)&&void 0!==e?e:"","text",t=>{a.unitWhenGrouped=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Coalition",a.coalition,["","blue","red"],t=>{a.coalition=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Era",a.era,["WW2","Early Cold War","Mid Cold War","Late Cold War","Modern"],t=>{a.era=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Cost",null!==(i=String(a.cost))&&void 0!==i?i:"","number",t=>{a.cost=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Acquisition range [m]",null!==(n=String(a.acquisitionRange))&&void 0!==n?n:"","number",t=>{a.acquisitionRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Engagement range [m]",null!==(s=String(a.engagementRange))&&void 0!==s?s:"","number",t=>{a.engagementRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Targeting range [m]",null!==(_=String(a.targetingRange))&&void 0!==_?_:"","number",t=>{a.targetingRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Aim method range [m]",null!==(l=String(a.aimMethodRange))&&void 0!==l?l:"","number",t=>{a.aimMethodRange=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Barrel height [m]",null!==(r=String(a.barrelHeight))&&void 0!==r?r:"","number",t=>{a.barrelHeight=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Muzzle velocity [m/s]",null!==(o=String(a.muzzleVelocity))&&void 0!==o?o:"","number",t=>{a.muzzleVelocity=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Aim time [s]",null!==(d=String(a.aimTime))&&void 0!==d?d:"","number",t=>{a.aimTime=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Shots to fire",null!==(u=String(a.shotsToFire))&&void 0!==u?u:"","number",t=>{a.shotsToFire=Math.round(parseFloat(t))}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Shots base interval [s]",null!==(c=String(a.shotsBaseInterval))&&void 0!==c?c:"","number",t=>{a.shotsBaseInterval=Math.round(parseFloat(t))}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Shots base scatter [\xb0]",null!==(g=String(a.shotsBaseScatter))&&void 0!==g?g:"","number",t=>{a.shotsBaseScatter=Math.round(parseFloat(t))}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Alertness time constant [s]",null!==(v=String(a.alertnessTimeConstant))&&void 0!==v?v:"","number",t=>{a.alertnessTimeConstant=Math.round(parseFloat(t))}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can target point",null!==(b=a.canTargetPoint)&&void 0!==b&&b,t=>{a.canTargetPoint=t}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can rearm",null!==(h=a.canRearm)&&void 0!==h&&h,t=>{a.canRearm=t}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Can operate as AAA",null!==(p=a.canAAA)&&void 0!==p&&p,t=>{a.canAAA=t}),(0,_$utils_8.addCheckboxInput)(this.contentDiv2,"Indirect fire (e.g. mortar)",null!==(P=a.indirectFire)&&void 0!==P&&P,t=>{a.indirectFire=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Description",null!==(D=a.description)&&void 0!==D?D:"","text",t=>{a.description=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Tags",null!==(M=a.tags)&&void 0!==M?M:"","text",t=>{a.tags=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Marker file",null!==(m=a.markerFile)&&void 0!==m?m:"","text",t=>{a.markerFile=t})}}addBlueprint(a){null!=this.database&&(this.database.blueprints[a]={name:a,coalition:"",label:"",shortLabel:"",era:"",enabled:!0},this.show(),this.setBlueprint(this.database.blueprints[a]))}}_$grounduniteditor_3.GroundUnitEditor=GroundUnitEditor,_GroundUnitEditor_blueprint=new WeakMap;var _$navyuniteditor_6={},_NavyUnitEditor_blueprint,____classPrivateFieldSet_6=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_6=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$navyuniteditor_6,"__esModule",{value:!0}),_$navyuniteditor_6.NavyUnitEditor=void 0;class NavyUnitEditor extends _$uniteditor_7.UnitEditor{constructor(a,t,e){super(a,t,e),_NavyUnitEditor_blueprint.set(this,null)}setBlueprint(a){var t,e,i,n;if(____classPrivateFieldSet_6(this,_NavyUnitEditor_blueprint,a,"f"),null!==____classPrivateFieldGet_6(this,_NavyUnitEditor_blueprint,"f")){this.contentDiv2.replaceChildren();var s=document.createElement("label");s.innerText="Unit properties",this.contentDiv2.appendChild(s),(0,_$utils_8.addStringInput)(this.contentDiv2,"Name",a.name,"text",t=>{a.name=t},!0),(0,_$utils_8.addStringInput)(this.contentDiv2,"Label",a.label,"text",t=>{a.label=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Short label",a.shortLabel,"text",t=>{a.shortLabel=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Type",null!==(t=a.type)&&void 0!==t?t:"","text",t=>{a.type=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Coalition",a.coalition,["","blue","red"],t=>{a.coalition=t}),(0,_$utils_8.addDropdownInput)(this.contentDiv2,"Era",a.era,["WW2","Early Cold War","Mid Cold War","Late Cold War","Modern"],t=>{a.era=t}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Cost",null!==(e=String(a.cost))&&void 0!==e?e:"","number",t=>{a.cost=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Barrel height [m]",null!==(i=String(a.barrelHeight))&&void 0!==i?i:"","number",t=>{a.barrelHeight=parseFloat(t)}),(0,_$utils_8.addStringInput)(this.contentDiv2,"Muzzle velocity [m/s]",null!==(n=String(a.muzzleVelocity))&&void 0!==n?n:"","number",t=>{a.muzzleVelocity=parseFloat(t)})}}addBlueprint(a){null!=this.database&&(this.database.blueprints[a]={name:a,coalition:"",label:"",shortLabel:"",era:"",enabled:!0},this.show(),this.setBlueprint(this.database.blueprints[a]))}}_$navyuniteditor_6.NavyUnitEditor=NavyUnitEditor,_NavyUnitEditor_blueprint=new WeakMap;var _$databasemanagerplugin_2={},_DatabaseManagerPlugin_instances,_DatabaseManagerPlugin_app,_DatabaseManagerPlugin_element,_DatabaseManagerPlugin_mainContentContainer,_DatabaseManagerPlugin_contentDiv1,_DatabaseManagerPlugin_contentDiv2,_DatabaseManagerPlugin_contentDiv3,_DatabaseManagerPlugin_button1,_DatabaseManagerPlugin_button2,_DatabaseManagerPlugin_button3,_DatabaseManagerPlugin_button4,_DatabaseManagerPlugin_button5,_DatabaseManagerPlugin_button6,_DatabaseManagerPlugin_button7,_DatabaseManagerPlugin_button8,_DatabaseManagerPlugin_button9,_DatabaseManagerPlugin_aircraftEditor,_DatabaseManagerPlugin_helicopterEditor,_DatabaseManagerPlugin_groundUnitEditor,_DatabaseManagerPlugin_navyUnitEditor,_DatabaseManagerPlugin_hideAll,_DatabaseManagerPlugin_loadDatabases,_DatabaseManagerPlugin_saveDatabases,_DatabaseManagerPlugin_resetToDefaultDatabases,_DatabaseManagerPlugin_restoreToPreviousDatabases,_DatabaseManagerPlugin_uploadDatabase,_DatabaseManagerPlugin_resetToDefaultDatabase,_DatabaseManagerPlugin_restoreToPreviousDatabase,____classPrivateFieldSet_2=this&&this.__classPrivateFieldSet||function(a,t,e,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?a!==t||!n:!t.has(a))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(a,e):n?n.value=e:t.set(a,e),e},____classPrivateFieldGet_2=this&&this.__classPrivateFieldGet||function(a,t,e,i){if("a"===e&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?a!==t||!i:!t.has(a))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?i:"a"===e?i.call(a):i?i.value:t.get(a)};Object.defineProperty(_$databasemanagerplugin_2,"__esModule",{value:!0}),_$databasemanagerplugin_2.DatabaseManagerPlugin=void 0,_$databasemanagerplugin_2.DatabaseManagerPlugin=class{constructor(){_DatabaseManagerPlugin_instances.add(this),_DatabaseManagerPlugin_app.set(this,void 0),_DatabaseManagerPlugin_element.set(this,void 0),_DatabaseManagerPlugin_mainContentContainer.set(this,void 0),_DatabaseManagerPlugin_contentDiv1.set(this,void 0),_DatabaseManagerPlugin_contentDiv2.set(this,void 0),_DatabaseManagerPlugin_contentDiv3.set(this,void 0),_DatabaseManagerPlugin_button1.set(this,void 0),_DatabaseManagerPlugin_button2.set(this,void 0),_DatabaseManagerPlugin_button3.set(this,void 0),_DatabaseManagerPlugin_button4.set(this,void 0),_DatabaseManagerPlugin_button5.set(this,void 0),_DatabaseManagerPlugin_button6.set(this,void 0),_DatabaseManagerPlugin_button7.set(this,void 0),_DatabaseManagerPlugin_button8.set(this,void 0),_DatabaseManagerPlugin_button9.set(this,void 0),_DatabaseManagerPlugin_aircraftEditor.set(this,void 0),_DatabaseManagerPlugin_helicopterEditor.set(this,void 0),_DatabaseManagerPlugin_groundUnitEditor.set(this,void 0),_DatabaseManagerPlugin_navyUnitEditor.set(this,void 0),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_element,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").id="database-manager-panel",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").oncontextmenu=()=>!1,____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").classList.add("ol-dialog"),document.body.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f")),this.toggle(!1);let a=document.createElement("div");____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button1,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").textContent="Aircraft database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button2,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").textContent="Helicopter database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button3,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").textContent="Ground Unit database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button4,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").classList.add("tab-button"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").textContent="Navy Unit database",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").classList.add("selected")},a.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f")),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").appendChild(a),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_mainContentContainer,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").classList.add("dm-container"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_contentDiv1,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f").classList.add("dm-content-container","ol-scrollable"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_contentDiv2,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f").classList.add("dm-content-container","ol-scrollable"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_contentDiv3,document.createElement("div"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f").classList.add("dm-content-container","ol-scrollable"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_mainContentContainer,"f").appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_aircraftEditor,new _$airuniteditor_1.AirUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f"),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_helicopterEditor,new _$airuniteditor_1.AirUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f"),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_groundUnitEditor,new _$grounduniteditor_3.GroundUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f"),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_navyUnitEditor,new _$navyuniteditor_6.NavyUnitEditor(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv1,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv2,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_contentDiv3,"f")),"f");let t=document.createElement("div");____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button5,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f").textContent="Save",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f").title="Save the changes on the server",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_saveDatabases).call(this)},t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button5,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button6,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f").textContent="Discard",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f").title="Discard all changes and reload the database from the server",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this)},t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button6,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button7,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f").textContent="Reset defaults",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabases).call(this)},____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f").title="Reset the databases to the default values",t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button7,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button8,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f").textContent="Restore previous",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f").onclick=()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabases).call(this)},____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f").title="Restore the previously saved databases. Use this if you saved a database by mistake.",t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button8,"f")),____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_button9,document.createElement("button"),"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f").textContent="Close",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f").title="Close the Database Manager",____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f").onclick=()=>{this.toggle(!1)},t.appendChild(____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button9,"f")),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f").appendChild(t)}getName(){return"Database Control Plugin"}initialize(a){var t;____classPrivateFieldSet_2(this,_DatabaseManagerPlugin_app,a,"f"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f").getContextManager().add("databaseManager",{allowUnitCopying:!1,allowUnitPasting:!1,useSpawnMenu:!1,useUnitControlPanel:!1,useUnitInfoPanel:!1}),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this);var e=document.createElement("div"),i=document.createElement("button");i.textContent="Database manager",e.appendChild(i);var n=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getToolbarsManager().get("primaryToolbar"),s=n.getMainDropdown().getOptionElements(),_=Array.prototype.slice.call(s);return _.splice(_.length-3,0,e),n.getMainDropdown().setOptionsElements(_),i.onclick=()=>{var a;n.getMainDropdown().close(),"Game master"===(null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getMissionManager().getCommandModeOptions().commandMode)&&this.toggle()},!0}getElement(){return ____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_element,"f")}toggle(a){a?this.getElement().classList.toggle("hide",!a):this.getElement().classList.toggle("hide"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f")&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f").getContextManager().setContext(this.getElement().classList.contains("hide")?"olympus":"databaseManager")}},_DatabaseManagerPlugin_app=new WeakMap,_DatabaseManagerPlugin_element=new WeakMap,_DatabaseManagerPlugin_mainContentContainer=new WeakMap,_DatabaseManagerPlugin_contentDiv1=new WeakMap,_DatabaseManagerPlugin_contentDiv2=new WeakMap,_DatabaseManagerPlugin_contentDiv3=new WeakMap,_DatabaseManagerPlugin_button1=new WeakMap,_DatabaseManagerPlugin_button2=new WeakMap,_DatabaseManagerPlugin_button3=new WeakMap,_DatabaseManagerPlugin_button4=new WeakMap,_DatabaseManagerPlugin_button5=new WeakMap,_DatabaseManagerPlugin_button6=new WeakMap,_DatabaseManagerPlugin_button7=new WeakMap,_DatabaseManagerPlugin_button8=new WeakMap,_DatabaseManagerPlugin_button9=new WeakMap,_DatabaseManagerPlugin_aircraftEditor=new WeakMap,_DatabaseManagerPlugin_helicopterEditor=new WeakMap,_DatabaseManagerPlugin_groundUnitEditor=new WeakMap,_DatabaseManagerPlugin_navyUnitEditor=new WeakMap,_DatabaseManagerPlugin_instances=new WeakSet,_DatabaseManagerPlugin_hideAll=function(){____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").hide(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.remove("selected"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button2,"f").classList.remove("selected"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button3,"f").classList.remove("selected"),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button4,"f").classList.remove("selected")},_DatabaseManagerPlugin_loadDatabases=function(){var a,t,e,i,n=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getAircraftDatabase();null!=n&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").setDatabase(n);var s=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getHelicopterDatabase();null!=s&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").setDatabase(s);var _=null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e?void 0:e.getGroundUnitDatabase();null!=_&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").setDatabase(_);var l=null===(i=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===i?void 0:i.getNavyUnitDatabase();null!=l&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").setDatabase(l),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")},_DatabaseManagerPlugin_saveDatabases=function(){var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"aircraftdatabase","Aircraft database",()=>{var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_helicopterEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"helicopterDatabase","Helicopter database",()=>{var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_groundUnitEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"groundUnitDatabase","Ground Unit database",()=>{var a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_navyUnitEditor,"f").getDatabase();a&&____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_uploadDatabase).call(this,a,"navyUnitDatabase","Navy Unit database",()=>{var a,t,e,i,n;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getAircraftDatabase().load(()=>{}),null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t||t.getHelicopterDatabase().load(()=>{}),null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e||e.getGroundUnitDatabase().load(()=>{}),null===(i=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===i||i.getNavyUnitDatabase().load(()=>{}),null===(n=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===n||n.getServerManager().reloadDatabases(()=>{var a,t;null===(t=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getPopupsManager().get("infoPopup"))||void 0===t||t.setText("Olympus core databases reloaded")})})})})})},_DatabaseManagerPlugin_resetToDefaultDatabases=function(){____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"aircraftdatabase","Aircraft database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getAircraftDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"helicopterdatabase","Helicopter database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getHelicopterDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"groundunitdatabase","Ground Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getGroundUnitDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_resetToDefaultDatabase).call(this,"navyunitdatabase","Navy Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getNavyUnitDatabase().load(()=>{var a;____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this),null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getServerManager().reloadDatabases(()=>{var a,t;null===(t=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getPopupsManager().get("infoPopup"))||void 0===t||t.setText("Olympus core databases reloaded")}),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")})})})})})})})})},_DatabaseManagerPlugin_restoreToPreviousDatabases=function(){____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"aircraftdatabase","Aircraft database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getAircraftDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"helicopterdatabase","Helicopter database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getHelicopterDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"groundunitdatabase","Ground Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getGroundUnitDatabase().load(()=>{____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_restoreToPreviousDatabase).call(this,"navyunitdatabase","Navy Unit database",()=>{var a;null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getNavyUnitDatabase().load(()=>{var a;____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_loadDatabases).call(this),null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a||a.getServerManager().reloadDatabases(()=>{var a,t;null===(t=null===(a=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===a?void 0:a.getPopupsManager().get("infoPopup"))||void 0===t||t.setText("Olympus core databases reloaded")}),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_instances,"m",_DatabaseManagerPlugin_hideAll).call(this),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_aircraftEditor,"f").show(),____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_button1,"f").classList.add("selected")})})})})})})})})},_DatabaseManagerPlugin_uploadDatabase=function(a,t,e,i){var n=new XMLHttpRequest;n.open("PUT","/api/databases/save/units/"+t),n.setRequestHeader("Content-Type","application/json"),n.onload=a=>{var t,s,_,l;200==n.status?(null===(s=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getPopupsManager().get("infoPopup"))||void 0===s||s.setText(e+" saved successfully"),i()):null===(l=null===(_=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===_?void 0:_.getPopupsManager().get("infoPopup"))||void 0===l||l.setText("An error has occurred while saving the "+e)},n.onerror=a=>{var t,i;null===(i=null===(t=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===t?void 0:t.getPopupsManager().get("infoPopup"))||void 0===i||i.setText("An error has occurred while saving the "+e)},n.send(JSON.stringify(a))},_DatabaseManagerPlugin_resetToDefaultDatabase=function(a,t,e){var i=new XMLHttpRequest;i.open("PUT","/api/databases/reset/units/"+a),i.setRequestHeader("Content-Type","application/json"),i.onload=a=>{var n,s,_,l;200==i.status?(null===(s=null===(n=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===n?void 0:n.getPopupsManager().get("infoPopup"))||void 0===s||s.setText(t+" reset successfully"),e()):null===(l=null===(_=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===_?void 0:_.getPopupsManager().get("infoPopup"))||void 0===l||l.setText("An error has occurred while resetting the "+t)},i.onerror=a=>{var e,i;null===(i=null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e?void 0:e.getPopupsManager().get("infoPopup"))||void 0===i||i.setText("An error has occurred while resetting the "+t)},i.send("")},_DatabaseManagerPlugin_restoreToPreviousDatabase=function(a,t,e){var i=new XMLHttpRequest;i.open("PUT","/api/databases/restore/units/"+a),i.setRequestHeader("Content-Type","application/json"),i.onload=a=>{var n,s,_,l;200==i.status?(null===(s=null===(n=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===n?void 0:n.getPopupsManager().get("infoPopup"))||void 0===s||s.setText(t+" restored successfully"),e()):null===(l=null===(_=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===_?void 0:_.getPopupsManager().get("infoPopup"))||void 0===l||l.setText("An error has occurred while restoring the "+t)},i.onerror=a=>{var e,i;null===(i=null===(e=____classPrivateFieldGet_2(this,_DatabaseManagerPlugin_app,"f"))||void 0===e?void 0:e.getPopupsManager().get("infoPopup"))||void 0===i||i.setText("An error has occurred while restoring the "+t)},i.send("")};var _$index_4={};Object.defineProperty(_$index_4,"__esModule",{value:!0}),globalThis.getOlympusPlugin=()=>new _$databasemanagerplugin_2.DatabaseManagerPlugin}(); \ No newline at end of file diff --git a/client/plugins/databasemanager/package.json b/frontend/website/plugins/databasemanager/package.json similarity index 100% rename from client/plugins/databasemanager/package.json rename to frontend/website/plugins/databasemanager/package.json diff --git a/frontend/website/plugins/databasemanager/plugin.json b/frontend/website/plugins/databasemanager/plugin.json new file mode 100644 index 00000000..357d8f13 --- /dev/null +++ b/frontend/website/plugins/databasemanager/plugin.json @@ -0,0 +1,6 @@ +{ + "name": "Database Manager", + "version": "0.0.1", + "description": "This plugin allows to edit the unit databases", + "author": "DCSOlympus team" +} \ No newline at end of file diff --git a/client/plugins/databasemanager/src/airuniteditor.ts b/frontend/website/plugins/databasemanager/src/airuniteditor.ts similarity index 100% rename from client/plugins/databasemanager/src/airuniteditor.ts rename to frontend/website/plugins/databasemanager/src/airuniteditor.ts diff --git a/client/plugins/databasemanager/src/databasemanagerplugin.ts b/frontend/website/plugins/databasemanager/src/databasemanagerplugin.ts similarity index 100% rename from client/plugins/databasemanager/src/databasemanagerplugin.ts rename to frontend/website/plugins/databasemanager/src/databasemanagerplugin.ts diff --git a/client/plugins/databasemanager/src/grounduniteditor.ts b/frontend/website/plugins/databasemanager/src/grounduniteditor.ts similarity index 100% rename from client/plugins/databasemanager/src/grounduniteditor.ts rename to frontend/website/plugins/databasemanager/src/grounduniteditor.ts diff --git a/client/plugins/databasemanager/src/index.ts b/frontend/website/plugins/databasemanager/src/index.ts similarity index 100% rename from client/plugins/databasemanager/src/index.ts rename to frontend/website/plugins/databasemanager/src/index.ts diff --git a/client/plugins/databasemanager/src/loadouteditor.ts b/frontend/website/plugins/databasemanager/src/loadouteditor.ts similarity index 100% rename from client/plugins/databasemanager/src/loadouteditor.ts rename to frontend/website/plugins/databasemanager/src/loadouteditor.ts diff --git a/client/plugins/databasemanager/src/navyuniteditor.ts b/frontend/website/plugins/databasemanager/src/navyuniteditor.ts similarity index 100% rename from client/plugins/databasemanager/src/navyuniteditor.ts rename to frontend/website/plugins/databasemanager/src/navyuniteditor.ts diff --git a/client/plugins/databasemanager/src/uniteditor.ts b/frontend/website/plugins/databasemanager/src/uniteditor.ts similarity index 100% rename from client/plugins/databasemanager/src/uniteditor.ts rename to frontend/website/plugins/databasemanager/src/uniteditor.ts diff --git a/client/plugins/databasemanager/src/utils.ts b/frontend/website/plugins/databasemanager/src/utils.ts similarity index 100% rename from client/plugins/databasemanager/src/utils.ts rename to frontend/website/plugins/databasemanager/src/utils.ts diff --git a/frontend/website/plugins/databasemanager/style.css b/frontend/website/plugins/databasemanager/style.css new file mode 100644 index 00000000..f8c80213 --- /dev/null +++ b/frontend/website/plugins/databasemanager/style.css @@ -0,0 +1,295 @@ +#database-manager-panel { + flex-direction: column; + display: flex; + width: 80%; + height: 80%; + padding: 10px; + border-radius: 5px; + background-color: var(--background-steel) !important; + z-index: 9999999; +} + +@media (min-width: 1200px) { + .dm-container { + flex-direction: row; + } +} + +@media (max-width: 1200px) { + .dm-container { + flex-direction: column; + overflow-y: auto; + } +} + +#database-manager-panel * { + font-size: 13; + font-family: 'Open Sans', sans-serif !important; + user-select: none; +} + +#database-manager-panel>div:first-child { + display: flex; + align-items: center; +} + +#database-manager-panel>div:last-child { + display: flex; + column-gap: 5px; + align-items: center; + justify-content: end; + justify-items: end; + margin-top: 5px; +} + +#database-manager-panel>div:last-child>button { + border: 1px solid white; +} + +.dm-container { + background-color: var(--background-grey); + border: 2px solid #777777; + position: relative; + display: flex; + width: 100%; + padding: 5px; + height: calc(100% - 64px - 5px); + border-radius: 0px 5px 5px 5px; +} + +.dm-content-container { + position: relative; + margin: 10px; + display: flex; + flex-direction: column; + row-gap: 5px; + max-height: 100%; + padding: 10px; +} + +@media (min-width: 1200px) { + .dm-content-container { + height: calc(100% - 20px); + } + + .dm-content-container:nth-of-type(1) { + width: 400px; + } + + .dm-content-container:nth-of-type(2) { + width: 500px; + } + + .dm-content-container:nth-of-type(3) { + flex: 1; + } +} + +@media (max-width: 1200px) { + .dm-content-container { + width: calc(100% - 20px); + } + + .dm-content-container:nth-of-type(1) { + height: 30%; + } + + .dm-content-container:nth-of-type(2) { + height: 50%; + } + + .dm-content-container:nth-of-type(3) { + flex: 1; + } +} + +.dm-content-container>label { + font-size: 18px !important; + font-weight: bold; +} + +.dm-scroll-container { + display: flex; + flex-direction: column; + overflow-y: scroll; + max-height: 100%; + color: black; + font-weight: bold; +} + +#database-manager-panel input { + font-weight: bold; +} + +.dm-scroll-container>div:nth-child(even) { + background-color: gainsboro; +} + +.dm-scroll-container>div:nth-child(odd) { + background-color: white; +} + +.dm-scroll-container>div *:nth-child(1) { + height: 100%; + width: calc(100% - 25px); + padding: 2px; + word-wrap: break-word; +} + +.dm-scroll-container>div *:nth-child(1):hover { + background-color: var(--accent-dark-blue); + color: white; + cursor: pointer; +} + +.blueprint-selected { + background-color: var(--accent-light-blue) !important; + color: white; +} + +.dm-scroll-container>div { + display: flex; + align-items: center; + justify-content: space-between; +} + +.dm-scroll-container>div>div { + display: flex; + align-items: center; + justify-content: space-between; +} + +.dm-scroll-container>div>button { + height: 20px; + width: 20px; + padding: 0px; +} + +.dm-scroll-container>div>div>div:nth-child(1) { + width: fit-content; +} + +.dm-scroll-container>div>div>div:nth-child(2) { + overflow: hidden; + text-wrap: nowrap; + text-overflow: ellipsis; + font-weight: normal; +} + +.input-row { + width: 100%; + display: flex; + flex-direction: row; +} + +@media (max-width: 1200px) { + .dm-content-container label { + width: 100%; + } + .input-row { + width: 50%; + } +} + +.input-row>dt { + width: 250px; +} + +.input-row>dd { + width: 100%; + text-align: right; +} + +.input-row>dd>* { + width: 100%; + font-weight: bold; +} + +.input-row>dd>*[type="checkbox"] { + width: 20px; + font-weight: bold; +} + +.dm-loadout-container { + max-height: 100%; + max-width: 500px; + width: 100%; +} + +.dm-items-container { + max-height: 100%; + height: fit-content; +} + +.dm-items-container>div { + display: flex; + align-items: center; + column-gap: 2px; +} + +.dm-items-container>div>label { + width: 80px !important; +} + +.dm-items-container div>input:nth-of-type(1) { + flex: 1; + font-weight: bold; +} + +.dm-items-container div>input:nth-of-type(2) { + width: 40px; + font-weight: bold; +} + +.dm-new-element-input { + display: flex; + flex-direction: row; + column-gap: 2px; + width: 100%; + align-items: center; +} + +.dm-new-element-input>input { + width: 100%; +} + +.dm-new-element-input>button { + width: 60px; +} + +.dm-new-item-input { + display: flex; + justify-content: end; +} + +.dm-new-item-input>button { + width: 60px; +} + +.tab-button { + transform: translateY(+3px); + background-color: var(--background-steel); + border-radius: 0; + border-bottom: 2px solid transparent !important; + border-top: 2px solid #777777 !important; + border-left: 2px solid #777777 !important; + border-right: 0px solid #777777 !important; +} + +.tab-button.selected { + background-color: var(--background-grey); + z-index: 10; +} + +.tab-button:first-of-type { + border-top-left-radius: 5px; +} + +.tab-button:last-of-type { + border-top-right-radius: 5px; + border-right: 2px solid #777777 !important; +} + +#database-manager-panel button :not(.dm-scroll-container>div) { + border: 1px solid white; +} \ No newline at end of file diff --git a/client/plugins/databasemanager/tsconfig.json b/frontend/website/plugins/databasemanager/tsconfig.json similarity index 100% rename from client/plugins/databasemanager/tsconfig.json rename to frontend/website/plugins/databasemanager/tsconfig.json diff --git a/client/sample.png b/frontend/website/sample.png similarity index 100% rename from client/sample.png rename to frontend/website/sample.png diff --git a/frontend/website/scripts/build-debug.bat b/frontend/website/scripts/build-debug.bat new file mode 100644 index 00000000..8d5328b7 --- /dev/null +++ b/frontend/website/scripts/build-debug.bat @@ -0,0 +1 @@ +call browserify --debug .\src\index.ts -o ..\server\public\javascripts\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] diff --git a/frontend/website/scripts/build-release.bat b/frontend/website/scripts/build-release.bat new file mode 100644 index 00000000..dcd7830d --- /dev/null +++ b/frontend/website/scripts/build-release.bat @@ -0,0 +1 @@ +call browserify .\src\index.ts -o ..\..\build\frontend\public\javascripts\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] diff --git a/client/scripts/emit-declarations.bat b/frontend/website/scripts/emit-declarations.bat similarity index 63% rename from client/scripts/emit-declarations.bat rename to frontend/website/scripts/emit-declarations.bat index 4e1d2ee3..a324c677 100644 --- a/client/scripts/emit-declarations.bat +++ b/frontend/website/scripts/emit-declarations.bat @@ -1 +1 @@ -tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile ./@types/olympus/index.d.ts \ No newline at end of file +tsc --project tsconfig.json --declaration --emitDeclarationOnly --outfile .\@types\olympus\index.d.ts \ No newline at end of file diff --git a/frontend/website/scripts/watch.bat b/frontend/website/scripts/watch.bat new file mode 100644 index 00000000..d62a3599 --- /dev/null +++ b/frontend/website/scripts/watch.bat @@ -0,0 +1 @@ +watchify .\src\index.ts --debug -o ..\server\public\javascripts\bundle.js -t [ babelify --global true --presets [ @babel/preset-env ] --extensions '.js'] -p [ tsify --noImplicitAny ] -v \ No newline at end of file diff --git a/client/src/constants/constants.ts b/frontend/website/src/constants/constants.ts similarity index 100% rename from client/src/constants/constants.ts rename to frontend/website/src/constants/constants.ts diff --git a/client/src/context/context.ts b/frontend/website/src/context/context.ts similarity index 100% rename from client/src/context/context.ts rename to frontend/website/src/context/context.ts diff --git a/client/src/context/contextmanager.ts b/frontend/website/src/context/contextmanager.ts similarity index 100% rename from client/src/context/contextmanager.ts rename to frontend/website/src/context/contextmanager.ts diff --git a/client/src/context/contextmenumanager.ts b/frontend/website/src/context/contextmenumanager.ts similarity index 100% rename from client/src/context/contextmenumanager.ts rename to frontend/website/src/context/contextmenumanager.ts diff --git a/client/src/contextmenus/airbasecontextmenu.ts b/frontend/website/src/contextmenus/airbasecontextmenu.ts similarity index 100% rename from client/src/contextmenus/airbasecontextmenu.ts rename to frontend/website/src/contextmenus/airbasecontextmenu.ts diff --git a/client/src/contextmenus/airbasespawnmenu.ts b/frontend/website/src/contextmenus/airbasespawnmenu.ts similarity index 100% rename from client/src/contextmenus/airbasespawnmenu.ts rename to frontend/website/src/contextmenus/airbasespawnmenu.ts diff --git a/client/src/contextmenus/coalitionareacontextmenu.ts b/frontend/website/src/contextmenus/coalitionareacontextmenu.ts similarity index 100% rename from client/src/contextmenus/coalitionareacontextmenu.ts rename to frontend/website/src/contextmenus/coalitionareacontextmenu.ts diff --git a/client/src/contextmenus/contextmenu.ts b/frontend/website/src/contextmenus/contextmenu.ts similarity index 100% rename from client/src/contextmenus/contextmenu.ts rename to frontend/website/src/contextmenus/contextmenu.ts diff --git a/client/src/contextmenus/mapcontextmenu.ts b/frontend/website/src/contextmenus/mapcontextmenu.ts similarity index 100% rename from client/src/contextmenus/mapcontextmenu.ts rename to frontend/website/src/contextmenus/mapcontextmenu.ts diff --git a/client/src/contextmenus/unitcontextmenu.ts b/frontend/website/src/contextmenus/unitcontextmenu.ts similarity index 100% rename from client/src/contextmenus/unitcontextmenu.ts rename to frontend/website/src/contextmenus/unitcontextmenu.ts diff --git a/client/src/controls/control.ts b/frontend/website/src/controls/control.ts similarity index 100% rename from client/src/controls/control.ts rename to frontend/website/src/controls/control.ts diff --git a/client/src/controls/dropdown.ts b/frontend/website/src/controls/dropdown.ts similarity index 100% rename from client/src/controls/dropdown.ts rename to frontend/website/src/controls/dropdown.ts diff --git a/client/src/controls/slider.ts b/frontend/website/src/controls/slider.ts similarity index 100% rename from client/src/controls/slider.ts rename to frontend/website/src/controls/slider.ts diff --git a/client/src/controls/switch.ts b/frontend/website/src/controls/switch.ts similarity index 100% rename from client/src/controls/switch.ts rename to frontend/website/src/controls/switch.ts diff --git a/client/src/controls/unitspawnmenu.ts b/frontend/website/src/controls/unitspawnmenu.ts similarity index 100% rename from client/src/controls/unitspawnmenu.ts rename to frontend/website/src/controls/unitspawnmenu.ts diff --git a/client/src/dialog/dialog.ts b/frontend/website/src/dialog/dialog.ts similarity index 100% rename from client/src/dialog/dialog.ts rename to frontend/website/src/dialog/dialog.ts diff --git a/client/src/dom.d.ts b/frontend/website/src/dom.d.ts similarity index 100% rename from client/src/dom.d.ts rename to frontend/website/src/dom.d.ts diff --git a/client/src/index.ts b/frontend/website/src/index.ts similarity index 100% rename from client/src/index.ts rename to frontend/website/src/index.ts diff --git a/client/src/interfaces.ts b/frontend/website/src/interfaces.ts similarity index 100% rename from client/src/interfaces.ts rename to frontend/website/src/interfaces.ts diff --git a/client/src/map/boxselect.ts b/frontend/website/src/map/boxselect.ts similarity index 100% rename from client/src/map/boxselect.ts rename to frontend/website/src/map/boxselect.ts diff --git a/client/src/map/clickableminimap.ts b/frontend/website/src/map/clickableminimap.ts similarity index 100% rename from client/src/map/clickableminimap.ts rename to frontend/website/src/map/clickableminimap.ts diff --git a/client/src/map/coalitionarea/coalitionarea.ts b/frontend/website/src/map/coalitionarea/coalitionarea.ts similarity index 100% rename from client/src/map/coalitionarea/coalitionarea.ts rename to frontend/website/src/map/coalitionarea/coalitionarea.ts diff --git a/client/src/map/coalitionarea/coalitionareahandle.ts b/frontend/website/src/map/coalitionarea/coalitionareahandle.ts similarity index 100% rename from client/src/map/coalitionarea/coalitionareahandle.ts rename to frontend/website/src/map/coalitionarea/coalitionareahandle.ts diff --git a/client/src/map/coalitionarea/coalitionareamiddlehandle.ts b/frontend/website/src/map/coalitionarea/coalitionareamiddlehandle.ts similarity index 100% rename from client/src/map/coalitionarea/coalitionareamiddlehandle.ts rename to frontend/website/src/map/coalitionarea/coalitionareamiddlehandle.ts diff --git a/client/src/map/coalitionarea/drawingcursor.ts b/frontend/website/src/map/coalitionarea/drawingcursor.ts similarity index 100% rename from client/src/map/coalitionarea/drawingcursor.ts rename to frontend/website/src/map/coalitionarea/drawingcursor.ts diff --git a/client/src/map/map.ts b/frontend/website/src/map/map.ts similarity index 99% rename from client/src/map/map.ts rename to frontend/website/src/map/map.ts index 6218214a..f2af5ce7 100644 --- a/client/src/map/map.ts +++ b/frontend/website/src/map/map.ts @@ -34,8 +34,8 @@ else L.Map.addInitHook("addHandler", "gestureHandling", GestureHandling); // TODO would be nice to convert to ts - yes -require("../../public/javascripts/leaflet.nauticscale.js") -require("../../public/javascripts/L.Path.Drag.js") +require("../../node_modules/leaflet.nauticscale/dist/leaflet.nauticscale.js") +require("../../node_modules/leaflet-path-drag/dist/index.js") export type MapMarkerVisibilityControl = { "category"?: string; diff --git a/client/src/map/markers/custommarker.ts b/frontend/website/src/map/markers/custommarker.ts similarity index 100% rename from client/src/map/markers/custommarker.ts rename to frontend/website/src/map/markers/custommarker.ts diff --git a/client/src/map/markers/destinationpreviewHandle.ts b/frontend/website/src/map/markers/destinationpreviewHandle.ts similarity index 100% rename from client/src/map/markers/destinationpreviewHandle.ts rename to frontend/website/src/map/markers/destinationpreviewHandle.ts diff --git a/client/src/map/markers/destinationpreviewmarker.ts b/frontend/website/src/map/markers/destinationpreviewmarker.ts similarity index 100% rename from client/src/map/markers/destinationpreviewmarker.ts rename to frontend/website/src/map/markers/destinationpreviewmarker.ts diff --git a/client/src/map/markers/smokemarker.ts b/frontend/website/src/map/markers/smokemarker.ts similarity index 100% rename from client/src/map/markers/smokemarker.ts rename to frontend/website/src/map/markers/smokemarker.ts diff --git a/client/src/map/markers/targetmarker.ts b/frontend/website/src/map/markers/targetmarker.ts similarity index 100% rename from client/src/map/markers/targetmarker.ts rename to frontend/website/src/map/markers/targetmarker.ts diff --git a/client/src/map/markers/temporaryunitmarker.ts b/frontend/website/src/map/markers/temporaryunitmarker.ts similarity index 100% rename from client/src/map/markers/temporaryunitmarker.ts rename to frontend/website/src/map/markers/temporaryunitmarker.ts diff --git a/client/src/map/rangecircle.ts b/frontend/website/src/map/rangecircle.ts similarity index 100% rename from client/src/map/rangecircle.ts rename to frontend/website/src/map/rangecircle.ts diff --git a/client/src/map/touchboxselect.ts b/frontend/website/src/map/touchboxselect.ts similarity index 100% rename from client/src/map/touchboxselect.ts rename to frontend/website/src/map/touchboxselect.ts diff --git a/client/src/mission/airbase.ts b/frontend/website/src/mission/airbase.ts similarity index 100% rename from client/src/mission/airbase.ts rename to frontend/website/src/mission/airbase.ts diff --git a/client/src/mission/bullseye.ts b/frontend/website/src/mission/bullseye.ts similarity index 100% rename from client/src/mission/bullseye.ts rename to frontend/website/src/mission/bullseye.ts diff --git a/client/src/mission/missionmanager.ts b/frontend/website/src/mission/missionmanager.ts similarity index 100% rename from client/src/mission/missionmanager.ts rename to frontend/website/src/mission/missionmanager.ts diff --git a/client/src/olympusapp.ts b/frontend/website/src/olympusapp.ts similarity index 95% rename from client/src/olympusapp.ts rename to frontend/website/src/olympusapp.ts index 0f38ebfb..4d916d11 100644 --- a/client/src/olympusapp.ts +++ b/frontend/website/src/olympusapp.ts @@ -18,7 +18,6 @@ import { Manager } from "./other/manager"; import { SVGInjector } from "@tanem/svg-injector"; import { ServerManager } from "./server/servermanager"; import { sha256 } from 'js-sha256'; -import Ajv from "ajv" import { BLUE_COMMANDER, FILL_SELECTED_RING, GAME_MASTER, HIDE_UNITS_SHORT_RANGE_RINGS, RED_COMMANDER, SHOW_UNITS_ACQUISITION_RINGS, SHOW_UNITS_ENGAGEMENT_RINGS, SHOW_UNIT_LABELS } from "./constants/constants"; import { aircraftDatabase } from "./unit/databases/aircraftdatabase"; @@ -28,9 +27,6 @@ import { navyUnitDatabase } from "./unit/databases/navyunitdatabase"; import { UnitListPanel } from "./panels/unitlistpanel"; import { ContextManager } from "./context/contextmanager"; import { Context } from "./context/context"; -import { AirDefenceUnitSpawnMenu } from "./controls/unitspawnmenu"; -import { AirbasesJSONSchemaValidator } from "./schemas/schema"; - var VERSION = "{{OLYMPUS_VERSION_NUMBER}}"; export class OlympusApp { @@ -196,9 +192,6 @@ export class OlympusApp { this.#unitsManager = new UnitsManager(); this.#weaponsManager = new WeaponsManager(); - /* Validate data */ - this.#validateData(); - // Toolbars this.getToolbarsManager().add("primaryToolbar", new PrimaryToolbar("primary-toolbar")) .add("commandModeToolbar", new CommandModeToolbar("command-mode-toolbar")); @@ -453,28 +446,4 @@ export class OlympusApp { img.addEventListener("load", () => { SVGInjector(img); }); }) } - - #validateData() { - - const airbasesValidator = new AirbasesJSONSchemaValidator(); - - /* - const validator = new Ajv(); - const schema = { - type: "object", - properties: { - foo: {type: "integer"}, - bar: {type: "string"}, - }, - required: ["foo"], - additionalProperties: false, - } - - const data = this.#getRunwayData(); - - const validate = validator.compile(schema); - const valid = validate(data); - if (!valid) console.log(validate.errors); - //*/ - } } \ No newline at end of file diff --git a/client/src/other/eventsmanager.ts b/frontend/website/src/other/eventsmanager.ts similarity index 100% rename from client/src/other/eventsmanager.ts rename to frontend/website/src/other/eventsmanager.ts diff --git a/client/src/other/manager.ts b/frontend/website/src/other/manager.ts similarity index 100% rename from client/src/other/manager.ts rename to frontend/website/src/other/manager.ts diff --git a/client/src/other/utils.ts b/frontend/website/src/other/utils.ts similarity index 100% rename from client/src/other/utils.ts rename to frontend/website/src/other/utils.ts diff --git a/client/src/panels/connectionstatuspanel.ts b/frontend/website/src/panels/connectionstatuspanel.ts similarity index 100% rename from client/src/panels/connectionstatuspanel.ts rename to frontend/website/src/panels/connectionstatuspanel.ts diff --git a/client/src/panels/hotgrouppanel.ts b/frontend/website/src/panels/hotgrouppanel.ts similarity index 100% rename from client/src/panels/hotgrouppanel.ts rename to frontend/website/src/panels/hotgrouppanel.ts diff --git a/client/src/panels/logpanel.ts b/frontend/website/src/panels/logpanel.ts similarity index 100% rename from client/src/panels/logpanel.ts rename to frontend/website/src/panels/logpanel.ts diff --git a/client/src/panels/mouseinfopanel.ts b/frontend/website/src/panels/mouseinfopanel.ts similarity index 100% rename from client/src/panels/mouseinfopanel.ts rename to frontend/website/src/panels/mouseinfopanel.ts diff --git a/client/src/panels/panel.ts b/frontend/website/src/panels/panel.ts similarity index 100% rename from client/src/panels/panel.ts rename to frontend/website/src/panels/panel.ts diff --git a/client/src/panels/paneleventsmanager.ts b/frontend/website/src/panels/paneleventsmanager.ts similarity index 100% rename from client/src/panels/paneleventsmanager.ts rename to frontend/website/src/panels/paneleventsmanager.ts diff --git a/client/src/panels/serverstatuspanel.ts b/frontend/website/src/panels/serverstatuspanel.ts similarity index 100% rename from client/src/panels/serverstatuspanel.ts rename to frontend/website/src/panels/serverstatuspanel.ts diff --git a/client/src/panels/unitcontrolpanel.ts b/frontend/website/src/panels/unitcontrolpanel.ts similarity index 100% rename from client/src/panels/unitcontrolpanel.ts rename to frontend/website/src/panels/unitcontrolpanel.ts diff --git a/client/src/panels/unitinfopanel.ts b/frontend/website/src/panels/unitinfopanel.ts similarity index 100% rename from client/src/panels/unitinfopanel.ts rename to frontend/website/src/panels/unitinfopanel.ts diff --git a/client/src/panels/unitlistpanel.ts b/frontend/website/src/panels/unitlistpanel.ts similarity index 100% rename from client/src/panels/unitlistpanel.ts rename to frontend/website/src/panels/unitlistpanel.ts diff --git a/client/src/plugin/pluginmanager.ts b/frontend/website/src/plugin/pluginmanager.ts similarity index 100% rename from client/src/plugin/pluginmanager.ts rename to frontend/website/src/plugin/pluginmanager.ts diff --git a/client/src/popups/popup.ts b/frontend/website/src/popups/popup.ts similarity index 100% rename from client/src/popups/popup.ts rename to frontend/website/src/popups/popup.ts diff --git a/client/src/schemas/airbases.schema.json b/frontend/website/src/schemas/airbases.schema.json similarity index 100% rename from client/src/schemas/airbases.schema.json rename to frontend/website/src/schemas/airbases.schema.json diff --git a/client/src/schemas/importdata.schema.json b/frontend/website/src/schemas/importdata.schema.json similarity index 100% rename from client/src/schemas/importdata.schema.json rename to frontend/website/src/schemas/importdata.schema.json diff --git a/frontend/website/src/schemas/schema.ts b/frontend/website/src/schemas/schema.ts new file mode 100644 index 00000000..a332f845 --- /dev/null +++ b/frontend/website/src/schemas/schema.ts @@ -0,0 +1,50 @@ +import Ajv from "ajv"; +import { AnySchemaObject } from "ajv/dist/core"; + + +// For future extension +abstract class JSONSchemaValidator { + + #ajv: Ajv; + #compiledValidator: any; + #schema!: AnySchemaObject; + + constructor(schema: AnySchemaObject) { + this.#schema = schema; + + this.#ajv = new Ajv({ + "allErrors": true + }); + + this.#compiledValidator = this.getAjv().compile(this.getSchema()); + + } + + getAjv() { + return this.#ajv; + } + + getCompiledValidator() { + return this.#compiledValidator; + } + + getErrors() { + return this.getCompiledValidator().errors; + } + + getSchema() { + return this.#schema; + } + + validate(data: any) { + return (this.getCompiledValidator())(data); + } + +} + +export class ImportFileJSONSchemaValidator extends JSONSchemaValidator { + constructor() { + const schema = require("../schemas/importdata.schema.json"); + super(schema); + } +} \ No newline at end of file diff --git a/client/src/server/dataextractor.ts b/frontend/website/src/server/dataextractor.ts similarity index 100% rename from client/src/server/dataextractor.ts rename to frontend/website/src/server/dataextractor.ts diff --git a/client/src/server/servermanager.ts b/frontend/website/src/server/servermanager.ts similarity index 100% rename from client/src/server/servermanager.ts rename to frontend/website/src/server/servermanager.ts diff --git a/client/src/shortcut/shortcut.ts b/frontend/website/src/shortcut/shortcut.ts similarity index 100% rename from client/src/shortcut/shortcut.ts rename to frontend/website/src/shortcut/shortcut.ts diff --git a/client/src/shortcut/shortcutmanager.ts b/frontend/website/src/shortcut/shortcutmanager.ts similarity index 100% rename from client/src/shortcut/shortcutmanager.ts rename to frontend/website/src/shortcut/shortcutmanager.ts diff --git a/client/src/toolbars/commandmodetoolbar.ts b/frontend/website/src/toolbars/commandmodetoolbar.ts similarity index 100% rename from client/src/toolbars/commandmodetoolbar.ts rename to frontend/website/src/toolbars/commandmodetoolbar.ts diff --git a/client/src/toolbars/primarytoolbar.ts b/frontend/website/src/toolbars/primarytoolbar.ts similarity index 100% rename from client/src/toolbars/primarytoolbar.ts rename to frontend/website/src/toolbars/primarytoolbar.ts diff --git a/client/src/toolbars/toolbar.ts b/frontend/website/src/toolbars/toolbar.ts similarity index 100% rename from client/src/toolbars/toolbar.ts rename to frontend/website/src/toolbars/toolbar.ts diff --git a/client/src/unit/contextaction.ts b/frontend/website/src/unit/contextaction.ts similarity index 100% rename from client/src/unit/contextaction.ts rename to frontend/website/src/unit/contextaction.ts diff --git a/client/src/unit/contextactionset.ts b/frontend/website/src/unit/contextactionset.ts similarity index 100% rename from client/src/unit/contextactionset.ts rename to frontend/website/src/unit/contextactionset.ts diff --git a/client/src/unit/databases/aircraftdatabase.ts b/frontend/website/src/unit/databases/aircraftdatabase.ts similarity index 100% rename from client/src/unit/databases/aircraftdatabase.ts rename to frontend/website/src/unit/databases/aircraftdatabase.ts diff --git a/client/src/unit/databases/citiesdatabase.ts b/frontend/website/src/unit/databases/citiesdatabase.ts similarity index 100% rename from client/src/unit/databases/citiesdatabase.ts rename to frontend/website/src/unit/databases/citiesdatabase.ts diff --git a/client/src/unit/databases/groundunitdatabase.ts b/frontend/website/src/unit/databases/groundunitdatabase.ts similarity index 100% rename from client/src/unit/databases/groundunitdatabase.ts rename to frontend/website/src/unit/databases/groundunitdatabase.ts diff --git a/client/src/unit/databases/helicopterdatabase.ts b/frontend/website/src/unit/databases/helicopterdatabase.ts similarity index 100% rename from client/src/unit/databases/helicopterdatabase.ts rename to frontend/website/src/unit/databases/helicopterdatabase.ts diff --git a/client/src/unit/databases/navyunitdatabase.ts b/frontend/website/src/unit/databases/navyunitdatabase.ts similarity index 100% rename from client/src/unit/databases/navyunitdatabase.ts rename to frontend/website/src/unit/databases/navyunitdatabase.ts diff --git a/client/src/unit/databases/unitdatabase.ts b/frontend/website/src/unit/databases/unitdatabase.ts similarity index 100% rename from client/src/unit/databases/unitdatabase.ts rename to frontend/website/src/unit/databases/unitdatabase.ts diff --git a/client/src/unit/group.ts b/frontend/website/src/unit/group.ts similarity index 100% rename from client/src/unit/group.ts rename to frontend/website/src/unit/group.ts diff --git a/client/src/unit/importexport/unitdatafile.ts b/frontend/website/src/unit/importexport/unitdatafile.ts similarity index 100% rename from client/src/unit/importexport/unitdatafile.ts rename to frontend/website/src/unit/importexport/unitdatafile.ts diff --git a/client/src/unit/importexport/unitdatafileexport.ts b/frontend/website/src/unit/importexport/unitdatafileexport.ts similarity index 100% rename from client/src/unit/importexport/unitdatafileexport.ts rename to frontend/website/src/unit/importexport/unitdatafileexport.ts diff --git a/client/src/unit/importexport/unitdatafileimport.ts b/frontend/website/src/unit/importexport/unitdatafileimport.ts similarity index 100% rename from client/src/unit/importexport/unitdatafileimport.ts rename to frontend/website/src/unit/importexport/unitdatafileimport.ts diff --git a/client/src/unit/unit.ts b/frontend/website/src/unit/unit.ts similarity index 100% rename from client/src/unit/unit.ts rename to frontend/website/src/unit/unit.ts diff --git a/client/src/unit/unitsmanager.ts b/frontend/website/src/unit/unitsmanager.ts similarity index 100% rename from client/src/unit/unitsmanager.ts rename to frontend/website/src/unit/unitsmanager.ts diff --git a/client/src/weapon/weapon.ts b/frontend/website/src/weapon/weapon.ts similarity index 100% rename from client/src/weapon/weapon.ts rename to frontend/website/src/weapon/weapon.ts diff --git a/client/src/weapon/weaponsmanager.ts b/frontend/website/src/weapon/weaponsmanager.ts similarity index 100% rename from client/src/weapon/weaponsmanager.ts rename to frontend/website/src/weapon/weaponsmanager.ts diff --git a/client/tsconfig.json b/frontend/website/tsconfig.json similarity index 100% rename from client/tsconfig.json rename to frontend/website/tsconfig.json diff --git a/manager/ejs/connections.ejs b/manager/ejs/connections.ejs index b4c5aecc..4ee16210 100644 --- a/manager/ejs/connections.ejs +++ b/manager/ejs/connections.ejs @@ -16,14 +16,14 @@
-
- Client port +
+ Frontend port
- " - onchange="signal('onClientPortChanged', this.value)"> + " + onchange="signal('onFrontendPortChanged', this.value)">
Port already in use diff --git a/manager/ejs/expertsettings.ejs b/manager/ejs/expertsettings.ejs index ac6e3d0c..110d4142 100644 --- a/manager/ejs/expertsettings.ejs +++ b/manager/ejs/expertsettings.ejs @@ -38,14 +38,14 @@
-
- Client port +
+ Frontend port
- " - onchange="signal('onClientPortChanged', this.value)"> + " + onchange="signal('onFrontendPortChanged', this.value)">
Port already in use diff --git a/manager/ejs/instances.ejs b/manager/ejs/instances.ejs index a02dae06..4c3d707b 100644 --- a/manager/ejs/instances.ejs +++ b/manager/ejs/instances.ejs @@ -81,8 +81,8 @@
-
Client port
-
<%= instances[i].installed? instances[i].clientPort: "N/A" %>
+
Frontend port
+
<%= instances[i].installed? instances[i].frontendPort: "N/A" %>
Backend port
diff --git a/manager/ejs/result.ejs b/manager/ejs/result.ejs index b7e60b6a..03a73053 100644 --- a/manager/ejs/result.ejs +++ b/manager/ejs/result.ejs @@ -82,7 +82,7 @@
- Alternatively, you can run the Olympus Server instead and visit in a web browser (Google Chrome recommended) to replace the first step above. + Alternatively, you can run the Olympus Server instead and visit in a web browser (Google Chrome recommended) to replace the first step above.
<% } else { %>
@@ -96,7 +96,7 @@
- To access Olympus remotely visit in a web browser (Google Chrome recommended). + To access Olympus remotely visit in a web browser (Google Chrome recommended).
@@ -108,7 +108,7 @@
- To access Olympus from this PC, you need to visit in a web browser (Google Chrome recommended) instead. + To access Olympus from this PC, you need to visit in a web browser (Google Chrome recommended) instead.
<% } %>
diff --git a/manager/ejs/settings.ejs b/manager/ejs/settings.ejs index ddfcdccc..40b7ab08 100644 --- a/manager/ejs/settings.ejs +++ b/manager/ejs/settings.ejs @@ -58,8 +58,8 @@
-
Client port
-
<%= instances[i].installed? instances[i].clientPort: "N/A" %>
+
Frontend port
+
<%= instances[i].installed? instances[i].frontendPort: "N/A" %>
Backend port
diff --git a/manager/javascripts/dcsinstance.js b/manager/javascripts/dcsinstance.js index 09dc577d..2235b50d 100644 --- a/manager/javascripts/dcsinstance.js +++ b/manager/javascripts/dcsinstance.js @@ -113,7 +113,7 @@ class DCSInstance { folder = ""; name = ""; - clientPort = 3000; + frontendPort = 3000; backendPort = 3001; backendAddress = "localhost"; gameMasterPassword = ""; @@ -137,7 +137,7 @@ class DCSInstance { this.folder = folder; this.name = path.basename(folder); - /* Periodically "ping" Olympus to check if either the client or the backend are active */ + /* Periodically "ping" Olympus to check if either the frontend or the backend are active */ window.setInterval(async () => { await this.getData(); getManager().updateInstances(); @@ -162,9 +162,9 @@ class DCSInstance { try { /* Read the olympus.json */ var config = JSON.parse(fs.readFileSync(path.join(this.folder, "Config", "olympus.json"))); - this.clientPort = config["client"]["port"]; - this.backendPort = config["server"]["port"]; - this.backendAddress = config["server"]["address"]; + this.frontendPort = config["frontend"]["port"]; + this.backendPort = config["backend"]["port"]; + this.backendAddress = config["backend"]["address"]; this.gameMasterPasswordHash = config["authentication"]["gameMasterPassword"]; this.gameMasterPasswordEdited = false; @@ -214,13 +214,13 @@ class DCSInstance { return this.error; } - /** Set the client port + /** Set the frontend port * - * @param {Number} newPort The new client port to set + * @param {Number} newPort The new frontend port to set */ - setClientPort(newPort) { - logger.log(`Instance ${this.folder} client port set to ${newPort}`) - this.clientPort = newPort; + setFrontendPort(newPort) { + logger.log(`Instance ${this.folder} frontend port set to ${newPort}`) + this.frontendPort = newPort; } /** Set the backend port @@ -291,26 +291,26 @@ class DCSInstance { return !(getManager().getActiveInstance().gameMasterPassword === getManager().getActiveInstance().blueCommanderPassword || getManager().getActiveInstance().gameMasterPassword === getManager().getActiveInstance().redCommanderPassword || getManager().getActiveInstance().blueCommanderPassword === getManager().getActiveInstance().redCommanderPassword); } - /** Asynchronously check if the client port is free + /** Asynchronously check if the frontend port is free * - * @param {Number | undefined} port The port to check. If not set, the current clientPort will be checked - * @returns true if the client port is free + * @param {Number | undefined} port The port to check. If not set, the current frontendPort will be checked + * @returns true if the frontend port is free */ - async checkClientPort(port) { - port = port ?? this.clientPort; + async checkFrontendPort(port) { + port = port ?? this.frontendPort; - logger.log(`Checking client port ${port}`); + logger.log(`Checking frontend port ${port}`); var portFree = await checkPort(port); if (portFree) { portFree = !(await DCSInstance.getInstances()).some((instance) => { if (instance !== this && instance.installed) { - if (instance.clientPort === port || instance.backendPort === port) { - logger.log(`Client port ${port} already selected by other instance`); + if (instance.frontendPort === port || instance.backendPort === port) { + logger.log(`Frontend port ${port} already selected by other instance`); return true; } } else { if (instance.backendPort === port) { - logger.log(`Client port ${port} equal to backend port`); + logger.log(`Frontend port ${port} equal to backend port`); return true; } } @@ -318,7 +318,7 @@ class DCSInstance { }) } else { - logger.log(`Client port ${port} currently in use`); + logger.log(`Frontend port ${port} currently in use`); } return portFree; } @@ -336,13 +336,13 @@ class DCSInstance { if (portFree) { portFree = !(await DCSInstance.getInstances()).some((instance) => { if (instance !== this && instance.installed) { - if (instance.clientPort === port || instance.backendPort === port) { + if (instance.frontendPort === port || instance.backendPort === port) { logger.log(`Backend port ${port} already selected by other instance`); return true; } } else { - if (instance.clientPort === port) { - logger.log(`Backend port ${port} equal to client port`); + if (instance.frontendPort === port) { + logger.log(`Backend port ${port} equal to frontend port`); return true; } } @@ -354,30 +354,30 @@ class DCSInstance { return portFree; } - /** Asynchronously find free client and backend ports. If the old ports are free, it will keep them. + /** Asynchronously find free frontend and backend ports. If the old ports are free, it will keep them. * */ async findFreePorts() { logger.log(`Looking for free ports`); - if (await this.checkClientPort() && await this.checkBackendPort()) { + if (await this.checkFrontendPort() && await this.checkBackendPort()) { logger.log("Old ports are free, keeping them") } else { logger.log(`Finding new free ports`); const instances = await DCSInstance.getInstances(); - const firstPort = instances.map((instance) => { return instance.clientPort; }).concat(instances.map((instance) => { return instance.backendPort; })).sort().at(-1) + 1; + const firstPort = instances.map((instance) => { return instance.frontendPort; }).concat(instances.map((instance) => { return instance.backendPort; })).sort().at(-1) + 1; - var clientPort = await getFreePort(firstPort); - if (clientPort === false) - rej("Unable to find a free client port"); - logger.log(`Found free client port ${clientPort}`); + var frontendPort = await getFreePort(firstPort); + if (frontendPort === false) + rej("Unable to find a free frontend port"); + logger.log(`Found free frontend port ${frontendPort}`); - var backendPort = await getFreePort(clientPort + 1); + var backendPort = await getFreePort(frontendPort + 1); if (backendPort === false) rej("Unable to find a free backend port"); logger.log(`Found free backend port ${backendPort}`); - this.clientPort = clientPort; + this.frontendPort = frontendPort; this.backendPort = backendPort; } } @@ -387,7 +387,7 @@ class DCSInstance { */ async getData() { if (this.installed) { - fetchWithTimeout(`http://localhost:${this.clientPort}`, { timeout: 250 }) + fetchWithTimeout(`http://localhost:${this.frontendPort}`, { timeout: 250 }) .then(async (response) => { this.webserverOnline = (await response.text()).includes("Olympus"); }, () => { @@ -432,7 +432,7 @@ class DCSInstance { const err = fs.openSync(`./${this.name}.log`, 'a'); const sub = spawn('cscript.exe', ['server.vbs', path.join(this.folder, "Config", "olympus.json")], { detached: true, - cwd: "../client", + cwd: "../frontend", stdio: ['ignore', out, err] }); @@ -448,7 +448,7 @@ class DCSInstance { const err = fs.openSync(`./${this.name}.log`, 'a'); const sub = spawn('cscript.exe', ['client.vbs', path.join(this.folder, "Config", "olympus.json")], { detached: true, - cwd: "../client", + cwd: "../frontend", stdio: ['ignore', out, err] }); @@ -459,7 +459,7 @@ class DCSInstance { * */ stop() { - find('port', this.clientPort) + find('port', this.frontendPort) .then((list) => { if (list.length !== 1) { list.length === 0 ? logger.error("No processes found on the specified port") : logger.error("Too many processes found on the specified port"); diff --git a/manager/javascripts/filesystem.js b/manager/javascripts/filesystem.js index f2365b60..96c2fd7e 100644 --- a/manager/javascripts/filesystem.js +++ b/manager/javascripts/filesystem.js @@ -96,43 +96,43 @@ async function installShortCuts(folder, name) { var res1 = createShortcut({ windows: { - filePath: path.resolve(__dirname, '..', '..', 'client', 'client.vbs'), + filePath: path.resolve(__dirname, '..', '..', 'frontend', 'client.vbs'), outputPath: folder, name: `DCS Olympus Client (${name})`, arguments: `"${path.join(folder, "Config", "olympus.json")}"`, icon: path.resolve(__dirname, '..', '..', 'img', 'olympus.ico'), - workingDirectory: path.resolve(__dirname, '..', '..', 'client') + workingDirectory: path.resolve(__dirname, '..', '..', 'frontend') } }); var res2 = createShortcut({ windows: { - filePath: path.resolve(__dirname, '..', '..', 'client', 'server.vbs'), + filePath: path.resolve(__dirname, '..', '..', 'frontend', 'server.vbs'), outputPath: folder, name: `DCS Olympus Server (${name})`, arguments: `"${path.join(folder, "Config", "olympus.json")}"`, icon: path.resolve(__dirname, '..', '..', 'img', 'olympus_server.ico'), - workingDirectory: path.resolve(__dirname, '..', '..', 'client') + workingDirectory: path.resolve(__dirname, '..', '..', 'frontend') } }); var res3 = createShortcut({ windows: { - filePath: path.resolve(__dirname, '..', '..', 'client', 'client.vbs'), + filePath: path.resolve(__dirname, '..', '..', 'frontend', 'client.vbs'), name: `DCS Olympus Client (${name})`, arguments: `"${path.join(folder, "Config", "olympus.json")}"`, icon: path.resolve(__dirname, '..', '..', 'img', 'olympus.ico'), - workingDirectory: path.resolve(__dirname, '..', '..', 'client') + workingDirectory: path.resolve(__dirname, '..', '..', 'frontend') } }); var res4 = createShortcut({ windows: { - filePath: path.resolve(__dirname, '..', '..', 'client', 'server.vbs'), + filePath: path.resolve(__dirname, '..', '..', 'frontend', 'server.vbs'), name: `DCS Olympus Server (${name})`, arguments: `"${path.join(folder, "Config", "olympus.json")}"`, icon: path.resolve(__dirname, '..', '..', 'img', 'olympus_server.ico'), - workingDirectory: path.resolve(__dirname, '..', '..', 'client') + workingDirectory: path.resolve(__dirname, '..', '..', 'frontend') } }); @@ -158,9 +158,9 @@ async function applyConfiguration(folder, instance) { } /* Apply the configuration */ - config["client"]["port"] = instance.clientPort; - config["server"]["port"] = instance.backendPort; - config["server"]["address"] = instance.backendAddress; + config["frontend"]["port"] = instance.frontendPort; + config["backend"]["port"] = instance.backendPort; + config["backend"]["address"] = instance.backendAddress; config["authentication"]["gameMasterPassword"] = sha256(instance.gameMasterPassword); config["authentication"]["blueCommanderPassword"] = sha256(instance.blueCommanderPassword); config["authentication"]["redCommanderPassword"] = sha256(instance.redCommanderPassword); diff --git a/manager/javascripts/manager.js b/manager/javascripts/manager.js index 3037a5ae..353e8a3e 100644 --- a/manager/javascripts/manager.js +++ b/manager/javascripts/manager.js @@ -149,13 +149,13 @@ class Manager { /* Force the setting of the ports whenever the page is shown */ this.connectionsPage.options.onShow = () => { if (this.getActiveInstance()) { - this.setPort('client', this.getActiveInstance().clientPort); + this.setPort('frontend', this.getActiveInstance().frontendPort); this.setPort('backend', this.getActiveInstance().backendPort); } } this.expertSettingsPage.options.onShow = () => { if (this.getActiveInstance()) { - this.setPort('client', this.getActiveInstance().clientPort); + this.setPort('frontend', this.getActiveInstance().frontendPort); this.setPort('backend', this.getActiveInstance().backendPort); } } @@ -270,7 +270,7 @@ class Manager { this.typePage.show(); } else { if (this.getActiveInstance().webserverOnline || this.getActiveInstance().backendOnline) { - showErrorPopup("
The selected Olympus instance is currently active
Please stop DCS and Olympus Server/Client before editing it!
"); + showErrorPopup("
The selected Olympus instance is currently active
Please stop DCS and Olympus Server/Frontend before editing it!
"); } else { showConfirmPopup("
Olympus is already installed in this instance!
If you click Accept, it will be installed again and all changes, e.g. custom databases or mods support, will be lost. Are you sure you want to continue?
", () => { @@ -456,9 +456,9 @@ class Manager { showErrorPopup(`
A critical error occurred!
Check ${this.getLogLocation()} for more info.
`); } - /* When the client port input value is changed */ - async onClientPortChanged(value) { - this.setPort('client', Number(value)); + /* When the frontend port input value is changed */ + async onFrontendPortChanged(value) { + this.setPort('frontend', Number(value)); } /* When the backend port input value is changed */ @@ -498,12 +498,12 @@ class Manager { } async checkPorts() { - var clientPortFree = await this.getActiveInstance().checkClientPort(); + var frontendPortFree = await this.getActiveInstance().checkFrontendPort(); var backendPortFree = await this.getActiveInstance().checkBackendPort(); - if (clientPortFree && backendPortFree) { + if (frontendPortFree && backendPortFree) { return true; } else { - showErrorPopup(`
Please, make sure both the client and backend ports are free!
If ports are already in use, Olympus will not be able to communicated correctly.
`); + showErrorPopup(`
Please, make sure both the frontend and backend ports are free!
If ports are already in use, Olympus will not be able to communicated correctly.
`); return false; } } @@ -546,7 +546,7 @@ class Manager { async onOpenBrowserClicked(name) { var instance = await this.getClickedInstance(name); - exec(`start http://localhost:${instance.clientPort}`) + exec(`start http://localhost:${instance.frontendPort}`) } async onStopClicked(name) { @@ -611,9 +611,9 @@ class Manager { /* Set the selected port to the dcs instance */ async setPort(port, value) { var success; - if (port === 'client') { - success = await this.getActiveInstance().checkClientPort(value); - this.getActiveInstance().setClientPort(value); + if (port === 'frontend') { + success = await this.getActiveInstance().checkFrontendPort(value); + this.getActiveInstance().setFrontendPort(value); } else { success = await this.getActiveInstance().checkBackendPort(value); diff --git a/manager/manager.log b/manager/manager.log new file mode 100644 index 00000000..7068c219 --- /dev/null +++ b/manager/manager.log @@ -0,0 +1,123 @@ + ======================= New log starting at Thu Feb 08 2024 21:55:39 GMT+0100 (Central European Standard Time) ======================= +Running in C:\Users\dpass\Documents\DCSOlympus\manager\javascripts +Development build detected, skipping version checks... + ======================= New log starting at Thu Feb 08 2024 21:55:43 GMT+0100 (Central European Standard Time) ======================= +Running in C:\Users\dpass\Documents\DCSOlympus\manager\javascripts +Found instance in C:\Users\dpass\Saved Games\DCS.openbeta, checking for Olympus +Comparing Mods content in C:\Users\dpass\Saved Games\DCS.openbeta +Comparing Scripts content in C:\Users\dpass\Saved Games\DCS.openbeta +Error: ENOENT: no such file or directory, lstat 'C:\Users\dpass\Documents\DCSOlympus\scripts\OlympusHook.lua' + at Object.realpathSync (node:fs:2655:7) + at Object.realpathSync (node:electron/js2c/asar_bundle:2:5358) + at Object.compareSync (C:\Users\dpass\Documents\DCSOlympus\manager\node_modules\dir-compare\build\src\index.js:44:88) + at DCSInstance.checkInstallation (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:196:41) + at async DCSInstance.findInstances (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:68:21) + at async Manager.start (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\manager.js:97:29) + at async C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\preload.js:267:5 { + errno: -4058, + syscall: 'lstat', + code: 'ENOENT', + path: 'C:\\Users\\dpass\\Documents\\DCSOlympus\\scripts\\OlympusHook.lua' +} +Differences found! +Comparing Mods content in C:\Users\dpass\Saved Games\DCS.openbeta +Development build detected, skipping version checks... +Comparing Scripts content in C:\Users\dpass\Saved Games\DCS.openbeta +Error: ENOENT: no such file or directory, lstat 'C:\Users\dpass\Documents\DCSOlympus\scripts\OlympusHook.lua' + at Object.realpathSync (node:fs:2655:7) + at Object.realpathSync (node:electron/js2c/asar_bundle:2:5358) + at Object.compareSync (C:\Users\dpass\Documents\DCSOlympus\manager\node_modules\dir-compare\build\src\index.js:44:88) + at DCSInstance.checkInstallation (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:196:41) + at async DCSInstance.reloadInstances (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:38:13) + at async Manager.setState (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\manager.js:725:9) + at async menuPage.options.onShow (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\manager.js:165:17) { + errno: -4058, + syscall: 'lstat', + code: 'ENOENT', + path: 'C:\\Users\\dpass\\Documents\\DCSOlympus\\scripts\\OlympusHook.lua' +} +Differences found! +Fixing Olympus in C:\Users\dpass\Saved Games\DCS.openbeta +Deleting mod from C:\Users\dpass\Saved Games\DCS.openbeta +Mod succesfully removed from C:\Users\dpass\Saved Games\DCS.openbeta +Deleting hooks from C:\Users\dpass\Saved Games\DCS.openbeta +Deleting C:\Users\dpass\Saved Games\DCS.openbeta\Scripts\Hooks\OlympusHook.lua +C:\Users\dpass\Saved Games\DCS.openbeta\Scripts\Hooks\OlympusHook.lua does not exist, nothing to do +Installing mod in C:\Users\dpass\Saved Games\DCS.openbeta +Mod succesfully installed in C:\Users\dpass\Saved Games\DCS.openbeta +C:\Users\dpass\Documents\DCS Olympus backups\DCS.openbeta\databases +Backup databases found, copying over +Backup mods.lua found, copying over +Installing hooks in C:\Users\dpass\Saved Games\DCS.openbeta +[Error: ENOENT: no such file or directory, lstat 'C:\Users\dpass\Documents\DCSOlympus\scripts\OlympusHook.lua'] { + errno: -4058, + code: 'ENOENT', + syscall: 'lstat', + path: 'C:\\Users\\dpass\\Documents\\DCSOlympus\\scripts\\OlympusHook.lua' +} +Comparing Mods content in C:\Users\dpass\Saved Games\DCS.openbeta +Comparing Scripts content in C:\Users\dpass\Saved Games\DCS.openbeta +Error: ENOENT: no such file or directory, lstat 'C:\Users\dpass\Documents\DCSOlympus\scripts\OlympusHook.lua' + at Object.realpathSync (node:fs:2655:7) + at Object.realpathSync (node:electron/js2c/asar_bundle:2:5358) + at Object.compareSync (C:\Users\dpass\Documents\DCSOlympus\manager\node_modules\dir-compare\build\src\index.js:44:88) + at DCSInstance.checkInstallation (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:196:41) + at async DCSInstance.reloadInstances (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:38:13) + at async Manager.setState (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\manager.js:725:9) + at async Manager.onEditMenuClicked (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\manager.js:298:9) { + errno: -4058, + syscall: 'lstat', + code: 'ENOENT', + path: 'C:\\Users\\dpass\\Documents\\DCSOlympus\\scripts\\OlympusHook.lua' +} +Differences found! +Comparing Mods content in C:\Users\dpass\Saved Games\DCS.openbeta +Comparing Scripts content in C:\Users\dpass\Saved Games\DCS.openbeta +Error: ENOENT: no such file or directory, lstat 'C:\Users\dpass\Documents\DCSOlympus\scripts\OlympusHook.lua' + at Object.realpathSync (node:fs:2655:7) + at Object.realpathSync (node:electron/js2c/asar_bundle:2:5358) + at Object.compareSync (C:\Users\dpass\Documents\DCSOlympus\manager\node_modules\dir-compare\build\src\index.js:44:88) + at DCSInstance.checkInstallation (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:196:41) + at async DCSInstance.reloadInstances (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\dcsinstance.js:38:13) + at async Manager.setState (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\manager.js:725:9) + at async Manager.onUninstallClicked (C:\Users\dpass\Documents\DCSOlympus\manager\javascripts\manager.js:580:9) { + errno: -4058, + syscall: 'lstat', + code: 'ENOENT', + path: 'C:\\Users\\dpass\\Documents\\DCSOlympus\\scripts\\OlympusHook.lua' +} +Differences found! +Uninstalling Olympus from C:\Users\dpass\Saved Games\DCS.openbeta +Deleting mod from C:\Users\dpass\Saved Games\DCS.openbeta +Mod succesfully removed from C:\Users\dpass\Saved Games\DCS.openbeta +Deleting hooks from C:\Users\dpass\Saved Games\DCS.openbeta +Deleting C:\Users\dpass\Saved Games\DCS.openbeta\Scripts\Hooks\OlympusHook.lua +C:\Users\dpass\Saved Games\DCS.openbeta\Scripts\Hooks\OlympusHook.lua does not exist, nothing to do +Deleting JSON from C:\Users\dpass\Saved Games\DCS.openbeta +Deleting C:\Users\dpass\Saved Games\DCS.openbeta\Config\olympus.json +C:\Users\dpass\Saved Games\DCS.openbeta\Config\olympus.json does not exist, nothing to do +Deleting ShortCuts from C:\Users\dpass\Saved Games\DCS.openbeta and desktop +Deleting C:\Users\dpass\Saved Games\DCS.openbeta\DCS Olympus Server (DCS.openbeta).lnk +C:\Users\dpass\Saved Games\DCS.openbeta\DCS Olympus Server (DCS.openbeta).lnk does not exist, nothing to do +Deleting C:\Users\dpass\Saved Games\DCS.openbeta\DCS Olympus Client (DCS.openbeta).lnk +C:\Users\dpass\Saved Games\DCS.openbeta\DCS Olympus Client (DCS.openbeta).lnk does not exist, nothing to do +Deleting C:\Users\dpass\Desktop\DCS Olympus Server (DCS.openbeta).lnk +C:\Users\dpass\Desktop\DCS Olympus Server (DCS.openbeta).lnk does not exist, nothing to do +Deleting C:\Users\dpass\Desktop\DCS Olympus Client (DCS.openbeta).lnk +C:\Users\dpass\Desktop\DCS Olympus Client (DCS.openbeta).lnk does not exist, nothing to do +ShortCuts deleted from C:\Users\dpass\Saved Games\DCS.openbeta and desktop +Olympus removed from C:\Users\dpass\Saved Games\DCS.openbeta +Installing hooks in C:\Users\dpass\Saved Games\DCS.openbeta +An error occurred during installation: Error: ENOENT: no such file or directory, lstat 'C:\Users\dpass\Documents\DCSOlympus\scripts\OlympusHook.lua' + ======================= New log starting at Thu Feb 08 2024 21:58:08 GMT+0100 (Central European Standard Time) ======================= +Running in C:\Users\dpass\Documents\DCSOlympus\manager\javascripts +Found instance in C:\Users\dpass\Saved Games\DCS.openbeta, checking for Olympus +Development build detected, skipping version checks... + ======================= New log starting at Thu Feb 08 2024 21:59:00 GMT+0100 (Central European Standard Time) ======================= +Running in C:\Users\dpass\Documents\DCSOlympus\manager\javascripts +Found instance in C:\Users\dpass\Saved Games\DCS.openbeta, checking for Olympus +Development build detected, skipping version checks... + ======================= New log starting at Thu Feb 08 2024 21:59:52 GMT+0100 (Central European Standard Time) ======================= +Running in C:\Users\dpass\Documents\DCSOlympus\manager\javascripts +Found instance in C:\Users\dpass\Saved Games\DCS.openbeta, checking for Olympus +Development build detected, skipping version checks... diff --git a/manager/options.json b/manager/options.json new file mode 100644 index 00000000..8e073eee --- /dev/null +++ b/manager/options.json @@ -0,0 +1,4 @@ +{ + "mode": "basic", + "additionalDCSInstances": [] +} \ No newline at end of file diff --git a/olympus.json b/olympus.json index 1403f731..e40a4843 100644 --- a/olympus.json +++ b/olympus.json @@ -1,5 +1,5 @@ { - "server": { + "backend": { "address": "localhost", "port": 3001 }, @@ -8,7 +8,7 @@ "blueCommanderPassword": "b0ea4230c1558c5313165eda1bdb7fced008ca7f2ca6b823fb4d26292f309098", "redCommanderPassword": "302bcbaf2a3fdcf175b689bf102d6cdf9328f68a13d4096101bba806482bfed9" }, - "client": { + "frontend": { "port": 3000, "elevationProvider": { "provider": "https://srtm.fasma.org/{lat}{lng}.SRTMGL3S.hgt.zip", diff --git a/scripts/batch/build.bat b/scripts/batch/build.bat index 31ef8ebc..8dea1da5 100644 --- a/scripts/batch/build.bat +++ b/scripts/batch/build.bat @@ -5,8 +5,9 @@ cd backend msbuild olympus.sln /t:Build /p:Configuration=Release cd .. -cd client -rmdir /s /q hgt +cd frontend + +cd website call npm install call npm run emit-declarations call npm run build-release @@ -23,6 +24,14 @@ cd ..\.. cd .. +cd server +rmdir /s /q hgt +call npm install +call npm run build-release +cd .. + +cd .. + cd manager call npm run build-release cd .. diff --git a/scripts/batch/install.bat b/scripts/batch/install.bat index 55dbd40c..d703df57 100644 --- a/scripts/batch/install.bat +++ b/scripts/batch/install.bat @@ -34,8 +34,8 @@ if "%errorlevel%" == "9009" ( echo node.js is already installed, continuing installation! ) -echo Installing node modules for client application... -cd .\client +echo Installing node modules for frontend application... +cd .\frontend call npm install --omit=dev cd.. diff --git a/scripts/batch/package.bat b/scripts/batch/package.bat index fdf14ab9..b037fafc 100644 --- a/scripts/batch/package.bat +++ b/scripts/batch/package.bat @@ -23,8 +23,8 @@ echo D|xcopy /Y /S /E .\databases .\package\mod\databases REM copy the backend dll echo F|xcopy /Y /I .\build\backend\bin\*.dll .\package\mod\bin -REM copy the client -echo D|xcopy /Y /S /E .\build\client .\package\client +REM copy the frontend +echo D|xcopy /Y /S /E .\build\frontend .\package\frontend REM copy the manager echo D|xcopy /Y /S /E .\build\manager .\package\manager diff --git a/scripts/python/addLiveries.py b/scripts/python/addLiveries.py index 0576815a..37af1026 100644 --- a/scripts/python/addLiveries.py +++ b/scripts/python/addLiveries.py @@ -26,13 +26,13 @@ mismatched_ids = { # The database file on which to operate is the first standard argument of the call if len(sys.argv) > 1: if (sys.argv[1] == "aircraft"): - filename = '..\\..\\client\\public\\databases\\units\\aircraftdatabase.json' + filename = '..\\..\\databases\\units\\aircraftdatabase.json' elif (sys.argv[1] == "helicopter"): - filename = '..\\..\\client\\public\\databases\\units\\helicopterdatabase.json' + filename = '..\\..\\databases\\units\\helicopterdatabase.json' elif (sys.argv[1] == "groundunit"): - filename = '..\\..\\client\\public\\databases\\units\\groundunitdatabase.json' + filename = '..\\..\\databases\\units\\groundunitdatabase.json' elif (sys.argv[1] == "navyunit"): - filename = '..\\..\\client\\public\\databases\\units\\navyunitdatabase.json' + filename = '..\\..\\databases\\units\\navyunitdatabase.json' # Loads the database with open(filename, encoding="utf-8") as f: diff --git a/scripts/python/addLoadouts.py b/scripts/python/addLoadouts.py index 727dd487..1f19c592 100644 --- a/scripts/python/addLoadouts.py +++ b/scripts/python/addLoadouts.py @@ -104,13 +104,13 @@ def find_weapon_name(clsid): # The database file on which to operate is the first standard argument of the call if len(sys.argv) > 1: if (sys.argv[1] == "aircraft"): - filename = '..\\..\\client\\public\\databases\\units\\aircraftdatabase.json' + filename = '..\\..\\databases\\units\\aircraftdatabase.json' elif (sys.argv[1] == "helicopter"): - filename = '..\\..\\client\\public\\databases\\units\\helicopterdatabase.json' + filename = '..\\..\\databases\\units\\helicopterdatabase.json' elif (sys.argv[1] == "groundunit"): - filename = '..\\..\\client\\public\\databases\\units\\groundunitdatabase.json' + filename = '..\\..\\databases\\units\\groundunitdatabase.json' elif (sys.argv[1] == "navyunit"): - filename = '..\\..\\client\\public\\databases\\units\\navyunitdatabase.json' + filename = '..\\..\\databases\\units\\navyunitdatabase.json' # Loads the database with open(filename, encoding="utf-8") as f: diff --git a/scripts/python/addMissingUnits.py b/scripts/python/addMissingUnits.py index 2310ec49..f4f5f794 100644 --- a/scripts/python/addMissingUnits.py +++ b/scripts/python/addMissingUnits.py @@ -16,16 +16,16 @@ from dcs.helicopters import * # The database file on which to operate is the first standard argument of the call if len(sys.argv) > 1: if (sys.argv[1] == "aircraft"): - filename = '..\\..\\client\\public\\databases\\units\\aircraftdatabase.json' + filename = '..\\..\\databases\\units\\aircraftdatabase.json' units_map = plane_map elif (sys.argv[1] == "helicopter"): - filename = '..\\..\\client\\public\\databases\\units\\helicopterdatabase.json' + filename = '..\\..\\databases\\units\\helicopterdatabase.json' units_map = helicopter_map elif (sys.argv[1] == "groundunit"): - filename = '..\\..\\client\\public\\databases\\units\\groundunitdatabase.json' + filename = '..\\..\\databases\\units\\groundunitdatabase.json' units_map = vehicle_map elif (sys.argv[1] == "navyunit"): - filename = '..\\..\\client\\public\\databases\\units\\navyunitdatabase.json' + filename = '..\\..\\databases\\units\\navyunitdatabase.json' units_map = ship_map # Loads the database diff --git a/scripts/python/addRanges.py b/scripts/python/addRanges.py index 29656fdb..a7fe0c68 100644 --- a/scripts/python/addRanges.py +++ b/scripts/python/addRanges.py @@ -16,13 +16,13 @@ from dcs.helicopters import * # The database file on which to operate is the first standard argument of the call if len(sys.argv) > 1: if (sys.argv[1] == "aircraft"): - filename = '..\\..\\client\\public\\databases\\units\\aircraftdatabase.json' + filename = '..\\..\\databases\\units\\aircraftdatabase.json' elif (sys.argv[1] == "helicopter"): - filename = '..\\..\\client\\public\\databases\\units\\helicopterdatabase.json' + filename = '..\\..\\databases\\units\\helicopterdatabase.json' elif (sys.argv[1] == "groundunit"): - filename = '..\\..\\client\\public\\databases\\units\\groundunitdatabase.json' + filename = '..\\..\\databases\\units\\groundunitdatabase.json' elif (sys.argv[1] == "navyunit"): - filename = '..\\..\\client\\public\\databases\\units\\navyunitdatabase.json' + filename = '..\\..\\databases\\units\\navyunitdatabase.json' # Loads the database with open(filename) as f: diff --git a/scripts/python/convertTags.py b/scripts/python/convertTags.py index 3c10cfb3..c13d0e7d 100644 --- a/scripts/python/convertTags.py +++ b/scripts/python/convertTags.py @@ -6,13 +6,13 @@ import re # The database file on which to operate is the first standard argument of the call if len(sys.argv) > 1: if (sys.argv[1] == "aircraft"): - filename = '..\\..\\client\\public\\databases\\units\\aircraftdatabase.json' + filename = '..\\..\\databases\\units\\aircraftdatabase.json' elif (sys.argv[1] == "helicopter"): - filename = '..\\..\\client\\public\\databases\\units\\helicopterdatabase.json' + filename = '..\\..\\databases\\units\\helicopterdatabase.json' elif (sys.argv[1] == "groundunit"): - filename = '..\\..\\client\\public\\databases\\units\\groundunitdatabase.json' + filename = '..\\..\\databases\\units\\groundunitdatabase.json' elif (sys.argv[1] == "navyunit"): - filename = '..\\..\\client\\public\\databases\\units\\navyunitdatabase.json' + filename = '..\\..\\databases\\units\\navyunitdatabase.json' # Loads the database with open(filename) as f: diff --git a/scripts/python/exportDatabases.py b/scripts/python/exportDatabases.py deleted file mode 100644 index d4880cd0..00000000 --- a/scripts/python/exportDatabases.py +++ /dev/null @@ -1,53 +0,0 @@ -import json - -base = '..\\..\\client\\public\\databases\\units\\' -filenames = [f'{base}aircraftdatabase.json', f'{base}helicopterdatabase.json', f'{base}groundunitdatabase.json', f'{base}navyunitdatabase.json'] - -lines = [] - -for filename in filenames: - # Loads the database - with open(filename, encoding="utf8") as f: - database = json.load(f) - - for key in database: - acquisition_range = "" - engagement_range = "" - abilities = "" - description = "" - unit_type = "" - database_type = "" - - if filename == f'{base}aircraftdatabase.json': - unit_type = "Aircraft" - database_type = "Aircraft" - elif filename == f'{base}helicopterdatabase.json': - unit_type = "Helicopter" - database_type = "Helicopter" - elif filename == f'{base}groundunitdatabase.json': - unit_type = database[key]["type"] - database_type = "Ground Unit" - else: - unit_type = database[key]["type"] - database_type = "Navy Unit" - - if "acquisitionRange" in database[key]: - acquisition_range = database[key]["acquisitionRange"] - - if "engagementRange" in database[key]: - engagement_range = database[key]["engagementRange"] - - if "abilities" in database[key]: - abilities = database[key]["abilities"] - - if "description" in database[key]: - description = database[key]["description"] - - line = f"{database[key]['name']}\t{database_type}\t{unit_type}\t{database[key]['label']}\t{database[key]['shortLabel']}\t{database[key]['coalition']}\t{database[key]['era']}\t{acquisition_range}\t{engagement_range}\t{description}\t{abilities}\n" - - lines.append(line) - -with open("new.csv", "w") as f: - f.writelines(lines) - -print("Done!") \ No newline at end of file diff --git a/scripts/python/importDatabases.py b/scripts/python/importDatabases.py deleted file mode 100644 index 2fd5baf4..00000000 --- a/scripts/python/importDatabases.py +++ /dev/null @@ -1,59 +0,0 @@ -import csv -import sys -import json - -# Read CSV file -with open("data.csv") as fp: - reader = csv.reader(fp, delimiter=",", quotechar='"') - data_read = [row for row in reader] - -base = '..\\..\\client\\public\\databases\\units\\' -filenames = [f'{base}aircraftdatabase.json', f'{base}helicopterdatabase.json', f'{base}groundunitdatabase.json', f'{base}navyunitdatabase.json'] - -lines = [] - -for filename in filenames: - # Loads the database - with open(filename, encoding="utf8") as f: - database = json.load(f) - - for row in data_read: - if row[0] in database: - name = row[0] - - if row[1] == "yes": - database[name]["enabled"] = True - else: - database[name]["enabled"] = False - - database[name]["type"] = row[3] - database[name]["label"] = row[4] - database[name]["shortLabel"] = row[5] - database[name]["coalition"] = row[6] - database[name]["era"] = row[7] - - if row[8] == "yes": - database[name]["canTargetPoint"] = True - else: - database[name]["canTargetPoint"] = False - - if row[9] == "yes": - database[name]["canRearm"] = True - else: - database[name]["canRearm"] = False - - if row[10] != "": - database[name]["acquisitionRange"] = int(row[10]) - - if row[11] != "": - database[name]["engagementRange"] = int(row[11]) - - database[name]["description"] = row[12] - database[name]["abilities"] = row[13] - - # Dump everything in the database - with open(filename, "w") as f: - json.dump(database, f, indent=2) - -# Done! -print("Done!")