From 5b71c1760ddc5d9b9943c76018046f1133dc86d5 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sun, 26 Feb 2023 09:51:42 +0100 Subject: [PATCH 01/73] initial setup --- .eslintrc.js | 60 ++++++++++++++++++++++++++++++++++ app.js | 32 ++++++++++++++++++ projectWebsite/docs/index.html | 0 projectWebsite/index.html | 1 + 4 files changed, 93 insertions(+) create mode 100644 .eslintrc.js create mode 100644 app.js create mode 100644 projectWebsite/docs/index.html create mode 100644 projectWebsite/index.html diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..7b676c3 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,60 @@ +module.exports = { + 'env': { + 'browser': true, + 'commonjs': true, + 'es2021': true, + 'node': true + }, + 'extends': 'eslint:recommended', + 'overrides': [ + ], + 'parserOptions': { + 'ecmaVersion': 'latest' + }, + 'rules': { + 'indent': [ + 'error', + 4 + ], + 'linebreak-style': [ + 'error', + 'unix' + ], + 'quotes': [ + 'error', + 'single' + ], + 'semi': [ + 'error', + 'always' + ], + 'spaced-comment': [ + 'error', + 'always' + ], + 'arrow-spacing': [ + 'error', + { 'before': true, 'after': true } + ], + 'func-call-spacing': [ + 'error', + 'never' + ], + 'keyword-spacing': [ + 'error', + { 'before': true, 'after': true } + ], + 'key-spacing': [ + 'error', + { 'mode': 'strict' } + ], + 'space-before-blocks': [ + 'error', + 'always' + ], + 'space-in-parens': [ + 'error', + 'always' + ] + } +}; diff --git a/app.js b/app.js new file mode 100644 index 0000000..3365410 --- /dev/null +++ b/app.js @@ -0,0 +1,32 @@ +const express = require( 'express' ); +let app = express(); +const path = require( 'path' ); +const expressSession = require( 'express-session' ); +const fs = require( 'fs' ); +const bodyParser = require( 'body-parser' ); +const cookieParser = require( 'cookie-parser' ); +const favicon = require( 'serve-favicon' ); +const http = require( 'http' ); + +app.use( expressSession( { + secret: 'gaoevgoawefgo083tq2rfvöfaf0p8', + resave: true, + saveUninitialized: true +} ) ); +app.use( bodyParser.urlencoded( { extended: false } ) ); +app.use( bodyParser.json() ); +app.use( cookieParser() ); +app.use( favicon( path.join( __dirname + '/ui/assets/logo.png' ) ) ); + +app.use( ( request, response ) => { + response.sendFile( path.join( __dirname + '' ) ); +} ); + + +app.get( '/', ( request, response ) => { + +} ); + + +const PORT = process.env.PORT || 8080; +http.createServer( app ).listen( PORT ); \ No newline at end of file diff --git a/projectWebsite/docs/index.html b/projectWebsite/docs/index.html new file mode 100644 index 0000000..e69de29 diff --git a/projectWebsite/index.html b/projectWebsite/index.html new file mode 100644 index 0000000..763b073 --- /dev/null +++ b/projectWebsite/index.html @@ -0,0 +1 @@ + \ No newline at end of file From f4a7370c5efc591e5d1aa18c21fa307950444217 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sun, 26 Feb 2023 15:20:36 +0100 Subject: [PATCH 02/73] lint, git, circleci, basics --- .circleci/config.yml | 24 ++++++++++++++++++++++++ .eslintrc.js | 9 +++++++++ .gitignore | 14 ++++++++++++++ projectWebsite/index.html | 13 ++++++++++++- app.js => server/app.js | 24 +++++++++++++++++++++--- 5 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 .circleci/config.yml create mode 100644 .gitignore rename app.js => server/app.js (68%) diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..6c2f67a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,24 @@ +version: 2.1 +orbs: + node: circleci/node@5.1.0 + +jobs: + build_and_test: + executor: node/default + steps: + - checkout + - node/install-packages: + pkg-manager: npm + - run: + command: npm run build + name: Build app + - run: + command: npm run test + name: Run tests + - run: + command: npm run build-website + name: Build documentation + - persist_to_workspace: + root: ~/project + paths: + - . \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 7b676c3..87eb22d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,3 +1,12 @@ +/* +* myevent - .eslintrc.js +* +* Created by Janis Hutz 02/26/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + module.exports = { 'env': { 'browser': true, diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b3cb07 --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# +# myevent - .gitignore +# +# Created by Janis Hutz 02/26/2023, Licensed under the GPL V3 License +# https://janishutz.com, development@janishutz.com +# +# + + +# ignore ALL .log files +*.log + +# ignore node_modules (can be rebuilt with npm i --> shrinks repo size) +node_modules \ No newline at end of file diff --git a/projectWebsite/index.html b/projectWebsite/index.html index 763b073..d0e2960 100644 --- a/projectWebsite/index.html +++ b/projectWebsite/index.html @@ -1 +1,12 @@ - \ No newline at end of file + + + + myevent - Free & Open Source event management solution + + + + + +

+ + \ No newline at end of file diff --git a/app.js b/server/app.js similarity index 68% rename from app.js rename to server/app.js index 3365410..f97aa5c 100644 --- a/app.js +++ b/server/app.js @@ -1,3 +1,12 @@ +/* +* myevent - app.js +* +* Created by Janis Hutz 02/26/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + const express = require( 'express' ); let app = express(); const path = require( 'path' ); @@ -8,24 +17,33 @@ const cookieParser = require( 'cookie-parser' ); const favicon = require( 'serve-favicon' ); const http = require( 'http' ); +const env = process.env.PROD || false; + +const root = process.env.ROOT || '/order'; + +// initialise express with middlewares app.use( expressSession( { secret: 'gaoevgoawefgo083tq2rfvöfaf0p8', resave: true, saveUninitialized: true } ) ); + app.use( bodyParser.urlencoded( { extended: false } ) ); app.use( bodyParser.json() ); app.use( cookieParser() ); app.use( favicon( path.join( __dirname + '/ui/assets/logo.png' ) ) ); +// create 404 handler app.use( ( request, response ) => { response.sendFile( path.join( __dirname + '' ) ); } ); -app.get( '/', ( request, response ) => { - -} ); +if ( root !== '/' ) { + app.get( '/', ( request, response ) => { + + } ); +} const PORT = process.env.PORT || 8080; From 78fe6a62dadf297ed5e5dc5892fa4d36d718d2cd Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sat, 4 Mar 2023 15:07:20 +0100 Subject: [PATCH 03/73] basic setup & first text for website --- .../docs/index.html => apps/Android/README.md | 0 apps/iOS/README.md | 0 projectWebsite/index.html | 12 ----- server/admin/pwdmanager.js | 0 server/admin/routes.js | 0 server/backend/db/interact.js | 0 server/backend/routes.js | 0 server/ui/css/style.css | 0 server/ui/html/index.html | 0 server/ui/js/index.js | 0 website/css/style.css | 0 website/docs/index.html | 0 website/docs/js/index.js | 0 website/index.html | 48 +++++++++++++++++++ website/js/index.js | 0 15 files changed, 48 insertions(+), 12 deletions(-) rename projectWebsite/docs/index.html => apps/Android/README.md (100%) create mode 100644 apps/iOS/README.md delete mode 100644 projectWebsite/index.html create mode 100644 server/admin/pwdmanager.js create mode 100644 server/admin/routes.js create mode 100644 server/backend/db/interact.js create mode 100644 server/backend/routes.js create mode 100644 server/ui/css/style.css create mode 100644 server/ui/html/index.html create mode 100644 server/ui/js/index.js create mode 100644 website/css/style.css create mode 100644 website/docs/index.html create mode 100644 website/docs/js/index.js create mode 100644 website/index.html create mode 100644 website/js/index.js diff --git a/projectWebsite/docs/index.html b/apps/Android/README.md similarity index 100% rename from projectWebsite/docs/index.html rename to apps/Android/README.md diff --git a/apps/iOS/README.md b/apps/iOS/README.md new file mode 100644 index 0000000..e69de29 diff --git a/projectWebsite/index.html b/projectWebsite/index.html deleted file mode 100644 index d0e2960..0000000 --- a/projectWebsite/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - myevent - Free & Open Source event management solution - - - - - -

- - \ No newline at end of file diff --git a/server/admin/pwdmanager.js b/server/admin/pwdmanager.js new file mode 100644 index 0000000..e69de29 diff --git a/server/admin/routes.js b/server/admin/routes.js new file mode 100644 index 0000000..e69de29 diff --git a/server/backend/db/interact.js b/server/backend/db/interact.js new file mode 100644 index 0000000..e69de29 diff --git a/server/backend/routes.js b/server/backend/routes.js new file mode 100644 index 0000000..e69de29 diff --git a/server/ui/css/style.css b/server/ui/css/style.css new file mode 100644 index 0000000..e69de29 diff --git a/server/ui/html/index.html b/server/ui/html/index.html new file mode 100644 index 0000000..e69de29 diff --git a/server/ui/js/index.js b/server/ui/js/index.js new file mode 100644 index 0000000..e69de29 diff --git a/website/css/style.css b/website/css/style.css new file mode 100644 index 0000000..e69de29 diff --git a/website/docs/index.html b/website/docs/index.html new file mode 100644 index 0000000..e69de29 diff --git a/website/docs/js/index.js b/website/docs/js/index.js new file mode 100644 index 0000000..e69de29 diff --git a/website/index.html b/website/index.html new file mode 100644 index 0000000..1cb7047 --- /dev/null +++ b/website/index.html @@ -0,0 +1,48 @@ + + + + myevent - Free & Open Source event management solution + + + + + + +
+

myevent

+
Free & Open Source self-hosted event management solution
+
+
+
+
+

Simple to set up

+

This project is simple to set up on your own web-server. Follow our tutorial on how to install it!

+ Tutorial +
+
+

Low system requirements

+

This project does not require high-end hardware to run. You may start out with a cheap webhosting account and scale if there's need.

+ System requirements +
+
+

Based on a variant of the MEVN tech stack

+

This project can (but does not have to) use a MySQL database, it uses express.js for interaction, Vue.js as the front-end framework and Node.js for the server.

+ How it works +
+
+

Free & Open Source

+

You may use this project entirely for free or donate some money to keep it alive! You may also help contributing to the project to make it even better!

+ Donate + Contributing +
+
+

Plugins

+

You may expand the project's capabilities by using plugins or by developing your own plugin.

+ Existing plugins + Build your own plugin +
+
+
+ + + \ No newline at end of file diff --git a/website/js/index.js b/website/js/index.js new file mode 100644 index 0000000..e69de29 From ffc66602b3fb332f98e6be70f52c111695bb3cf2 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sun, 5 Mar 2023 16:12:53 +0100 Subject: [PATCH 04/73] initial setup of website --- apps/iOS/README.md | 2 + assets/logo.png | Bin 0 -> 34209 bytes assets/logo.xcf | Bin 0 -> 43756 bytes server/package-lock.json | 3144 ++++++++++++++++++++++++++++++++++++++ server/package.json | 69 + website/assets/logo.png | Bin 0 -> 34209 bytes website/css/home.css | 28 + website/css/style.css | 65 + website/index.html | 1 + 9 files changed, 3309 insertions(+) create mode 100644 assets/logo.png create mode 100644 assets/logo.xcf create mode 100644 server/package-lock.json create mode 100644 server/package.json create mode 100644 website/assets/logo.png create mode 100644 website/css/home.css diff --git a/apps/iOS/README.md b/apps/iOS/README.md index e69de29..8ec670e 100644 --- a/apps/iOS/README.md +++ b/apps/iOS/README.md @@ -0,0 +1,2 @@ +# iOS - App +This app has the same functionality as the Android App. \ No newline at end of file diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a3da3a7589e9f534eb2df1f5f36ca60d0fef48 GIT binary patch literal 34209 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 bd*OP&8Bf>y{*nOJ0*>qxg~z!M_22vt=xT;y literal 0 HcmV?d00001 diff --git a/assets/logo.xcf b/assets/logo.xcf new file mode 100644 index 0000000000000000000000000000000000000000..56cc98e88b918c526c6027e1eed374b2aa25f8f8 GIT binary patch literal 43756 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 U?g;9*s-OD1N&i%MwEl_z4_h@PC;$Ke literal 0 HcmV?d00001 diff --git a/server/package-lock.json b/server/package-lock.json new file mode 100644 index 0000000..7657d14 --- /dev/null +++ b/server/package-lock.json @@ -0,0 +1,3144 @@ +{ + "name": "myevent", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "myevent", + "version": "1.0.0", + "license": "GPL-3.0-or-later", + "dependencies": { + "bcrypt": "^5.1.0", + "body-parser": "^1.20.2", + "cookie-parser": "^1.4.6", + "express": "^4.18.2", + "express-session": "^1.17.3", + "serve-favicon": "^2.5.0" + }, + "devDependencies": { + "acorn": "^8.8.2", + "buffer-from": "^1.1.2", + "camel-case": "^4.1.2", + "clean-css": "^5.3.2", + "commander": "^9.5.0", + "css-b64-images": "^0.2.5", + "debug": "^4.3.4", + "dot-case": "^3.0.4", + "entities": "^4.4.0", + "find-up": "^6.3.0", + "html-minifier-terser": "^7.1.0", + "jju": "^1.4.0", + "locate-path": "^7.2.0", + "lower-case": "^2.0.2", + "minify": "^9.2.0", + "ms": "^2.1.2", + "no-case": "^3.0.4", + "p-limit": "^4.0.0", + "p-locate": "^6.0.0", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-exists": "^5.0.0", + "readjson": "^2.2.2", + "relateurl": "^0.2.7", + "simport": "^1.2.0", + "source-map": "^0.6.1", + "source-map-support": "^0.5.21", + "terser": "^5.16.5", + "try-catch": "^3.0.1", + "try-to-catch": "^3.0.1", + "tslib": "^2.5.0", + "yocto-queue": "^1.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "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.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "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.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "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==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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==" + }, + "node_modules/bcrypt": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", + "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.10", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "dependencies": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/css-b64-images": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/css-b64-images/-/css-b64-images-0.2.5.tgz", + "integrity": "sha512-TgQBEdP07adhrDfXvI5o6bHGukKBNMzp2Ngckc/6d09zpjD2gc1Hl3Ca1CKgb8FXjHi88+Phv2Uegs2kTL4zjg==", + "dev": true, + "bin": { + "css-b64-images": "bin/css-b64-images" + }, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/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==" + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "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==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "dependencies": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express-session/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "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==", + "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/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/html-minifier-terser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", + "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "5.2.0", + "commander": "^9.4.1", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/clean-css": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minify": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/minify/-/minify-9.2.0.tgz", + "integrity": "sha512-dfVx8j27TIZy2EE/nVMAhTVmUo6tdO4gYbKXaCYPUmpqWN2QJBgQtPfofsoA658L3Ee7e5OcyFIncJRgFtZcqQ==", + "dev": true, + "dependencies": { + "clean-css": "^5.0.1", + "css-b64-images": "~0.2.5", + "debug": "^4.1.0", + "find-up": "^6.1.0", + "html-minifier-terser": "^7.1.0", + "readjson": "^2.2.2", + "simport": "^1.2.0", + "terser": "^5.3.2", + "try-catch": "^3.0.0", + "try-to-catch": "^3.0.0" + }, + "bin": { + "minify": "bin/minify.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/readjson/-/readjson-2.2.2.tgz", + "integrity": "sha512-PdeC9tsmLWBiL8vMhJvocq+OezQ3HhsH2HrN7YkhfYcTjQSa/iraB15A7Qvt7Xpr0Yd2rDNt6GbFwVQDg3HcAw==", + "dev": true, + "dependencies": { + "jju": "^1.4.0", + "try-catch": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "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==" + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==", + "dependencies": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-favicon/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serve-favicon/node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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==", + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/simport/-/simport-1.2.0.tgz", + "integrity": "sha512-85Bm7pKsqiiQ8rmYCaPDdlXZjJvuW6/k/FY8MTtLFMgU7f8S00CgTHfRtWB6KwSb6ek4p9YyG2enG1+yJbl+CA==", + "dev": true, + "dependencies": { + "readjson": "^2.2.0", + "try-to-catch": "^3.0.0" + }, + "engines": { + "node": ">=12.2" + } + }, + "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/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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==", + "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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", + "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/try-catch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/try-catch/-/try-catch-3.0.1.tgz", + "integrity": "sha512-91yfXw1rr/P6oLpHSyHDOHm0vloVvUoo9FVdw8YwY05QjJQG9OT0LUxe2VRAzmHG+0CUOmI3nhxDUMLxDN/NEQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/try-to-catch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/try-to-catch/-/try-to-catch-3.0.1.tgz", + "integrity": "sha512-hOY83V84Hx/1sCzDSaJA+Xz2IIQOHRvjxzt+F0OjbQGPZ6yLPLArMA0gw/484MlfUkQbCpKYMLX3VDCAjWKfzQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "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==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@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 + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bcrypt": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", + "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.10", + "node-addon-api": "^5.0.0" + } + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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 + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "requires": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "css-b64-images": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/css-b64-images/-/css-b64-images-0.2.5.tgz", + "integrity": "sha512-TgQBEdP07adhrDfXvI5o6bHGukKBNMzp2Ngckc/6d09zpjD2gc1Hl3Ca1CKgb8FXjHi88+Phv2Uegs2kTL4zjg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "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==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "express-session": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==", + "requires": { + "cookie": "0.4.2", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "requires": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "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" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "html-minifier-terser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", + "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "5.2.0", + "commander": "^9.4.1", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "dependencies": { + "clean-css": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + } + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "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==" + }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minify": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/minify/-/minify-9.2.0.tgz", + "integrity": "sha512-dfVx8j27TIZy2EE/nVMAhTVmUo6tdO4gYbKXaCYPUmpqWN2QJBgQtPfofsoA658L3Ee7e5OcyFIncJRgFtZcqQ==", + "dev": true, + "requires": { + "clean-css": "^5.0.1", + "css-b64-images": "~0.2.5", + "debug": "^4.1.0", + "find-up": "^6.1.0", + "html-minifier-terser": "^7.1.0", + "readjson": "^2.2.2", + "simport": "^1.2.0", + "terser": "^5.3.2", + "try-catch": "^3.0.0", + "try-to-catch": "^3.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "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==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "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==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/readjson/-/readjson-2.2.2.tgz", + "integrity": "sha512-PdeC9tsmLWBiL8vMhJvocq+OezQ3HhsH2HrN7YkhfYcTjQSa/iraB15A7Qvt7Xpr0Yd2rDNt6GbFwVQDg3HcAw==", + "dev": true, + "requires": { + "jju": "^1.4.0", + "try-catch": "^3.0.0" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + } + } + }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA==", + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/simport/-/simport-1.2.0.tgz", + "integrity": "sha512-85Bm7pKsqiiQ8rmYCaPDdlXZjJvuW6/k/FY8MTtLFMgU7f8S00CgTHfRtWB6KwSb6ek4p9YyG2enG1+yJbl+CA==", + "dev": true, + "requires": { + "readjson": "^2.2.0", + "try-to-catch": "^3.0.0" + } + }, + "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 + }, + "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, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "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==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "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==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "terser": { + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", + "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "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 + } + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "try-catch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/try-catch/-/try-catch-3.0.1.tgz", + "integrity": "sha512-91yfXw1rr/P6oLpHSyHDOHm0vloVvUoo9FVdw8YwY05QjJQG9OT0LUxe2VRAzmHG+0CUOmI3nhxDUMLxDN/NEQ==", + "dev": true + }, + "try-to-catch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/try-to-catch/-/try-to-catch-3.0.1.tgz", + "integrity": "sha512-hOY83V84Hx/1sCzDSaJA+Xz2IIQOHRvjxzt+F0OjbQGPZ6yLPLArMA0gw/484MlfUkQbCpKYMLX3VDCAjWKfzQ==", + "dev": true + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "requires": { + "random-bytes": "~1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true + } + } +} diff --git a/server/package.json b/server/package.json new file mode 100644 index 0000000..fd78b2b --- /dev/null +++ b/server/package.json @@ -0,0 +1,69 @@ +{ + "name": "myevent", + "version": "1.0.0", + "description": "Free & Open source event management solution", + "main": "app.js", + "directories": { + "doc": "docs" + }, + "devDependencies": { + "acorn": "^8.8.2", + "buffer-from": "^1.1.2", + "camel-case": "^4.1.2", + "clean-css": "^5.3.2", + "commander": "^9.5.0", + "css-b64-images": "^0.2.5", + "debug": "^4.3.4", + "dot-case": "^3.0.4", + "entities": "^4.4.0", + "find-up": "^6.3.0", + "html-minifier-terser": "^7.1.0", + "jju": "^1.4.0", + "locate-path": "^7.2.0", + "lower-case": "^2.0.2", + "minify": "^9.2.0", + "ms": "^2.1.2", + "no-case": "^3.0.4", + "p-limit": "^4.0.0", + "p-locate": "^6.0.0", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-exists": "^5.0.0", + "readjson": "^2.2.2", + "relateurl": "^0.2.7", + "simport": "^1.2.0", + "source-map": "^0.6.1", + "source-map-support": "^0.5.21", + "terser": "^5.16.5", + "try-catch": "^3.0.1", + "try-to-catch": "^3.0.1", + "tslib": "^2.5.0", + "yocto-queue": "^1.0.0" + }, + "dependencies": { + "bcrypt": "^5.1.0", + "body-parser": "^1.20.2", + "cookie-parser": "^1.4.6", + "express": "^4.18.2", + "express-session": "^1.17.3", + "serve-favicon": "^2.5.0" + }, + "scripts": { + "test": "test.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/simplePCBuilding/myevent.git" + }, + "keywords": [ + "event", + "management", + "solution" + ], + "author": "Janis Hutz", + "license": "GPL-3.0-or-later", + "bugs": { + "url": "https://github.com/simplePCBuilding/myevent/issues" + }, + "homepage": "https://github.com/simplePCBuilding/myevent#readme" +} diff --git a/website/assets/logo.png b/website/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a3da3a7589e9f534eb2df1f5f36ca60d0fef48 GIT binary patch literal 34209 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 bd*OP&8Bf>y{*nOJ0*>qxg~z!M_22vt=xT;y literal 0 HcmV?d00001 diff --git a/website/css/home.css b/website/css/home.css new file mode 100644 index 0000000..bb9cd0f --- /dev/null +++ b/website/css/home.css @@ -0,0 +1,28 @@ +/* +* myevent - home.css +* +* Created by Janis Hutz 03/05/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +/* + This is the feature overview on the main page +*/ +.feature-overview { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + justify-content: center; +} + +.feature { + display: inline-flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 40%; + padding: 2%; +} \ No newline at end of file diff --git a/website/css/style.css b/website/css/style.css index e69de29..d5fdd7b 100644 --- a/website/css/style.css +++ b/website/css/style.css @@ -0,0 +1,65 @@ +/* +* myevent - style.css +* +* Created by Janis Hutz 03/05/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +html, body { + height: 100%; + width: 100%; + margin: 0; + padding: 0; + font-size: calc(15pt + 0.4vw); + font-family: sans-serif; +} + +body { + background-color: rgb(133, 191, 245); +} + + +/* + This is the title div with a screenshot of the admin portal +*/ +.title-wrapper { + /* + TODO: Replace with image + */ + background-color: white; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 90%; + padding: 2%; + margin: 3%; + margin-bottom: 0%; + border-radius: 50px 50px 0px 0px; +} + +/* + This is the page's main content. +*/ +.content { + width: 90%; + padding: 2%; + margin: 3%; + background-color: rgba(255, 255, 255, 0.644); + border-radius: 0px 0px 50px 50px; + margin-top: 0%; +} + +.button { + background-color: rgb(24, 43, 61); + color: white; + text-decoration: none; + padding: 5%; + padding-bottom: 3%; + padding-top: 3%; + border-radius: 30px; + cursor: pointer; + margin: 1.5%; +} \ No newline at end of file diff --git a/website/index.html b/website/index.html index 1cb7047..3c295b2 100644 --- a/website/index.html +++ b/website/index.html @@ -3,6 +3,7 @@ myevent - Free & Open Source event management solution + From d1e733e88edef7768e14f866bdae982d2cd7350d Mon Sep 17 00:00:00 2001 From: janis Date: Mon, 6 Mar 2023 16:31:53 +0100 Subject: [PATCH 05/73] restructuring --- README.md | 2 ++ {apps => src/apps}/Android/README.md | 0 {apps => src/apps}/iOS/README.md | 0 {server => src/server}/admin/pwdmanager.js | 0 {server => src/server}/admin/routes.js | 0 {server => src/server}/app.js | 0 {server => src/server}/backend/db/interact.js | 0 {server => src/server}/backend/routes.js | 0 {server => src/server}/package-lock.json | 0 {server => src/server}/package.json | 0 {server => src/server}/ui/css/style.css | 0 {server => src/server}/ui/html/index.html | 0 {server => src/server}/ui/js/index.js | 0 website/README.md | 12 ++++++++++++ website/{docs => dist/about}/index.html | 0 website/{ => dist}/assets/logo.png | Bin website/{ => dist}/css/home.css | 0 website/{ => dist}/css/style.css | 0 website/{docs/js/index.js => dist/docs/index.html} | 0 website/{ => dist/docs}/js/index.js | 0 website/dist/download/index.html | 0 website/dist/footer.html | 0 website/{ => dist}/index.html | 0 website/dist/js/index.js | 9 +++++++++ website/dist/nav.html | 12 ++++++++++++ 25 files changed, 35 insertions(+) rename {apps => src/apps}/Android/README.md (100%) rename {apps => src/apps}/iOS/README.md (100%) rename {server => src/server}/admin/pwdmanager.js (100%) rename {server => src/server}/admin/routes.js (100%) rename {server => src/server}/app.js (100%) rename {server => src/server}/backend/db/interact.js (100%) rename {server => src/server}/backend/routes.js (100%) rename {server => src/server}/package-lock.json (100%) rename {server => src/server}/package.json (100%) rename {server => src/server}/ui/css/style.css (100%) rename {server => src/server}/ui/html/index.html (100%) rename {server => src/server}/ui/js/index.js (100%) create mode 100644 website/README.md rename website/{docs => dist/about}/index.html (100%) rename website/{ => dist}/assets/logo.png (100%) rename website/{ => dist}/css/home.css (100%) rename website/{ => dist}/css/style.css (100%) rename website/{docs/js/index.js => dist/docs/index.html} (100%) rename website/{ => dist/docs}/js/index.js (100%) create mode 100644 website/dist/download/index.html create mode 100644 website/dist/footer.html rename website/{ => dist}/index.html (100%) create mode 100644 website/dist/js/index.js create mode 100644 website/dist/nav.html diff --git a/README.md b/README.md index ed3f9b9..fa48712 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # myevent A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! +Visit our [website](https://myevent.janishutz.com) + ## This project is currently NOT ready to be used! Development of this project is currently ongoing and no stable version is available yet. diff --git a/apps/Android/README.md b/src/apps/Android/README.md similarity index 100% rename from apps/Android/README.md rename to src/apps/Android/README.md diff --git a/apps/iOS/README.md b/src/apps/iOS/README.md similarity index 100% rename from apps/iOS/README.md rename to src/apps/iOS/README.md diff --git a/server/admin/pwdmanager.js b/src/server/admin/pwdmanager.js similarity index 100% rename from server/admin/pwdmanager.js rename to src/server/admin/pwdmanager.js diff --git a/server/admin/routes.js b/src/server/admin/routes.js similarity index 100% rename from server/admin/routes.js rename to src/server/admin/routes.js diff --git a/server/app.js b/src/server/app.js similarity index 100% rename from server/app.js rename to src/server/app.js diff --git a/server/backend/db/interact.js b/src/server/backend/db/interact.js similarity index 100% rename from server/backend/db/interact.js rename to src/server/backend/db/interact.js diff --git a/server/backend/routes.js b/src/server/backend/routes.js similarity index 100% rename from server/backend/routes.js rename to src/server/backend/routes.js diff --git a/server/package-lock.json b/src/server/package-lock.json similarity index 100% rename from server/package-lock.json rename to src/server/package-lock.json diff --git a/server/package.json b/src/server/package.json similarity index 100% rename from server/package.json rename to src/server/package.json diff --git a/server/ui/css/style.css b/src/server/ui/css/style.css similarity index 100% rename from server/ui/css/style.css rename to src/server/ui/css/style.css diff --git a/server/ui/html/index.html b/src/server/ui/html/index.html similarity index 100% rename from server/ui/html/index.html rename to src/server/ui/html/index.html diff --git a/server/ui/js/index.js b/src/server/ui/js/index.js similarity index 100% rename from server/ui/js/index.js rename to src/server/ui/js/index.js diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..2390a29 --- /dev/null +++ b/website/README.md @@ -0,0 +1,12 @@ +# Website +The main website's pages are written in HTML & CSS whilst the doc pages are automatically generated by the script in [./build](build/). +** DO NOT MODIFY THE DOC PAGES IN THE [dist/docs/](dist/docs/) DIRECTORY! ** + +## Links in the md files in [src/](src/) +Please note that you are required to use either a link relative to the root folder with double forward slash (example: *//server/app.js*), to the website root with a single forward slash (example: */download*) or a full link (example: *https://myevent.janishutz.com/docs*). If you do not follow these patterns, the website won't build or the links will not work correctly. NOTE: Don't be confused if the root folder links don't work in the Markdown, as they use specific syntax for the build script. + +## Folder structure and file naming +Please create an *index.md* file inside of a folder such that, when the website is compiled, the *.html* file extension disappears. + +## Modifying the files in [dist/](dist/) +You may modify all the files in the [dist/](dist/) directory except the files in [dist/docs/](dist/docs/). \ No newline at end of file diff --git a/website/docs/index.html b/website/dist/about/index.html similarity index 100% rename from website/docs/index.html rename to website/dist/about/index.html diff --git a/website/assets/logo.png b/website/dist/assets/logo.png similarity index 100% rename from website/assets/logo.png rename to website/dist/assets/logo.png diff --git a/website/css/home.css b/website/dist/css/home.css similarity index 100% rename from website/css/home.css rename to website/dist/css/home.css diff --git a/website/css/style.css b/website/dist/css/style.css similarity index 100% rename from website/css/style.css rename to website/dist/css/style.css diff --git a/website/docs/js/index.js b/website/dist/docs/index.html similarity index 100% rename from website/docs/js/index.js rename to website/dist/docs/index.html diff --git a/website/js/index.js b/website/dist/docs/js/index.js similarity index 100% rename from website/js/index.js rename to website/dist/docs/js/index.js diff --git a/website/dist/download/index.html b/website/dist/download/index.html new file mode 100644 index 0000000..e69de29 diff --git a/website/dist/footer.html b/website/dist/footer.html new file mode 100644 index 0000000..e69de29 diff --git a/website/index.html b/website/dist/index.html similarity index 100% rename from website/index.html rename to website/dist/index.html diff --git a/website/dist/js/index.js b/website/dist/js/index.js new file mode 100644 index 0000000..7745b20 --- /dev/null +++ b/website/dist/js/index.js @@ -0,0 +1,9 @@ +/* +* myevent - index.js +* +* Created by Janis Hutz 03/06/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + diff --git a/website/dist/nav.html b/website/dist/nav.html new file mode 100644 index 0000000..0a98019 --- /dev/null +++ b/website/dist/nav.html @@ -0,0 +1,12 @@ + + + + + + + nav + + + + + \ No newline at end of file From 0d4191eec38dfd723aa5a1ab123decf40e04a445 Mon Sep 17 00:00:00 2001 From: janis Date: Tue, 7 Mar 2023 09:47:23 +0100 Subject: [PATCH 06/73] add jq and nav bar --- website/dist/css/navstyle.css | 139 ++++++++++++++++++++++++++++++++++ website/dist/index.html | 7 ++ website/dist/js/index.js | 3 + website/dist/nav.html | 54 ++++++++++++- 4 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 website/dist/css/navstyle.css diff --git a/website/dist/css/navstyle.css b/website/dist/css/navstyle.css new file mode 100644 index 0000000..7fed4b6 --- /dev/null +++ b/website/dist/css/navstyle.css @@ -0,0 +1,139 @@ +/* +* myevent - navstyle.css +* +* Created by Janis Hutz 03/06/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +/* + Default rules that are set for mobile interfaces +*/ +.nav-container { + width: 100%; + height: 100%; + background-color: blue; +} + +.toggle-wrapper { + display: inline-flex; + height: 100%; + width: 80%; + align-items: center; + justify-content: flex-end; +} + + +/* Logo image and logo link (aka logo-container)*/ +.logo-container { + margin: 0.5%; + height: 80%; + display: inline-block; + width: fit-content; +} + +.mobile-wrapper { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + width: 100%; +} + +.logo { + display: block; + width: auto; + height: 100%; +} + +.listtoggle { + text-decoration: none; + color: black; + font-size: 5vh; + margin-right: 7%; + cursor: pointer; +} + +.active { + color: rgba(184, 214, 240, 1); +} + +/* Nav menu holder (contains the flex nav menu and has to exist because of jQuery */ +.nav-menu { + background-color: rgba(245, 245, 245, 0.9); + display: none; + width: 100%; +} + +/* This is the list actually containing the menu items */ +.nav-list { + display: flex; + flex-direction: column; + width: 100%; + justify-content: center; + align-items: center; +} + +.navitem { + text-decoration: none; + text-align: center; + color: black; + font-size: 1.3rem; + padding-top: 2%; + padding-bottom: 2%; + width: 100%; +} +/* +.navitem:hover { + background-color: rgba(184, 214, 240, 1); +}*/ + + +/* + Media queries to optimise for desktop +*/ +@media only screen and (min-width: 999px) { + /* Top navigation bar container */ + .nav-container { + display: flex; + justify-content: center; + align-items: center; + } + + /* div containing the nav-menu unordered list */ + .nav-wrapper { + height: 100%; + width: 80%; + margin: auto; + display: inline-flex; + align-items: center; + justify-content: center; + } + + .listtoggle, .toggle-wrapper { + display: none; + } + + .nav-menu { + display: flex; + background-color: rgba(0, 0, 0, 0); + } + + .nav-list { + flex-direction: row; + } + + .mobile-wrapper { + width: fit-content; + margin-left: 3%; + } + + .navitem { + font-size: 0.9rem; + width: fit-content; + padding: 1%; + padding-left: 2%; + padding-right: 2% + } +} diff --git a/website/dist/index.html b/website/dist/index.html index 3c295b2..757dadc 100644 --- a/website/dist/index.html +++ b/website/dist/index.html @@ -5,7 +5,14 @@ + + + + + + + diff --git a/website/dist/js/index.js b/website/dist/js/index.js index 7745b20..cfee12d 100644 --- a/website/dist/js/index.js +++ b/website/dist/js/index.js @@ -7,3 +7,6 @@ * */ +$( document ).ready( function () { + $( '#nav' ).load( '/nav.html' ); +} ); \ No newline at end of file diff --git a/website/dist/nav.html b/website/dist/nav.html index 0a98019..5d58ac1 100644 --- a/website/dist/nav.html +++ b/website/dist/nav.html @@ -5,8 +5,60 @@ nav + - + + \ No newline at end of file From 5ca3e383a6b06c03510057de52713aab989ca145 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 10 Mar 2023 18:38:27 +0100 Subject: [PATCH 07/73] initial setup of website --- src/server/package.json | 2 +- website/README.md | 4 +- website/build.js | 25 +++ .../dist/assets/CSS3_logo_and_wordmark.svg | 28 ++++ website/dist/assets/HTML5_Logo.svg | 14 ++ website/dist/assets/JavaScript-logo.png | Bin 0 -> 10268 bytes website/dist/assets/Node.js_logo.svg | 1 + website/dist/assets/htmlCSSJS.png | Bin 0 -> 89419 bytes website/dist/assets/htmlCSSJS.xcf | Bin 0 -> 203936 bytes website/dist/css/home.css | 16 +- website/dist/css/style.css | 35 +++- website/dist/download/index.html | 27 +++ website/dist/footer.html | 15 ++ website/dist/index.html | 10 +- website/dist/js/index.js | 11 ++ website/dist/nav.html | 36 ++-- website/package-lock.json | 156 ++++++++++++++++++ website/package.json | 23 +++ website/src/contributing.md | 2 + website/src/contributing/plugins.md | 0 website/src/how-it-works.md | 2 + website/src/index.md | 2 + website/src/plugins.md | 0 website/src/sponsor.md | 0 website/src/systemrequirements/index.md | 8 + website/src/tutorial.md | 0 26 files changed, 387 insertions(+), 30 deletions(-) create mode 100644 website/build.js create mode 100644 website/dist/assets/CSS3_logo_and_wordmark.svg create mode 100644 website/dist/assets/HTML5_Logo.svg create mode 100644 website/dist/assets/JavaScript-logo.png create mode 100644 website/dist/assets/Node.js_logo.svg create mode 100644 website/dist/assets/htmlCSSJS.png create mode 100644 website/dist/assets/htmlCSSJS.xcf create mode 100644 website/package-lock.json create mode 100644 website/package.json create mode 100644 website/src/contributing.md create mode 100644 website/src/contributing/plugins.md create mode 100644 website/src/how-it-works.md create mode 100644 website/src/index.md create mode 100644 website/src/plugins.md create mode 100644 website/src/sponsor.md create mode 100644 website/src/systemrequirements/index.md create mode 100644 website/src/tutorial.md diff --git a/src/server/package.json b/src/server/package.json index fd78b2b..2e2b078 100644 --- a/src/server/package.json +++ b/src/server/package.json @@ -65,5 +65,5 @@ "bugs": { "url": "https://github.com/simplePCBuilding/myevent/issues" }, - "homepage": "https://github.com/simplePCBuilding/myevent#readme" + "homepage": "https://myevent.janishutz.com" } diff --git a/website/README.md b/website/README.md index 2390a29..35c6ff4 100644 --- a/website/README.md +++ b/website/README.md @@ -5,8 +5,8 @@ The main website's pages are written in HTML & CSS whilst the doc pages are auto ## Links in the md files in [src/](src/) Please note that you are required to use either a link relative to the root folder with double forward slash (example: *//server/app.js*), to the website root with a single forward slash (example: */download*) or a full link (example: *https://myevent.janishutz.com/docs*). If you do not follow these patterns, the website won't build or the links will not work correctly. NOTE: Don't be confused if the root folder links don't work in the Markdown, as they use specific syntax for the build script. -## Folder structure and file naming -Please create an *index.md* file inside of a folder such that, when the website is compiled, the *.html* file extension disappears. +## Folder structure, file naming and file structure +Please note that the filename that is used for the md file is used to create a folder that contains an *index.html* so the *.html* file extension disappears. The build script uses the first level 1 title (marked with \# in md) as the page title and also for the navigation menu, so please choose the title appropriately and don't let it exceed 50 characters! ## Modifying the files in [dist/](dist/) You may modify all the files in the [dist/](dist/) directory except the files in [dist/docs/](dist/docs/). \ No newline at end of file diff --git a/website/build.js b/website/build.js new file mode 100644 index 0000000..17660b4 --- /dev/null +++ b/website/build.js @@ -0,0 +1,25 @@ +/* +* myevent - build.js +* +* Created by Janis Hutz 03/09/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +const prompt = require( 'prompt-sync' ); +const markdownIt = require( 'markdown-it' ); +const md2html = new markdownIt(); + + +if ( prompt( 'Do you want to rebuild the ' ).toLowercase === 'y' ) { + buildDocs(); + buildNav(); +} + +function buildNav () { +} + +function buildDocs () { + md2html.render( '#Test' ); +} \ No newline at end of file diff --git a/website/dist/assets/CSS3_logo_and_wordmark.svg b/website/dist/assets/CSS3_logo_and_wordmark.svg new file mode 100644 index 0000000..99e7d06 --- /dev/null +++ b/website/dist/assets/CSS3_logo_and_wordmark.svg @@ -0,0 +1,28 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/website/dist/assets/HTML5_Logo.svg b/website/dist/assets/HTML5_Logo.svg new file mode 100644 index 0000000..65d77ba --- /dev/null +++ b/website/dist/assets/HTML5_Logo.svg @@ -0,0 +1,14 @@ + + HTML5 Logo + + + + + + + + + + + + \ No newline at end of file diff --git a/website/dist/assets/JavaScript-logo.png b/website/dist/assets/JavaScript-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5ffab296544094d733b3536002d89d6c498997 GIT binary patch literal 10268 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 ULS*i~+!7}WB0hAE64FCWD literal 0 HcmV?d00001 diff --git a/website/dist/assets/Node.js_logo.svg b/website/dist/assets/Node.js_logo.svg new file mode 100644 index 0000000..41d044a --- /dev/null +++ b/website/dist/assets/Node.js_logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/dist/assets/htmlCSSJS.png b/website/dist/assets/htmlCSSJS.png new file mode 100644 index 0000000000000000000000000000000000000000..8bdbabb89fe0a229ff092ded2a45bc3bdd58ffac GIT binary patch literal 89419 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 z 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â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 IX(t2z6MAI9(f|Me literal 0 HcmV?d00001 diff --git a/website/dist/css/home.css b/website/dist/css/home.css index bb9cd0f..99d46db 100644 --- a/website/dist/css/home.css +++ b/website/dist/css/home.css @@ -19,10 +19,24 @@ } .feature { + text-align: center; display: inline-flex; justify-content: center; align-items: center; flex-direction: column; - width: 40%; + width: 100%; padding: 2%; +} + + +.image { + width: 40%; + height: auto; + margin: 3%; +} + +@media only screen and (min-width: 999px) { + .feature { + width: 40%; + } } \ No newline at end of file diff --git a/website/dist/css/style.css b/website/dist/css/style.css index d5fdd7b..7015cd8 100644 --- a/website/dist/css/style.css +++ b/website/dist/css/style.css @@ -30,6 +30,7 @@ body { */ background-color: white; display: flex; + text-align: center; flex-direction: column; align-items: center; justify-content: center; @@ -47,19 +48,43 @@ body { width: 90%; padding: 2%; margin: 3%; - background-color: rgba(255, 255, 255, 0.644); + background-color: rgba(142, 156, 237, 0.644); border-radius: 0px 0px 50px 50px; - margin-top: 0%; + margin-top: 0; } .button { background-color: rgb(24, 43, 61); color: white; text-decoration: none; - padding: 5%; - padding-bottom: 3%; - padding-top: 3%; + padding: 40px; + padding-bottom: 20px; + padding-top: 20px; border-radius: 30px; cursor: pointer; margin: 1.5%; +} + +#nav { + position: relative; + z-index: 1; + height: 25vh; +} + +@media only screen and (min-width: 999px) { + #nav { + height: 15vh; + } + + .content, .title-wrapper { + width: 70%; + padding: 5%; + margin: 10%; + margin-top: 0; + } + + .title-wrapper { + margin-top: 3%; + margin-bottom: 0; + } } \ No newline at end of file diff --git a/website/dist/download/index.html b/website/dist/download/index.html index e69de29..5ba2c1f 100644 --- a/website/dist/download/index.html +++ b/website/dist/download/index.html @@ -0,0 +1,27 @@ + + + + + + + + + + + Download - myevent + + + + +
+

Download myevent

+
Ready to downlaod?
+
+
+

There are a couple of options to download myevent. You may use npm or you may download it from the GitHub releases page. You may also clone the repository locally if you want to use upstream instead of a release

+ GitHub +

You may download the iOS & Android apps from the AppStore / Google Play Store respectively.

+
+ + + \ No newline at end of file diff --git a/website/dist/footer.html b/website/dist/footer.html index e69de29..e4101be 100644 --- a/website/dist/footer.html +++ b/website/dist/footer.html @@ -0,0 +1,15 @@ + + + + + + + + footer + + + + + \ No newline at end of file diff --git a/website/dist/index.html b/website/dist/index.html index 757dadc..0b2c378 100644 --- a/website/dist/index.html +++ b/website/dist/index.html @@ -1,11 +1,10 @@ - + myevent - Free & Open Source event management solution - @@ -21,6 +20,13 @@
Free & Open Source self-hosted event management solution
+

What is myevent?

+

myevent is a free and fully open source self-hosted event management solution that you can use to sell tickets for your next event. It is written in Node.js, JavaScript, TypeScript, HTML and CSS. It uses Vue.js for the ticket purchasing system and features both an iOS and Android App you can download and use entirely for free. If you like this project, please consider giving it a star on GitHub and donating to help fund development of this project!

+
+ + +
+

Features

Simple to set up

diff --git a/website/dist/js/index.js b/website/dist/js/index.js index cfee12d..8c6c367 100644 --- a/website/dist/js/index.js +++ b/website/dist/js/index.js @@ -1,3 +1,4 @@ +/* eslint-disable no-undef */ /* * myevent - index.js * @@ -9,4 +10,14 @@ $( document ).ready( function () { $( '#nav' ).load( '/nav.html' ); + + $( '.button' ).mouseenter( function () { + $( this ).stop(); + $( this ).animate( { 'border-radius': '5px', 'background-color': 'rgb(60, 85, 140)' }, 200 ); + } ); + + $( '.button' ).mouseleave( function () { + $( this ).stop(); + $( this ).animate( { 'border-radius': '30px', 'background-color': 'rgb(24, 43, 61)' }, 400 ); + } ); } ); \ No newline at end of file diff --git a/website/dist/nav.html b/website/dist/nav.html index 5d58ac1..7bd45c0 100644 --- a/website/dist/nav.html +++ b/website/dist/nav.html @@ -10,50 +10,48 @@ \ No newline at end of file From e85cf738818ad5f9d60ca90f0569640baba3e57c Mon Sep 17 00:00:00 2001 From: janis Date: Tue, 14 Mar 2023 10:09:15 +0100 Subject: [PATCH 11/73] updates to website --- src/server/ui/html/index.html | 23 ++++++++++++++++++----- website/dist/css/style.css | 7 +++++++ website/dist/index.html | 2 +- website/dist/js/index.js | 10 ---------- website/dist/nav.html | 9 ++++++--- 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/src/server/ui/html/index.html b/src/server/ui/html/index.html index cde03c7..29c85b6 100644 --- a/src/server/ui/html/index.html +++ b/src/server/ui/html/index.html @@ -5,6 +5,8 @@ myevent + +
+
+ + +
myevent-logo -
+
+

myevent is a free and open source event management solution that you can host on your own hardware, if you want to. It is mainly written in node.js, but, as a webapp, uses also lots of HTML and CSS. For storing the customer / userdata, you may choose between using MySQL and a JSON based custom database, such that this project may be used in more cases. Whilst it is recommended to use MySQL with this project, using the JSON based database can be an easy to set up alternative if you are not serving that many customers.

+
\ No newline at end of file diff --git a/website/dist/assets/up.png b/website/dist/assets/up.png new file mode 100644 index 0000000000000000000000000000000000000000..96ab0831b2f5713f1e5b5f83eeac64494c2176e8 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtC7v#hAsNoeSBiOWe0_1@?snt#@si()0`GBy^x`462%2%ihSMa-hJ_6QppwxSzR{>v!tM0!F|1Z z_M?llDz>P}t?fi&YR<@z&-LmtQ+1mywAi<^G1rTMA+71F-dp!KT|oCTc)I$ztaD0e F0s!p3SHu7S literal 0 HcmV?d00001 diff --git a/website/dist/assets/up.svg b/website/dist/assets/up.svg new file mode 100644 index 0000000..d7896c6 --- /dev/null +++ b/website/dist/assets/up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/dist/css/navstyle.css b/website/dist/css/navstyle.css index 7fed4b6..85cec9b 100644 --- a/website/dist/css/navstyle.css +++ b/website/dist/css/navstyle.css @@ -10,61 +10,66 @@ /* Default rules that are set for mobile interfaces */ +.nav-wrapper { + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.85); + position: fixed; + display: block; + z-index: 2; + width: 100%; + top: 0; + bottom: 0; + left: 1; + right: 1; +} + .nav-container { width: 100%; height: 100%; - background-color: blue; -} - -.toggle-wrapper { - display: inline-flex; - height: 100%; - width: 80%; - align-items: center; - justify-content: flex-end; -} - - -/* Logo image and logo link (aka logo-container)*/ -.logo-container { - margin: 0.5%; - height: 80%; - display: inline-block; - width: fit-content; -} - -.mobile-wrapper { display: flex; justify-content: center; align-items: center; - height: 100%; - width: 100%; + flex-direction: column; +} + +.menuActive { + overflow: hidden; +} + + + +/* Logo image and logo link (aka logo-container)*/ +.logo-container-small { + margin-left: 5%; + margin-right: auto; } .logo { display: block; - width: auto; - height: 100%; + width: 60vw; + height: auto; + margin: 0; } +.logo-small { + display: block; + width: auto; + height: 12vh; + margin: 0; +} + + .listtoggle { text-decoration: none; - color: black; + color: rgb(168, 212, 253); font-size: 5vh; - margin-right: 7%; cursor: pointer; + margin-right: 5%; + position: relative; + z-index: 3; } -.active { - color: rgba(184, 214, 240, 1); -} - -/* Nav menu holder (contains the flex nav menu and has to exist because of jQuery */ -.nav-menu { - background-color: rgba(245, 245, 245, 0.9); - display: none; - width: 100%; -} /* This is the list actually containing the menu items */ .nav-list { @@ -78,62 +83,38 @@ .navitem { text-decoration: none; text-align: center; - color: black; - font-size: 1.3rem; - padding-top: 2%; - padding-bottom: 2%; - width: 100%; + color: rgb(107, 107, 107);; + font-size: 1.4rem; + width: fit-content; + padding: 2%; } -/* -.navitem:hover { - background-color: rgba(184, 214, 240, 1); -}*/ +.inactive { + transition: 1s; + color: white; + font-size: 1.3rem; +} + +.inactive:hover { + font-size: 1.6rem; + color: rgb(107, 107, 107); + transition: 0.4s; +} + +/* ~ --> all next & + --> next */ +.shaded { + color: rgb(107, 107, 107); + transition: 0.3s; +} -/* - Media queries to optimise for desktop -*/ @media only screen and (min-width: 999px) { - /* Top navigation bar container */ .nav-container { - display: flex; - justify-content: center; - align-items: center; - } - - /* div containing the nav-menu unordered list */ - .nav-wrapper { - height: 100%; - width: 80%; - margin: auto; - display: inline-flex; - align-items: center; - justify-content: center; - } - - .listtoggle, .toggle-wrapper { - display: none; - } - - .nav-menu { - display: flex; - background-color: rgba(0, 0, 0, 0); - } - - .nav-list { flex-direction: row; } - .mobile-wrapper { - width: fit-content; - margin-left: 3%; - } - - .navitem { - font-size: 0.9rem; - width: fit-content; - padding: 1%; - padding-left: 2%; - padding-right: 2% + .logo { + width: auto; + height: 70vh; + margin-left: 10%; } } diff --git a/website/dist/css/style.css b/website/dist/css/style.css index 145dc14..3e435dd 100644 --- a/website/dist/css/style.css +++ b/website/dist/css/style.css @@ -17,7 +17,7 @@ html, body { } body { - background-color: rgb(133, 191, 245); + background-color: rgb(168, 212, 253); } @@ -35,10 +35,10 @@ body { align-items: center; justify-content: center; width: 90%; - padding: 2%; + padding: 4%; margin: 3%; margin-bottom: 0%; - border-radius: 50px 50px 0px 0px; + border-radius: 50px; } /* @@ -48,7 +48,6 @@ body { width: 90%; padding: 2%; margin: 3%; - background-color: rgba(142, 156, 237, 0.644); border-radius: 0px 0px 50px 50px; margin-top: 0; } @@ -73,15 +72,36 @@ body { } #nav { - position: relative; + position: sticky; z-index: 1; - height: 25vh; + height: 15vh; + width: 100%; + background-color: white; + display: flex; + justify-content: flex-end; + align-items: center; +} + +#backToTop { + border-radius: 500px; + border-width: 1px; + background-color: rgb(34, 72, 143); + background-image: url('/assets/up.svg'); + background-size: cover; + width: calc(30px + 0.5vw); + height: calc(30px + 0.5vw); + padding: 0.2%; + float: right; + color: white; + position: fixed; + top: 90%; + left: 93%; + opacity: 0; + cursor: default; + transition: 0.5s } @media only screen and (min-width: 999px) { - #nav { - height: 15vh; - } .content, .title-wrapper { width: 70%; diff --git a/website/dist/index.html b/website/dist/index.html index aa80de8..3826f6e 100644 --- a/website/dist/index.html +++ b/website/dist/index.html @@ -8,15 +8,13 @@ - - - +

myevent

Free & Open Source self-hosted event management solution
@@ -60,5 +58,29 @@
+ + + \ No newline at end of file diff --git a/website/dist/js/index.js b/website/dist/js/index.js index f51026e..f15bb7c 100644 --- a/website/dist/js/index.js +++ b/website/dist/js/index.js @@ -7,7 +7,3 @@ * * */ - -$( document ).ready( function () { - $( '#nav' ).load( '/nav.html' ); -} ); \ No newline at end of file diff --git a/website/dist/nav.html b/website/dist/nav.html index 4454853..b4d4cf0 100644 --- a/website/dist/nav.html +++ b/website/dist/nav.html @@ -8,59 +8,42 @@ - From 74d5b173cf928f542b2d088519833a290620f484 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Tue, 4 Apr 2023 13:21:31 +0200 Subject: [PATCH 18/73] progress on setup --- src/server/admin/ui/css/setupstyle.css | 17 +++++++++++++++++ src/server/admin/ui/setup.html | 25 +++++++++++++------------ src/server/app.js | 1 + src/server/ui/html/index.html | 2 +- 4 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 src/server/admin/ui/css/setupstyle.css diff --git a/src/server/admin/ui/css/setupstyle.css b/src/server/admin/ui/css/setupstyle.css new file mode 100644 index 0000000..30463b8 --- /dev/null +++ b/src/server/admin/ui/css/setupstyle.css @@ -0,0 +1,17 @@ +.setup-app { + border-radius: 50px; + margin-top: 2%; + background-color: var(--secondary-background); + color: var(--primary-color); + height: 85vh; + width: 90%; +} + +.setup-page { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/src/server/admin/ui/setup.html b/src/server/admin/ui/setup.html index d6f022f..dbdb8f1 100644 --- a/src/server/admin/ui/setup.html +++ b/src/server/admin/ui/setup.html @@ -4,8 +4,9 @@ - Login :: myevent - admin panel + Setup :: myevent - admin panel +
@@ -20,17 +21,17 @@
- myevent-logo - diff --git a/src/server/app.js b/src/server/app.js index b5eab37..63fee43 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -23,6 +23,7 @@ const root = process.env.ROOT || '/order'; const settings = fs.readFileSync( path.join( __dirname + '/config.json' ) ); + // initialise express with middlewares app.use( expressSession( { secret: 'gaoevgoawefgo083tq2rfvöfaf0p8', diff --git a/src/server/ui/html/index.html b/src/server/ui/html/index.html index c8e422d..1624e9d 100644 --- a/src/server/ui/html/index.html +++ b/src/server/ui/html/index.html @@ -63,7 +63,7 @@

Welcome to myevent!

- To the admin panel + To the admin panel

Willkommen zu myevent!

From 5e78a9ba09f91ddd4a8c06f59475894576408125 Mon Sep 17 00:00:00 2001 From: janis Date: Thu, 6 Apr 2023 15:39:51 +0200 Subject: [PATCH 19/73] porgress on website --- website/dist/about/index.html | 1 + website/dist/css/footerstyle.css | 8 ++++++++ website/dist/css/style.css | 6 ++++++ website/dist/docs/index.html | 1 + website/dist/download/index.html | 1 + website/dist/footer.html | 3 ++- website/dist/index.html | 1 + 7 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 website/dist/css/footerstyle.css diff --git a/website/dist/about/index.html b/website/dist/about/index.html index b96c1d3..ac5886d 100644 --- a/website/dist/about/index.html +++ b/website/dist/about/index.html @@ -26,6 +26,7 @@ let btn = document.getElementById( 'backToTop' ); $( document ).ready( function () { $( '#nav' ).load( '/nav.html' ); + $( '#footer' ).load( '/footer.html' ); } ); function backToTop () { diff --git a/website/dist/css/footerstyle.css b/website/dist/css/footerstyle.css new file mode 100644 index 0000000..498a8e3 --- /dev/null +++ b/website/dist/css/footerstyle.css @@ -0,0 +1,8 @@ +.footer { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; +} \ No newline at end of file diff --git a/website/dist/css/style.css b/website/dist/css/style.css index 3b12a8f..8a67ad5 100644 --- a/website/dist/css/style.css +++ b/website/dist/css/style.css @@ -88,6 +88,12 @@ body { align-items: center; } +#footer { + height: 50vh; + width: 100%; + background-color: white; +} + #backToTop { border-radius: 500px; border-width: 1px; diff --git a/website/dist/docs/index.html b/website/dist/docs/index.html index f312a04..2487413 100644 --- a/website/dist/docs/index.html +++ b/website/dist/docs/index.html @@ -29,6 +29,7 @@ let btn = document.getElementById( 'backToTop' ); $( document ).ready( function () { $( '#nav' ).load( '/nav.html' ); + $( '#footer' ).load( '/footer.html' ); } ); function backToTop () { diff --git a/website/dist/download/index.html b/website/dist/download/index.html index ebb5685..3e27661 100644 --- a/website/dist/download/index.html +++ b/website/dist/download/index.html @@ -28,6 +28,7 @@ let btn = document.getElementById( 'backToTop' ); $( document ).ready( function () { $( '#nav' ).load( '/nav.html' ); + $( '#footer' ).load( '/footer.html' ); } ); function backToTop () { diff --git a/website/dist/footer.html b/website/dist/footer.html index e4101be..dab8193 100644 --- a/website/dist/footer.html +++ b/website/dist/footer.html @@ -9,7 +9,8 @@ \ No newline at end of file diff --git a/website/dist/index.html b/website/dist/index.html index 64837f5..6c460bf 100644 --- a/website/dist/index.html +++ b/website/dist/index.html @@ -65,6 +65,7 @@ let btn = document.getElementById( 'backToTop' ); $( document ).ready( function () { $( '#nav' ).load( '/nav.html' ); + $( '#footer' ).load( '/footer.html' ); } ); function backToTop () { From 8728e9b9c5bc34087e73bb665d3243f5a920a00f Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Thu, 6 Apr 2023 19:17:28 +0200 Subject: [PATCH 20/73] progress on setup --- src/server/admin/ui/css/loginstyle.css | 13 ++-- src/server/admin/ui/css/setupstyle.css | 7 ++ src/server/admin/ui/setup.html | 88 ++++++++++++++++++++++++-- src/server/admin/ui/welcome.html | 1 + src/server/mail.json | 0 website/src/payments.md | 0 website/src/setup.md | 0 7 files changed, 98 insertions(+), 11 deletions(-) create mode 100644 src/server/mail.json create mode 100644 website/src/payments.md create mode 100644 website/src/setup.md diff --git a/src/server/admin/ui/css/loginstyle.css b/src/server/admin/ui/css/loginstyle.css index ce11022..04d9f9b 100644 --- a/src/server/admin/ui/css/loginstyle.css +++ b/src/server/admin/ui/css/loginstyle.css @@ -2,16 +2,18 @@ --background-color: rgb(202, 223, 255); --secondary-background: white; --primary-color: black; + --primary-inverse: white; --secondary-color: blue; --secondary-hover: darkblue; } :root.dark { --background-color: rgb(42, 44, 56); - --secondary-background: rgb(19, 20, 32); - --primary-color: white; - --secondary-color: rgb(94, 94, 226); - --secondary-hover: rgb(155, 155, 255); + --secondary-background: rgb(19, 20, 32); + --primary-color: white; + --primary-inverse: black; + --secondary-color: rgb(94, 94, 226); + --secondary-hover: rgb(155, 155, 255); } @media ( prefers-color-scheme: dark ) { @@ -61,7 +63,7 @@ body { .button { text-decoration: none; - color: var(--primary-color); + color: white; background-color: var(--secondary-color); padding: 15px; border-radius: 30px; @@ -71,6 +73,7 @@ body { .button:hover { transition: ease-in-out 0.2s; + color: var(--primary-inverse); background-color: var(--secondary-hover); border-radius: 5px; } diff --git a/src/server/admin/ui/css/setupstyle.css b/src/server/admin/ui/css/setupstyle.css index 30463b8..6677277 100644 --- a/src/server/admin/ui/css/setupstyle.css +++ b/src/server/admin/ui/css/setupstyle.css @@ -14,4 +14,11 @@ flex-direction: column; justify-content: center; align-items: center; +} + +.explanation { + padding-left: 5%; + padding-right: 5%; + text-align: center; + font-style: italic; } \ No newline at end of file diff --git a/src/server/admin/ui/setup.html b/src/server/admin/ui/setup.html index dbdb8f1..93ef562 100644 --- a/src/server/admin/ui/setup.html +++ b/src/server/admin/ui/setup.html @@ -22,16 +22,92 @@
-
+ + +

Setup

-
-
+

Now, let's create an admin account! Please choose a secure password, as this user has the highest amounts of privileges.

+ +

-
-
- +
+
+
+
+
+ + +
+

Setup

+

Next off, we need to know your organisation's name, the language(s) you want to offer and you need to select if a simple homepage should be generated from templates for you. You may choose the template in the next step.

+
+
+
+

Languages * (one required, if none selected, uses English only)

+
+ + +
+
+ + +
+ +
+ + +
+
+ +
+ + +
+

Setup

+

Since you have activated the homepage on the previous step, let's set it up now. Please choose from a template which you can find here

+
+
+ +
+ +
+ + +
+ + +
+

Setup

+

Now, please choose a payment option. When entering the admin panel for the first time after completing the setup, you'll be prompted to enter tokens which you can find in the payment provider's dashboard. You there may also add more payment options that are provided by plugins. Please refer to the docs to see advantages and disadvantages of each payment provider.

+
+
+
+

Languages * (one required, if none selected, uses English only)

+
+ + +
+
+ + +
+ +
+ + +
+
+ + +
+
diff --git a/src/server/admin/ui/welcome.html b/src/server/admin/ui/welcome.html index babd890..54e8d34 100644 --- a/src/server/admin/ui/welcome.html +++ b/src/server/admin/ui/welcome.html @@ -19,6 +19,7 @@

myevent, the new way to sell your tickets online!

Let's get started setting up your event!

Note: As a project licensed under the GNU General Public License Version 3.0-or-later (GPL 3.0+), this software comes with ABSOLUTELY NO WARRANTY TO THE EXTENT PERMITTED BY APPLICABLE LAW

+

It is strongly advised to read through our setup guide whilst doing the setup, as it contains vital information and shows you additional options which you can configure in the configuration file.

Getting Started!
diff --git a/src/server/mail.json b/src/server/mail.json new file mode 100644 index 0000000..e69de29 diff --git a/website/src/payments.md b/website/src/payments.md new file mode 100644 index 0000000..e69de29 diff --git a/website/src/setup.md b/website/src/setup.md new file mode 100644 index 0000000..e69de29 From 9e76e0b4b52c5613f4ef79e980726b227f223f1e Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 7 Apr 2023 16:18:21 +0200 Subject: [PATCH 21/73] possibly final commit to this branch --- src/server/admin/routes.js | 19 ++++- src/server/admin/ui/css/style.css | 72 +++++++++++++++++ src/server/admin/ui/js/index.js | 35 +++++++++ src/server/admin/ui/panel.html | 77 +++++++++++++++++++ .../server/admin/ui/panel/accounts.html | 0 src/server/admin/ui/panel/entrycontrol.html | 0 src/server/admin/ui/panel/events.html | 0 src/server/admin/ui/panel/financial.html | 0 src/server/admin/ui/panel/home.html | 3 + src/server/admin/ui/panel/landingpage.html | 0 src/server/admin/ui/panel/otherpages.html | 0 src/server/admin/ui/panel/pages.html | 0 src/server/admin/ui/panel/printtickets.html | 0 src/server/admin/ui/panel/settings.html | 0 src/server/admin/ui/panel/tos.html | 0 src/server/admin/ui/setup.html | 1 - src/server/app.js | 4 +- src/server/config.json | 2 +- src/server/package-lock.json | 3 +- src/server/package.json | 3 +- website/src/how-it-works.md | 2 +- website/src/setup/setup.md | 35 +++++++++ 22 files changed, 249 insertions(+), 7 deletions(-) create mode 100644 src/server/admin/ui/css/style.css create mode 100644 src/server/admin/ui/js/index.js create mode 100644 src/server/admin/ui/panel.html rename website/src/setup.md => src/server/admin/ui/panel/accounts.html (100%) create mode 100644 src/server/admin/ui/panel/entrycontrol.html create mode 100644 src/server/admin/ui/panel/events.html create mode 100644 src/server/admin/ui/panel/financial.html create mode 100644 src/server/admin/ui/panel/home.html create mode 100644 src/server/admin/ui/panel/landingpage.html create mode 100644 src/server/admin/ui/panel/otherpages.html create mode 100644 src/server/admin/ui/panel/pages.html create mode 100644 src/server/admin/ui/panel/printtickets.html create mode 100644 src/server/admin/ui/panel/settings.html create mode 100644 src/server/admin/ui/panel/tos.html create mode 100644 website/src/setup/setup.md diff --git a/src/server/admin/routes.js b/src/server/admin/routes.js index 408956f..ef785f7 100644 --- a/src/server/admin/routes.js +++ b/src/server/admin/routes.js @@ -9,7 +9,7 @@ const path = require( 'path' ); const pwdmanager = require( './pwdmanager.js' ); - +const fs = require( 'fs' ); module.exports = ( app, settings ) => { /* @@ -27,6 +27,12 @@ module.exports = ( app, settings ) => { response.sendFile( path.join( __dirname + '/ui/js/loginLangPack.js' ) ); } ); + app.get( '/admin/js/:file', ( request, response ) => { + if ( request.session.loggedIn ) { + response.sendFile( path.join( __dirname + '/ui/js/' + request.params.file ) ); + } + } ); + app.get( '/admin/css/:file', ( request, response ) => { response.sendFile( path.join( __dirname + '/ui/css/' + request.params.file ) ); } ); @@ -72,6 +78,17 @@ module.exports = ( app, settings ) => { } } ); + + /* + Send admin panel modules to UI as UI uses Vue.js Router + */ + app.get( '/admin/panel/modules', ( request, response ) => { + let panelModules = { 'home': fs.readFileSync( path.join( __dirname + '/ui/panel/home.html' ) ).toString() }; + if ( request.session.loggedIn ) { + response.send( panelModules ); + } + } ); + app.get( '/admin/setup', ( request, response ) => { if ( request.session.loggedIn ) { response.sendFile( path.join( __dirname + '/ui/setup.html' ) ); diff --git a/src/server/admin/ui/css/style.css b/src/server/admin/ui/css/style.css new file mode 100644 index 0000000..e067c09 --- /dev/null +++ b/src/server/admin/ui/css/style.css @@ -0,0 +1,72 @@ +:root, :root.light { + --background-color: rgb(202, 223, 255); + --secondary-background: white; + --primary-color: black; + --primary-inverse: white; + --secondary-color: blue; + --secondary-hover: darkblue; +} + +:root.dark { + --background-color: rgb(42, 44, 56); + --secondary-background: rgb(19, 20, 32); + --primary-color: white; + --primary-inverse: black; + --secondary-color: rgb(94, 94, 226); + --secondary-hover: rgb(155, 155, 255); +} + +@media ( prefers-color-scheme: dark ) { + :root { + --background-color: rgb(42, 44, 56); + --secondary-background: rgb(19, 20, 32); + --primary-color: white; + --secondary-color: rgb(94, 94, 226); + --secondary-hover: rgb(155, 155, 255); + } +} + +body { + background-color: var(--background-color); + font-family: sans-serif; + font-size: calc(12pt + 0.35vw); +} + +.content { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.button { + text-decoration: none; + color: white; + background-color: var(--secondary-color); + padding: 15px; + border-radius: 30px; + transition: 1s; + cursor: pointer; +} + +.button:hover { + transition: ease-in-out 0.2s; + color: var(--primary-inverse); + background-color: var(--secondary-hover); + border-radius: 5px; +} + +.input { + padding: 1%; + width: 80%; + margin-bottom: 3%; + border-radius: 10px; +} + +.selector { + background-color: lightblue; + border-radius: 20px; + padding: 0.5%; + border-style: solid; + border-color: blue; +} \ No newline at end of file diff --git a/src/server/admin/ui/js/index.js b/src/server/admin/ui/js/index.js new file mode 100644 index 0000000..7df002c --- /dev/null +++ b/src/server/admin/ui/js/index.js @@ -0,0 +1,35 @@ +/* eslint-disable no-undef */ + +fetch( '/admin/panel/modules' ).then( res => { + res.json().then( data => { + const Home = { template: data[ 'home' ] }; + const About = { template: '
About
' }; + + const routes = [ + { path: '/', component: Home }, + { path: '/about', component: About } + ]; + + const router = VueRouter.createRouter( { + history: VueRouter.createWebHashHistory(), + routes, + } ); + + const app = Vue.createApp( { + data() { + return { + + }; + }, + watch: { + $route ( to, from ) { + console.log( 'changing route' ); + } + }, + } ); + + app.use( router ); + + app.mount( '#app' ); + } ); +} ); \ No newline at end of file diff --git a/src/server/admin/ui/panel.html b/src/server/admin/ui/panel.html new file mode 100644 index 0000000..28a4817 --- /dev/null +++ b/src/server/admin/ui/panel.html @@ -0,0 +1,77 @@ + + + + + + + + + Admin panel :: myevent + + +
+ + +
+
+ +
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/website/src/setup.md b/src/server/admin/ui/panel/accounts.html similarity index 100% rename from website/src/setup.md rename to src/server/admin/ui/panel/accounts.html diff --git a/src/server/admin/ui/panel/entrycontrol.html b/src/server/admin/ui/panel/entrycontrol.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/events.html b/src/server/admin/ui/panel/events.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/financial.html b/src/server/admin/ui/panel/financial.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/home.html b/src/server/admin/ui/panel/home.html new file mode 100644 index 0000000..9f69a84 --- /dev/null +++ b/src/server/admin/ui/panel/home.html @@ -0,0 +1,3 @@ +
+ Hello World! +
\ No newline at end of file diff --git a/src/server/admin/ui/panel/landingpage.html b/src/server/admin/ui/panel/landingpage.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/otherpages.html b/src/server/admin/ui/panel/otherpages.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/pages.html b/src/server/admin/ui/panel/pages.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/printtickets.html b/src/server/admin/ui/panel/printtickets.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/settings.html b/src/server/admin/ui/panel/settings.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/panel/tos.html b/src/server/admin/ui/panel/tos.html new file mode 100644 index 0000000..e69de29 diff --git a/src/server/admin/ui/setup.html b/src/server/admin/ui/setup.html index 93ef562..aac1f01 100644 --- a/src/server/admin/ui/setup.html +++ b/src/server/admin/ui/setup.html @@ -107,7 +107,6 @@
-
diff --git a/src/server/app.js b/src/server/app.js index 63fee43..9582450 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -16,12 +16,13 @@ const bodyParser = require( 'body-parser' ); const cookieParser = require( 'cookie-parser' ); const favicon = require( 'serve-favicon' ); const http = require( 'http' ); +const serveStatic = require( 'serve-static' ); // const env = process.env.PROD || false; const root = process.env.ROOT || '/order'; -const settings = fs.readFileSync( path.join( __dirname + '/config.json' ) ); +const settings = JSON.parse( fs.readFileSync( path.join( __dirname + '/config.json' ) ) ); // initialise express with middlewares @@ -35,6 +36,7 @@ app.use( bodyParser.urlencoded( { extended: false } ) ); app.use( bodyParser.json() ); app.use( cookieParser() ); app.use( favicon( path.join( __dirname + '/ui/assets/logo.png' ) ) ); +app.use( serveStatic( __dirname + '/admin/ui/modules' ) ); require( './admin/routes.js' )( app, settings ); // admin route diff --git a/src/server/config.json b/src/server/config.json index baf095c..bc8c0b4 100644 --- a/src/server/config.json +++ b/src/server/config.json @@ -1,3 +1,3 @@ { - "init":false + "init":true } \ No newline at end of file diff --git a/src/server/package-lock.json b/src/server/package-lock.json index 7657d14..376c212 100644 --- a/src/server/package-lock.json +++ b/src/server/package-lock.json @@ -14,7 +14,8 @@ "cookie-parser": "^1.4.6", "express": "^4.18.2", "express-session": "^1.17.3", - "serve-favicon": "^2.5.0" + "serve-favicon": "^2.5.0", + "serve-static": "^1.15.0" }, "devDependencies": { "acorn": "^8.8.2", diff --git a/src/server/package.json b/src/server/package.json index 2e2b078..d86eacf 100644 --- a/src/server/package.json +++ b/src/server/package.json @@ -46,7 +46,8 @@ "cookie-parser": "^1.4.6", "express": "^4.18.2", "express-session": "^1.17.3", - "serve-favicon": "^2.5.0" + "serve-favicon": "^2.5.0", + "serve-static": "^1.15.0" }, "scripts": { "test": "test.js" diff --git a/website/src/how-it-works.md b/website/src/how-it-works.md index 1030a1a..1fa7f46 100644 --- a/website/src/how-it-works.md +++ b/website/src/how-it-works.md @@ -1,2 +1,2 @@ # How it works -This page gives you a somewhat detailed overview on how the system operates. Note that this page is not made with user-legibility in mind, as this page is oriented to give possible contributors an introduction to the project to help them getting started. \ No newline at end of file +This page gives you a somewhat detailed overview on how the system operates. Note that this page is not made with user-legibility in mind, as this page is oriented to give possible contributors an introduction to the project to help them getting started. Therefore we expect you to have quite decent understanding of the underlying programming languages and concepts. \ No newline at end of file diff --git a/website/src/setup/setup.md b/website/src/setup/setup.md new file mode 100644 index 0000000..aed2e69 --- /dev/null +++ b/website/src/setup/setup.md @@ -0,0 +1,35 @@ +# Setup of myevent +At this point we assume you've completed the initial install of myevent. If not, you may find a guide on how to do it [here](/setup/getting-started). Let's get started setting up your event management system! + +## Connecting to the server +As discussed in the previous part where we installed the system, you can connect to your server simply by opening a web browser and typing your domain name into the address field. After that you should be greeted by the myevent post-install landing page. Please click onto the button saying 'To the admin panel' and log in with the following credentials: + +Username: setup + +Password: myevent-setup + +*Note: This is only available during the setup process of myevent and will afterwards be deactivated to ensure safety of the system.* + +## Setting up the root account +This is the most powerful account in this system. From it you can control EVERY aspect of your system. + +**Remark: You may (and definitely should) add other accounts with less privileges after completing setup and only use the root account when it is actually necessary** + +Please choose an email address to which you want to link the root account. Two-Factor-Authentication is ALWAYS required when logging into an account that has root privileges to ensure a higher degree of security, so please ensure you have access to that email address at all times. + +When choosing a password, please ensure it meets the minimum requirements of the system or let the system generate one for you by clicking the 'generate password' button, which will generate a password that fulfills all requirements and exceeds the minimum requirements for password length. In the table below, you may see all the password requirements: + +Factor | Requirement +--------------------|-------------------------------------------------- +Length | At least 15 characters +Special characters | At least 2 required +Numbers | At least 2 required +Upper / Lower case | At least 2 upper & 2 lower case letters required + +Please avoid using easy to guess combinations like names & birth dates of you or your relatives, zip codes & cities and obvious words like 'password', 'myevent', 'admin', 'root' and your organisation / event's name. + +## Page setup +After having set up the root account and confirmed the email address, it is now time to set the name of the webpage. For this, you'll need to enter your organisation's name and choose the offered languages. Note that for every language you select, you need to add a promotional text if you choose to add a homepage. If you selected a homepage, you have to insert a promotional text and you have to select a homepage-template from one that is available [here](/homepage/templates). You also have to upload some images at this stage. + +## Payment methods +Now it is time to set up some payment methods. You may find advantages / disadvantages of each payment gateway [here](/payments). It is advised to only choose one payment gateway which provides lots of different payment options, but cost of usage can also be a factor to consider. You may add more payment options by downloading a plugin through the plugin installer in the admin panel. \ No newline at end of file From 5eccbb336a4c7b095faa478a9989903153cee120 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 7 Apr 2023 16:22:36 +0200 Subject: [PATCH 22/73] move to vue spa --- src/server/admin/ui/2fa.html | 0 src/server/admin/ui/auth.html | 0 src/server/admin/ui/css/loginstyle.css | 101 - src/server/admin/ui/css/setupstyle.css | 24 - src/server/admin/ui/css/style.css | 72 - src/server/admin/ui/js/index.js | 35 - src/server/admin/ui/js/loginLangPack.js | 32 - src/server/admin/ui/login.html | 77 - src/server/admin/ui/panel.html | 77 - src/server/admin/ui/panel/accounts.html | 0 src/server/admin/ui/panel/entrycontrol.html | 0 src/server/admin/ui/panel/events.html | 0 src/server/admin/ui/panel/financial.html | 0 src/server/admin/ui/panel/home.html | 3 - src/server/admin/ui/panel/landingpage.html | 0 src/server/admin/ui/panel/otherpages.html | 0 src/server/admin/ui/panel/pages.html | 0 src/server/admin/ui/panel/printtickets.html | 0 src/server/admin/ui/panel/settings.html | 0 src/server/admin/ui/panel/tos.html | 0 src/server/admin/ui/setup.html | 152 - src/server/admin/ui/welcome.html | 36 - src/server/ui/assets/logo.png | Bin 34209 -> 0 bytes src/server/ui/css/errorstyle.css | 54 - src/server/ui/css/style.css | 0 src/server/ui/html/de/index.html | 0 src/server/ui/html/en/errorResponses/403.html | 17 - src/server/ui/html/en/errorResponses/404.html | 17 - src/server/ui/html/en/errorResponses/500.html | 17 - src/server/ui/html/en/index.html | 0 src/server/ui/html/index.html | 91 - src/server/ui/js/index.js | 0 src/webapp/myevent/.browserslistrc | 4 + src/webapp/myevent/.gitignore | 23 + src/webapp/myevent/README.md | 19 + src/webapp/myevent/babel.config.js | 5 + src/webapp/myevent/package-lock.json | 18020 ++++++++++++++++ src/webapp/myevent/package.json | 21 + src/webapp/myevent/public/favicon.ico | Bin 0 -> 4286 bytes src/webapp/myevent/public/index.html | 17 + src/webapp/myevent/src/App.vue | 30 + src/webapp/myevent/src/assets/logo.png | Bin 0 -> 6849 bytes .../myevent/src/components/HelloWorld.vue | 61 + src/webapp/myevent/src/main.ts | 5 + src/webapp/myevent/src/router/index.ts | 25 + src/webapp/myevent/src/shims-vue.d.ts | 6 + src/webapp/myevent/src/views/AboutView.vue | 5 + src/webapp/myevent/src/views/HomeView.vue | 18 + src/webapp/myevent/tsconfig.json | 40 + src/webapp/myevent/vue.config.js | 4 + 50 files changed, 18303 insertions(+), 805 deletions(-) delete mode 100644 src/server/admin/ui/2fa.html delete mode 100644 src/server/admin/ui/auth.html delete mode 100644 src/server/admin/ui/css/loginstyle.css delete mode 100644 src/server/admin/ui/css/setupstyle.css delete mode 100644 src/server/admin/ui/css/style.css delete mode 100644 src/server/admin/ui/js/index.js delete mode 100644 src/server/admin/ui/js/loginLangPack.js delete mode 100644 src/server/admin/ui/login.html delete mode 100644 src/server/admin/ui/panel.html delete mode 100644 src/server/admin/ui/panel/accounts.html delete mode 100644 src/server/admin/ui/panel/entrycontrol.html delete mode 100644 src/server/admin/ui/panel/events.html delete mode 100644 src/server/admin/ui/panel/financial.html delete mode 100644 src/server/admin/ui/panel/home.html delete mode 100644 src/server/admin/ui/panel/landingpage.html delete mode 100644 src/server/admin/ui/panel/otherpages.html delete mode 100644 src/server/admin/ui/panel/pages.html delete mode 100644 src/server/admin/ui/panel/printtickets.html delete mode 100644 src/server/admin/ui/panel/settings.html delete mode 100644 src/server/admin/ui/panel/tos.html delete mode 100644 src/server/admin/ui/setup.html delete mode 100644 src/server/admin/ui/welcome.html delete mode 100644 src/server/ui/assets/logo.png delete mode 100644 src/server/ui/css/errorstyle.css delete mode 100644 src/server/ui/css/style.css delete mode 100644 src/server/ui/html/de/index.html delete mode 100644 src/server/ui/html/en/errorResponses/403.html delete mode 100644 src/server/ui/html/en/errorResponses/404.html delete mode 100644 src/server/ui/html/en/errorResponses/500.html delete mode 100644 src/server/ui/html/en/index.html delete mode 100644 src/server/ui/html/index.html delete mode 100644 src/server/ui/js/index.js create mode 100644 src/webapp/myevent/.browserslistrc create mode 100644 src/webapp/myevent/.gitignore create mode 100644 src/webapp/myevent/README.md create mode 100644 src/webapp/myevent/babel.config.js create mode 100644 src/webapp/myevent/package-lock.json create mode 100644 src/webapp/myevent/package.json create mode 100644 src/webapp/myevent/public/favicon.ico create mode 100644 src/webapp/myevent/public/index.html create mode 100644 src/webapp/myevent/src/App.vue create mode 100644 src/webapp/myevent/src/assets/logo.png create mode 100644 src/webapp/myevent/src/components/HelloWorld.vue create mode 100644 src/webapp/myevent/src/main.ts create mode 100644 src/webapp/myevent/src/router/index.ts create mode 100644 src/webapp/myevent/src/shims-vue.d.ts create mode 100644 src/webapp/myevent/src/views/AboutView.vue create mode 100644 src/webapp/myevent/src/views/HomeView.vue create mode 100644 src/webapp/myevent/tsconfig.json create mode 100644 src/webapp/myevent/vue.config.js diff --git a/src/server/admin/ui/2fa.html b/src/server/admin/ui/2fa.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/auth.html b/src/server/admin/ui/auth.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/css/loginstyle.css b/src/server/admin/ui/css/loginstyle.css deleted file mode 100644 index 04d9f9b..0000000 --- a/src/server/admin/ui/css/loginstyle.css +++ /dev/null @@ -1,101 +0,0 @@ -:root, :root.light { - --background-color: rgb(202, 223, 255); - --secondary-background: white; - --primary-color: black; - --primary-inverse: white; - --secondary-color: blue; - --secondary-hover: darkblue; -} - -:root.dark { - --background-color: rgb(42, 44, 56); - --secondary-background: rgb(19, 20, 32); - --primary-color: white; - --primary-inverse: black; - --secondary-color: rgb(94, 94, 226); - --secondary-hover: rgb(155, 155, 255); -} - -@media ( prefers-color-scheme: dark ) { - :root { - --background-color: rgb(42, 44, 56); - --secondary-background: rgb(19, 20, 32); - --primary-color: white; - --secondary-color: rgb(94, 94, 226); - --secondary-hover: rgb(155, 155, 255); - } -} - -body { - background-color: var(--background-color); - font-family: sans-serif; - font-size: calc(12pt + 0.35vw); -} - -.content { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.login-app { - border-radius: 50px; - margin-top: 2%; - background-color: var(--secondary-background); - color: var(--primary-color); - width: 60%; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.form { - width: 80%; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - margin-top: 4%; - margin-bottom: 4%; -} - -.button { - text-decoration: none; - color: white; - background-color: var(--secondary-color); - padding: 15px; - border-radius: 30px; - transition: 1s; - cursor: pointer; -} - -.button:hover { - transition: ease-in-out 0.2s; - color: var(--primary-inverse); - background-color: var(--secondary-hover); - border-radius: 5px; -} - -.input { - padding: 1%; - width: 80%; - margin-bottom: 3%; - border-radius: 10px; -} - -.top-bar { - width: 100%; - display: flex; - align-items: end; - justify-content: end; -} - -.selector { - background-color: lightblue; - border-radius: 20px; - padding: 0.5%; - border-style: solid; - border-color: blue; -} \ No newline at end of file diff --git a/src/server/admin/ui/css/setupstyle.css b/src/server/admin/ui/css/setupstyle.css deleted file mode 100644 index 6677277..0000000 --- a/src/server/admin/ui/css/setupstyle.css +++ /dev/null @@ -1,24 +0,0 @@ -.setup-app { - border-radius: 50px; - margin-top: 2%; - background-color: var(--secondary-background); - color: var(--primary-color); - height: 85vh; - width: 90%; -} - -.setup-page { - width: 100%; - height: 100%; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.explanation { - padding-left: 5%; - padding-right: 5%; - text-align: center; - font-style: italic; -} \ No newline at end of file diff --git a/src/server/admin/ui/css/style.css b/src/server/admin/ui/css/style.css deleted file mode 100644 index e067c09..0000000 --- a/src/server/admin/ui/css/style.css +++ /dev/null @@ -1,72 +0,0 @@ -:root, :root.light { - --background-color: rgb(202, 223, 255); - --secondary-background: white; - --primary-color: black; - --primary-inverse: white; - --secondary-color: blue; - --secondary-hover: darkblue; -} - -:root.dark { - --background-color: rgb(42, 44, 56); - --secondary-background: rgb(19, 20, 32); - --primary-color: white; - --primary-inverse: black; - --secondary-color: rgb(94, 94, 226); - --secondary-hover: rgb(155, 155, 255); -} - -@media ( prefers-color-scheme: dark ) { - :root { - --background-color: rgb(42, 44, 56); - --secondary-background: rgb(19, 20, 32); - --primary-color: white; - --secondary-color: rgb(94, 94, 226); - --secondary-hover: rgb(155, 155, 255); - } -} - -body { - background-color: var(--background-color); - font-family: sans-serif; - font-size: calc(12pt + 0.35vw); -} - -.content { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -.button { - text-decoration: none; - color: white; - background-color: var(--secondary-color); - padding: 15px; - border-radius: 30px; - transition: 1s; - cursor: pointer; -} - -.button:hover { - transition: ease-in-out 0.2s; - color: var(--primary-inverse); - background-color: var(--secondary-hover); - border-radius: 5px; -} - -.input { - padding: 1%; - width: 80%; - margin-bottom: 3%; - border-radius: 10px; -} - -.selector { - background-color: lightblue; - border-radius: 20px; - padding: 0.5%; - border-style: solid; - border-color: blue; -} \ No newline at end of file diff --git a/src/server/admin/ui/js/index.js b/src/server/admin/ui/js/index.js deleted file mode 100644 index 7df002c..0000000 --- a/src/server/admin/ui/js/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/* eslint-disable no-undef */ - -fetch( '/admin/panel/modules' ).then( res => { - res.json().then( data => { - const Home = { template: data[ 'home' ] }; - const About = { template: '
About
' }; - - const routes = [ - { path: '/', component: Home }, - { path: '/about', component: About } - ]; - - const router = VueRouter.createRouter( { - history: VueRouter.createWebHashHistory(), - routes, - } ); - - const app = Vue.createApp( { - data() { - return { - - }; - }, - watch: { - $route ( to, from ) { - console.log( 'changing route' ); - } - }, - } ); - - app.use( router ); - - app.mount( '#app' ); - } ); -} ); \ No newline at end of file diff --git a/src/server/admin/ui/js/loginLangPack.js b/src/server/admin/ui/js/loginLangPack.js deleted file mode 100644 index 5c8dfec..0000000 --- a/src/server/admin/ui/js/loginLangPack.js +++ /dev/null @@ -1,32 +0,0 @@ -let themeSelector2 = document.getElementById( 'theme' ); -let languageSelector = document.getElementById( 'lang' ); -let mailLabel = document.getElementById( 'mailLabel' ); -let pwdLabel = document.getElementById( 'pwdLabel' ); -let login = document.getElementById( 'login' ); - -languageSelector.value = sessionStorage.getItem( 'lang' ); - -function langUpdate () { - if ( sessionStorage.getItem( 'lang' ) === 'de' ) { - themeSelector2.options[0].innerHTML = 'Automatisch'; - themeSelector2.options[1].innerHTML = 'Hellmodus'; - themeSelector2.options[2].innerHTML = 'Dunkelmodus'; - mailLabel.innerHTML = 'Email - Adresse'; - pwdLabel.innerHTML = 'Passwort'; - login.value = 'Anmelden'; - } else { - themeSelector2.options[0].innerHTML = 'System theme'; - themeSelector2.options[1].innerHTML = 'Light'; - themeSelector2.options[2].innerHTML = 'Dark'; - mailLabel.innerHTML = 'Email address'; - pwdLabel.innerHTML = 'Password'; - login.value = 'Log in'; - } -} - -function changeLang () { - sessionStorage.setItem( 'lang', languageSelector.value ); - langUpdate(); -} - -langUpdate(); \ No newline at end of file diff --git a/src/server/admin/ui/login.html b/src/server/admin/ui/login.html deleted file mode 100644 index 1ef0900..0000000 --- a/src/server/admin/ui/login.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - Login :: myevent - admin panel - - - - -
-
- - -
- myevent-logo - -
- - - - \ No newline at end of file diff --git a/src/server/admin/ui/panel.html b/src/server/admin/ui/panel.html deleted file mode 100644 index 28a4817..0000000 --- a/src/server/admin/ui/panel.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - Admin panel :: myevent - - -
- - -
-
- -
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/src/server/admin/ui/panel/accounts.html b/src/server/admin/ui/panel/accounts.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/entrycontrol.html b/src/server/admin/ui/panel/entrycontrol.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/events.html b/src/server/admin/ui/panel/events.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/financial.html b/src/server/admin/ui/panel/financial.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/home.html b/src/server/admin/ui/panel/home.html deleted file mode 100644 index 9f69a84..0000000 --- a/src/server/admin/ui/panel/home.html +++ /dev/null @@ -1,3 +0,0 @@ -
- Hello World! -
\ No newline at end of file diff --git a/src/server/admin/ui/panel/landingpage.html b/src/server/admin/ui/panel/landingpage.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/otherpages.html b/src/server/admin/ui/panel/otherpages.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/pages.html b/src/server/admin/ui/panel/pages.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/printtickets.html b/src/server/admin/ui/panel/printtickets.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/settings.html b/src/server/admin/ui/panel/settings.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/panel/tos.html b/src/server/admin/ui/panel/tos.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/admin/ui/setup.html b/src/server/admin/ui/setup.html deleted file mode 100644 index aac1f01..0000000 --- a/src/server/admin/ui/setup.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - Setup :: myevent - admin panel - - - - -
-
- - -
-
- - -
-

Setup

-

Now, let's create an admin account! Please choose a secure password, as this user has the highest amounts of privileges.

-
-
-
-
-
-
-
-
- -
- - -
-

Setup

-

Next off, we need to know your organisation's name, the language(s) you want to offer and you need to select if a simple homepage should be generated from templates for you. You may choose the template in the next step.

-
-
-
-

Languages * (one required, if none selected, uses English only)

-
- - -
-
- - -
- -
- - -
-
- -
- - -
-

Setup

-

Since you have activated the homepage on the previous step, let's set it up now. Please choose from a template which you can find here

-
-
- -
- -
- - -
- - -
-

Setup

-

Now, please choose a payment option. When entering the admin panel for the first time after completing the setup, you'll be prompted to enter tokens which you can find in the payment provider's dashboard. You there may also add more payment options that are provided by plugins. Please refer to the docs to see advantages and disadvantages of each payment provider.

-
-
-
-

Languages * (one required, if none selected, uses English only)

-
- - -
-
- - -
- -
- - -
-
- - -
-
-
- - - - \ No newline at end of file diff --git a/src/server/admin/ui/welcome.html b/src/server/admin/ui/welcome.html deleted file mode 100644 index 54e8d34..0000000 --- a/src/server/admin/ui/welcome.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - Welcome :: myevent - admin panel - - - - -
-

Welcome to myevent!

- myevent-logo -

myevent, the new way to sell your tickets online!

-

Let's get started setting up your event!

-

Note: As a project licensed under the GNU General Public License Version 3.0-or-later (GPL 3.0+), this software comes with ABSOLUTELY NO WARRANTY TO THE EXTENT PERMITTED BY APPLICABLE LAW

-

It is strongly advised to read through our setup guide whilst doing the setup, as it contains vital information and shows you additional options which you can configure in the configuration file.

- Getting Started! -
- - - - - - \ No newline at end of file diff --git a/src/server/ui/assets/logo.png b/src/server/ui/assets/logo.png deleted file mode 100644 index b9a3da3a7589e9f534eb2df1f5f36ca60d0fef48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34209 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 bd*OP&8Bf>y{*nOJ0*>qxg~z!M_22vt=xT;y diff --git a/src/server/ui/css/errorstyle.css b/src/server/ui/css/errorstyle.css deleted file mode 100644 index 12e0f45..0000000 --- a/src/server/ui/css/errorstyle.css +++ /dev/null @@ -1,54 +0,0 @@ -/* -* myevent - errorstyle.css -* -* Created by Janis Hutz 03/11/2023, Licensed under the GPL V3 License -* https://janishutz.com, development@janishutz.com -* -* -*/ - -html { - height: 98%; -} - -body { - background-color: lightgray; - font-family: monospace; - height: 100%; -} - -.content { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - height: 100%; - width: 100%; -} - -.code { - font-size: 20vw; - margin: 0; - padding: 0; -} - -.message { - font-size: 1.5vw; -} - -.button { - text-decoration: none; - background-color: gray; - font-style: italic; - font-size: 1vw; - color: white; - padding: 20px; - border-radius: 30px; - transition: 1s; -} - -.button:hover { - transition: ease-in-out 0.2s; - background-color: black; - border-radius: 5px; -} diff --git a/src/server/ui/css/style.css b/src/server/ui/css/style.css deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/ui/html/de/index.html b/src/server/ui/html/de/index.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/ui/html/en/errorResponses/403.html b/src/server/ui/html/en/errorResponses/403.html deleted file mode 100644 index de73275..0000000 --- a/src/server/ui/html/en/errorResponses/403.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - 403 - Forbidden - - - -
-

403

-

You are currently not allowed to visit this page!

- Back to the homepage -
- - \ No newline at end of file diff --git a/src/server/ui/html/en/errorResponses/404.html b/src/server/ui/html/en/errorResponses/404.html deleted file mode 100644 index b264312..0000000 --- a/src/server/ui/html/en/errorResponses/404.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - 404 - Not found - - - -
-

404

-

The page you are looking for was not found on the server!

- Back to the homepage -
- - \ No newline at end of file diff --git a/src/server/ui/html/en/errorResponses/500.html b/src/server/ui/html/en/errorResponses/500.html deleted file mode 100644 index 4c50d95..0000000 --- a/src/server/ui/html/en/errorResponses/500.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - 500 - Internal Server Error - - - -
-

500

-

The server encountered a problem whilst processing your request!

- Back to the homepage -
- - \ No newline at end of file diff --git a/src/server/ui/html/en/index.html b/src/server/ui/html/en/index.html deleted file mode 100644 index e69de29..0000000 diff --git a/src/server/ui/html/index.html b/src/server/ui/html/index.html deleted file mode 100644 index 1624e9d..0000000 --- a/src/server/ui/html/index.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - myevent - - - - - - -
- -
-

Welcome to myevent!

- - To the admin panel -
-
-

Willkommen zu myevent!

- - Zum Admin-Panel -
-
- - - \ No newline at end of file diff --git a/src/server/ui/js/index.js b/src/server/ui/js/index.js deleted file mode 100644 index e69de29..0000000 diff --git a/src/webapp/myevent/.browserslistrc b/src/webapp/myevent/.browserslistrc new file mode 100644 index 0000000..dc3bc09 --- /dev/null +++ b/src/webapp/myevent/.browserslistrc @@ -0,0 +1,4 @@ +> 1% +last 2 versions +not dead +not ie 11 diff --git a/src/webapp/myevent/.gitignore b/src/webapp/myevent/.gitignore new file mode 100644 index 0000000..403adbc --- /dev/null +++ b/src/webapp/myevent/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/webapp/myevent/README.md b/src/webapp/myevent/README.md new file mode 100644 index 0000000..624878e --- /dev/null +++ b/src/webapp/myevent/README.md @@ -0,0 +1,19 @@ +# myevent + +## Project setup +``` +npm install +``` + +### Compiles and hot-reloads for development +``` +npm run serve +``` + +### Compiles and minifies for production +``` +npm run build +``` + +### Customize configuration +See [Configuration Reference](https://cli.vuejs.org/config/). diff --git a/src/webapp/myevent/babel.config.js b/src/webapp/myevent/babel.config.js new file mode 100644 index 0000000..e955840 --- /dev/null +++ b/src/webapp/myevent/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git a/src/webapp/myevent/package-lock.json b/src/webapp/myevent/package-lock.json new file mode 100644 index 0000000..6a2ce33 --- /dev/null +++ b/src/webapp/myevent/package-lock.json @@ -0,0 +1,18020 @@ +{ + "name": "myevent", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "myevent", + "version": "0.1.0", + "dependencies": { + "core-js": "^3.8.3", + "vue": "^3.2.13", + "vue-router": "^4.0.3" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "~5.0.0", + "@vue/cli-plugin-router": "~5.0.0", + "@vue/cli-plugin-typescript": "~5.0.0", + "@vue/cli-service": "~5.0.0", + "typescript": "~4.5.5" + } + }, + "node_modules/@achrinza/node-ipc": { + "version": "9.2.6", + "resolved": "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.6.tgz", + "integrity": "sha512-ULSIYPy4ZPM301dfCxRz0l2GJjOwIo/PqmWonIu1bLml7UmnVQmH+juJcoyXp6E8gIRRNAjGYftJnNQlfy4vPg==", + "dev": true, + "dependencies": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + }, + "engines": { + "node": "8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/@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.21.4", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.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/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", + "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.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz", + "integrity": "sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@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-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@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-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@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-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@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-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@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-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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-decorators": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz", + "integrity": "sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "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.npmmirror.com/@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.npmmirror.com/@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.20.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@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-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.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.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "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-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "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-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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.20.0", + "@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-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.0", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@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.0", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@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.3", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "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.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "dependencies": { + "easy-stack": "1.0.1" + }, + "engines": { + "node": ">=1.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/@soda/friendly-errors-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.33", + "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.10", + "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.10.tgz", + "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dev": true, + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/webpack-env": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/@types/webpack-env/-/webpack-env-1.18.0.tgz", + "integrity": "sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz", + "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==", + "dev": true + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz", + "integrity": "sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx/node_modules/html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/babel-preset-app": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-5.0.8.tgz", + "integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.16", + "@babel/helper-compilation-targets": "^7.12.16", + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.12.13", + "@babel/plugin-proposal-decorators": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/plugin-transform-runtime": "^7.12.15", + "@babel/preset-env": "^7.12.16", + "@babel/runtime": "^7.12.13", + "@vue/babel-plugin-jsx": "^1.0.3", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.8.3", + "core-js-compat": "^3.8.3", + "semver": "^7.3.4" + }, + "peerDependencies": { + "@babel/core": "*", + "core-js": "^3", + "vue": "^2 || ^3.2.13" + }, + "peerDependenciesMeta": { + "core-js": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-preset-app/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/babel-preset-app/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/babel-preset-app/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@vue/babel-preset-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz", + "integrity": "sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==", + "dev": true, + "dependencies": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "@vue/babel-sugar-composition-api-inject-h": "^1.4.0", + "@vue/babel-sugar-composition-api-render-instance": "^1.4.0", + "@vue/babel-sugar-functional-vue": "^1.4.0", + "@vue/babel-sugar-inject-h": "^1.4.0", + "@vue/babel-sugar-v-model": "^1.4.0", + "@vue/babel-sugar-v-on": "^1.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0", + "vue": "*" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-sugar-composition-api-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz", + "integrity": "sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-composition-api-render-instance": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz", + "integrity": "sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-functional-vue": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz", + "integrity": "sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz", + "integrity": "sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz", + "integrity": "sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/babel-sugar-v-model/node_modules/html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/babel-sugar-v-on": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz", + "integrity": "sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-on/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-overlay": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-5.0.8.tgz", + "integrity": "sha512-KmtievE/B4kcXp6SuM2gzsnSd8WebkQpg3XaB6GmFh1BJGRqa1UiW9up7L/Q67uOdTigHxr5Ar2lZms4RcDjwQ==", + "dev": true + }, + "node_modules/@vue/cli-plugin-babel": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-5.0.8.tgz", + "integrity": "sha512-a4qqkml3FAJ3auqB2kN2EMPocb/iu0ykeELwed+9B1c1nQ1HKgslKMHMPavYx3Cd/QAx2mBD4hwKBqZXEI/CsQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.16", + "@vue/babel-preset-app": "^5.0.8", + "@vue/cli-shared-utils": "^5.0.8", + "babel-loader": "^8.2.2", + "thread-loader": "^3.0.0", + "webpack": "^5.54.0" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-plugin-router": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.8.tgz", + "integrity": "sha512-Gmv4dsGdAsWPqVijz3Ux2OS2HkMrWi1ENj2cYL75nUeL+Xj5HEstSqdtfZ0b1q9NCce+BFB6QnHfTBXc/fCvMg==", + "dev": true, + "dependencies": { + "@vue/cli-shared-utils": "^5.0.8" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-plugin-typescript": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-typescript/-/cli-plugin-typescript-5.0.8.tgz", + "integrity": "sha512-JKJOwzJshBqsmp4yLBexwVMebOZ4VGJgbnYvmHVxasJOStF2RxwyW28ZF+zIvASGdat4sAUuo/3mAQyVhm7JHg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.16", + "@types/webpack-env": "^1.15.2", + "@vue/cli-shared-utils": "^5.0.8", + "babel-loader": "^8.2.2", + "fork-ts-checker-webpack-plugin": "^6.4.0", + "globby": "^11.0.2", + "thread-loader": "^3.0.0", + "ts-loader": "^9.2.5", + "webpack": "^5.54.0" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0", + "cache-loader": "^4.1.0", + "typescript": ">=2", + "vue": "^2 || ^3.2.13", + "vue-template-compiler": "^2.0.0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/@vue/cli-plugin-vuex": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", + "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", + "dev": true, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-service": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-5.0.8.tgz", + "integrity": "sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.12.16", + "@soda/friendly-errors-webpack-plugin": "^1.8.0", + "@soda/get-current-script": "^1.0.2", + "@types/minimist": "^1.2.0", + "@vue/cli-overlay": "^5.0.8", + "@vue/cli-plugin-router": "^5.0.8", + "@vue/cli-plugin-vuex": "^5.0.8", + "@vue/cli-shared-utils": "^5.0.8", + "@vue/component-compiler-utils": "^3.3.0", + "@vue/vue-loader-v15": "npm:vue-loader@^15.9.7", + "@vue/web-component-wrapper": "^1.3.0", + "acorn": "^8.0.5", + "acorn-walk": "^8.0.2", + "address": "^1.1.2", + "autoprefixer": "^10.2.4", + "browserslist": "^4.16.3", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.10", + "clipboardy": "^2.3.0", + "cliui": "^7.0.4", + "copy-webpack-plugin": "^9.0.1", + "css-loader": "^6.5.0", + "css-minimizer-webpack-plugin": "^3.0.2", + "cssnano": "^5.0.0", + "debug": "^4.1.1", + "default-gateway": "^6.0.3", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^5.1.0", + "is-file-esm": "^1.0.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "mini-css-extract-plugin": "^2.5.3", + "minimist": "^1.2.5", + "module-alias": "^2.2.2", + "portfinder": "^1.0.26", + "postcss": "^8.2.6", + "postcss-loader": "^6.1.1", + "progress-webpack-plugin": "^1.0.12", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^5.1.1", + "thread-loader": "^3.0.0", + "vue-loader": "^17.0.0", + "vue-style-loader": "^4.1.3", + "webpack": "^5.54.0", + "webpack-bundle-analyzer": "^4.4.0", + "webpack-chain": "^6.5.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.7.3", + "webpack-virtual-modules": "^0.4.2", + "whatwg-fetch": "^3.6.2" + }, + "bin": { + "vue-cli-service": "bin/vue-cli-service.js" + }, + "engines": { + "node": "^12.0.0 || >= 14.0.0" + }, + "peerDependencies": { + "vue-template-compiler": "^2.0.0", + "webpack-sources": "*" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "less-loader": { + "optional": true + }, + "pug-plain-loader": { + "optional": true + }, + "raw-loader": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "stylus-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/@vue/cli-shared-utils": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz", + "integrity": "sha512-uK2YB7bBVuQhjOJF+O52P9yFMXeJVj7ozqJkwYE9PlMHL1LMHjtCYm4cSdOebuPzyP+/9p0BimM/OqxsevIopQ==", + "dev": true, + "dependencies": { + "@achrinza/node-ipc": "^9.2.5", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "joi": "^17.4.0", + "launch-editor": "^2.2.1", + "lru-cache": "^6.0.0", + "node-fetch": "^2.6.7", + "open": "^8.0.2", + "ora": "^5.3.0", + "read-pkg": "^5.1.1", + "semver": "^7.3.4", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/@vue/cli-shared-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@vue/cli-shared-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/@vue/cli-shared-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "node_modules/@vue/vue-loader-v15": { + "name": "vue-loader", + "version": "15.10.1", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz", + "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "peerDependencies": { + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/@vue/vue-loader-v15/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/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/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001474", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz", + "integrity": "sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==", + "dev": true + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "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/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/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/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/cli-spinners": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.8.0.tgz", + "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/core-js": { + "version": "3.30.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==", + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.30.0", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.30.0.tgz", + "integrity": "sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.0", + "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/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/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.5.0.tgz", + "integrity": "sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.355", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.355.tgz", + "integrity": "sha512-056hxzEE4l667YeOccgjhRr5fTiwZ6EIJ4FpzGps4k3YcS8iAhiaBYUBrv5E2LDQJsussscv9EEUwAYKnv+ZKg==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/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/enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enhanced-resolve/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/fork-ts-checker-webpack-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "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.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/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-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/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.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/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": "*" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/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.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/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/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/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/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dev": true, + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-file-esm": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-file-esm/-/is-file-esm-1.0.0.tgz", + "integrity": "sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==", + "dev": true, + "dependencies": { + "read-pkg-up": "^7.0.1" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/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-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/joi": { + "version": "17.9.1", + "resolved": "https://registry.npmmirror.com/joi/-/joi-17.9.1.tgz", + "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/launch-editor-middleware": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.6.0.tgz", + "integrity": "sha512-K2yxgljj5TdCeRN1lBtO3/J26+AIDDDw+04y6VAiZbWcTdBwsYN6RrZBnW5DN/QiSIdKNjKdATLUUluWWFYTIA==", + "dev": true, + "dependencies": { + "launch-editor": "^2.6.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "node_modules/lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/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.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.0.tgz", + "integrity": "sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.5", + "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", + "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", + "dev": true + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/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.12.3", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmmirror.com/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress-webpack-plugin": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/progress-webpack-plugin/-/progress-webpack-plugin-1.0.16.tgz", + "integrity": "sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA==", + "dev": true, + "dependencies": { + "chalk": "^2.1.0", + "figures": "^2.0.0", + "log-update": "^2.3.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/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/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/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/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.16.8", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.16.8.tgz", + "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thread-loader": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/thread-loader/-/thread-loader-3.0.4.tgz", + "integrity": "sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==", + "dev": true, + "dependencies": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/thread-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/thread-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/ts-loader": { + "version": "9.4.2", + "resolved": "https://registry.npmmirror.com/ts-loader/-/ts-loader-9.4.2.tgz", + "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ts-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/ts-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "4.5.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "node_modules/vue-loader": { + "version": "17.0.1", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.0.1.tgz", + "integrity": "sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/vue-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/vue-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/vue-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/vue-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/vue-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "dependencies": { + "@vue/devtools-api": "^6.4.5" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/webpack": { + "version": "5.78.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.78.0.tgz", + "integrity": "sha512-gT5DP72KInmE/3azEaQrISjTvLYlSM0j1Ezhht/KLVkrqtv10JoP/RXhwmX/frrutOPuSq3o5Vq0ehR/4Vmd1g==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", + "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/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/webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-chain/node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.13.2", + "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz", + "integrity": "sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.4.6", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz", + "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/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" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { + "@achrinza/node-ipc": { + "version": "9.2.6", + "resolved": "https://registry.npmmirror.com/@achrinza/node-ipc/-/node-ipc-9.2.6.tgz", + "integrity": "sha512-ULSIYPy4ZPM301dfCxRz0l2GJjOwIo/PqmWonIu1bLml7UmnVQmH+juJcoyXp6E8gIRRNAjGYftJnNQlfy4vPg==", + "dev": true, + "requires": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + } + }, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.21.4.tgz", + "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "dev": true + }, + "@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.21.4.tgz", + "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", + "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", + "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.4.tgz", + "integrity": "sha512-M00OuhU+0GyZ5iBBN9czjugzWrEq2vDpf/zCYHxxf93ul/Q5rv+a5h+/+0WnI1AebHNVtl5bFV0qsJoH23DbfA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", + "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", + "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.21.4.tgz", + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz", + "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz", + "integrity": "sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.21.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz", + "integrity": "sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", + "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz", + "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz", + "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz", + "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", + "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz", + "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.21.3", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", + "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.4.tgz", + "integrity": "sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.21.4.tgz", + "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.20.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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.20.0", + "@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-transform-arrow-functions": "^7.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.21.0", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.21.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.21.4", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.21.4.tgz", + "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "requires": { + "easy-stack": "1.0.1" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "dev": true, + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.33", + "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true + }, + "@types/http-proxy": { + "version": "1.17.10", + "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.10.tgz", + "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dev": true, + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/webpack-env": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/@types/webpack-env/-/webpack-env-1.18.0.tgz", + "integrity": "sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==", + "dev": true + }, + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz", + "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==", + "dev": true + }, + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz", + "integrity": "sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==", + "dev": true + }, + "@vue/babel-plugin-jsx": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.1.tgz", + "integrity": "sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz", + "integrity": "sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + } + } + }, + "@vue/babel-preset-app": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-app/-/babel-preset-app-5.0.8.tgz", + "integrity": "sha512-yl+5qhpjd8e1G4cMXfORkkBlvtPCIgmRf3IYCWYDKIQ7m+PPa5iTm4feiNmCMD6yGqQWMhhK/7M3oWGL9boKwg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.16", + "@babel/helper-compilation-targets": "^7.12.16", + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.12.13", + "@babel/plugin-proposal-decorators": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/plugin-transform-runtime": "^7.12.15", + "@babel/preset-env": "^7.12.16", + "@babel/runtime": "^7.12.13", + "@vue/babel-plugin-jsx": "^1.0.3", + "@vue/babel-preset-jsx": "^1.1.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.8.3", + "core-js-compat": "^3.8.3", + "semver": "^7.3.4" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@vue/babel-preset-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz", + "integrity": "sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "@vue/babel-sugar-composition-api-inject-h": "^1.4.0", + "@vue/babel-sugar-composition-api-render-instance": "^1.4.0", + "@vue/babel-sugar-functional-vue": "^1.4.0", + "@vue/babel-sugar-inject-h": "^1.4.0", + "@vue/babel-sugar-v-model": "^1.4.0", + "@vue/babel-sugar-v-on": "^1.4.0" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz", + "integrity": "sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz", + "integrity": "sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz", + "integrity": "sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz", + "integrity": "sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz", + "integrity": "sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==", + "dev": true + } + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz", + "integrity": "sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.4.0", + "camelcase": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "@vue/cli-overlay": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-5.0.8.tgz", + "integrity": "sha512-KmtievE/B4kcXp6SuM2gzsnSd8WebkQpg3XaB6GmFh1BJGRqa1UiW9up7L/Q67uOdTigHxr5Ar2lZms4RcDjwQ==", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-babel/-/cli-plugin-babel-5.0.8.tgz", + "integrity": "sha512-a4qqkml3FAJ3auqB2kN2EMPocb/iu0ykeELwed+9B1c1nQ1HKgslKMHMPavYx3Cd/QAx2mBD4hwKBqZXEI/CsQ==", + "dev": true, + "requires": { + "@babel/core": "^7.12.16", + "@vue/babel-preset-app": "^5.0.8", + "@vue/cli-shared-utils": "^5.0.8", + "babel-loader": "^8.2.2", + "thread-loader": "^3.0.0", + "webpack": "^5.54.0" + } + }, + "@vue/cli-plugin-router": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.8.tgz", + "integrity": "sha512-Gmv4dsGdAsWPqVijz3Ux2OS2HkMrWi1ENj2cYL75nUeL+Xj5HEstSqdtfZ0b1q9NCce+BFB6QnHfTBXc/fCvMg==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^5.0.8" + } + }, + "@vue/cli-plugin-typescript": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-typescript/-/cli-plugin-typescript-5.0.8.tgz", + "integrity": "sha512-JKJOwzJshBqsmp4yLBexwVMebOZ4VGJgbnYvmHVxasJOStF2RxwyW28ZF+zIvASGdat4sAUuo/3mAQyVhm7JHg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.16", + "@types/webpack-env": "^1.15.2", + "@vue/cli-shared-utils": "^5.0.8", + "babel-loader": "^8.2.2", + "fork-ts-checker-webpack-plugin": "^6.4.0", + "globby": "^11.0.2", + "thread-loader": "^3.0.0", + "ts-loader": "^9.2.5", + "webpack": "^5.54.0" + } + }, + "@vue/cli-plugin-vuex": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", + "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", + "dev": true + }, + "@vue/cli-service": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-service/-/cli-service-5.0.8.tgz", + "integrity": "sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.12.16", + "@soda/friendly-errors-webpack-plugin": "^1.8.0", + "@soda/get-current-script": "^1.0.2", + "@types/minimist": "^1.2.0", + "@vue/cli-overlay": "^5.0.8", + "@vue/cli-plugin-router": "^5.0.8", + "@vue/cli-plugin-vuex": "^5.0.8", + "@vue/cli-shared-utils": "^5.0.8", + "@vue/component-compiler-utils": "^3.3.0", + "@vue/vue-loader-v15": "npm:vue-loader@^15.9.7", + "@vue/web-component-wrapper": "^1.3.0", + "acorn": "^8.0.5", + "acorn-walk": "^8.0.2", + "address": "^1.1.2", + "autoprefixer": "^10.2.4", + "browserslist": "^4.16.3", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.10", + "clipboardy": "^2.3.0", + "cliui": "^7.0.4", + "copy-webpack-plugin": "^9.0.1", + "css-loader": "^6.5.0", + "css-minimizer-webpack-plugin": "^3.0.2", + "cssnano": "^5.0.0", + "debug": "^4.1.1", + "default-gateway": "^6.0.3", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^5.1.0", + "is-file-esm": "^1.0.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "mini-css-extract-plugin": "^2.5.3", + "minimist": "^1.2.5", + "module-alias": "^2.2.2", + "portfinder": "^1.0.26", + "postcss": "^8.2.6", + "postcss-loader": "^6.1.1", + "progress-webpack-plugin": "^1.0.12", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^5.1.1", + "thread-loader": "^3.0.0", + "vue-loader": "^17.0.0", + "vue-style-loader": "^4.1.3", + "webpack": "^5.54.0", + "webpack-bundle-analyzer": "^4.4.0", + "webpack-chain": "^6.5.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.7.3", + "webpack-virtual-modules": "^0.4.2", + "whatwg-fetch": "^3.6.2" + } + }, + "@vue/cli-shared-utils": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz", + "integrity": "sha512-uK2YB7bBVuQhjOJF+O52P9yFMXeJVj7ozqJkwYE9PlMHL1LMHjtCYm4cSdOebuPzyP+/9p0BimM/OqxsevIopQ==", + "dev": true, + "requires": { + "@achrinza/node-ipc": "^9.2.5", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "joi": "^17.4.0", + "launch-editor": "^2.2.1", + "lru-cache": "^6.0.0", + "node-fetch": "^2.6.7", + "open": "^8.0.2", + "ora": "^5.3.0", + "read-pkg": "^5.1.1", + "semver": "^7.3.4", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "requires": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "@vue/devtools-api": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" + }, + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "@vue/vue-loader-v15": { + "version": "npm:vue-loader@15.10.1", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz", + "integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + } + } + }, + "@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "address": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmmirror.com/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "requires": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001474", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz", + "integrity": "sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "clean-css": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.8.0.tgz", + "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", + "dev": true + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "dev": true + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmmirror.com/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "requires": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "core-js": { + "version": "3.30.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.30.0.tgz", + "integrity": "sha512-hQotSSARoNh1mYPi9O2YaWeiq/cEB95kOrFb4NCrO4RIFt1qqNpKsaE+vy/L3oiqvND5cThqXzUU3r9F7Efztg==" + }, + "core-js-compat": { + "version": "3.30.0", + "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.30.0.tgz", + "integrity": "sha512-P5A2h/9mRYZFIAP+5Ab8ns6083IyVpSclU74UNvbGVQ8VM7n3n3/g2yF3AkKQ9NXz2O+ioxLbEWKnDtgsFamhg==", + "dev": true, + "requires": { + "browserslist": "^4.21.5" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "css-declaration-sorter": { + "version": "6.4.0", + "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", + "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "dev": true + }, + "css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.5.0.tgz", + "integrity": "sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA==", + "dev": true, + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.355", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.355.tgz", + "integrity": "sha512-056hxzEE4l667YeOccgjhRr5fTiwZ6EIJ4FpzGps4k3YcS8iAhiaBYUBrv5E2LDQJsussscv9EEUwAYKnv+ZKg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.12.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "dependencies": { + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + } + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "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" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + } + }, + "html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "dependencies": { + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-file-esm": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-file-esm/-/is-file-esm-1.0.0.tgz", + "integrity": "sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==", + "dev": true, + "requires": { + "read-pkg-up": "^7.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "joi": { + "version": "17.9.1", + "resolved": "https://registry.npmmirror.com/joi/-/joi-17.9.1.tgz", + "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true + }, + "launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "launch-editor-middleware": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/launch-editor-middleware/-/launch-editor-middleware-2.6.0.tgz", + "integrity": "sha512-K2yxgljj5TdCeRN1lBtO3/J26+AIDDDw+04y6VAiZbWcTdBwsYN6RrZBnW5DN/QiSIdKNjKdATLUUluWWFYTIA==", + "dev": true, + "requires": { + "launch-editor": "^2.6.0" + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "memfs": { + "version": "3.5.0", + "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.5.0.tgz", + "integrity": "sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.7.5", + "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", + "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", + "dev": true, + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", + "dev": true + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmmirror.com/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmmirror.com/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "requires": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "dependencies": { + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + } + }, + "postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "dev": true, + "optional": true + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress-webpack-plugin": { + "version": "1.0.16", + "resolved": "https://registry.npmmirror.com/progress-webpack-plugin/-/progress-webpack-plugin-1.0.16.tgz", + "integrity": "sha512-sdiHuuKOzELcBANHfrupYo+r99iPRyOnw15qX+rNlVUqXGfjXdH4IgxriKwG1kNJwVswKQHMdj1hYZMcb9jFaA==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "figures": "^2.0.0", + "log-update": "^2.3.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + } + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@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" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dev": true, + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shell-quote": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.0.tgz", + "integrity": "sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dev": true, + "requires": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "terser": { + "version": "5.16.8", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.16.8.tgz", + "integrity": "sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.7", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz", + "integrity": "sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/thread-loader/-/thread-loader-3.0.4.tgz", + "integrity": "sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==", + "dev": true, + "requires": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "ts-loader": { + "version": "9.4.2", + "resolved": "https://registry.npmmirror.com/ts-loader/-/ts-loader-9.4.2.tgz", + "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "4.5.5", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "17.0.1", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.0.1.tgz", + "integrity": "sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "vue-router": { + "version": "4.1.6", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz", + "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", + "requires": { + "@vue/devtools-api": "^6.4.5" + } + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + } + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "webpack": { + "version": "5.78.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.78.0.tgz", + "integrity": "sha512-gT5DP72KInmE/3azEaQrISjTvLYlSM0j1Ezhht/KLVkrqtv10JoP/RXhwmX/frrutOPuSq3o5Vq0ehR/4Vmd1g==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz", + "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "dependencies": { + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.13.2", + "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.13.2.tgz", + "integrity": "sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmmirror.com/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "webpack-virtual-modules": { + "version": "0.4.6", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz", + "integrity": "sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } +} diff --git a/src/webapp/myevent/package.json b/src/webapp/myevent/package.json new file mode 100644 index 0000000..fca6274 --- /dev/null +++ b/src/webapp/myevent/package.json @@ -0,0 +1,21 @@ +{ + "name": "myevent", + "version": "0.1.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build" + }, + "dependencies": { + "core-js": "^3.8.3", + "vue": "^3.2.13", + "vue-router": "^4.0.3" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "~5.0.0", + "@vue/cli-plugin-router": "~5.0.0", + "@vue/cli-plugin-typescript": "~5.0.0", + "@vue/cli-service": "~5.0.0", + "typescript": "~4.5.5" + } +} diff --git a/src/webapp/myevent/public/favicon.ico b/src/webapp/myevent/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/src/webapp/myevent/public/index.html b/src/webapp/myevent/public/index.html new file mode 100644 index 0000000..3e5a139 --- /dev/null +++ b/src/webapp/myevent/public/index.html @@ -0,0 +1,17 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + +
+ + + diff --git a/src/webapp/myevent/src/App.vue b/src/webapp/myevent/src/App.vue new file mode 100644 index 0000000..a753dba --- /dev/null +++ b/src/webapp/myevent/src/App.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/webapp/myevent/src/assets/logo.png b/src/webapp/myevent/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 +
+

{{ msg }}

+

+ For a guide and recipes on how to configure / customize this project,
+ check out the + vue-cli documentation. +

+

Installed CLI Plugins

+ +

Essential Links

+ +

Ecosystem

+ +
+ + + + + + diff --git a/src/webapp/myevent/src/main.ts b/src/webapp/myevent/src/main.ts new file mode 100644 index 0000000..3e79677 --- /dev/null +++ b/src/webapp/myevent/src/main.ts @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import App from './App.vue' +import router from './router' + +createApp(App).use(router).mount('#app') diff --git a/src/webapp/myevent/src/router/index.ts b/src/webapp/myevent/src/router/index.ts new file mode 100644 index 0000000..6cdb580 --- /dev/null +++ b/src/webapp/myevent/src/router/index.ts @@ -0,0 +1,25 @@ +import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const routes: Array = [ + { + path: '/', + name: 'home', + component: HomeView + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue') + } +] + +const router = createRouter({ + history: createWebHistory(process.env.BASE_URL), + routes +}) + +export default router diff --git a/src/webapp/myevent/src/shims-vue.d.ts b/src/webapp/myevent/src/shims-vue.d.ts new file mode 100644 index 0000000..3804a43 --- /dev/null +++ b/src/webapp/myevent/src/shims-vue.d.ts @@ -0,0 +1,6 @@ +/* eslint-disable */ +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/src/webapp/myevent/src/views/AboutView.vue b/src/webapp/myevent/src/views/AboutView.vue new file mode 100644 index 0000000..3fa2807 --- /dev/null +++ b/src/webapp/myevent/src/views/AboutView.vue @@ -0,0 +1,5 @@ + diff --git a/src/webapp/myevent/src/views/HomeView.vue b/src/webapp/myevent/src/views/HomeView.vue new file mode 100644 index 0000000..8687e82 --- /dev/null +++ b/src/webapp/myevent/src/views/HomeView.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/webapp/myevent/tsconfig.json b/src/webapp/myevent/tsconfig.json new file mode 100644 index 0000000..9772821 --- /dev/null +++ b/src/webapp/myevent/tsconfig.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "moduleResolution": "node", + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "useDefineForClassFields": true, + "sourceMap": true, + "baseUrl": ".", + "types": [ + "webpack-env" + ], + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "tests/**/*.ts", + "tests/**/*.tsx" + ], + "exclude": [ + "node_modules" + ] +} diff --git a/src/webapp/myevent/vue.config.js b/src/webapp/myevent/vue.config.js new file mode 100644 index 0000000..910e297 --- /dev/null +++ b/src/webapp/myevent/vue.config.js @@ -0,0 +1,4 @@ +const { defineConfig } = require('@vue/cli-service') +module.exports = defineConfig({ + transpileDependencies: true +}) From d72ba805b97bca002a55ae60bf54032b2fc18a3e Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 7 Apr 2023 17:53:45 +0200 Subject: [PATCH 23/73] initial setup of vue --- package.sh | 0 src/webapp/{myevent => }/.browserslistrc | 0 src/webapp/{myevent => }/.gitignore | 0 src/webapp/{myevent => }/README.md | 0 src/webapp/{myevent => }/babel.config.js | 0 src/webapp/jsconfig.json | 19 + src/webapp/myevent/src/App.vue | 30 - .../myevent/src/components/HelloWorld.vue | 61 -- src/webapp/myevent/src/main.ts | 5 - src/webapp/myevent/src/router/index.ts | 25 - src/webapp/myevent/src/shims-vue.d.ts | 6 - src/webapp/myevent/src/views/AboutView.vue | 5 - src/webapp/myevent/src/views/HomeView.vue | 18 - src/webapp/myevent/tsconfig.json | 40 - src/webapp/myevent/vue.config.js | 4 - src/webapp/{myevent => }/package-lock.json | 685 +----------------- src/webapp/{myevent => }/package.json | 4 +- src/webapp/{myevent => }/public/favicon.ico | Bin src/webapp/{myevent => }/public/index.html | 20 +- src/webapp/src/App.vue | 30 + src/webapp/{myevent => }/src/assets/logo.png | Bin src/webapp/src/components/HelloWorld.vue | 63 ++ src/webapp/src/main.js | 5 + src/webapp/src/router/index.js | 22 + src/webapp/src/views/AboutView.vue | 5 + src/webapp/src/views/HomeView.vue | 18 + src/webapp/vue.config.js | 4 + 27 files changed, 204 insertions(+), 865 deletions(-) create mode 100644 package.sh rename src/webapp/{myevent => }/.browserslistrc (100%) rename src/webapp/{myevent => }/.gitignore (100%) rename src/webapp/{myevent => }/README.md (100%) rename src/webapp/{myevent => }/babel.config.js (100%) create mode 100644 src/webapp/jsconfig.json delete mode 100644 src/webapp/myevent/src/App.vue delete mode 100644 src/webapp/myevent/src/components/HelloWorld.vue delete mode 100644 src/webapp/myevent/src/main.ts delete mode 100644 src/webapp/myevent/src/router/index.ts delete mode 100644 src/webapp/myevent/src/shims-vue.d.ts delete mode 100644 src/webapp/myevent/src/views/AboutView.vue delete mode 100644 src/webapp/myevent/src/views/HomeView.vue delete mode 100644 src/webapp/myevent/tsconfig.json delete mode 100644 src/webapp/myevent/vue.config.js rename src/webapp/{myevent => }/package-lock.json (96%) rename src/webapp/{myevent => }/package.json (77%) rename src/webapp/{myevent => }/public/favicon.ico (100%) rename src/webapp/{myevent => }/public/index.html (54%) create mode 100644 src/webapp/src/App.vue rename src/webapp/{myevent => }/src/assets/logo.png (100%) create mode 100644 src/webapp/src/components/HelloWorld.vue create mode 100644 src/webapp/src/main.js create mode 100644 src/webapp/src/router/index.js create mode 100644 src/webapp/src/views/AboutView.vue create mode 100644 src/webapp/src/views/HomeView.vue create mode 100644 src/webapp/vue.config.js diff --git a/package.sh b/package.sh new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/myevent/.browserslistrc b/src/webapp/.browserslistrc similarity index 100% rename from src/webapp/myevent/.browserslistrc rename to src/webapp/.browserslistrc diff --git a/src/webapp/myevent/.gitignore b/src/webapp/.gitignore similarity index 100% rename from src/webapp/myevent/.gitignore rename to src/webapp/.gitignore diff --git a/src/webapp/myevent/README.md b/src/webapp/README.md similarity index 100% rename from src/webapp/myevent/README.md rename to src/webapp/README.md diff --git a/src/webapp/myevent/babel.config.js b/src/webapp/babel.config.js similarity index 100% rename from src/webapp/myevent/babel.config.js rename to src/webapp/babel.config.js diff --git a/src/webapp/jsconfig.json b/src/webapp/jsconfig.json new file mode 100644 index 0000000..4aafc5f --- /dev/null +++ b/src/webapp/jsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "baseUrl": "./", + "moduleResolution": "node", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + } +} diff --git a/src/webapp/myevent/src/App.vue b/src/webapp/myevent/src/App.vue deleted file mode 100644 index a753dba..0000000 --- a/src/webapp/myevent/src/App.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/webapp/myevent/src/components/HelloWorld.vue b/src/webapp/myevent/src/components/HelloWorld.vue deleted file mode 100644 index 5089767..0000000 --- a/src/webapp/myevent/src/components/HelloWorld.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - diff --git a/src/webapp/myevent/src/main.ts b/src/webapp/myevent/src/main.ts deleted file mode 100644 index 3e79677..0000000 --- a/src/webapp/myevent/src/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { createApp } from 'vue' -import App from './App.vue' -import router from './router' - -createApp(App).use(router).mount('#app') diff --git a/src/webapp/myevent/src/router/index.ts b/src/webapp/myevent/src/router/index.ts deleted file mode 100644 index 6cdb580..0000000 --- a/src/webapp/myevent/src/router/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router' -import HomeView from '../views/HomeView.vue' - -const routes: Array = [ - { - path: '/', - name: 'home', - component: HomeView - }, - { - path: '/about', - name: 'about', - // route level code-splitting - // this generates a separate chunk (about.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue') - } -] - -const router = createRouter({ - history: createWebHistory(process.env.BASE_URL), - routes -}) - -export default router diff --git a/src/webapp/myevent/src/shims-vue.d.ts b/src/webapp/myevent/src/shims-vue.d.ts deleted file mode 100644 index 3804a43..0000000 --- a/src/webapp/myevent/src/shims-vue.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable */ -declare module '*.vue' { - import type { DefineComponent } from 'vue' - const component: DefineComponent<{}, {}, any> - export default component -} diff --git a/src/webapp/myevent/src/views/AboutView.vue b/src/webapp/myevent/src/views/AboutView.vue deleted file mode 100644 index 3fa2807..0000000 --- a/src/webapp/myevent/src/views/AboutView.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/src/webapp/myevent/src/views/HomeView.vue b/src/webapp/myevent/src/views/HomeView.vue deleted file mode 100644 index 8687e82..0000000 --- a/src/webapp/myevent/src/views/HomeView.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/src/webapp/myevent/tsconfig.json b/src/webapp/myevent/tsconfig.json deleted file mode 100644 index 9772821..0000000 --- a/src/webapp/myevent/tsconfig.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "strict": true, - "jsx": "preserve", - "moduleResolution": "node", - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "forceConsistentCasingInFileNames": true, - "useDefineForClassFields": true, - "sourceMap": true, - "baseUrl": ".", - "types": [ - "webpack-env" - ], - "paths": { - "@/*": [ - "src/*" - ] - }, - "lib": [ - "esnext", - "dom", - "dom.iterable", - "scripthost" - ] - }, - "include": [ - "src/**/*.ts", - "src/**/*.tsx", - "src/**/*.vue", - "tests/**/*.ts", - "tests/**/*.tsx" - ], - "exclude": [ - "node_modules" - ] -} diff --git a/src/webapp/myevent/vue.config.js b/src/webapp/myevent/vue.config.js deleted file mode 100644 index 910e297..0000000 --- a/src/webapp/myevent/vue.config.js +++ /dev/null @@ -1,4 +0,0 @@ -const { defineConfig } = require('@vue/cli-service') -module.exports = defineConfig({ - transpileDependencies: true -}) diff --git a/src/webapp/myevent/package-lock.json b/src/webapp/package-lock.json similarity index 96% rename from src/webapp/myevent/package-lock.json rename to src/webapp/package-lock.json index 6a2ce33..8dfad98 100644 --- a/src/webapp/myevent/package-lock.json +++ b/src/webapp/package-lock.json @@ -15,9 +15,7 @@ "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", "@vue/cli-plugin-router": "~5.0.0", - "@vue/cli-plugin-typescript": "~5.0.0", - "@vue/cli-service": "~5.0.0", - "typescript": "~4.5.5" + "@vue/cli-service": "~5.0.0" } }, "node_modules/@achrinza/node-ipc": { @@ -2140,12 +2138,6 @@ "@types/node": "*" } }, - "node_modules/@types/webpack-env": { - "version": "1.18.0", - "resolved": "https://registry.npmmirror.com/@types/webpack-env/-/webpack-env-1.18.0.tgz", - "integrity": "sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==", - "dev": true - }, "node_modules/@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.4.tgz", @@ -2446,38 +2438,6 @@ "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" } }, - "node_modules/@vue/cli-plugin-typescript": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-typescript/-/cli-plugin-typescript-5.0.8.tgz", - "integrity": "sha512-JKJOwzJshBqsmp4yLBexwVMebOZ4VGJgbnYvmHVxasJOStF2RxwyW28ZF+zIvASGdat4sAUuo/3mAQyVhm7JHg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.16", - "@types/webpack-env": "^1.15.2", - "@vue/cli-shared-utils": "^5.0.8", - "babel-loader": "^8.2.2", - "fork-ts-checker-webpack-plugin": "^6.4.0", - "globby": "^11.0.2", - "thread-loader": "^3.0.0", - "ts-loader": "^9.2.5", - "webpack": "^5.54.0" - }, - "peerDependencies": { - "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0", - "cache-loader": "^4.1.0", - "typescript": ">=2", - "vue": "^2 || ^3.2.13", - "vue-template-compiler": "^2.0.0" - }, - "peerDependenciesMeta": { - "cache-loader": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, "node_modules/@vue/cli-plugin-vuex": { "version": "5.0.8", "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", @@ -4067,19 +4027,19 @@ "dev": true }, "node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", + "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.7.2" + "yaml": "^1.10.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/cross-spawn": { @@ -4407,9 +4367,9 @@ } }, "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4769,15 +4729,6 @@ "node": ">=10.13.0" } }, - "node_modules/enhanced-resolve/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", @@ -5162,156 +5113,6 @@ } } }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/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" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/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/fork-ts-checker-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/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/fork-ts-checker-webpack-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", @@ -5678,15 +5479,6 @@ "webpack": "^5.20.0" } }, - "node_modules/html-webpack-plugin/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -7489,22 +7281,6 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/postcss-loader/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", @@ -8887,9 +8663,9 @@ } }, "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { "node": ">=6" @@ -9082,122 +8858,6 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "node_modules/ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmmirror.com/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" - } - }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/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" - } - }, - "node_modules/ts-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/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/ts-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/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/ts-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz", @@ -9226,19 +8886,6 @@ "node": ">= 0.6" } }, - "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -9712,15 +9359,6 @@ "node": ">=8" } }, - "node_modules/webpack-chain/node_modules/deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack-dev-middleware": { "version": "5.3.3", "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", @@ -9948,15 +9586,6 @@ "node": ">= 10.13.0" } }, - "node_modules/webpack/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -11704,12 +11333,6 @@ "@types/node": "*" } }, - "@types/webpack-env": { - "version": "1.18.0", - "resolved": "https://registry.npmmirror.com/@types/webpack-env/-/webpack-env-1.18.0.tgz", - "integrity": "sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==", - "dev": true - }, "@types/ws": { "version": "8.5.4", "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.4.tgz", @@ -11948,23 +11571,6 @@ "@vue/cli-shared-utils": "^5.0.8" } }, - "@vue/cli-plugin-typescript": { - "version": "5.0.8", - "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-typescript/-/cli-plugin-typescript-5.0.8.tgz", - "integrity": "sha512-JKJOwzJshBqsmp4yLBexwVMebOZ4VGJgbnYvmHVxasJOStF2RxwyW28ZF+zIvASGdat4sAUuo/3mAQyVhm7JHg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.16", - "@types/webpack-env": "^1.15.2", - "@vue/cli-shared-utils": "^5.0.8", - "babel-loader": "^8.2.2", - "fork-ts-checker-webpack-plugin": "^6.4.0", - "globby": "^11.0.2", - "thread-loader": "^3.0.0", - "ts-loader": "^9.2.5", - "webpack": "^5.54.0" - } - }, "@vue/cli-plugin-vuex": { "version": "5.0.8", "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", @@ -13287,16 +12893,16 @@ "dev": true }, "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", + "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.7.2" + "yaml": "^1.10.0" } }, "cross-spawn": { @@ -13536,9 +13142,9 @@ } }, "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "version": "1.5.2", + "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", "dev": true }, "default-gateway": { @@ -13825,14 +13431,6 @@ "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" - }, - "dependencies": { - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - } } }, "entities": { @@ -14159,113 +13757,6 @@ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz", @@ -14559,14 +14050,6 @@ "lodash": "^4.17.21", "pretty-error": "^4.0.0", "tapable": "^2.0.0" - }, - "dependencies": { - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - } } }, "htmlparser2": { @@ -15982,19 +15465,6 @@ "semver": "^7.3.5" }, "dependencies": { - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", @@ -17059,9 +16529,9 @@ } }, "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "terser": { @@ -17204,93 +16674,6 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmmirror.com/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz", @@ -17313,12 +16696,6 @@ "mime-types": "~2.1.24" } }, - "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true - }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -17617,12 +16994,6 @@ "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true } } }, @@ -17709,14 +17080,6 @@ "requires": { "deepmerge": "^1.5.2", "javascript-stringify": "^2.0.1" - }, - "dependencies": { - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true - } } }, "webpack-dev-middleware": { diff --git a/src/webapp/myevent/package.json b/src/webapp/package.json similarity index 77% rename from src/webapp/myevent/package.json rename to src/webapp/package.json index fca6274..0838206 100644 --- a/src/webapp/myevent/package.json +++ b/src/webapp/package.json @@ -14,8 +14,6 @@ "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", "@vue/cli-plugin-router": "~5.0.0", - "@vue/cli-plugin-typescript": "~5.0.0", - "@vue/cli-service": "~5.0.0", - "typescript": "~4.5.5" + "@vue/cli-service": "~5.0.0" } } diff --git a/src/webapp/myevent/public/favicon.ico b/src/webapp/public/favicon.ico similarity index 100% rename from src/webapp/myevent/public/favicon.ico rename to src/webapp/public/favicon.ico diff --git a/src/webapp/myevent/public/index.html b/src/webapp/public/index.html similarity index 54% rename from src/webapp/myevent/public/index.html rename to src/webapp/public/index.html index 3e5a139..ac644cb 100644 --- a/src/webapp/myevent/public/index.html +++ b/src/webapp/public/index.html @@ -1,17 +1,23 @@ - + + - <%= htmlWebpackPlugin.options.title %> - - + + <%= htmlWebpackPlugin.options.title %> + + + +
- - + + + \ No newline at end of file diff --git a/src/webapp/src/App.vue b/src/webapp/src/App.vue new file mode 100644 index 0000000..fc8633d --- /dev/null +++ b/src/webapp/src/App.vue @@ -0,0 +1,30 @@ + + + diff --git a/src/webapp/myevent/src/assets/logo.png b/src/webapp/src/assets/logo.png similarity index 100% rename from src/webapp/myevent/src/assets/logo.png rename to src/webapp/src/assets/logo.png diff --git a/src/webapp/src/components/HelloWorld.vue b/src/webapp/src/components/HelloWorld.vue new file mode 100644 index 0000000..cc68b0c --- /dev/null +++ b/src/webapp/src/components/HelloWorld.vue @@ -0,0 +1,63 @@ + + + + + + diff --git a/src/webapp/src/main.js b/src/webapp/src/main.js new file mode 100644 index 0000000..3a8deba --- /dev/null +++ b/src/webapp/src/main.js @@ -0,0 +1,5 @@ +import { createApp } from 'vue'; +import App from './App.vue'; +import router from './router'; + +createApp( App ).use( router ).mount('#app'); diff --git a/src/webapp/src/router/index.js b/src/webapp/src/router/index.js new file mode 100644 index 0000000..79989ff --- /dev/null +++ b/src/webapp/src/router/index.js @@ -0,0 +1,22 @@ +import { createRouter, createWebHistory } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const routes = [ + { + path: '/', + name: 'home', + component: HomeView + }, + { + path: '/about', + name: 'about', + component: () => import( /* webpackChunkName: "about" */ '../views/AboutView.vue' ) + } +] + +const router = createRouter( { + history: createWebHistory( process.env.BASE_URL ), + routes +} ); + +export default router diff --git a/src/webapp/src/views/AboutView.vue b/src/webapp/src/views/AboutView.vue new file mode 100644 index 0000000..3b5e43f --- /dev/null +++ b/src/webapp/src/views/AboutView.vue @@ -0,0 +1,5 @@ + diff --git a/src/webapp/src/views/HomeView.vue b/src/webapp/src/views/HomeView.vue new file mode 100644 index 0000000..85eb98f --- /dev/null +++ b/src/webapp/src/views/HomeView.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/webapp/vue.config.js b/src/webapp/vue.config.js new file mode 100644 index 0000000..75ae02f --- /dev/null +++ b/src/webapp/vue.config.js @@ -0,0 +1,4 @@ +const { defineConfig } = require( '@vue/cli-service' ); +module.exports = defineConfig( { + transpileDependencies: true +} ); From c9e3648a0fbd6af473dc10d3a3977b80145f22a9 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 7 Apr 2023 20:13:35 +0200 Subject: [PATCH 24/73] first setting up of vue --- src/server/app.js | 40 ++-------------- src/webapp/src/App.vue | 13 ++++- src/webapp/src/assets/logo.png | Bin 6849 -> 34209 bytes src/webapp/src/components/home.vue | 0 src/webapp/src/router/index.js | 51 +++++++++++++++++--- src/webapp/src/views/AboutView.vue | 5 -- src/webapp/src/views/AdminLoginView.vue | 59 +++++++++++++++++++++++ src/webapp/src/views/HomeView.vue | 6 +++ src/webapp/src/views/LoginView.vue | 60 ++++++++++++++++++++++++ src/webapp/src/views/OrderView.vue | 33 +++++++++++++ src/webapp/src/views/SignupView.vue | 60 ++++++++++++++++++++++++ 11 files changed, 278 insertions(+), 49 deletions(-) create mode 100644 src/webapp/src/components/home.vue delete mode 100644 src/webapp/src/views/AboutView.vue create mode 100644 src/webapp/src/views/AdminLoginView.vue create mode 100644 src/webapp/src/views/LoginView.vue create mode 100644 src/webapp/src/views/OrderView.vue create mode 100644 src/webapp/src/views/SignupView.vue diff --git a/src/server/app.js b/src/server/app.js index 9582450..6f64cea 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -16,7 +16,6 @@ const bodyParser = require( 'body-parser' ); const cookieParser = require( 'cookie-parser' ); const favicon = require( 'serve-favicon' ); const http = require( 'http' ); -const serveStatic = require( 'serve-static' ); // const env = process.env.PROD || false; @@ -35,44 +34,11 @@ app.use( expressSession( { app.use( bodyParser.urlencoded( { extended: false } ) ); app.use( bodyParser.json() ); app.use( cookieParser() ); -app.use( favicon( path.join( __dirname + '/ui/assets/logo.png' ) ) ); -app.use( serveStatic( __dirname + '/admin/ui/modules' ) ); +// app.use( favicon( path.join( __dirname + '/ui/assets/logo.png' ) ) ); +app.use( express.static( 'ui' ) ); -require( './admin/routes.js' )( app, settings ); // admin route +// require( './admin/routes.js' )( app, settings ); // admin route -if ( settings[ 'init' ] ) { - if ( root !== '/' ) { - app.get( '/', ( request, response ) => { - let lang = request.query.lang || 'en'; - response.sendFile( path.join( __dirname + '/ui/html/' + lang + '/index.html' ) ); - } ); - } -} else { - app.get( '/', ( request, response ) => { - response.sendFile( path.join( __dirname + '/ui/html/index.html' ) ); - } ); -} - - -// Assets route for logo, etc -app.get( '/assets/:file', ( request, response ) => { - response.sendFile( path.join( __dirname + '/ui/assets/' + request.params.file ) ); -} ); - - - -// CSS route for all user-facing CSS files -app.get( '/css/:file', ( request, response ) => { - response.sendFile( path.join( __dirname + '/ui/css/' + request.params.file ) ); -} ); - - - -// create 404 handler -// eslint-disable-next-line no-unused-vars -app.use( ( request, response, next ) => { - response.sendFile( path.join( __dirname + '/ui/html/en/errorResponses/404.html' ) ); -} ); const PORT = process.env.PORT || 8080; http.createServer( app ).listen( PORT ); \ No newline at end of file diff --git a/src/webapp/src/App.vue b/src/webapp/src/App.vue index fc8633d..76c52b6 100644 --- a/src/webapp/src/App.vue +++ b/src/webapp/src/App.vue @@ -1,18 +1,29 @@ \ No newline at end of file diff --git a/src/webapp/src/views/HomeView.vue b/src/webapp/src/views/HomeView.vue index 85eb98f..2b451f0 100644 --- a/src/webapp/src/views/HomeView.vue +++ b/src/webapp/src/views/HomeView.vue @@ -16,3 +16,9 @@ export default { } } + + diff --git a/src/webapp/src/views/LoginView.vue b/src/webapp/src/views/LoginView.vue new file mode 100644 index 0000000..d374adc --- /dev/null +++ b/src/webapp/src/views/LoginView.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/src/webapp/src/views/OrderView.vue b/src/webapp/src/views/OrderView.vue new file mode 100644 index 0000000..6a4b750 --- /dev/null +++ b/src/webapp/src/views/OrderView.vue @@ -0,0 +1,33 @@ + + + diff --git a/src/webapp/src/views/SignupView.vue b/src/webapp/src/views/SignupView.vue new file mode 100644 index 0000000..d374adc --- /dev/null +++ b/src/webapp/src/views/SignupView.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file From f7e121708b865bde8c469881f3d4605dc3ffda82 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 7 Apr 2023 20:18:00 +0200 Subject: [PATCH 25/73] server updates --- src/server/app.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/server/app.js b/src/server/app.js index 6f64cea..49652d8 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -11,17 +11,13 @@ const express = require( 'express' ); let app = express(); const path = require( 'path' ); const expressSession = require( 'express-session' ); -const fs = require( 'fs' ); const bodyParser = require( 'body-parser' ); const cookieParser = require( 'cookie-parser' ); -const favicon = require( 'serve-favicon' ); const http = require( 'http' ); // const env = process.env.PROD || false; -const root = process.env.ROOT || '/order'; - -const settings = JSON.parse( fs.readFileSync( path.join( __dirname + '/config.json' ) ) ); +// const settings = JSON.parse( fs.readFileSync( path.join( __dirname + '/config.json' ) ) ); // initialise express with middlewares @@ -35,10 +31,12 @@ app.use( bodyParser.urlencoded( { extended: false } ) ); app.use( bodyParser.json() ); app.use( cookieParser() ); // app.use( favicon( path.join( __dirname + '/ui/assets/logo.png' ) ) ); -app.use( express.static( 'ui' ) ); +app.use( express.static( '../webapp/dist' ) ); // require( './admin/routes.js' )( app, settings ); // admin route - +app.use( ( request, response ) => { + response.sendFile( path.join( __dirname + '/../webapp/dist/index.html' ) ); +} ); const PORT = process.env.PORT || 8080; http.createServer( app ).listen( PORT ); \ No newline at end of file From 8b8172d9f8e6e8f943fedb6c62be744c7255acf0 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sat, 8 Apr 2023 17:16:00 +0200 Subject: [PATCH 26/73] tickets selection + login --- src/webapp/babel.config.js | 8 +- src/webapp/public/index.html | 1 + src/webapp/src/App.vue | 41 +++++- src/webapp/src/components/initial.vue | 33 +++++ .../components/{home.vue => noseatplan.vue} | 0 src/webapp/src/components/seatplan.vue | 130 ++++++++++++++++++ src/webapp/src/router/index.js | 64 ++++++++- src/webapp/src/views/AdminLoginView.vue | 8 +- src/webapp/src/views/CartView.vue | 59 ++++++++ src/webapp/src/views/HomeView.vue | 35 +++-- src/webapp/src/views/LoginView.vue | 10 +- src/webapp/src/views/OrderView.vue | 49 ++++++- src/webapp/src/views/PurchaseView.vue | 55 ++++++++ src/webapp/src/views/SignupView.vue | 20 +-- src/webapp/src/views/TicketsDetailsView.vue | 24 ++++ 15 files changed, 489 insertions(+), 48 deletions(-) create mode 100644 src/webapp/src/components/initial.vue rename src/webapp/src/components/{home.vue => noseatplan.vue} (100%) create mode 100644 src/webapp/src/components/seatplan.vue create mode 100644 src/webapp/src/views/CartView.vue create mode 100644 src/webapp/src/views/PurchaseView.vue create mode 100644 src/webapp/src/views/TicketsDetailsView.vue diff --git a/src/webapp/babel.config.js b/src/webapp/babel.config.js index e955840..c5dc6a5 100644 --- a/src/webapp/babel.config.js +++ b/src/webapp/babel.config.js @@ -1,5 +1,5 @@ module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} + presets: [ + '@vue/cli-plugin-babel/preset' + ] +}; diff --git a/src/webapp/public/index.html b/src/webapp/public/index.html index ac644cb..b4d7f11 100644 --- a/src/webapp/public/index.html +++ b/src/webapp/public/index.html @@ -9,6 +9,7 @@ <%= htmlWebpackPlugin.options.title %> + diff --git a/src/webapp/src/App.vue b/src/webapp/src/App.vue index 76c52b6..c2fe276 100644 --- a/src/webapp/src/App.vue +++ b/src/webapp/src/App.vue @@ -1,14 +1,20 @@ diff --git a/src/webapp/src/components/initial.vue b/src/webapp/src/components/initial.vue new file mode 100644 index 0000000..d9af8b2 --- /dev/null +++ b/src/webapp/src/components/initial.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file diff --git a/src/webapp/src/components/home.vue b/src/webapp/src/components/noseatplan.vue similarity index 100% rename from src/webapp/src/components/home.vue rename to src/webapp/src/components/noseatplan.vue diff --git a/src/webapp/src/components/seatplan.vue b/src/webapp/src/components/seatplan.vue new file mode 100644 index 0000000..048a2c8 --- /dev/null +++ b/src/webapp/src/components/seatplan.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/webapp/src/router/index.js b/src/webapp/src/router/index.js index 87411da..b803b72 100644 --- a/src/webapp/src/router/index.js +++ b/src/webapp/src/router/index.js @@ -34,9 +34,35 @@ const routes = [ name: 'adminLogin', component: () => import( '../views/AdminLoginView.vue' ), meta: { - title: 'Admin - myevent' + title: 'Login :: Admin - myevent' } }, + { + path: '/admin', + name: 'admin', + component: () => import( '../views/HomeView.vue' ), + meta: { + title: 'Admin - myevent' + }, + children: [ + { + path: 'settings', + name: 'adminSettings', + component: () => import( '../views/AdminLoginView.vue' ), + meta: { + title: 'Admin - myevent' + } + }, + { + path: '', + name: 'adminMain', + component: () => import( '../views/AdminLoginView.vue' ), + meta: { + title: 'Admin - myevent' + } + }, + ] + }, { path: '/signup', name: 'signup', @@ -44,6 +70,33 @@ const routes = [ meta: { title: 'Signup - myevent' } + }, + { + path: '/tickets/details', + name: 'ticketDetails', + component: () => import( '../views/TicketsDetailsView.vue' ), + meta: { + title: 'Details - myevent', + transition: 'scale' + } + }, + { + path: '/cart', + name: 'cart', + component: () => import( '../views/CartView.vue' ), + meta: { + title: 'Cart - myevent', + transition: 'scale' + } + }, + { + path: '/purchase', + name: 'purchase', + component: () => import( '@/views/PurchaseView.vue' ), + meta: { + title: 'Purchase - myevent', + transition: 'scale' + } } ] @@ -58,4 +111,13 @@ router.afterEach( ( to, from ) => { document.title = to.meta.title ? to.meta.title : 'default title'; } ); +let disallowed = [ 'admin', 'adminMain' ]; +let isAuthenticated = true; + +router.beforeEach( ( to, from ) => { + if ( disallowed.includes( to.name ) && !isAuthenticated ) { + return { name: 'adminLogin' }; + } +} ); + export default router; diff --git a/src/webapp/src/views/AdminLoginView.vue b/src/webapp/src/views/AdminLoginView.vue index f66b401..79dad85 100644 --- a/src/webapp/src/views/AdminLoginView.vue +++ b/src/webapp/src/views/AdminLoginView.vue @@ -1,11 +1,11 @@ diff --git a/src/webapp/src/views/AdminLoginView.vue b/src/webapp/src/views/AdminLoginView.vue index 79dad85..b449839 100644 --- a/src/webapp/src/views/AdminLoginView.vue +++ b/src/webapp/src/views/AdminLoginView.vue @@ -42,7 +42,7 @@ } .login-app { - background-color: white; + background-color: var( --background-color ); width: 40%; height: 50%; display: flex; diff --git a/src/webapp/src/views/CartView.vue b/src/webapp/src/views/CartView.vue index e8908fb..b9e2e2e 100644 --- a/src/webapp/src/views/CartView.vue +++ b/src/webapp/src/views/CartView.vue @@ -2,7 +2,7 @@

Cart

Your tickets

-
    +
    • Ticket
    Purchase now @@ -28,8 +28,8 @@ align-items: center; justify-content: center; text-decoration: none; - color: black; - border-color: black; + color: var( --primary-color ); + border-color: var( --primary-color ); border-width: 1px; height: fit-content; border-style: solid; @@ -38,7 +38,7 @@ } .ticket:hover { - background-color: rgb(165, 165, 165); + background-color: var( --hover-color ); transition: 0.4s; } @@ -57,3 +57,18 @@ margin-right: auto } + + diff --git a/src/webapp/src/views/HomeView.vue b/src/webapp/src/views/HomeView.vue index 902e7f1..911d151 100644 --- a/src/webapp/src/views/HomeView.vue +++ b/src/webapp/src/views/HomeView.vue @@ -1,5 +1,5 @@ diff --git a/src/webapp/src/views/PurchaseView.vue b/src/webapp/src/views/PurchaseView.vue index 4b48395..97c9cd8 100644 --- a/src/webapp/src/views/PurchaseView.vue +++ b/src/webapp/src/views/PurchaseView.vue @@ -1,12 +1,21 @@ + + From 13924e3abbbfaf1b7d9edf7bb9f8f8c73f5f9e26 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sat, 15 Apr 2023 17:48:19 +0200 Subject: [PATCH 33/73] Admin panel progress --- src/webapp/src/components/HelloWorld.vue | 63 --------------------- src/webapp/src/components/initial.vue | 6 +- src/webapp/src/router/index.js | 22 +++++-- src/webapp/src/stores/userStore.js | 2 +- src/webapp/src/views/AdminLoginView.vue | 8 ++- src/webapp/src/views/HomeView.vue | 2 +- src/webapp/src/views/SetupView.vue | 27 +++++++++ src/webapp/src/views/admin/AccountView.vue | 22 +++++++ src/webapp/src/views/admin/AdminView.vue | 19 ++++++- src/webapp/src/views/admin/EventsView.vue | 22 +++++++ src/webapp/src/views/admin/HomeView.vue | 55 +++++++++++++----- src/webapp/src/views/admin/PagesView.vue | 22 +++++++ src/webapp/src/views/admin/PluginsView.vue | 22 +++++++ src/webapp/src/views/admin/SettingsView.vue | 22 +++++++ 14 files changed, 224 insertions(+), 90 deletions(-) delete mode 100644 src/webapp/src/components/HelloWorld.vue create mode 100644 src/webapp/src/views/SetupView.vue create mode 100644 src/webapp/src/views/admin/AccountView.vue create mode 100644 src/webapp/src/views/admin/EventsView.vue create mode 100644 src/webapp/src/views/admin/PagesView.vue create mode 100644 src/webapp/src/views/admin/PluginsView.vue create mode 100644 src/webapp/src/views/admin/SettingsView.vue diff --git a/src/webapp/src/components/HelloWorld.vue b/src/webapp/src/components/HelloWorld.vue deleted file mode 100644 index cc68b0c..0000000 --- a/src/webapp/src/components/HelloWorld.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - diff --git a/src/webapp/src/components/initial.vue b/src/webapp/src/components/initial.vue index d9af8b2..f875721 100644 --- a/src/webapp/src/components/initial.vue +++ b/src/webapp/src/components/initial.vue @@ -15,8 +15,10 @@ diff --git a/src/webapp/src/views/admin/AccountView.vue b/src/webapp/src/views/admin/AccountView.vue new file mode 100644 index 0000000..7cfe934 --- /dev/null +++ b/src/webapp/src/views/admin/AccountView.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/webapp/src/views/admin/AdminView.vue b/src/webapp/src/views/admin/AdminView.vue index 0dcbdc8..af5b736 100644 --- a/src/webapp/src/views/admin/AdminView.vue +++ b/src/webapp/src/views/admin/AdminView.vue @@ -10,6 +10,7 @@ Events Plugins Settings + Logout
    @@ -49,6 +50,7 @@ grid-area: main; height: 100%; min-height: 80vh; + overflow: scroll; } .side-nav { @@ -60,6 +62,7 @@ margin: 0; background-color: var( --accent-background ); justify-content: center; + overflow: scroll; } .admin-menu { @@ -82,16 +85,28 @@ + + diff --git a/src/webapp/src/views/admin/HomeView.vue b/src/webapp/src/views/admin/HomeView.vue index cb66f84..596ea23 100644 --- a/src/webapp/src/views/admin/HomeView.vue +++ b/src/webapp/src/views/admin/HomeView.vue @@ -1,18 +1,43 @@ - + diff --git a/src/webapp/src/views/admin/PagesView.vue b/src/webapp/src/views/admin/PagesView.vue new file mode 100644 index 0000000..2a6561e --- /dev/null +++ b/src/webapp/src/views/admin/PagesView.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/webapp/src/views/admin/PluginsView.vue b/src/webapp/src/views/admin/PluginsView.vue new file mode 100644 index 0000000..0417a2c --- /dev/null +++ b/src/webapp/src/views/admin/PluginsView.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/webapp/src/views/admin/SettingsView.vue b/src/webapp/src/views/admin/SettingsView.vue new file mode 100644 index 0000000..23037de --- /dev/null +++ b/src/webapp/src/views/admin/SettingsView.vue @@ -0,0 +1,22 @@ + + + From 8d751026b6bc74481d6193f20c09e2fcf0c5ff8f Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 21 Apr 2023 16:03:21 +0200 Subject: [PATCH 34/73] lost of progress --- src/webapp/src/components/seatplan.vue | 22 +++-- src/webapp/src/router/index.js | 47 ++++++++- src/webapp/src/views/404.vue | 35 +++++++ src/webapp/src/views/AdminLoginView.vue | 5 +- src/webapp/src/views/CartView.vue | 98 ++++++++++++++++--- src/webapp/src/views/LoginView.vue | 5 +- src/webapp/src/views/OrderView.vue | 5 +- src/webapp/src/views/SignupView.vue | 7 +- src/webapp/src/views/TicketsDetailsView.vue | 17 ++-- src/webapp/src/views/TicketsOrderingView.vue | 29 ++++++ src/webapp/src/views/admin/HomeView.vue | 2 +- src/webapp/src/views/setup/SetupPageView.vue | 22 +++++ .../src/views/setup/SetupPaymentsView.vue | 38 +++++++ src/webapp/src/views/setup/SetupRootView.vue | 38 +++++++ src/webapp/src/views/setup/SetupStartView.vue | 22 +++++ website/README.md | 4 +- website/src/admin-panel.md | 11 +++ website/src/admin-panel/admin-accounts.md | 18 ++++ website/src/admin-panel/events.md | 0 website/src/admin-panel/pages.md | 0 website/src/admin-panel/plugins.md | 0 website/src/admin-panel/settings.md | 26 +++++ website/src/errors.md | 7 ++ website/src/payments.md | 15 +++ website/src/setup/installation.md | 26 +++++ website/src/setup/setup.md | 31 ++++-- 26 files changed, 483 insertions(+), 47 deletions(-) create mode 100644 src/webapp/src/views/404.vue create mode 100644 src/webapp/src/views/TicketsOrderingView.vue create mode 100644 src/webapp/src/views/setup/SetupPageView.vue create mode 100644 src/webapp/src/views/setup/SetupPaymentsView.vue create mode 100644 src/webapp/src/views/setup/SetupRootView.vue create mode 100644 src/webapp/src/views/setup/SetupStartView.vue create mode 100644 website/src/admin-panel.md create mode 100644 website/src/admin-panel/admin-accounts.md create mode 100644 website/src/admin-panel/events.md create mode 100644 website/src/admin-panel/pages.md create mode 100644 website/src/admin-panel/plugins.md create mode 100644 website/src/admin-panel/settings.md create mode 100644 website/src/errors.md create mode 100644 website/src/setup/installation.md diff --git a/src/webapp/src/components/seatplan.vue b/src/webapp/src/components/seatplan.vue index bf18cd2..24d441f 100644 --- a/src/webapp/src/components/seatplan.vue +++ b/src/webapp/src/components/seatplan.vue @@ -29,10 +29,10 @@
    -
    +
    done
    -
    +
    living
    @@ -85,7 +85,7 @@ export default { data () { return { seating: { 'r1': { 'name': 'Row 1', 'id': 'r1', 'content':{ 'S1':{ 'name': 'Seat 1', 'id': 'S1', 'available': true, 'selected': false, 'category':'1' } } }, 'r2': { 'name': 'Row 2', 'id': 'r2', 'content':{ 'S1':{ 'name': 'S1', 'id': 'S1', 'available': true, 'selected': false, 'category':'2' } } } }, - eventInfo: { 'name': 'TestEvent', 'location': 'TestLocation', 'date': 'TestDate', 'RoomName': 'TestRoom', 'currency': 'CHF', 'categories': { '1': { 'price': { '1':25, '2':35 }, 'bg': 'black', 'fg': 'white', 'name': 'Category 1' }, '2': { 'price': { '1':15, '2':20 }, 'bg': 'green', 'fg': 'white', 'name': 'Category 1' } }, 'ageGroups': { '1':{ 'id': 1, 'name':'Child', 'age':'0 - 15.99' }, '2':{ 'id': 2, 'name': 'Adult', 'age': null } }, 'ageGroupCount':2, 'stage': true }, + eventInfo: { 'name': 'TestEvent', 'location': 'TestLocation', 'date': 'TestDate', 'RoomName': 'TestRoom', 'currency': 'CHF', 'categories': { '1': { 'price': { '1':25, '2':35 }, 'bg': 'black', 'fg': 'white', 'name': 'Category 1' }, '2': { 'price': { '1':15, '2':20 }, 'bg': 'green', 'fg': 'white', 'name': 'Category 2' } }, 'ageGroups': { '1':{ 'id': 1, 'name':'Child', 'age':'0 - 15.99' }, '2':{ 'id': 2, 'name': 'Adult', 'age': null } }, 'ageGroupCount':2, 'stage': true }, selectedSeats: {}, pricingCurrentlySelected: {}, total: 0, @@ -138,7 +138,16 @@ export default { } } + let back = {}; + + back[ 'total' ] = price; + back[ 'currency' ] = this.eventInfo.currency; + + sessionStorage.setItem( 'backend', JSON.stringify( back ) ); + this.total = price; + + sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); }, closePlaceNotAvailablePopup () { $( '#placeNotAvailable' ).hide( 300 ); @@ -187,7 +196,7 @@ export default { let seat = JSON.parse( sessionStorage.getItem( 'tempStorage' ) ); this.seating[ seat[ 1 ][ 1 ] ][ 'content' ][ seat[ 1 ][ 0 ] ][ 'selected' ] = false; }, - storeSeat( ticketOption ) { + storeSeat( ticketOption ) { /* This function stores a ticket into the event's selected seat sessionStorage. */ @@ -200,15 +209,16 @@ export default { let seat = JSON.parse( sessionStorage.getItem( 'tempStorage' ) ); - let ticket = this.seating[ seat[ 1 ][ 1 ] ][ 'content' ][ seat[ 1 ][ 0 ] ] + let ticket = this.seating[ seat[ 1 ][ 1 ] ][ 'content' ][ seat[ 1 ][ 0 ] ]; let ticketData = { 'name': ticket[ 'name' ], 'categoryID': ticketOption, 'category': this.eventInfo[ 'categories' ][ ticket[ 'category' ] ], 'price': this.eventInfo[ 'categories' ][ this.seating[ seat[ 1 ][ 1 ] ][ 'content' ][ seat[ 1 ][ 0 ] ][ 'category' ] ][ 'price' ][ ticketOption ], 'row':seat[ 1 ][ 1 ], 'seat':seat[ 1 ][ 0 ], 'ageGroup': this.eventInfo[ 'ageGroups' ][ ticketOption ][ 'name' ] }; data[ String( seat[ 1 ][ 1 ] ) + String( seat[ 1 ][ 0 ] ) ] = ticketData; cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] = data; + sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); - this.selectedSeats = cart; $( '#overlay' ).hide( 200 ); + this.selectedSeats = cart; this.sumUp(); }, }, diff --git a/src/webapp/src/router/index.js b/src/webapp/src/router/index.js index 72d5cb1..2b5cb93 100644 --- a/src/webapp/src/router/index.js +++ b/src/webapp/src/router/index.js @@ -45,7 +45,36 @@ const routes = [ meta: { title: 'Login :: Admin - myevent', requiresSetupKey: true, - } + }, + children: [ + { + path: '', + name: 'setupStart', + component: () => import( '../views/setup/SetupStartView.vue' ), + meta: { + title: 'Start :: Setup - myevent', + adminAuthRequired: true, + } + }, + { + path: 'root', + name: 'setupRoot', + component: () => import( '../views/setup/SetupRootView.vue' ), + meta: { + title: 'Root account :: Setup - myevent', + adminAuthRequired: true, + } + }, + { + path: 'page', + name: 'setupPage', + component: () => import( '../views/setup/SetupPageView.vue' ), + meta: { + title: 'Landing page :: Setup - myevent', + adminAuthRequired: true, + } + }, + ] }, { path: '/admin', @@ -130,6 +159,15 @@ const routes = [ transition: 'scale' } }, + { + path: '/tickets/order', + name: 'ticketOrder', + component: () => import( '../views/TicketsOrderingView.vue' ), + meta: { + title: 'Order ticket - myevent', + transition: 'scale' + } + }, { path: '/cart', name: 'cart', @@ -156,7 +194,12 @@ const routes = [ title: 'Pay - myevent', transition: 'scale', } - } + }, + { + path: '/:pathMatch(.*)*', + name: 'NotFound', + component: () => import( '@/views/404.vue') + }, ] const router = createRouter( { diff --git a/src/webapp/src/views/404.vue b/src/webapp/src/views/404.vue new file mode 100644 index 0000000..55b79e0 --- /dev/null +++ b/src/webapp/src/views/404.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/webapp/src/views/AdminLoginView.vue b/src/webapp/src/views/AdminLoginView.vue index b923d69..c822c70 100644 --- a/src/webapp/src/views/AdminLoginView.vue +++ b/src/webapp/src/views/AdminLoginView.vue @@ -43,8 +43,9 @@ .login-app { background-color: var( --background-color ); - width: 40%; - height: 50%; + min-height: fit-content; + min-height: fit-content; + padding: 5% 20%; display: flex; flex-direction: column; align-items: center; diff --git a/src/webapp/src/views/CartView.vue b/src/webapp/src/views/CartView.vue index 25f0caa..f20ff23 100644 --- a/src/webapp/src/views/CartView.vue +++ b/src/webapp/src/views/CartView.vue @@ -1,15 +1,23 @@ @@ -65,19 +73,85 @@ margin-left: auto; margin-right: auto } + + .tool-wrapper { + display: flex; + width: 100%; + flex-direction: column; + justify-content: center; + align-items: center; + } + + .deleteButton { + cursor: pointer; + font-size: 110%; + margin: 0; + } diff --git a/src/webapp/src/views/TicketsOrderingView.vue b/src/webapp/src/views/TicketsOrderingView.vue new file mode 100644 index 0000000..b662682 --- /dev/null +++ b/src/webapp/src/views/TicketsOrderingView.vue @@ -0,0 +1,29 @@ + + + + + + diff --git a/src/webapp/src/views/admin/HomeView.vue b/src/webapp/src/views/admin/HomeView.vue index 596ea23..7d4bbd4 100644 --- a/src/webapp/src/views/admin/HomeView.vue +++ b/src/webapp/src/views/admin/HomeView.vue @@ -8,7 +8,7 @@ Events Plugins Settings - Documentation + Documentation
    diff --git a/src/webapp/src/views/setup/SetupPageView.vue b/src/webapp/src/views/setup/SetupPageView.vue new file mode 100644 index 0000000..f3bf184 --- /dev/null +++ b/src/webapp/src/views/setup/SetupPageView.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/webapp/src/views/setup/SetupPaymentsView.vue b/src/webapp/src/views/setup/SetupPaymentsView.vue new file mode 100644 index 0000000..eac0130 --- /dev/null +++ b/src/webapp/src/views/setup/SetupPaymentsView.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/webapp/src/views/setup/SetupRootView.vue b/src/webapp/src/views/setup/SetupRootView.vue new file mode 100644 index 0000000..087704f --- /dev/null +++ b/src/webapp/src/views/setup/SetupRootView.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/webapp/src/views/setup/SetupStartView.vue b/src/webapp/src/views/setup/SetupStartView.vue new file mode 100644 index 0000000..64605ec --- /dev/null +++ b/src/webapp/src/views/setup/SetupStartView.vue @@ -0,0 +1,22 @@ + + + diff --git a/website/README.md b/website/README.md index 749683f..755c83f 100644 --- a/website/README.md +++ b/website/README.md @@ -3,7 +3,9 @@ The main website's pages are written in HTML & CSS whilst the doc pages are auto ** DO NOT MODIFY THE DOC PAGES IN THE [dist/docs/](dist/docs/) DIRECTORY! ** ## Links in the md files in [src/](src/) -Please note that you are required to use either a link relative to the root folder with double forward slash (example: *//server/app.js*), to the website root with a single forward slash (example: */download*), a full link (example: *https://myevent.janishutz.com/docs*) or a relative link (example: *plugins/music*). If you do not follow these patterns, the website won't build or the links will not work correctly. NOTE: Don't be confused if the root folder links don't work in the Markdown, as they use specific syntax for the build script. +Please note that you are required to use either a link relative to the root folder with double forward slash (example: *//server/app.js*), to the website root with a single forward slash (example: */download*), to the docs root with &/ (example: *&/setup*) or simply /docs/ (example: */docs/setup*), a full link (example: *https://myevent.janishutz.com/docs*) or a relative link (example: *plugins/music*). If you do not follow these patterns, the website won't build or the links will not work correctly. + +***NOTE: Don't be confused if the root folder links don't work in the Markdown, as they use specific syntax for the build script.*** ## Folder structure, file naming and file structure Please note that the filename that is used for the md file is used to create a folder that contains an *index.html* so the *.html* file extension disappears. The build script uses the first level 1 title (marked with \# in md) as the page title and also for the navigation menu, so please choose the title appropriately and don't let it exceed 50 characters! diff --git a/website/src/admin-panel.md b/website/src/admin-panel.md new file mode 100644 index 0000000..25f84ca --- /dev/null +++ b/website/src/admin-panel.md @@ -0,0 +1,11 @@ +# Admin panel +The admin panel is where you can change basically everything about myevent. Depending on your account's privileges, you may find more or less settings. Only the root account has access to the admin accounts page. + +Here's a list of the pages available when logged in as the root user. All other users have fewer pages enabled. +- [Admin Accounts](&/admin-panel/admin-accounts) +- [Pages](&/admin-panel/pages) +- [Events](&/admin-panel/events) +- [Plugins](&/admin-panel/plugins) +- [Settings](&/admin-panel/settings) + +Additionally, some settings might not be available to all admin accounts on all pages. \ No newline at end of file diff --git a/website/src/admin-panel/admin-accounts.md b/website/src/admin-panel/admin-accounts.md new file mode 100644 index 0000000..d4b98ee --- /dev/null +++ b/website/src/admin-panel/admin-accounts.md @@ -0,0 +1,18 @@ +# Admin Accounts +On this page you may add, modify or remove admin accounts. Note that in order for you to see this page, you'll need to be logged in as the user root. + +## Adding an account + +### Privileges + + +### Email + + +### 2FA +With this checkbox you can choose if this user needs to do two factor authentication, meaning, if the user needs to authorise the login using a link. In the [Settings](&/admin-panel/settings#2fa) you may choose between the two different 2FA modes that myevent offers. + + +## Modifying an account + +## Removing an account \ No newline at end of file diff --git a/website/src/admin-panel/events.md b/website/src/admin-panel/events.md new file mode 100644 index 0000000..e69de29 diff --git a/website/src/admin-panel/pages.md b/website/src/admin-panel/pages.md new file mode 100644 index 0000000..e69de29 diff --git a/website/src/admin-panel/plugins.md b/website/src/admin-panel/plugins.md new file mode 100644 index 0000000..e69de29 diff --git a/website/src/admin-panel/settings.md b/website/src/admin-panel/settings.md new file mode 100644 index 0000000..36b724a --- /dev/null +++ b/website/src/admin-panel/settings.md @@ -0,0 +1,26 @@ +# Settings + +## 2FA +myevent offers two different 2fa modes: +- Standard mode: The user has to click on a link that was sent to him via email. He'll automatically be logged in as soon as the page loads. +- Enhanced mode: The user has to click on a link that was sent to him via email and then has to confirm it by entering the code that is shown to him on the 2FA page. After that he'll automatically be logged in. + +In both modes, the system informs the user about the IP address that tried to log into the account. + +This setting can be changed individually for admin and user accounts and 2FA can be disabled entirely. It is highly encouraged to enable this at least for the admin accounts and for user accounts set the requirement to 'User-defined' or 'Always required' instead of 'Disabled'. + +## User account passwords +Here you may set password requirements for the user accounts. The system will always be offering the users to generate a password that is strong for them to facilitate the process of setting a password. + +## Guest purchase +Choose if a user may purchase a ticket without creating an account. An email address is always required as the system sends the tickets via email to the customers for easier access. + +## Allow overbooking +Activate this and set a percentage of overbooking, if you want to enable overbooking of the event to ensure that every single spot is occupied even if somebody does not show up. Use is strongly discouraged and currently only works with events that have no seating plan. + +## Special requirements +Here you may set a special requirement that a person booking a ticket has to fulfill, like the email address has to be ending in @yourdomain.com or they need to live in a certain street / town / city / country in order for them to be allowed to buy a ticket. You may also require that they provide a certain number, code or similar. Finally, you may choose to limit the amount of tickets a single person may reserve. + + +## Change organisation name +This should be self explanatory, but keep in mind that this change will only take effect after the next restart of the node app. \ No newline at end of file diff --git a/website/src/errors.md b/website/src/errors.md new file mode 100644 index 0000000..58188b7 --- /dev/null +++ b/website/src/errors.md @@ -0,0 +1,7 @@ +# Errors + +## 404 +A 404 error is returned if the page was not found on the server. This can be either due to a wrong link or a badly configured server, but is mostly user error, so a misspelled link. + +## 500 +An internal server error occurs when the server is unable to properly process a request, which in some cases might also return a [400](#400) error, if the server first decides that the request is unacceptable. \ No newline at end of file diff --git a/website/src/payments.md b/website/src/payments.md index e69de29..dc53da9 100644 --- a/website/src/payments.md +++ b/website/src/payments.md @@ -0,0 +1,15 @@ +# Payments +Including many payment methods can help the user choose the one that fits them best, but can also be overwhelming and a pain to set up. So please try to use as few different payment gateways as possible. Our recommendation is either *Stripe* or *adyen* as they are the most flexible. + +## Advantages / Disadvantages of each payment gateway + +### Stripe +Stripe is one of the most well known payment gateways out there, but is also fairly expensive, but easy to set up. +See [here](https://stripe.com/en-gb/pricing) for pricing information and sign up [here](https://dashboard.stripe.com/register) + +### adyen +Adyen is used by small and huge businesses alike, but you have to email their support team for account creation, which is easy to do, but takes longer to complete. adyen is fairly cheap, "*only*" charging 0.10$ per transaction plus payment method costs. Detailed pricing information can be found [here](https://www.adyen.com/pricing) and you may sign up [here](https://www.adyen.com/contact/sales) + + +### payrexx +https://www.payrexx.com/en/pricing/ \ No newline at end of file diff --git a/website/src/setup/installation.md b/website/src/setup/installation.md new file mode 100644 index 0000000..5d115bc --- /dev/null +++ b/website/src/setup/installation.md @@ -0,0 +1,26 @@ +# Installation +Let's begin with setting up myevent! If you are not technically savvy or want somebody else to set it up for you, please contact me [here](https://api.janishutz.com/contact/setup?origin=myevent&campaign=installation-docs). If you want to set it up yourself, read on below! + + +# Selecting a webhosting company +Choosing the right hosting provider is not easy, especially since myevent requires node.js. Therefore, we've listed a few really good options. This website here is hosted by asurahosting. *Note: I may receive a small commission when you buy webhosting using one of the links provided below. This won't affect the price you pay.* +https://clients.asurahosting.com/aff.php?aff=1997 +https://www.novatrend.ch/en/ +https://www.hostinger.com/ +https://www.a2hosting.com/ +https://www.hetzner.com/ +https://www.digitalocean.com/ + +*Affiliate program* +https://affiliates.hostinger.com/users/signup/ +https://www.a2hosting.com/about/affiliate-program/ +https://www.digitalocean.com/go/affiliates + +## Database +In the database, all the userdata is stored. myevent currently supports two different databases, MySQL and a custom database based on JSON. Which one to choose? + +Generally MySQL, except: +- If your organisation is small and does only sell a few tickets at a time, the JSON based database works perfectly fine. +- Your web hosting plan does not includes MySQL and you've got no access to MySQL in any other way. *NOTE: Free MySQL services should NEVER be used in such an application, as most hosting plans include MySQL which is much more reliable and if you lose access to the database, you can only access the root account and all other data (and therefore all user accounts) is lost.* + +MySQL generally is more difficult to set up, but we'll run you through the process here to make the process easier for you. If you chose the JSON based database, skip ahead to the next chapter. \ No newline at end of file diff --git a/website/src/setup/setup.md b/website/src/setup/setup.md index aed2e69..3c6ca60 100644 --- a/website/src/setup/setup.md +++ b/website/src/setup/setup.md @@ -1,16 +1,12 @@ # Setup of myevent -At this point we assume you've completed the initial install of myevent. If not, you may find a guide on how to do it [here](/setup/getting-started). Let's get started setting up your event management system! +At this point we assume you've completed the initial install of myevent. If not, you may find a guide on how to do it [here](&/setup/getting-started). Let's get started setting up your event management system! ## Connecting to the server -As discussed in the previous part where we installed the system, you can connect to your server simply by opening a web browser and typing your domain name into the address field. After that you should be greeted by the myevent post-install landing page. Please click onto the button saying 'To the admin panel' and log in with the following credentials: - -Username: setup - -Password: myevent-setup +As discussed in the previous part where we installed the system, you can connect to your server simply by opening a web browser and typing your domain name into the address field. After that you should be greeted by the myevent post-install landing page. Once there, you'll need the setup key you defined during the installation. Type it into the field and hit "Start setup". *Note: This is only available during the setup process of myevent and will afterwards be deactivated to ensure safety of the system.* -## Setting up the root account +## Root account This is the most powerful account in this system. From it you can control EVERY aspect of your system. **Remark: You may (and definitely should) add other accounts with less privileges after completing setup and only use the root account when it is actually necessary** @@ -28,8 +24,25 @@ Upper / Lower case | At least 2 upper & 2 lower case letters required Please avoid using easy to guess combinations like names & birth dates of you or your relatives, zip codes & cities and obvious words like 'password', 'myevent', 'admin', 'root' and your organisation / event's name. +After this, the system will email you an email confirmation link using the email you've previously configured in the config.json file during installation. + ## Page setup -After having set up the root account and confirmed the email address, it is now time to set the name of the webpage. For this, you'll need to enter your organisation's name and choose the offered languages. Note that for every language you select, you need to add a promotional text if you choose to add a homepage. If you selected a homepage, you have to insert a promotional text and you have to select a homepage-template from one that is available [here](/homepage/templates). You also have to upload some images at this stage. +After having set up the root account and confirmed the email address, it is now time to set the name of the webpage. For this, you'll need to enter your organisation's name and choose the offered languages. Note that for every language you select, you need to add a promotional text. Please select a homepage template from [here](&/homepage/templates). You also have to upload an/some image(s) at this stage, if the selected template requires (an) image(s). + ## Payment methods -Now it is time to set up some payment methods. You may find advantages / disadvantages of each payment gateway [here](/payments). It is advised to only choose one payment gateway which provides lots of different payment options, but cost of usage can also be a factor to consider. You may add more payment options by downloading a plugin through the plugin installer in the admin panel. \ No newline at end of file +Now it is time to set up some payment methods. You may find advantages / disadvantages of each payment gateway [here](&/payments). It is advised to only choose one payment gateway which provides lots of different payment options, but cost of usage can also be a factor to consider. You may add more payment options by downloading a plugin through the plugin installer in the admin panel. *Note: You'll have to restart the node app whenever you install a new plugin!* + +## Event setup +With payment methods sorted, you now have to add an event. For this, you'll need to create tickets by hitting the plus icon. + +## TOS +This is an optional step. Here you may add your own terms of services (TOS), next to the ones that are given by myevent itself. Your TOS will be inserted at the top. + +## Setup complete +With this, you've completed the setup of the event. We now ask you to restart the node application. You may do this by stopping the process (if logged in via SSH, press Ctrl + C, if you've got a graphical user interface for setting up the node app, it should be self explanatory) and restarting it as described [here](&/setup/installation#starting). + + +**Congratulations! You've now successfully set up your event management solution. You may now log into the admin panel. You can find your admin panel at /admin (example: myevent.janishutz.com/admin, replace myevent.janishutz.com with your own domain).** + +*You may find documentation on the admin panel [here](&/admin-panel/)* \ No newline at end of file From 5e406e99d62fd36ed766667a4492cf14267570ca Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sun, 23 Apr 2023 15:50:52 +0200 Subject: [PATCH 35/73] split up routes + setup --- src/webapp/src/App.vue | 3 + src/webapp/src/components/initial.vue | 2 +- src/webapp/src/components/noseatplan.vue | 331 ++++++++++++++++++ src/webapp/src/components/seatplan.vue | 2 +- src/webapp/src/router/adminRoutes.js | 66 ++++ src/webapp/src/router/index.js | 224 ++---------- src/webapp/src/router/mainRoutes.js | 94 +++++ src/webapp/src/router/setupRoutes.js | 74 ++++ src/webapp/src/stores/backendStore.js | 17 + src/webapp/src/views/PurchaseView.vue | 11 +- src/webapp/src/views/SetupView.vue | 35 +- src/webapp/src/views/TicketsOrderingView.vue | 12 +- .../src/views/setup/SetupCompleteView.vue | 6 + .../src/views/setup/SetupEventsView.vue | 30 ++ src/webapp/src/views/setup/SetupPageView.vue | 20 +- .../src/views/setup/SetupPaymentsView.vue | 28 +- src/webapp/src/views/setup/SetupRootView.vue | 7 + src/webapp/src/views/setup/SetupStartView.vue | 13 +- src/webapp/src/views/setup/SetupTOSView.vue | 30 ++ 19 files changed, 765 insertions(+), 240 deletions(-) create mode 100644 src/webapp/src/router/adminRoutes.js create mode 100644 src/webapp/src/router/mainRoutes.js create mode 100644 src/webapp/src/router/setupRoutes.js create mode 100644 src/webapp/src/stores/backendStore.js create mode 100644 src/webapp/src/views/setup/SetupCompleteView.vue create mode 100644 src/webapp/src/views/setup/SetupEventsView.vue create mode 100644 src/webapp/src/views/setup/SetupTOSView.vue diff --git a/src/webapp/src/App.vue b/src/webapp/src/App.vue index f1bfc38..fa7e203 100644 --- a/src/webapp/src/App.vue +++ b/src/webapp/src/App.vue @@ -22,6 +22,7 @@ --hover-color: rgb(165, 165, 165); --accent-background-hover: #4380a8; --overlay-color: rgba(37, 37, 37, 0.575); + --inactive-color: rgb(100, 100, 100); } :root.dark { @@ -32,6 +33,7 @@ --accent-color: #42b983; --hover-color: rgb(165, 165, 165); --accent-background-hover: #4380a8; + --inactive-color: rgb(190, 190, 190); } @media ( prefers-color-scheme: dark ) { @@ -43,6 +45,7 @@ --accent-color: #42b983; --hover-color: rgb(165, 165, 165); --accent-background-hover: #4380a8; + --inactive-color: rgb(190, 190, 190); } } diff --git a/src/webapp/src/components/initial.vue b/src/webapp/src/components/initial.vue index f875721..a0bcfad 100644 --- a/src/webapp/src/components/initial.vue +++ b/src/webapp/src/components/initial.vue @@ -22,7 +22,7 @@ }, methods: { setup () { - + this.$router.push( '/setup' ); } }, } diff --git a/src/webapp/src/components/noseatplan.vue b/src/webapp/src/components/noseatplan.vue index e69de29..1fc271a 100644 --- a/src/webapp/src/components/noseatplan.vue +++ b/src/webapp/src/components/noseatplan.vue @@ -0,0 +1,331 @@ + + + + + diff --git a/src/webapp/src/components/seatplan.vue b/src/webapp/src/components/seatplan.vue index 24d441f..29dbe96 100644 --- a/src/webapp/src/components/seatplan.vue +++ b/src/webapp/src/components/seatplan.vue @@ -78,7 +78,7 @@ + + + diff --git a/src/webapp/src/views/TicketsOrderingView.vue b/src/webapp/src/views/TicketsOrderingView.vue index b662682..6199330 100644 --- a/src/webapp/src/views/TicketsOrderingView.vue +++ b/src/webapp/src/views/TicketsOrderingView.vue @@ -1,7 +1,8 @@ @@ -13,11 +14,18 @@ diff --git a/src/webapp/src/views/setup/SetupPageView.vue b/src/webapp/src/views/setup/SetupPageView.vue index f3bf184..5ba3739 100644 --- a/src/webapp/src/views/setup/SetupPageView.vue +++ b/src/webapp/src/views/setup/SetupPageView.vue @@ -1,21 +1,35 @@ From 55023dd46d0e69237494625e94733c95975ea899 Mon Sep 17 00:00:00 2001 From: janis Date: Mon, 24 Apr 2023 17:05:40 +0200 Subject: [PATCH 36/73] readme --- .circleci/config.yml | 42 +++++++++++++++++++++--------------------- README.md | 19 ++++++++++++++++++- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6c2f67a..5d11815 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,24 +1,24 @@ version: 2.1 -orbs: - node: circleci/node@5.1.0 +orbs: + node: circleci/node@5.1.0 jobs: - build_and_test: - executor: node/default - steps: - - checkout - - node/install-packages: - pkg-manager: npm - - run: - command: npm run build - name: Build app - - run: - command: npm run test - name: Run tests - - run: - command: npm run build-website - name: Build documentation - - persist_to_workspace: - root: ~/project - paths: - - . \ No newline at end of file + build_and_test: + executor: node/default + steps: + - checkout + - node/install-packages: + pkg-manager: npm + - run: + command: npm run build + name: Build app + - run: + command: npm run test + name: Run tests + - run: + command: npm run build-website + name: Build documentation + - persist_to_workspace: + root: ~/project + paths: + - . diff --git a/README.md b/README.md index fa48712..12d92ec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,20 @@ -# myevent +
    + +

    myevent

    +
    + +
    + [![current release](https://img.shields.io/github/release/simplePCBuilding/myevent.svg)](https://github.com/vscodium/vscodium/releases) + [![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)](https://github.com/VSCodium/vscodium/blob/master/LICENSE) + [![Gitter](https://img.shields.io/gitter/room/vscodium/vscodium.svg)](https://gitter.im/VSCodium/Lobby) + [![codium](https://snapcraft.io//codium/badge.svg)](https://snapcraft.io/codium) + [![codium](https://snapcraft.io//codium/trending.svg?name=0)](https://snapcraft.io/codium) + + [![build status (linux)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-linux.yml?branch=master&label=build%28linux%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-linux.yml?query=branch%3Amaster) + [![build status (macos)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-macos.yml?branch=master&label=build%28macOS%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-macos.yml?query=branch%3Amaster) + [![build status (windows)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-windows.yml?branch=master&label=build%28windows%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-windows.yml?query=branch%3Amaster) +
    + A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! Visit our [website](https://myevent.janishutz.com) @@ -6,5 +22,6 @@ Visit our [website](https://myevent.janishutz.com) ## This project is currently NOT ready to be used! Development of this project is currently ongoing and no stable version is available yet. + ## ROADMAP The goal is to get this tool fully functioning by the End of September 2023. \ No newline at end of file From c04ccd802b25bb7b1a42e03a4037f6aa5d585f8a Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:21:19 +0000 Subject: [PATCH 37/73] Update README.md Fix badges --- README.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 12d92ec..9b94767 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,9 @@
    - [![current release](https://img.shields.io/github/release/simplePCBuilding/myevent.svg)](https://github.com/vscodium/vscodium/releases) - [![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)](https://github.com/VSCodium/vscodium/blob/master/LICENSE) - [![Gitter](https://img.shields.io/gitter/room/vscodium/vscodium.svg)](https://gitter.im/VSCodium/Lobby) - [![codium](https://snapcraft.io//codium/badge.svg)](https://snapcraft.io/codium) - [![codium](https://snapcraft.io//codium/trending.svg?name=0)](https://snapcraft.io/codium) - - [![build status (linux)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-linux.yml?branch=master&label=build%28linux%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-linux.yml?query=branch%3Amaster) - [![build status (macos)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-macos.yml?branch=master&label=build%28macOS%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-macos.yml?query=branch%3Amaster) - [![build status (windows)](https://img.shields.io/github/actions/workflow/status/VSCodium/vscodium/stable-windows.yml?branch=master&label=build%28windows%29)](https://github.com/VSCodium/vscodium/actions/workflows/stable-windows.yml?query=branch%3Amaster) +[![current release](https://img.shields.io/github/release/simplePCBuilding/myevent.svg)](https://github.com/vscodium/vscodium/releases) +[![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)](https://github.com/VSCodium/vscodium/blob/master/LICENSE) +[![Gitter](https://img.shields.io/gitter/room/vscodium/vscodium.svg)](https://gitter.im/VSCodium/Lobby)
    A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From c89438854cbfaaae089aabb117672069bfd1a4b1 Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:22:24 +0000 Subject: [PATCH 38/73] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b94767..f1bfb6b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
-[![current release](https://img.shields.io/github/release/simplePCBuilding/myevent.svg)](https://github.com/vscodium/vscodium/releases) +[![current release](https://img.shields.io/github/release/simplePCBuilding/myevent.svg)](https://github.com/simplePCBuilding/myevent/releases) [![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)](https://github.com/VSCodium/vscodium/blob/master/LICENSE) [![Gitter](https://img.shields.io/gitter/room/vscodium/vscodium.svg)](https://gitter.im/VSCodium/Lobby)
From c829bdcdb1390c8571449dacab33fb3a562a25af Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:24:33 +0000 Subject: [PATCH 39/73] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index f1bfb6b..65955ae 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,7 @@
[![current release](https://img.shields.io/github/release/simplePCBuilding/myevent.svg)](https://github.com/simplePCBuilding/myevent/releases) -[![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)](https://github.com/VSCodium/vscodium/blob/master/LICENSE) -[![Gitter](https://img.shields.io/gitter/room/vscodium/vscodium.svg)](https://gitter.im/VSCodium/Lobby) +![license](https://img.shields.io/github/license/VSCodium/vscodium.svg)
A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 66e4e448e54e7d246cc91a9bee40ed052b77255e Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:33:34 +0000 Subject: [PATCH 40/73] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 65955ae..5297672 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
-[![current release](https://img.shields.io/github/release/simplePCBuilding/myevent.svg)](https://github.com/simplePCBuilding/myevent/releases) + - +
A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 0e402bfba0ff525759016602d412ea23d7d9fe6c Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:34:55 +0000 Subject: [PATCH 42/73] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e4998df..c1c525c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@
- +
A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 02af46d0f2113ca6cdbea1e0f514ecdd564b3348 Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:36:19 +0000 Subject: [PATCH 43/73] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c1c525c..b761726 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,9 @@
- - + + +
A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 767d9a3d7a64b26d940f26fa0ae4b1c9d48cffaf Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:38:13 +0000 Subject: [PATCH 44/73] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b761726..dd35e1e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@
- +
A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 1d7832a9458e9edfc11ff32057606dc290eeaa13 Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:39:52 +0000 Subject: [PATCH 45/73] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd35e1e..c4c1ca9 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ + - A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From f19b9a472e89395f8065a9f9ee5b3ceb31ccb3b5 Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:40:20 +0000 Subject: [PATCH 47/73] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e320a2a..74bf153 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ - A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From bf9706835756e5449acc76f3dc0eebf4e605be00 Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:50:10 +0000 Subject: [PATCH 48/73] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 74bf153..05ec989 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ + A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 5030532712e4c5fa8cd6921f260be9a7768fcfb3 Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:54:34 +0000 Subject: [PATCH 49/73] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 05ec989..5bab84c 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ + A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 736521834d9bf3abfd5c2db0d0e42b05e103135b Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:54:59 +0000 Subject: [PATCH 50/73] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5bab84c..e7b3862 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ - + A fully featured, fully free and open source event management solution you can host yourself, to manage your event and sell tickets. All you need is a webserver that can run node.js! From 58ae853d712b6185efb12c1917f84dcaa5f381ee Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Wed, 26 Apr 2023 12:46:35 +0000 Subject: [PATCH 51/73] Update README.md --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index e7b3862..7b9a2a8 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,29 @@ A fully featured, fully free and open source event management solution you can h Visit our [website](https://myevent.janishutz.com) + +# System requirements +- node.js V16.0+ +- npm +- (OPTIONAL) MySQL +- any CPU from the last 10 years +- Any operating system that can run node.js + + + +# Contributing +If you want to contribute to this project, please read more [here](https://myevent.janishutz.com/docs/contributing). Until the end of October 2023, no contributions can be accepted into master. + + +# Supporting the project +If you like this project and it helped you save money, please consider donating to help fund the continuous development. If you are a company, please contact me [here](https://myevent.janishutz.com/docs/sponsoring) if you want to sponsor the project and become an official partner. + + + +# Repository structure +- [src/](/src/) + + ## This project is currently NOT ready to be used! Development of this project is currently ongoing and no stable version is available yet. From ac5c71559ad7bc4c38ac235d5b0108a810a3ddcb Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Wed, 26 Apr 2023 15:08:14 +0200 Subject: [PATCH 52/73] Add repo structure info to readme --- README.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7b9a2a8..f0fb33c 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ A fully featured, fully free and open source event management solution you can h Visit our [website](https://myevent.janishutz.com) - # System requirements - node.js V16.0+ - npm @@ -24,24 +23,28 @@ Visit our [website](https://myevent.janishutz.com) - any CPU from the last 10 years - Any operating system that can run node.js - - # Contributing If you want to contribute to this project, please read more [here](https://myevent.janishutz.com/docs/contributing). Until the end of October 2023, no contributions can be accepted into master. - # Supporting the project If you like this project and it helped you save money, please consider donating to help fund the continuous development. If you are a company, please contact me [here](https://myevent.janishutz.com/docs/sponsoring) if you want to sponsor the project and become an official partner. - - # Repository structure -- [src/](/src/) - +- [assets/](/assets/): contains the logo (as png and GIMP file), also iOS and Android marketing materials, just global assets (images / videos) +- [dist/](/dist/): contains all files needed to run the app, set up correctly so you can just copy the folder. +- [src/](/src/): contains all of the source code of the project: + - + - +- [website/](/website/): contains all of the website files: + - [website/dist/](/website/dist/): contains all the ready to distribute website files + - [website/src/](/website/src/): contains all of the source files (markdown format) for the website. These files are converted into HTML by the build script. +- [package.js][/package.js]: collects all of the files of the project and copies them into the [dist/](/dist/) folder. +- [.eslintrc.js](/.eslintrc.js): ESlint config, the linter used for the project +- [.gitignore](/.gitignore): ignored files, currently is node_modules. ## This project is currently NOT ready to be used! Development of this project is currently ongoing and no stable version is available yet. ## ROADMAP -The goal is to get this tool fully functioning by the End of September 2023. \ No newline at end of file +The goal is to get this tool fully functioning by the End of September 2023. From 99ff1abc5d6a3ee1fda50b2a85f5786af352a1ac Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Wed, 26 Apr 2023 15:10:17 +0200 Subject: [PATCH 53/73] Fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0fb33c..d18ea9b 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Visit our [website](https://myevent.janishutz.com) - any CPU from the last 10 years - Any operating system that can run node.js -# Contributing +# Contributing If you want to contribute to this project, please read more [here](https://myevent.janishutz.com/docs/contributing). Until the end of October 2023, no contributions can be accepted into master. # Supporting the project From 64452abf6c8ded27134184b42b4bf2ee6c358113 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Thu, 27 Apr 2023 17:43:01 +0200 Subject: [PATCH 54/73] readme + package.json --- .gitignore | 5 ++++- README.md | 20 +++++++++++++++----- package.sh => package.js | 0 package.json | 24 ++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 6 deletions(-) rename package.sh => package.js (100%) create mode 100644 package.json diff --git a/.gitignore b/.gitignore index 9b3cb07..c963870 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,7 @@ *.log # ignore node_modules (can be rebuilt with npm i --> shrinks repo size) -node_modules \ No newline at end of file +node_modules + +# ignore dist folder (this repo only contains source code!) +/dist \ No newline at end of file diff --git a/README.md b/README.md index d18ea9b..3c4f821 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,10 @@ Visit our [website](https://myevent.janishutz.com) - any CPU from the last 10 years - Any operating system that can run node.js +# Download +You may download this project using the GitHub releases page or the direct links on the [myevent website](https://myevent.janishutz.com/download) as this only downloads the ready-to-distribute version, not the development version. +Alternatively, you may download the project directly from GitHub (by cloning it or downloading the code) but you'll have to compile and package the project [manually](https://myevent.janishutz.com/docs/contributing/packaging). + # Contributing If you want to contribute to this project, please read more [here](https://myevent.janishutz.com/docs/contributing). Until the end of October 2023, no contributions can be accepted into master. @@ -31,16 +35,22 @@ If you like this project and it helped you save money, please consider donating # Repository structure - [assets/](/assets/): contains the logo (as png and GIMP file), also iOS and Android marketing materials, just global assets (images / videos) -- [dist/](/dist/): contains all files needed to run the app, set up correctly so you can just copy the folder. - [src/](/src/): contains all of the source code of the project: - - - - + - [src/apps](/src/apps/): contains the source code of the iOS and Android app. + - [src/server](/src/server/): contains the source code for the node.js application that runs on the server side. + - [src/webapp](/src/webapp/): contains the source code for the frontend, contains lots of vue files. - [website/](/website/): contains all of the website files: - [website/dist/](/website/dist/): contains all the ready to distribute website files - [website/src/](/website/src/): contains all of the source files (markdown format) for the website. These files are converted into HTML by the build script. -- [package.js][/package.js]: collects all of the files of the project and copies them into the [dist/](/dist/) folder. +- [package.js](/package.js): collects all of the files of the project and copies them into the [dist/](/dist/) folder. It also minifies the files in the process to reduce package size. - [.eslintrc.js](/.eslintrc.js): ESlint config, the linter used for the project -- [.gitignore](/.gitignore): ignored files, currently is node_modules. +- [.gitignore](/.gitignore): ignored files, currently is node_modules & log files. + +You may notice some additional folders appearing after running +``` +npm run package +``` +This is to shrink the repository size. Distribution ready files can be found in the releases or on our [website](https://myevent.janishutz.com/download). ## This project is currently NOT ready to be used! Development of this project is currently ongoing and no stable version is available yet. diff --git a/package.sh b/package.js similarity index 100% rename from package.sh rename to package.js diff --git a/package.json b/package.json new file mode 100644 index 0000000..014791a --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "myevent", + "version": "1.0.0", + "description": "A free and open source event management solution", + "main": "/dist/app.js", + "scripts": { + "test": "npm run test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/simplePCBuilding/myevent.git" + }, + "keywords": [ + "eventmanager", + "events", + "tickets" + ], + "author": "Janis Hutz", + "license": "GPL-3.0-or-later", + "bugs": { + "url": "https://github.com/simplePCBuilding/myevent/issues" + }, + "homepage": "https://myevent.janishutz.com" +} From ab9b232433f693043f3d11c8e59275cddf5c4fb3 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Thu, 27 Apr 2023 19:10:08 +0200 Subject: [PATCH 55/73] removed old + some new code --- README.md | 2 + src/server/admin/routes.js | 73 ++------------- src/server/app.js | 9 +- src/server/package-lock.json | 168 ++++++++++++++++++----------------- 4 files changed, 103 insertions(+), 149 deletions(-) diff --git a/README.md b/README.md index 3c4f821..2202b98 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ + + diff --git a/src/server/admin/routes.js b/src/server/admin/routes.js index ef785f7..35556bd 100644 --- a/src/server/admin/routes.js +++ b/src/server/admin/routes.js @@ -7,50 +7,24 @@ * */ -const path = require( 'path' ); const pwdmanager = require( './pwdmanager.js' ); -const fs = require( 'fs' ); module.exports = ( app, settings ) => { /* - Static routes for files like login screen, css, js and assets. Js and assets require login - */ - app.get( '/admin/login', ( request, response ) => { - if ( request.session.loggedIn ) { - response.redirect( '/admin' ); - } else { - response.sendFile( path.join( __dirname + '/ui/login.html' ) ); - } - } ); - - app.get( '/admin/loginLangPack', ( request, response ) => { - response.sendFile( path.join( __dirname + '/ui/js/loginLangPack.js' ) ); - } ); - - app.get( '/admin/js/:file', ( request, response ) => { - if ( request.session.loggedIn ) { - response.sendFile( path.join( __dirname + '/ui/js/' + request.params.file ) ); - } - } ); - - app.get( '/admin/css/:file', ( request, response ) => { - response.sendFile( path.join( __dirname + '/ui/css/' + request.params.file ) ); - } ); - - /* - Admin login route that checks the password and, if enabled in settings, redirects to 2fa page or directly to admin panel + Admin login route that checks the password */ + app.post( '/admin/auth', ( request, response ) => { pwdmanager.checkpassword( request.body.mail, request.body.pwd ).then( data => { if ( data ) { if ( settings.twoFA ) { - response.sendFile( path.join( __dirname + '../admin/ui/2fa.html' ) ); + response.send( '2fa' ); } else { request.session.loggedIn = true; - response.redirect( '/admin' ); + response.send( 'ok' ); } } else { - response.send( 'Password wrong' ); + response.send( 'pwErr' ); } } ); } ); @@ -60,40 +34,7 @@ module.exports = ( app, settings ) => { response.send( 'logged out' ); } ); - /* - main admin panel access route. Will serve an html file - that uses vue.js in its SPA form to make the admin panel - more responsive. Same technology is also used in the purchasing - system itself. - */ - app.get( '/admin', ( request, response ) => { - if ( request.session.loggedIn ) { - if ( settings[ 'init' ] ) { - response.sendFile( path.join( __dirname + '/ui/panel.html' ) ); - } else { - response.sendFile( path.join( __dirname + '/ui/welcome.html' ) ); - } - } else { - response.redirect( '/admin/login' ); - } - } ); - - - /* - Send admin panel modules to UI as UI uses Vue.js Router - */ - app.get( '/admin/panel/modules', ( request, response ) => { - let panelModules = { 'home': fs.readFileSync( path.join( __dirname + '/ui/panel/home.html' ) ).toString() }; - if ( request.session.loggedIn ) { - response.send( panelModules ); - } - } ); - - app.get( '/admin/setup', ( request, response ) => { - if ( request.session.loggedIn ) { - response.sendFile( path.join( __dirname + '/ui/setup.html' ) ); - } else { - response.redirect( '/admin/login' ); - } + app.get( '/admin/getLoginStatus', ( request, response ) => { + response.send( request.session.loggedIn ); } ); }; \ No newline at end of file diff --git a/src/server/app.js b/src/server/app.js index 49652d8..cc23495 100644 --- a/src/server/app.js +++ b/src/server/app.js @@ -14,11 +14,11 @@ const expressSession = require( 'express-session' ); const bodyParser = require( 'body-parser' ); const cookieParser = require( 'cookie-parser' ); const http = require( 'http' ); +const fs = require( 'fs' ); // const env = process.env.PROD || false; -// const settings = JSON.parse( fs.readFileSync( path.join( __dirname + '/config.json' ) ) ); - +const settings = JSON.parse( fs.readFileSync( path.join( __dirname + '/config.json' ) ) ); // initialise express with middlewares app.use( expressSession( { @@ -33,7 +33,10 @@ app.use( cookieParser() ); // app.use( favicon( path.join( __dirname + '/ui/assets/logo.png' ) ) ); app.use( express.static( '../webapp/dist' ) ); -// require( './admin/routes.js' )( app, settings ); // admin route + +require( './admin/routes.js' )( app, settings ); // admin route + + app.use( ( request, response ) => { response.sendFile( path.join( __dirname + '/../webapp/dist/index.html' ) ); } ); diff --git a/src/server/package-lock.json b/src/server/package-lock.json index 376c212..7b415b6 100644 --- a/src/server/package-lock.json +++ b/src/server/package-lock.json @@ -53,9 +53,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "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", @@ -85,9 +85,9 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -95,21 +95,27 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "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.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", @@ -481,9 +487,9 @@ } }, "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -816,14 +822,14 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "node_modules/html-minifier-terser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", - "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", "dev": true, "dependencies": { "camel-case": "^4.1.2", - "clean-css": "5.2.0", - "commander": "^9.4.1", + "clean-css": "~5.3.2", + "commander": "^10.0.0", "entities": "^4.4.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", @@ -836,16 +842,13 @@ "node": "^14.13.1 || >=16.0.0" } }, - "node_modules/html-minifier-terser/node_modules/clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, "engines": { - "node": ">= 10.0" + "node": ">=14" } }, "node_modules/http-errors": { @@ -1066,9 +1069,9 @@ } }, "node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", "engines": { "node": ">=8" } @@ -1359,9 +1362,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -1432,9 +1435,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -1637,9 +1640,9 @@ } }, "node_modules/terser": { - "version": "5.16.5", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", - "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -1796,9 +1799,9 @@ }, "dependencies": { "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "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, "requires": { "@jridgewell/set-array": "^1.0.1", @@ -1819,9 +1822,9 @@ "dev": true }, "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", @@ -1829,19 +1832,27 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dev": true, "requires": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } } }, "@mapbox/node-pre-gyp": { @@ -2133,9 +2144,9 @@ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true }, "escape-html": { @@ -2406,28 +2417,25 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "html-minifier-terser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", - "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", "dev": true, "requires": { "camel-case": "^4.1.2", - "clean-css": "5.2.0", - "commander": "^9.4.1", + "clean-css": "~5.3.2", + "commander": "^10.0.0", "entities": "^4.4.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", "terser": "^5.15.1" }, "dependencies": { - "clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } + "commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true } } }, @@ -2591,9 +2599,9 @@ } }, "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==" }, "minizlib": { "version": "2.1.2", @@ -2800,9 +2808,9 @@ } }, "readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -2844,9 +2852,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "requires": { "lru-cache": "^6.0.0" } @@ -3019,9 +3027,9 @@ } }, "terser": { - "version": "5.16.5", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.5.tgz", - "integrity": "sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.1.tgz", + "integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", From c7bc810e186f10a109f8c62c1ae269ca84858afa Mon Sep 17 00:00:00 2001 From: Janis Hutz <98422316+simplePCBuilding@users.noreply.github.com> Date: Fri, 28 Apr 2023 11:15:00 +0200 Subject: [PATCH 56/73] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2202b98..094a28b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ - + From eec30d8ed4499e86216e4291bb32672f3a0379e7 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Sun, 30 Apr 2023 11:47:50 +0200 Subject: [PATCH 57/73] rework of purchase system --- src/server/admin/routes.js | 13 +- src/webapp/src/App.vue | 63 +++++++++- src/webapp/src/components/initial.vue | 2 +- src/webapp/src/router/index.js | 22 ++-- src/webapp/src/stores/userStore.js | 2 +- src/webapp/src/views/CartView.vue | 34 ------ src/webapp/src/views/GuestPurchaseView.vue | 0 src/webapp/src/views/PurchaseView.vue | 133 ++++++++++++++------- src/webapp/src/views/admin/AdminView.vue | 16 ++- 9 files changed, 186 insertions(+), 99 deletions(-) create mode 100644 src/webapp/src/views/GuestPurchaseView.vue diff --git a/src/server/admin/routes.js b/src/server/admin/routes.js index 35556bd..245b255 100644 --- a/src/server/admin/routes.js +++ b/src/server/admin/routes.js @@ -20,7 +20,7 @@ module.exports = ( app, settings ) => { if ( settings.twoFA ) { response.send( '2fa' ); } else { - request.session.loggedIn = true; + request.session.loggedInAdmin = true; response.send( 'ok' ); } } else { @@ -28,13 +28,18 @@ module.exports = ( app, settings ) => { } } ); } ); + + app.get( '/test/login', ( request, response ) => { + request.session.loggedInAdmin = true; + response.send( 'Logged in' ); + } ); app.get( '/admin/logout', ( request, response ) => { - request.session.loggedIn = false; + request.session.loggedInAdmin = false; response.send( 'logged out' ); } ); - app.get( '/admin/getLoginStatus', ( request, response ) => { - response.send( request.session.loggedIn ); + app.get( '/api/getAuth', ( request, response ) => { + response.send( { 'admin': request.session.loggedInAdmin ? true : false, 'user': request.session.loggedInUser ? true : false } ); } ); }; \ No newline at end of file diff --git a/src/webapp/src/App.vue b/src/webapp/src/App.vue index fa7e203..d217c11 100644 --- a/src/webapp/src/App.vue +++ b/src/webapp/src/App.vue @@ -3,7 +3,8 @@ Home | Tickets | Cart | - Account + Account | + @@ -23,6 +24,7 @@ --accent-background-hover: #4380a8; --overlay-color: rgba(37, 37, 37, 0.575); --inactive-color: rgb(100, 100, 100); + --highlight-backdrop: rgb(143, 134, 192); } :root.dark { @@ -31,9 +33,10 @@ --secondary-color: black; --background-color: rgb(32, 32, 32); --accent-color: #42b983; - --hover-color: rgb(165, 165, 165); + --hover-color: rgb(83, 83, 83); --accent-background-hover: #4380a8; --inactive-color: rgb(190, 190, 190); + --highlight-backdrop: rgb(85, 63, 207); } @media ( prefers-color-scheme: dark ) { @@ -43,22 +46,38 @@ --secondary-color: black; --background-color: rgb(32, 32, 32); --accent-color: #42b983; - --hover-color: rgb(165, 165, 165); + --hover-color: rgb(83, 83, 83); --accent-background-hover: #4380a8; --inactive-color: rgb(190, 190, 190); + --highlight-backdrop: rgb(85, 63, 207); } } +::selection { + background-color: var( --highlight-backdrop ); +} + +#themeSelector { + background-color: rgba( 0, 0, 0, 0 ); + color: var( --primary-color ); + font-size: 130%; + padding: 0; + margin: 0; + border: none; + cursor: pointer; +} + html, body { width: 100%; height: 100%; margin: 0; padding: 0; - background-color: var( --background-color ); } #app { + transition: 0.5s; + background-color: var( --background-color ); font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; @@ -111,3 +130,39 @@ nav a.router-link-exact-active { 'opsz' 48 } + + diff --git a/src/webapp/src/components/initial.vue b/src/webapp/src/components/initial.vue index a0bcfad..e5f731f 100644 --- a/src/webapp/src/components/initial.vue +++ b/src/webapp/src/components/initial.vue @@ -3,7 +3,7 @@ Vue logo

Welcome to myevent!

-

Let's start the setup by entering the setup key below! You may define a setup key in the config file of myevent. See here for more instructions

+

Let's start the setup by entering the setup key below! You may define a setup key in the config file of myevent. See here for more instructions


diff --git a/src/webapp/src/router/index.js b/src/webapp/src/router/index.js index 901f5ea..3f4d695 100644 --- a/src/webapp/src/router/index.js +++ b/src/webapp/src/router/index.js @@ -22,16 +22,6 @@ const router = createRouter( { router.afterEach( ( to, from ) => { document.title = to.meta.title ? to.meta.title : 'myevent'; } ); - -let doSetup = true; - -if ( doSetup ) { - import( '@/router/setupRoutes' ).then( data => { - router.addRoute( data.default ); - router.replace( window.location.pathname ); - } ); -} - let UserAccountPages = [ 'account' ]; let authRequired = false; @@ -58,4 +48,16 @@ router.beforeEach( ( to, from ) => { } } ); +let doSetup = true; + +if ( doSetup ) { + import( '@/router/setupRoutes' ).then( data => { + router.addRoute( data.default ); + setTimeout( function () { + router.replace( window.location.pathname ); + }, 300 ); + } ); +} + + export default router; diff --git a/src/webapp/src/stores/userStore.js b/src/webapp/src/stores/userStore.js index 9566a1b..16d1d2d 100644 --- a/src/webapp/src/stores/userStore.js +++ b/src/webapp/src/stores/userStore.js @@ -1,7 +1,7 @@ import { defineStore } from "pinia"; export const useUserStore = defineStore ( 'user', { - state: () => ( { 'isUserAuth': false, 'isAdminAuth': true, 'userPermissions': {} } ), + state: () => ( { 'isUserAuth': true, 'isAdminAuth': true, 'userPermissions': {} } ), getters: { getUserAuthenticated: ( state ) => state.isUserAuth, getAdminAuthenticated: ( state ) => state.isAdminAuth, diff --git a/src/webapp/src/views/CartView.vue b/src/webapp/src/views/CartView.vue index f20ff23..ee8a5b8 100644 --- a/src/webapp/src/views/CartView.vue +++ b/src/webapp/src/views/CartView.vue @@ -40,40 +40,6 @@ text-align: justify; } - .ticket { - display: flex; - align-items: center; - justify-content: center; - text-decoration: none; - color: var( --primary-color ); - border-color: var( --primary-color ); - border-width: 1px; - height: fit-content; - border-style: solid; - padding: 10px; - transition: 0.4s; - } - - .ticket:hover { - background-color: var( --hover-color ); - transition: 0.4s; - } - - .ticket-logo { - height: 20vh; - width: auto; - margin-left: auto; - } - - .ticket-name { - margin-right: auto; - } - - .ticket-info { - margin-left: auto; - margin-right: auto - } - .tool-wrapper { display: flex; width: 100%; diff --git a/src/webapp/src/views/GuestPurchaseView.vue b/src/webapp/src/views/GuestPurchaseView.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/views/PurchaseView.vue b/src/webapp/src/views/PurchaseView.vue index 5755d96..9772914 100644 --- a/src/webapp/src/views/PurchaseView.vue +++ b/src/webapp/src/views/PurchaseView.vue @@ -1,66 +1,95 @@ @@ -69,10 +98,30 @@ export default { name: 'PurchaseView', data () { return { - settings: { 'accountRequired':true }, - isAuthenticated: false, - formData: {} + settings: { 'accountRequired': true }, + isAuthenticated: true, + tickets: {}, + backend: {}, + cartNotEmpty: false, } + }, + methods: { + loadData () { + this.cartNotEmpty = false; + let tickets = JSON.parse( sessionStorage.getItem( 'cart' ) ); + + for ( let event in tickets ) { + if ( Object.keys( tickets[ event ][ 'selectedSeats' ] ).length ) { + this.cartNotEmpty = true; + }; + } + + this.tickets = tickets; + this.backend = JSON.parse( sessionStorage.getItem( 'backend' ) ); + }, + }, + created () { + this.loadData(); } }; diff --git a/src/webapp/src/views/admin/AdminView.vue b/src/webapp/src/views/admin/AdminView.vue index af5b736..d1a8b51 100644 --- a/src/webapp/src/views/admin/AdminView.vue +++ b/src/webapp/src/views/admin/AdminView.vue @@ -10,7 +10,7 @@ Events Plugins Settings - Logout +
@@ -69,9 +69,14 @@ padding: 4% 0%; width: 100%; background-color: rgba( 0, 0, 0, 0 ); - color: white; + color: var( --secondary-color ); + cursor: pointer; + font-family: Avenir, Helvetica, Arial, sans-serif; + font-weight: bold; text-decoration: none; transition: 1s; + font-size: 100%; + border-style: none; } nav a.router-link-exact-active { @@ -106,7 +111,12 @@ }, methods: { logout () { - this.userStore.setAdminAuth( false ); + if ( confirm( 'Do you really want to log out?' ) ) { + fetch( '/admin/logout' ).then( _ => { + this.userStore.setAdminAuth( false ); + this.$router.push( '/admin/login' ); + } ); + } } } }; From 7edd663f4f705727eda18c9fda438a1a4d5af0cc Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 5 May 2023 19:23:16 +0200 Subject: [PATCH 58/73] progress on no seat plan view --- src/webapp/src/App.vue | 2 + src/webapp/src/components/noseatplan.vue | 32 ++++-- src/webapp/src/components/seatplan.vue | 40 ++++--- src/webapp/src/main.js | 2 +- src/webapp/src/router/index.js | 1 + src/webapp/src/stores/backendStore.js | 4 +- src/webapp/src/views/LoginView.vue | 10 +- src/webapp/src/views/OrderView.vue | 5 +- src/webapp/src/views/PaymentPrepareView.vue | 0 src/webapp/src/views/PurchaseView.vue | 113 ++++++++++++++----- src/webapp/src/views/SetupView.vue | 14 ++- src/webapp/src/views/TicketsDetailsView.vue | 3 +- src/webapp/src/views/TicketsOrderingView.vue | 9 +- 13 files changed, 174 insertions(+), 61 deletions(-) create mode 100644 src/webapp/src/views/PaymentPrepareView.vue diff --git a/src/webapp/src/App.vue b/src/webapp/src/App.vue index d217c11..e91a678 100644 --- a/src/webapp/src/App.vue +++ b/src/webapp/src/App.vue @@ -35,6 +35,7 @@ --accent-color: #42b983; --hover-color: rgb(83, 83, 83); --accent-background-hover: #4380a8; + --overlay-color: rgba(104, 104, 104, 0.575); --inactive-color: rgb(190, 190, 190); --highlight-backdrop: rgb(85, 63, 207); } @@ -48,6 +49,7 @@ --accent-color: #42b983; --hover-color: rgb(83, 83, 83); --accent-background-hover: #4380a8; + --overlay-color: rgba(104, 104, 104, 0.575); --inactive-color: rgb(190, 190, 190); --highlight-backdrop: rgb(85, 63, 207); } diff --git a/src/webapp/src/components/noseatplan.vue b/src/webapp/src/components/noseatplan.vue index 1fc271a..9f31621 100644 --- a/src/webapp/src/components/noseatplan.vue +++ b/src/webapp/src/components/noseatplan.vue @@ -10,7 +10,7 @@

{{ event.name }}

- {{ seating[ ticket[ 'row' ] ][ 'content' ][ ticket[ 'seat' ] ][ 'name' ] }} ({{ eventInfo[ 'ageGroups' ][ ticket[ 'categoryID' ] ][ 'name' ] }}) + {{ ticket.name }} ({{ ticket.ageGroup }}) {{ eventInfo[ 'currency' ] }} {{ ticket[ 'price' ] }} @@ -20,7 +20,7 @@

Available tickets

- {{ ticket }} + {{ ticket.name }} ({{ eventInfo[ 'categories' ][ ticket.category ][ 'name' ] }}) - Starting at {{ eventInfo.currency }} {{ eventInfo.categories[ ticket.category ][ 'price' ][ '1' ] }}
@@ -48,7 +48,7 @@ export default { }, data () { return { - tickets: {}, + tickets: { 'ticket1': { 'name': 'Ticket 1', 'id': 'ticket1', 'category': 1 }, 'ticket2': { 'name': 'Ticket 2', 'id': 'ticket2', 'category': 2 } }, eventInfo: { 'name': 'TestEvent', 'location': 'TestLocation', 'date': 'TestDate', 'RoomName': 'TestRoom', 'currency': 'CHF', 'categories': { '1': { 'price': { '1':25, '2':35 }, 'bg': 'black', 'fg': 'white', 'name': 'Category 1' }, '2': { 'price': { '1':15, '2':20 }, 'bg': 'green', 'fg': 'white', 'name': 'Category 2' } }, 'ageGroups': { '1':{ 'id': 1, 'name':'Child', 'age':'0 - 15.99' }, '2':{ 'id': 2, 'name': 'Adult', 'age': null } }, 'ageGroupCount':2, 'stage': true }, selectedSeats: {}, pricingCurrentlySelected: {}, @@ -85,8 +85,15 @@ export default { }, 500 ); } - cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] = data; - sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); + + // check if no ticket selected and prevent writing if no ticket + // selected to not show too many events + let isEmpty = sessionStorage.getItem( 'selectedTicket' ) ? false : true; + + if ( !isEmpty ) { + cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] = data; + sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); + } this.selectedSeats = cart; this.sumUp(); @@ -107,11 +114,18 @@ export default { back[ 'total' ] = price; back[ 'currency' ] = this.eventInfo.currency; - sessionStorage.setItem( 'backend', JSON.stringify( back ) ); - this.total = price; - - sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); + + + // check if no ticket selected and prevent writing if no ticket + // selected to not show too many events + let isEmpty = sessionStorage.getItem( 'selectedTicket' ) ? false : true; + + if ( !isEmpty ) { + console.log( 'writing' ); + sessionStorage.setItem( 'backend', JSON.stringify( back ) ); + sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); + } }, closePlaceNotAvailablePopup () { $( '#placeNotAvailable' ).hide( 300 ); diff --git a/src/webapp/src/components/seatplan.vue b/src/webapp/src/components/seatplan.vue index 29dbe96..124cd92 100644 --- a/src/webapp/src/components/seatplan.vue +++ b/src/webapp/src/components/seatplan.vue @@ -6,11 +6,11 @@

{{ eventInfo.location }}

Selected tickets

- +

{{ event.name }}

- +
{{ seating[ ticket[ 'row' ] ][ 'content' ][ ticket[ 'seat' ] ][ 'name' ] }} ({{ eventInfo[ 'ageGroups' ][ ticket[ 'categoryID' ] ][ 'name' ] }}){{ ticket.name }} ({{ ticket.ageGroup }}) {{ eventInfo[ 'currency' ] }} {{ ticket[ 'price' ] }}
@@ -85,7 +85,7 @@ export default { data () { return { seating: { 'r1': { 'name': 'Row 1', 'id': 'r1', 'content':{ 'S1':{ 'name': 'Seat 1', 'id': 'S1', 'available': true, 'selected': false, 'category':'1' } } }, 'r2': { 'name': 'Row 2', 'id': 'r2', 'content':{ 'S1':{ 'name': 'S1', 'id': 'S1', 'available': true, 'selected': false, 'category':'2' } } } }, - eventInfo: { 'name': 'TestEvent', 'location': 'TestLocation', 'date': 'TestDate', 'RoomName': 'TestRoom', 'currency': 'CHF', 'categories': { '1': { 'price': { '1':25, '2':35 }, 'bg': 'black', 'fg': 'white', 'name': 'Category 1' }, '2': { 'price': { '1':15, '2':20 }, 'bg': 'green', 'fg': 'white', 'name': 'Category 2' } }, 'ageGroups': { '1':{ 'id': 1, 'name':'Child', 'age':'0 - 15.99' }, '2':{ 'id': 2, 'name': 'Adult', 'age': null } }, 'ageGroupCount':2, 'stage': true }, + eventInfo: { 'name': 'TestEvent2', 'location': 'TestLocation2', 'date': 'TestDate2', 'RoomName': 'TestRoom2', 'currency': 'CHF', 'categories': { '1': { 'price': { '1':25, '2':35 }, 'bg': 'black', 'fg': 'white', 'name': 'Category 1' }, '2': { 'price': { '1':15, '2':20 }, 'bg': 'green', 'fg': 'white', 'name': 'Category 2' } }, 'ageGroups': { '1':{ 'id': 1, 'name':'Child', 'age':'0 - 15.99' }, '2':{ 'id': 2, 'name': 'Adult', 'age': null } }, 'ageGroupCount': 2, 'stage': true, 'maxTickets': 2 }, selectedSeats: {}, pricingCurrentlySelected: {}, total: 0, @@ -96,12 +96,12 @@ export default { /* This function is called whenever the data on the webpage is to be reloaded */ - + // load data from cart and set up cart if not available let cart = sessionStorage.getItem( 'cart' ) ? JSON.parse( sessionStorage.getItem( 'cart' ) ) : {}; cart[ this.ticketID ?? 'default' ] = cart[ this.ticketID ?? 'default' ] ? cart[ this.ticketID ?? 'default' ] : { 'name': this.eventInfo.name, 'date': this.eventInfo.date, 'location': this.eventInfo.location, 'currency': this.eventInfo.currency }; cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] = cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] ? cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] : {}; - + let data = cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] ? cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] : {}; let showError = false @@ -113,7 +113,7 @@ export default { delete data[ i ]; } } - + if ( showError ) { setTimeout( function () { $( '#placeNotAvailable' ).show( 200 ); @@ -121,33 +121,45 @@ export default { }, 500 ); } - cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] = data; - sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); - + // check if no ticket selected and prevent writing if no ticket + // selected to not show too many events + let isEmpty = sessionStorage.getItem( 'selectedTicket' ) ? false : true; + + if ( !isEmpty ) { + cart[ this.ticketID ?? 'default' ][ 'selectedSeats' ] = data; + sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); + } + this.selectedSeats = cart; this.sumUp(); }, sumUp () { // This function calculates the total price of the tickets for this event. let cart = sessionStorage.getItem( 'cart' ) ? JSON.parse( sessionStorage.getItem( 'cart' ) ) : {}; - + let price = 0; for ( let i in cart ) { for ( let entry in cart[ i ][ 'selectedSeats' ] ) { price += parseInt( cart[ i ][ 'selectedSeats' ][ entry ][ 'price' ] ); } } - + let back = {}; back[ 'total' ] = price; back[ 'currency' ] = this.eventInfo.currency; - sessionStorage.setItem( 'backend', JSON.stringify( back ) ); - this.total = price; - sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); + + // check if no ticket selected and prevent writing if no ticket + // selected to not show too many events + let isEmpty = sessionStorage.getItem( 'selectedTicket' ) ? false : true; + + if ( !isEmpty ) { + sessionStorage.setItem( 'backend', JSON.stringify( back ) ); + sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); + } }, closePlaceNotAvailablePopup () { $( '#placeNotAvailable' ).hide( 300 ); diff --git a/src/webapp/src/main.js b/src/webapp/src/main.js index a00d261..b33d3a8 100644 --- a/src/webapp/src/main.js +++ b/src/webapp/src/main.js @@ -23,7 +23,7 @@ if ( prod ) { } ); } ); } else { - userStore.setUserAuth( true ); + // userStore.setUserAuth( true ); app.use( router ); app.mount( '#app' ); } diff --git a/src/webapp/src/router/index.js b/src/webapp/src/router/index.js index 3f4d695..9a45eb7 100644 --- a/src/webapp/src/router/index.js +++ b/src/webapp/src/router/index.js @@ -22,6 +22,7 @@ const router = createRouter( { router.afterEach( ( to, from ) => { document.title = to.meta.title ? to.meta.title : 'myevent'; } ); + let UserAccountPages = [ 'account' ]; let authRequired = false; diff --git a/src/webapp/src/stores/backendStore.js b/src/webapp/src/stores/backendStore.js index e3575c5..962cefb 100644 --- a/src/webapp/src/stores/backendStore.js +++ b/src/webapp/src/stores/backendStore.js @@ -1,9 +1,11 @@ import { defineStore } from "pinia"; export const useBackendStore = defineStore ( 'backend', { - state: () => ( { 'visitedSetupPages': {} } ), + state: () => ( { 'visitedSetupPages': {}, 'guestPurchase': false, 'guestPurchaseAllowed': false } ), getters: { getVisitedSetupPages: ( state ) => state.visitedSetupPages, + getIsGuestPurchase: ( state ) => state.guestPurchase, + getIsGuestPurchaseAllowed: ( state ) => state.guestPurchaseAllowed, }, actions: { addVisitedSetupPages ( page, data ) { diff --git a/src/webapp/src/views/LoginView.vue b/src/webapp/src/views/LoginView.vue index 6509baf..e6eba1a 100644 --- a/src/webapp/src/views/LoginView.vue +++ b/src/webapp/src/views/LoginView.vue @@ -15,15 +15,23 @@ From 2ff4f4a09c4ed0825c431861b678f219de053876 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Mon, 8 May 2023 08:41:10 +0200 Subject: [PATCH 59/73] small changes --- src/webapp/src/components/noseatplan.vue | 5 ++--- src/webapp/src/stores/userStore.js | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/webapp/src/components/noseatplan.vue b/src/webapp/src/components/noseatplan.vue index 9f31621..ed76093 100644 --- a/src/webapp/src/components/noseatplan.vue +++ b/src/webapp/src/components/noseatplan.vue @@ -6,7 +6,7 @@

{{ eventInfo.location }}

Selected tickets

- +

{{ event.name }}

@@ -20,7 +20,7 @@

Available tickets

- {{ ticket.name }} ({{ eventInfo[ 'categories' ][ ticket.category ][ 'name' ] }}) - Starting at {{ eventInfo.currency }} {{ eventInfo.categories[ ticket.category ][ 'price' ][ '1' ] }} + {{ ticket.name }} ({{ eventInfo[ 'categories' ][ ticket.category ][ 'name' ] }}) - {{ eventInfo.currency }} {{ eventInfo.categories[ ticket.category ][ 'price' ][ '1' ] }} add Selected remove
@@ -122,7 +122,6 @@ export default { let isEmpty = sessionStorage.getItem( 'selectedTicket' ) ? false : true; if ( !isEmpty ) { - console.log( 'writing' ); sessionStorage.setItem( 'backend', JSON.stringify( back ) ); sessionStorage.setItem( 'cart', JSON.stringify( cart ) ); } diff --git a/src/webapp/src/stores/userStore.js b/src/webapp/src/stores/userStore.js index 16d1d2d..9566a1b 100644 --- a/src/webapp/src/stores/userStore.js +++ b/src/webapp/src/stores/userStore.js @@ -1,7 +1,7 @@ import { defineStore } from "pinia"; export const useUserStore = defineStore ( 'user', { - state: () => ( { 'isUserAuth': true, 'isAdminAuth': true, 'userPermissions': {} } ), + state: () => ( { 'isUserAuth': false, 'isAdminAuth': true, 'userPermissions': {} } ), getters: { getUserAuthenticated: ( state ) => state.isUserAuth, getAdminAuthenticated: ( state ) => state.isAdminAuth, From 1f6fd6859ae289cd660dc0c0ef4c96e6f2ae3fb3 Mon Sep 17 00:00:00 2001 From: janis Date: Mon, 8 May 2023 12:44:13 +0200 Subject: [PATCH 60/73] add lots of new files --- .../components/seatplan/editor/properties.vue | 0 .../src/components/seatplan/editor/window.vue | 0 .../src/components/seatplan/newSeatplan.vue | 17 +++++++++++++++++ .../seatplan/seatplanModules/seats/circular.vue | 0 .../seatplanModules/seats/rectangular.vue | 0 .../seatplanModules/seats/trapezoid.vue | 0 .../seatplan/seatplanModules/stage/stages.vue | 0 .../seatplanModules/stand/rectangular.vue | 0 8 files changed, 17 insertions(+) create mode 100644 src/webapp/src/components/seatplan/editor/properties.vue create mode 100644 src/webapp/src/components/seatplan/editor/window.vue create mode 100644 src/webapp/src/components/seatplan/newSeatplan.vue create mode 100644 src/webapp/src/components/seatplan/seatplanModules/seats/circular.vue create mode 100644 src/webapp/src/components/seatplan/seatplanModules/seats/rectangular.vue create mode 100644 src/webapp/src/components/seatplan/seatplanModules/seats/trapezoid.vue create mode 100644 src/webapp/src/components/seatplan/seatplanModules/stage/stages.vue create mode 100644 src/webapp/src/components/seatplan/seatplanModules/stand/rectangular.vue diff --git a/src/webapp/src/components/seatplan/editor/properties.vue b/src/webapp/src/components/seatplan/editor/properties.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/components/seatplan/editor/window.vue b/src/webapp/src/components/seatplan/editor/window.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/components/seatplan/newSeatplan.vue b/src/webapp/src/components/seatplan/newSeatplan.vue new file mode 100644 index 0000000..08f8181 --- /dev/null +++ b/src/webapp/src/components/seatplan/newSeatplan.vue @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/src/webapp/src/components/seatplan/seatplanModules/seats/circular.vue b/src/webapp/src/components/seatplan/seatplanModules/seats/circular.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/components/seatplan/seatplanModules/seats/rectangular.vue b/src/webapp/src/components/seatplan/seatplanModules/seats/rectangular.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/components/seatplan/seatplanModules/seats/trapezoid.vue b/src/webapp/src/components/seatplan/seatplanModules/seats/trapezoid.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/components/seatplan/seatplanModules/stage/stages.vue b/src/webapp/src/components/seatplan/seatplanModules/stage/stages.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/components/seatplan/seatplanModules/stand/rectangular.vue b/src/webapp/src/components/seatplan/seatplanModules/stand/rectangular.vue new file mode 100644 index 0000000..e69de29 From 19807f729cd8f4833e759eb7208d2fea2c8af03f Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Thu, 11 May 2023 18:00:23 +0200 Subject: [PATCH 61/73] seatplan prep + lang prep --- src/webapp/package-lock.json | 13 ++++- src/webapp/package.json | 3 +- src/webapp/public/lang/order/cart/en.json | 0 src/webapp/public/lang/order/pay/en.json | 0 src/webapp/public/lang/order/purchase/en.json | 0 .../public/lang/order/tickets/details/en.json | 0 .../public/lang/order/tickets/list/en.json | 0 .../lang/order/tickets/noseatplan/en.json | 0 .../lang/order/tickets/seatplan/en.json | 0 src/webapp/public/lang/user/account/en.json | 0 src/webapp/public/lang/user/login/en.json | 0 src/webapp/public/lang/user/signup/en.json | 0 src/webapp/src/components/noseatplan.vue | 57 ++++++++----------- .../src/components/seatplan/editor/window.vue | 57 +++++++++++++++++++ src/webapp/src/router/adminRoutes.js | 13 ++++- src/webapp/src/router/index.js | 2 +- src/webapp/src/views/admin/EventsView.vue | 10 +++- .../src/views/admin/events/EditorView.vue | 26 +++++++++ 18 files changed, 142 insertions(+), 39 deletions(-) create mode 100644 src/webapp/public/lang/order/cart/en.json create mode 100644 src/webapp/public/lang/order/pay/en.json create mode 100644 src/webapp/public/lang/order/purchase/en.json create mode 100644 src/webapp/public/lang/order/tickets/details/en.json create mode 100644 src/webapp/public/lang/order/tickets/list/en.json create mode 100644 src/webapp/public/lang/order/tickets/noseatplan/en.json create mode 100644 src/webapp/public/lang/order/tickets/seatplan/en.json create mode 100644 src/webapp/public/lang/user/account/en.json create mode 100644 src/webapp/public/lang/user/login/en.json create mode 100644 src/webapp/public/lang/user/signup/en.json create mode 100644 src/webapp/src/views/admin/events/EditorView.vue diff --git a/src/webapp/package-lock.json b/src/webapp/package-lock.json index fe4e6ff..bc9dd1a 100644 --- a/src/webapp/package-lock.json +++ b/src/webapp/package-lock.json @@ -11,7 +11,8 @@ "core-js": "^3.8.3", "pinia": "^2.0.34", "vue": "^3.2.13", - "vue-router": "^4.0.3" + "vue-router": "^4.0.3", + "vue3-draggable-resizable": "^1.6.5" }, "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", @@ -9220,6 +9221,11 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, + "node_modules/vue3-draggable-resizable": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/vue3-draggable-resizable/-/vue3-draggable-resizable-1.6.5.tgz", + "integrity": "sha512-31142E31fGNnq3HKqvmFLSsqIbhck7TyGuQWhUKrDw6DOcGAuRx4ddRjaxvT6fe7dgeKH53qAh+i0ZlWtPLl2g==" + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", @@ -16998,6 +17004,11 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, + "vue3-draggable-resizable": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/vue3-draggable-resizable/-/vue3-draggable-resizable-1.6.5.tgz", + "integrity": "sha512-31142E31fGNnq3HKqvmFLSsqIbhck7TyGuQWhUKrDw6DOcGAuRx4ddRjaxvT6fe7dgeKH53qAh+i0ZlWtPLl2g==" + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz", diff --git a/src/webapp/package.json b/src/webapp/package.json index eee77fa..3058d76 100644 --- a/src/webapp/package.json +++ b/src/webapp/package.json @@ -10,7 +10,8 @@ "core-js": "^3.8.3", "pinia": "^2.0.34", "vue": "^3.2.13", - "vue-router": "^4.0.3" + "vue-router": "^4.0.3", + "vue3-draggable-resizable": "^1.6.5" }, "devDependencies": { "@vue/cli-plugin-babel": "~5.0.0", diff --git a/src/webapp/public/lang/order/cart/en.json b/src/webapp/public/lang/order/cart/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/order/pay/en.json b/src/webapp/public/lang/order/pay/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/order/purchase/en.json b/src/webapp/public/lang/order/purchase/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/order/tickets/details/en.json b/src/webapp/public/lang/order/tickets/details/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/order/tickets/list/en.json b/src/webapp/public/lang/order/tickets/list/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/order/tickets/noseatplan/en.json b/src/webapp/public/lang/order/tickets/noseatplan/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/order/tickets/seatplan/en.json b/src/webapp/public/lang/order/tickets/seatplan/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/user/account/en.json b/src/webapp/public/lang/user/account/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/user/login/en.json b/src/webapp/public/lang/user/login/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/public/lang/user/signup/en.json b/src/webapp/public/lang/user/signup/en.json new file mode 100644 index 0000000..e69de29 diff --git a/src/webapp/src/components/noseatplan.vue b/src/webapp/src/components/noseatplan.vue index ed76093..a1d939e 100644 --- a/src/webapp/src/components/noseatplan.vue +++ b/src/webapp/src/components/noseatplan.vue @@ -17,10 +17,17 @@

Total: {{ eventInfo[ 'currency' ] }} {{ total }}

To cart
-
+

Available tickets

-
- {{ ticket.name }} ({{ eventInfo[ 'categories' ][ ticket.category ][ 'name' ] }}) - {{ eventInfo.currency }} {{ eventInfo.categories[ ticket.category ][ 'price' ][ '1' ] }} add Selected remove +
+
+ {{ eventInfo[ 'categories' ][ ticket.category ][ 'name' ] }}
+
+
+ {{ ticketOption.name }}
({{ ticketOption.age }})
{{ eventInfo.currency }} {{ eventInfo[ 'categories' ][ ticket.category ][ 'price' ][ ticketOption.id ] }} add Selected remove +
+
+
@@ -49,7 +56,7 @@ export default { data () { return { tickets: { 'ticket1': { 'name': 'Ticket 1', 'id': 'ticket1', 'category': 1 }, 'ticket2': { 'name': 'Ticket 2', 'id': 'ticket2', 'category': 2 } }, - eventInfo: { 'name': 'TestEvent', 'location': 'TestLocation', 'date': 'TestDate', 'RoomName': 'TestRoom', 'currency': 'CHF', 'categories': { '1': { 'price': { '1':25, '2':35 }, 'bg': 'black', 'fg': 'white', 'name': 'Category 1' }, '2': { 'price': { '1':15, '2':20 }, 'bg': 'green', 'fg': 'white', 'name': 'Category 2' } }, 'ageGroups': { '1':{ 'id': 1, 'name':'Child', 'age':'0 - 15.99' }, '2':{ 'id': 2, 'name': 'Adult', 'age': null } }, 'ageGroupCount':2, 'stage': true }, + eventInfo: { 'name': 'TestEvent', 'location': 'TestLocation', 'date': 'TestDate', 'RoomName': 'TestRoom', 'currency': 'CHF', 'categories': { '1': { 'price': { '1':25, '2':35 }, 'bg': 'black', 'fg': 'white', 'name': 'Category 1' }, '2': { 'price': { '1':15, '2':20 }, 'bg': 'green', 'fg': 'white', 'name': 'Category 2' } }, 'ageGroups': { '1':{ 'id': 1, 'name':'Child', 'age':'0 - 15.99 years' }, '2':{ 'id': 2, 'name': 'Adult', 'age': null } }, 'ageGroupCount':2, 'stage': true }, selectedSeats: {}, pricingCurrentlySelected: {}, total: 0, @@ -228,7 +235,7 @@ export default { overflow: scroll; } - .seatingPlan { + .noseatplan { grid-area: main; display: flex; flex-direction: column; @@ -237,13 +244,21 @@ export default { overflow: scroll; } - .active { - cursor: pointer; + .wrapper { + width: 30%; + display: flex; + flex-direction: column; + align-items: justify; + justify-content: justify; + text-align: justify; } - .occupied { - background-color: var( --hover-color ); - padding: 0.4%; + .ticket { + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } .overlay { @@ -299,28 +314,6 @@ export default { margin-top: 3vh; } - .option { - list-style: none; - padding: 7px 15px; - border-radius: 10px; - border-color: var( --primary-color ); - border-style: solid; - border-width: 1px; - margin: 3px 0px; - cursor: pointer; - } - - .stage { - border-color: var( --primary-color ); - border-style: solid; - width: 80%; - height: 7%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - } - .button { background-color: var( --accent-background ); color: var( --secondary-color ); diff --git a/src/webapp/src/components/seatplan/editor/window.vue b/src/webapp/src/components/seatplan/editor/window.vue index e69de29..2474ae9 100644 --- a/src/webapp/src/components/seatplan/editor/window.vue +++ b/src/webapp/src/components/seatplan/editor/window.vue @@ -0,0 +1,57 @@ +