From dbb2b063eca345c4dffd225f4ef4b62bd9303959 Mon Sep 17 00:00:00 2001 From: atorber Date: Tue, 28 Nov 2023 18:14:32 +0800 Subject: [PATCH 01/67] 0.0.1 --- .env | 5 +- .env.electron | 4 +- .env.production | 4 +- package-lock.json | 11670 ++++++++++++++++++++++++++++++++ package.json | 3 +- src/App.vue | 10 +- src/hooks/useConnectStatus.ts | 2 +- src/plugins/index.ts | 2 +- src/socket.ts | 464 ++ src/{socket.js => socket1.js} | 0 src/store/modules/user.js | 5 +- src/views/auth/login.vue | 5 +- src/vue-shim.d.ts | 5 + tsconfig.json | 4 +- vite-env.d.ts | 1 + yarn.lock | 2551 ++++--- 16 files changed, 13664 insertions(+), 1071 deletions(-) create mode 100644 package-lock.json create mode 100644 src/socket.ts rename src/{socket.js => socket1.js} (100%) create mode 100644 src/vue-shim.d.ts create mode 100644 vite-env.d.ts diff --git a/.env b/.env index c5d6c9f2..24218ca4 100755 --- a/.env +++ b/.env @@ -2,6 +2,7 @@ ENV = 'development' VITE_BASE=/ VUE_APP_PREVIEW=false -VITE_BASE_API=https://xxx.xxx.com -VITE_SOCKET_API=wss://xxx.xxx.com +# VITE_BASE_API=http://117.72.9.69:9503 +VITE_BASE_API=http://127.0.0.1:9503 +VITE_SOCKET_API=broker.emqx.io VUE_APP_WEBSITE_NAME="Lumen IM" \ No newline at end of file diff --git a/.env.electron b/.env.electron index be76da73..1fb750e6 100644 --- a/.env.electron +++ b/.env.electron @@ -2,5 +2,5 @@ ENV = 'production' VITE_BASE=./ VITE_ROUTER_MODE=hash -VITE_BASE_API=https://xxx.xxx.com -VITE_SOCKET_API=wss://xxx.xxx.com +VITE_BASE_API=http://117.72.9.69:9503 +VITE_SOCKET_API=broker.emqx.io diff --git a/.env.production b/.env.production index 1a87ceac..c77cc55f 100644 --- a/.env.production +++ b/.env.production @@ -3,5 +3,5 @@ ENV = 'production' VITE_BASE=/ VITE_ROUTER_MODE=history -VITE_BASE_API=https://xxxx.xxx.com -VITE_SOCKET_API=wss://xxxx.xxxx.com \ No newline at end of file +VITE_BASE_API=http://117.72.9.69:9503 +VITE_SOCKET_API=broker.emqx.io \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..edfa1971 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11670 @@ +{ + "name": "LumenIM", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "LumenIM", + "version": "0.0.0", + "dependencies": { + "@highlightjs/vue-plugin": "^2.1.0", + "@kangc/v-md-editor": "^2.3.18", + "@vueup/vue-quill": "^1.2.0", + "axios": "^1.6.2", + "highlight.js": "^11.5.0", + "js-audio-recorder": "^1.0.7", + "paho-mqtt": "^1.1.0", + "pinia": "^2.1.7", + "pinia-plugin-persistedstate": "^3.2.0", + "quill": "^1.3.7", + "quill-image-uploader": "^1.3.0", + "quill-mention": "^3.2.0", + "vue": "^3.3.8", + "vue-cropper": "^1.1.1", + "vue-router": "^4.2.5", + "vue-virtual-scroll-list": "^2.3.5", + "vue-virtual-scroller": "^2.0.0-beta.8", + "vuedraggable": "^4.1.0", + "xgplayer": "^3.0.4" + }, + "devDependencies": { + "@icon-park/vue-next": "^1.4.2", + "@rushstack/eslint-patch": "^1.3.3", + "@tsconfig/node18": "^18.2.2", + "@types/node": "^18.18.5", + "@types/vue": "^2.0.0", + "@vitejs/plugin-vue": "^4.4.0", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "@vue/eslint-config-prettier": "^8.0.0", + "@vue/eslint-config-typescript": "^12.0.0", + "@vue/tsconfig": "^0.4.0", + "concurrently": "^7.3.0", + "cross-env": "^7.0.3", + "electron": "^19.1.9", + "electron-builder": "^23.6.0", + "eslint": "^8.49.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-vue": "^9.17.0", + "less": "^4.1.2", + "less-loader": "^10.2.0", + "naive-ui": "^2.35.0", + "npm-run-all2": "^6.1.1", + "prettier": "^3.1.0", + "typescript": "~5.2.0", + "vite": "^4.5.0", + "vite-plugin-compression": "^0.5.1", + "vue-tsc": "^1.8.19", + "wait-on": "^6.0.1" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz", + "integrity": "sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", + "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", + "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==" + }, + "node_modules/@css-render/plugin-bem": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.12.tgz", + "integrity": "sha512-Lq2jSOZn+wYQtsyaFj6QRz2EzAnd3iW5fZeHO1WSXQdVYwvwGX0ZiH3X2JQgtgYLT1yeGtrwrqJdNdMEUD2xTw==", + "dev": true, + "peerDependencies": { + "css-render": "~0.15.12" + } + }, + "node_modules/@css-render/vue3-ssr": { + "version": "0.15.12", + "resolved": "https://registry.npmmirror.com/@css-render/vue3-ssr/-/vue3-ssr-0.15.12.tgz", + "integrity": "sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==", + "dev": true, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmmirror.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/@electron/get": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/@electron/get/-/get-1.14.1.tgz", + "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@electron/universal/-/universal-1.2.1.tgz", + "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", + "dev": true, + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/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/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "dev": true + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.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/@highlightjs/vue-plugin": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@highlightjs/vue-plugin/-/vue-plugin-2.1.0.tgz", + "integrity": "sha512-E+bmk4ncca+hBEYRV2a+1aIzIV0VSY/e5ArjpuSN9IO7wBJrzUE2u4ESCwrbQD7sAy+jWQjkV5qCCWgc+pu7CQ==", + "peerDependencies": { + "highlight.js": "^11.0.1", + "vue": "^3" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@icon-park/vue-next": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@icon-park/vue-next/-/vue-next-1.4.2.tgz", + "integrity": "sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ==", + "dev": true, + "engines": { + "node": ">= 8.0.0", + "npm": ">= 5.0.0" + }, + "peerDependencies": { + "vue": "3.x" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@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.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.2", + "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "dev": true + }, + "node_modules/@kangc/v-md-editor": { + "version": "2.3.18", + "resolved": "https://registry.npmjs.org/@kangc/v-md-editor/-/v-md-editor-2.3.18.tgz", + "integrity": "sha512-wjI9lUQs4Ktn3gYru3C1hauOuOo2na5cF4ycHCgBZmIk08RjQVNbHO169yqkt9PMj6Djnl8W6ZknCBhTQfFbzQ==", + "dependencies": { + "@babel/runtime": "^7.14.0", + "@vuepress/markdown": "^1.8.2", + "codemirror": "^5.61.1", + "copy-to-clipboard": "^3.3.1", + "highlight.js": "^10.7.2", + "insert-text-at-cursor": "^0.3.0", + "katex": "^0.13.11", + "markdown-it": "^12.3.2", + "markdown-it-attrs": "^4.0.0", + "markdown-it-container": "^3.0.0", + "mermaid": "^10.6.1", + "prismjs": "^1.23.0", + "resize-observer-polyfill": "^1.5.1", + "vant": "^3.1.3", + "xss": "^1.0.9" + }, + "peerDependencies": { + "@vue/compiler-sfc": "^3.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@kangc/v-md-editor/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==", + "engines": { + "node": "*" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/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/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@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.scandir/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@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/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pkgr/utils/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgr/utils/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "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/@pkgr/utils/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pkgr/utils/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@pkgr/utils/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@pkgr/utils/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/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/@pkgr/utils/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz", + "integrity": "sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==", + "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.0", + "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "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/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsconfig/node18": { + "version": "18.2.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", + "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==", + "dev": true + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", + "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==" + }, + "node_modules/@types/d3-time": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.44.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.6.tgz", + "integrity": "sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw==", + "dev": true, + "peer": 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, + "peer": 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, + "peer": true + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", + "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", + "dev": true + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", + "dev": true + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "dev": true, + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, + "node_modules/@types/node": { + "version": "18.18.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz", + "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "node_modules/@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/@types/verror": { + "version": "1.10.6", + "resolved": "https://registry.npmmirror.com/@types/verror/-/verror-1.10.6.tgz", + "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", + "dev": true, + "optional": true + }, + "node_modules/@types/vue": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@types/vue/-/vue-2.0.0.tgz", + "integrity": "sha512-WDElkBv/o4lVwu6wYHB06AXs4Xo2fwDjJUpvPRc1QQdzkUSiGFjrYuSCy8raxLE5FObgKq8ND7R5gSZTFLK60w==", + "deprecated": "This is a stub types definition for vuejs (https://github.com/vuejs/vue). vuejs provides its own type definitions, so you don't need @types/vue installed!", + "dev": true, + "dependencies": { + "vue": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz", + "integrity": "sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/type-utils": "6.8.0", + "@typescript-eslint/utils": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.8.0.tgz", + "integrity": "sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/typescript-estree": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz", + "integrity": "sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz", + "integrity": "sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.8.0", + "@typescript-eslint/utils": "6.8.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.8.0.tgz", + "integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz", + "integrity": "sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/visitor-keys": "6.8.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/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/@typescript-eslint/typescript-estree/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "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/@typescript-eslint/typescript-estree/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/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/@typescript-eslint/typescript-estree/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.8.0.tgz", + "integrity": "sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.8.0", + "@typescript-eslint/types": "6.8.0", + "@typescript-eslint/typescript-estree": "6.8.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz", + "integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.8.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vant/icons": { + "version": "1.8.0", + "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz", + "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==" + }, + "node_modules/@vant/popperjs": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.1.0.tgz", + "integrity": "sha512-8MD1gz146awV/uPxYjz4pet22f7a9YVKqk7T+gFkWFwT9mEcrIUEg/xPrdOnWKLP9puXyYtm7oVfSDSefZ/p/w==", + "dependencies": { + "@popperjs/core": "^2.9.2" + } + }, + "node_modules/@vant/use": { + "version": "1.3.6", + "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.3.6.tgz", + "integrity": "sha512-3z+nywPaV2F5BdJO7RQxWlgfzJeEOmViD2yHMb7Tg+R4NR/7iQskqW8v2Cnv9FWSJgTOSHlcr7UzeLpiTAP4HA==" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz", + "integrity": "sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "1.10.10", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.10.10.tgz", + "integrity": "sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.10.10" + } + }, + "node_modules/@volar/source-map": { + "version": "1.10.10", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.10.10.tgz", + "integrity": "sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.10.10", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.10.10.tgz", + "integrity": "sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.10.10", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz", + "integrity": "sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==", + "dev": true + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz", + "integrity": "sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "@vue/babel-helper-vue-transform-on": "^1.1.5", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.9.tgz", + "integrity": "sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==", + "dependencies": { + "@babel/parser": "^7.23.3", + "@vue/shared": "3.3.9", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.9.tgz", + "integrity": "sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg==", + "dependencies": { + "@vue/compiler-core": "3.3.9", + "@vue/shared": "3.3.9" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.9.tgz", + "integrity": "sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A==", + "dependencies": { + "@babel/parser": "^7.23.3", + "@vue/compiler-core": "3.3.9", + "@vue/compiler-dom": "3.3.9", + "@vue/compiler-ssr": "3.3.9", + "@vue/reactivity-transform": "3.3.9", + "@vue/shared": "3.3.9", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.31", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.9.tgz", + "integrity": "sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g==", + "dependencies": { + "@vue/compiler-dom": "3.3.9", + "@vue/shared": "3.3.9" + } + }, + "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/eslint-config-prettier": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz", + "integrity": "sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/eslint-config-prettier/node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz", + "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", + "vue-eslint-parser": "^9.3.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "1.8.22", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.22.tgz", + "integrity": "sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.10.5", + "@volar/source-map": "~1.10.5", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.9.tgz", + "integrity": "sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw==", + "dependencies": { + "@vue/shared": "3.3.9" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.9.tgz", + "integrity": "sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg==", + "dependencies": { + "@babel/parser": "^7.23.3", + "@vue/compiler-core": "3.3.9", + "@vue/shared": "3.3.9", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.9.tgz", + "integrity": "sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w==", + "dependencies": { + "@vue/reactivity": "3.3.9", + "@vue/shared": "3.3.9" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.9.tgz", + "integrity": "sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ==", + "dependencies": { + "@vue/runtime-core": "3.3.9", + "@vue/shared": "3.3.9", + "csstype": "^3.1.2" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.9.tgz", + "integrity": "sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A==", + "dependencies": { + "@vue/compiler-ssr": "3.3.9", + "@vue/shared": "3.3.9" + }, + "peerDependencies": { + "vue": "3.3.9" + } + }, + "node_modules/@vue/shared": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.9.tgz", + "integrity": "sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.4.0.tgz", + "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", + "dev": true + }, + "node_modules/@vuepress/markdown": { + "version": "1.9.7", + "resolved": "https://registry.npmmirror.com/@vuepress/markdown/-/markdown-1.9.7.tgz", + "integrity": "sha512-DFOjYkwV6fT3xXTGdTDloeIrT1AbwJ9pwefmrp0rMgC6zOz3XUJn6qqUwcYFO5mNBWpbiFQ3JZirCtgOe+xxBA==", + "dependencies": { + "@vuepress/shared-utils": "1.9.7", + "markdown-it": "^8.4.1", + "markdown-it-anchor": "^5.0.2", + "markdown-it-chain": "^1.3.0", + "markdown-it-emoji": "^1.4.0", + "markdown-it-table-of-contents": "^0.4.0", + "prismjs": "^1.13.0" + } + }, + "node_modules/@vuepress/markdown/node_modules/markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "dependencies": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/@vuepress/shared-utils": { + "version": "1.9.7", + "resolved": "https://registry.npmmirror.com/@vuepress/shared-utils/-/shared-utils-1.9.7.tgz", + "integrity": "sha512-lIkO/eSEspXgVHjYHa9vuhN7DuaYvkfX1+TTJDiEYXIwgwqtvkTv55C+IOdgswlt0C/OXDlJaUe1rGgJJ1+FTw==", + "dependencies": { + "chalk": "^2.3.2", + "escape-html": "^1.0.3", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "gray-matter": "^4.0.1", + "hash-sum": "^1.0.2", + "semver": "^6.0.0", + "toml": "^3.0.0", + "upath": "^1.1.0" + } + }, + "node_modules/@vuepress/shared-utils/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@vuepress/shared-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==" + }, + "node_modules/@vuepress/shared-utils/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@vuepress/shared-utils/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@vueup/vue-quill": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@vueup/vue-quill/-/vue-quill-1.2.0.tgz", + "integrity": "sha512-kd5QPSHMDpycklojPXno2Kw2JSiKMYduKYQckTm1RJoVDA557MnyUXgcuuDpry4HY/Rny9nGNcK+m3AHk94wag==", + "dependencies": { + "quill": "^1.3.7", + "quill-delta": "^4.2.2" + }, + "peerDependencies": { + "vue": "^3.2.41" + } + }, + "node_modules/@vueup/vue-quill/node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + }, + "node_modules/@vueup/vue-quill/node_modules/quill-delta": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/quill-delta/-/quill-delta-4.2.2.tgz", + "integrity": "sha512-qjbn82b/yJzOjstBgkhtBjN2TNK+ZHP/BgUQO+j6bRhWQQdmj2lH6hXG7+nwwLF41Xgn//7/83lxs9n2BkTtTg==", + "dependencies": { + "fast-diff": "1.2.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + } + }, + "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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true + }, + "node_modules/7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "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, + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.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-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-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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true + }, + "node_modules/app-builder-lib": { + "version": "23.6.0", + "resolved": "https://registry.npmmirror.com/app-builder-lib/-/app-builder-lib-23.6.0.tgz", + "integrity": "sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA==", + "dev": true, + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/universal": "1.2.1", + "@malept/flatpak-bundler": "^0.4.0", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.7", + "electron-osx-sign": "^0.6.0", + "electron-publish": "23.6.0", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^4.0.10", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^3.1.2", + "read-config-file": "6.2.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.7", + "tar": "^6.1.11", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asar": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", + "deprecated": "Please use @electron/asar moving forward. There is no API change, just a package name change", + "dev": true, + "dependencies": { + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + }, + "optionalDependencies": { + "@types/glob": "^7.1.1" + } + }, + "node_modules/asar/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmmirror.com/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "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/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.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==" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "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/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmmirror.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true, + "optional": true + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "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==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, + "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/builder-util": { + "version": "23.6.0", + "resolved": "https://registry.npmmirror.com/builder-util/-/builder-util-23.6.0.tgz", + "integrity": "sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.6", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.1.1", + "resolved": "https://registry.npmmirror.com/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/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/builder-util/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/builder-util/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/builder-util/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/builder-util/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/builder-util/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/builder-util/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/builder-util/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/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-lite": { + "version": "1.0.30001565", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", + "integrity": "sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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, + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "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": "2.1.2", + "resolved": "https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/codemirror": { + "version": "5.65.3", + "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.3.tgz", + "integrity": "sha512-kCC0iwGZOVZXHEKW3NDTObvM7pTIyowjty4BUqeREROc/3I6bWbgZDA3fGDwlA+rbgRjvnRnfqs9SfXynel1AQ==" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==" + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "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==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concurrently": { + "version": "7.3.0", + "resolved": "https://registry.npmmirror.com/concurrently/-/concurrently-7.3.0.tgz", + "integrity": "sha512-IiDwm+8DOcFEInca494A8V402tNTQlJaYq78RF2rijOrKEk/AOHTxhN4U1cp7GYKYX5Q6Ymh1dLTBlzIMN0ikA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "date-fns": "^2.16.1", + "lodash": "^4.17.21", + "rxjs": "^7.0.0", + "shell-quote": "^1.7.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^17.3.1" + }, + "bin": { + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.0 || >=16.0.0" + } + }, + "node_modules/concurrently/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/concurrently/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/concurrently/node_modules/chalk/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/concurrently/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/concurrently/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/concurrently/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/concurrently/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/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js": { + "version": "3.31.0", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.31.0.tgz", + "integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==", + "hasInstallScript": true, + "peer": true + }, + "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/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "dependencies": { + "layout-base": "^1.0.0" + } + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmmirror.com/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "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/css-render": { + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.15.12.tgz", + "integrity": "sha512-eWzS66patiGkTTik+ipO9qNGZ+uNuGyTmnz6/+EJIiFg8+3yZRpnMwgFo8YdXhQRsiePzehnusrxVvugNjXzbw==", + "dev": true, + "dependencies": { + "@emotion/hash": "~0.8.0", + "csstype": "~3.0.5" + } + }, + "node_modules/css-render/node_modules/csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmmirror.com/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/cytoscape": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.27.0.tgz", + "integrity": "sha512-pPZJilfX9BxESwujODz5pydeGi+FBrXq1rcaB1mfhFXXFJ9GjE6CNndAk+8jPzoXGD+16LtSS4xlYEIUiW4Abg==", + "dependencies": { + "heap": "^0.2.6", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/d3": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz", + "integrity": "sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/d3-dsv/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", + "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre-d3-es": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz", + "integrity": "sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==", + "dependencies": { + "d3": "^7.8.2", + "lodash-es": "^4.17.21" + } + }, + "node_modules/danmu.js": { + "version": "1.1.8", + "resolved": "https://registry.npmmirror.com/danmu.js/-/danmu.js-1.1.8.tgz", + "integrity": "sha512-GIFSHqJ+HFTGLLaL2BHMPBaOuPY1bWPwC0Pvi/V06uMIoxNTyEGxMuoO2SzNHsDvKC/r252zR9T/Gwx93AaKfw==", + "dependencies": { + "event-emitter": "^0.3.5" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/date-fns-tz": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.0.tgz", + "integrity": "sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==", + "dev": true, + "peerDependencies": { + "date-fns": ">=2.0.0" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/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/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delaunator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dependencies": { + "robust-predicates": "^3.0.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "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, + "optional": true + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "dependencies": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "bin": { + "dircompare": "src/cli/dircompare.js" + } + }, + "node_modules/dir-compare/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dependencies": { + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dmg-builder": { + "version": "23.6.0", + "resolved": "https://registry.npmmirror.com/dmg-builder/-/dmg-builder-23.6.0.tgz", + "integrity": "sha512-jFZvY1JohyHarIAlTbfQOk+HnceGjjAdFjVn3n8xlDWKsYNqbO4muca6qXEZTfGXeQMG7TYim6CeS5XKSfSsGA==", + "dev": true, + "dependencies": { + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "fs-extra": "^10.0.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/dmg-builder/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dmg-builder/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dompurify": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz", + "integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==" + }, + "node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "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/downloadjs": { + "version": "1.4.7", + "resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz", + "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmmirror.com/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "19.1.9", + "resolved": "https://registry.npmmirror.com/electron/-/electron-19.1.9.tgz", + "integrity": "sha512-XT5LkTzIHB+ZtD3dTmNnKjVBWrDWReCKt9G1uAFLz6uJMEVcIUiYO+fph5pLXETiBw/QZBx8egduMEfIccLx+g==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^1.14.1", + "@types/node": "^16.11.26", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/electron-builder": { + "version": "23.6.0", + "resolved": "https://registry.npmmirror.com/electron-builder/-/electron-builder-23.6.0.tgz", + "integrity": "sha512-y8D4zO+HXGCNxFBV/JlyhFnoQ0Y0K7/sFH+XwIbj47pqaW8S6PGYQbjoObolKBR1ddQFPt4rwp4CnwMJrW3HAw==", + "dev": true, + "dependencies": { + "@types/yargs": "^17.0.1", + "app-builder-lib": "23.6.0", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", + "dmg-builder": "23.6.0", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.2.0", + "simple-update-notifier": "^1.0.7", + "yargs": "^17.5.1" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder/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/electron-builder/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/electron-builder/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/electron-builder/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/electron-builder/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/electron-builder/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/electron-osx-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", + "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", + "deprecated": "Please use @electron/osx-sign moving forward. Be aware the API is slightly different", + "dev": true, + "dependencies": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-osx-sign/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/electron-osx-sign/node_modules/isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "dependencies": { + "buffer-alloc": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/electron-osx-sign/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/electron-publish": { + "version": "23.6.0", + "resolved": "https://registry.npmmirror.com/electron-publish/-/electron-publish-23.6.0.tgz", + "integrity": "sha512-jPj3y+eIZQJF/+t5SLvsI5eS4mazCbNYqatv5JihbqOstIM13k0d1Z3vAWntvtt13Itl61SO6seicWdioOU5dg==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "23.6.0", + "builder-util-runtime": "9.1.1", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/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/electron-publish/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/electron-publish/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/electron-publish/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/electron-publish/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/electron-publish/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-publish/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/electron-to-chromium": { + "version": "1.4.594", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz", + "integrity": "sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==", + "dev": true + }, + "node_modules/electron/node_modules/@types/node": { + "version": "16.11.45", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-16.11.45.tgz", + "integrity": "sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ==", + "dev": true + }, + "node_modules/elkjs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz", + "integrity": "sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==" + }, + "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/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, + "optional": 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, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/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, + "peer": true + }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "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==" + }, + "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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz", + "integrity": "sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.3.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/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/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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, + "peer": 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.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "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, + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evtd": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/evtd/-/evtd-0.2.4.tgz", + "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==", + "dev": true + }, + "node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/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/extract-zip/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/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "optional": 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-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + }, + "node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/flat-cache/node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "10.0.1", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/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/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "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.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "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.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==" + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/globby": { + "version": "9.2.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.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==", + "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==", + "dependencies": { + "get-intrinsic": "^1.1.1" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==" + }, + "node_modules/highlight.js": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "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, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.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, + "optional": true + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "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==", + "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==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "optional": true + }, + "node_modules/insert-text-at-cursor": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/insert-text-at-cursor/-/insert-text-at-cursor-0.3.0.tgz", + "integrity": "sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ==" + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/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/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmmirror.com/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/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/jake/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/jake/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/jake/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/jake/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/jake/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/javascript-stringify": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz", + "integrity": "sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==" + }, + "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, + "peer": 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, + "peer": 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, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmmirror.com/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-audio-recorder": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/js-audio-recorder/-/js-audio-recorder-1.0.7.tgz", + "integrity": "sha512-JiDODCElVHGrFyjGYwYyNi7zCbKk9va9C77w+zCPMmi4C6ix7zsX2h3ddHugmo4dOTOTCym9++b/wVW9nC0IaA==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "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, + "peer": 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/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "optional": 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/katex": { + "version": "0.13.24", + "resolved": "https://registry.npmmirror.com/katex/-/katex-0.13.24.tgz", + "integrity": "sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==", + "dependencies": { + "commander": "^8.0.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==" + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true + }, + "node_modules/less": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmmirror.com/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "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, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "peerDependencies": { + "markdown-it": "*" + } + }, + "node_modules/markdown-it-attrs": { + "version": "4.1.3", + "resolved": "https://registry.npmmirror.com/markdown-it-attrs/-/markdown-it-attrs-4.1.3.tgz", + "integrity": "sha512-d5yg/lzQV2KFI/4LPsZQB3uxQrf0/l2/RnMPCPm4lYLOZUSmFlpPccyojnzaHkfQpAD8wBHfnfUW0aMhpKOS2g==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "markdown-it": ">= 9.0.0 < 13.0.0" + } + }, + "node_modules/markdown-it-chain": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz", + "integrity": "sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==", + "dependencies": { + "webpack-chain": "^4.9.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "markdown-it": ">=5.0.0" + } + }, + "node_modules/markdown-it-container": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/markdown-it-container/-/markdown-it-container-3.0.0.tgz", + "integrity": "sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==" + }, + "node_modules/markdown-it-emoji": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", + "integrity": "sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==" + }, + "node_modules/markdown-it-table-of-contents": { + "version": "0.4.4", + "resolved": "https://registry.npmmirror.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", + "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==", + "engines": { + "node": ">6.4.0" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + }, + "node_modules/markdown-it/node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "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==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/mermaid": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.6.1.tgz", + "integrity": "sha512-Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A==", + "dependencies": { + "@braintree/sanitize-url": "^6.0.1", + "@types/d3-scale": "^4.0.3", + "@types/d3-scale-chromatic": "^3.0.0", + "cytoscape": "^3.23.0", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.1.0", + "d3": "^7.4.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.10", + "dayjs": "^1.11.7", + "dompurify": "^3.0.5", + "elkjs": "^0.8.2", + "khroma": "^2.0.0", + "lodash-es": "^4.17.21", + "mdast-util-from-markdown": "^1.3.0", + "non-layered-tidy-tree-layout": "^2.0.2", + "stylis": "^4.1.3", + "ts-dedent": "^2.2.0", + "uuid": "^9.0.0", + "web-worker": "^1.2.0" + } + }, + "node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "optional": 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==", + "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==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "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.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mitt": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-2.1.0.tgz", + "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/naive-ui": { + "version": "2.35.0", + "resolved": "https://registry.npmjs.org/naive-ui/-/naive-ui-2.35.0.tgz", + "integrity": "sha512-PdnLpOip1LQaKs5+rXLZoPDPQkTq26TnHWeABvUA2eOQjtHxE4+TQvj0Jq/W8clM2On/7jptoGmenLt48G3Bhg==", + "dev": true, + "dependencies": { + "@css-render/plugin-bem": "^0.15.12", + "@css-render/vue3-ssr": "^0.15.12", + "@types/katex": "^0.16.2", + "@types/lodash": "^4.14.198", + "@types/lodash-es": "^4.17.9", + "async-validator": "^4.2.5", + "css-render": "^0.15.12", + "date-fns": "^2.30.0", + "date-fns-tz": "^2.0.0", + "evtd": "^0.2.4", + "highlight.js": "^11.8.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "seemly": "^0.3.6", + "treemate": "^0.3.11", + "vdirs": "^0.1.8", + "vooks": "^0.2.12", + "vueuc": "^0.4.51" + }, + "peerDependencies": { + "vue": "^3.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/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmmirror.com/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "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, + "peer": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/non-layered-tidy-tree-layout": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", + "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-conf/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all2": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.1.1.tgz", + "integrity": "sha512-lWLbkPZ5BSdXtN8lR+0rc8caKoPdymycpZksyDEC9MOBvfdwTXZ0uVhb7bMcGeXv2/BKtfQuo6Zn3zfc8rxNXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "cross-spawn": "^7.0.3", + "memorystream": "^0.3.1", + "minimatch": "^9.0.0", + "pidtree": "^0.6.0", + "read-pkg": "^8.0.0", + "shell-quote": "^1.7.3" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "npm-run-all2": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0", + "npm": ">= 8" + } + }, + "node_modules/npm-run-all2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm-run-all2/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-run-all2/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/paho-mqtt": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/paho-mqtt/-/paho-mqtt-1.1.0.tgz", + "integrity": "sha512-KPbL9KAB0ASvhSDbOrZBaccXS+/s7/LIofbPyERww8hM5Ko71GUJQ6Nmg0BWqj8phAIT8zdf/Sd/RftHU9i2HA==" + }, + "node_modules/parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "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.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinia": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", + "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia-plugin-persistedstate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz", + "integrity": "sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==", + "peerDependencies": { + "pinia": "^2.0.0" + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/plist": { + "version": "3.0.6", + "resolved": "https://registry.npmmirror.com/plist/-/plist-3.0.6.tgz", + "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "dev": true, + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.28.0", + "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.28.0.tgz", + "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==", + "engines": { + "node": ">=6" + } + }, + "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": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "optional": true + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": 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.1.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quill": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "dependencies": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + } + }, + "node_modules/quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmmirror.com/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "dependencies": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/quill-image-uploader": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/quill-image-uploader/-/quill-image-uploader-1.3.0.tgz", + "integrity": "sha512-vO43GEn93rGThje/MlotkQE9OV5nOKBZ4oKhn71L/EjrM/J2P/8iDDVd9GEwlsGsbskeJqPLopsSQ4HlVVIn6A==", + "peerDependencies": { + "quill": "^1.3.7" + } + }, + "node_modules/quill-mention": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/quill-mention/-/quill-mention-3.2.0.tgz", + "integrity": "sha512-GVARl6kiOuo/YbizaoiseJaNlhU+5yQ01YlAyk0UAINQLNezZS7G9lZB/3DveYf6rGjQ7IpHOnR0OZo8g4Dp9A==", + "dependencies": { + "quill": "^1.3.7" + } + }, + "node_modules/quill/node_modules/eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-config-file": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", + "dev": true, + "dependencies": { + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/read-config-file/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/read-config-file/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/read-pkg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", + "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^6.0.0", + "parse-json": "^7.0.0", + "type-fest": "^4.2.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/json-parse-even-better-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", + "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg/node_modules/lines-and-columns": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", + "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/parse-json/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz", + "integrity": "sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "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/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/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/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmmirror.com/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/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/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "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/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmmirror.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "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, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/section-matter/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/seemly": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/seemly/-/seemly-0.3.6.tgz", + "integrity": "sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==", + "dev": true + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-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, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-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, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-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, + "optional": true + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sortablejs": { + "version": "1.14.0", + "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz", + "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" + }, + "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==", + "dev": true, + "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-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.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/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmmirror.com/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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.npmjs.org/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.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylis": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", + "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.13", + "resolved": "https://registry.npmmirror.com/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dev": true, + "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/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/terser": { + "version": "5.16.6", + "resolved": "https://registry.npmmirror.com/terser/-/terser-5.16.6.tgz", + "integrity": "sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==", + "dev": true, + "peer": 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, + "peer": 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/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, + "peer": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "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-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/treemate": { + "version": "0.3.11", + "resolved": "https://registry.npmmirror.com/treemate/-/treemate-0.3.11.tgz", + "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==", + "dev": true + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "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/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/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/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true + }, + "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/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uvu/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/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/vant": { + "version": "3.4.8", + "resolved": "https://registry.npmmirror.com/vant/-/vant-3.4.8.tgz", + "integrity": "sha512-xPAiPdCiaZbcdbVplVh4N2lmYzDAr2UdadkUHoa9uwfHS9/dab4f8TigfCFzlfAEk53U1J6w+6qZ+whtt4T3hw==", + "dependencies": { + "@vant/icons": "^1.8.0", + "@vant/popperjs": "^1.1.0", + "@vant/use": "^1.3.6" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vdirs": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/vdirs/-/vdirs-0.1.8.tgz", + "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==", + "dev": true, + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmmirror.com/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "optional": true + }, + "node_modules/vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-compression": { + "version": "0.5.1", + "resolved": "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", + "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "debug": "^4.3.3", + "fs-extra": "^10.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-compression/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/vite-plugin-compression/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/vite-plugin-compression/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/vite-plugin-compression/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/vite-plugin-compression/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/vite-plugin-compression/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/vooks": { + "version": "0.2.12", + "resolved": "https://registry.npmmirror.com/vooks/-/vooks-0.2.12.tgz", + "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==", + "dev": true, + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.9.tgz", + "integrity": "sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w==", + "dependencies": { + "@vue/compiler-dom": "3.3.9", + "@vue/compiler-sfc": "3.3.9", + "@vue/runtime-dom": "3.3.9", + "@vue/server-renderer": "3.3.9", + "@vue/shared": "3.3.9" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-cropper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-1.1.1.tgz", + "integrity": "sha512-WsqKMpaBf9Osi1LQlE/5AKdD0nHWOy1asLXocaG8NomOWO07jiZi968+/PbMmnD0QbPJOumDQaGuGa13qys85A==" + }, + "node_modules/vue-eslint-parser": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz", + "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-observe-visibility": { + "version": "2.0.0-alpha.1", + "resolved": "https://registry.npmmirror.com/vue-observe-visibility/-/vue-observe-visibility-2.0.0-alpha.1.tgz", + "integrity": "sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-resize": { + "version": "2.0.0-alpha.1", + "resolved": "https://registry.npmmirror.com/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz", + "integrity": "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz", + "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==", + "dependencies": { + "@vue/devtools-api": "^6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz", + "integrity": "sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.22", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.22.tgz", + "integrity": "sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.10.5", + "@vue/language-core": "1.8.22", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-virtual-scroll-list": { + "version": "2.3.5", + "resolved": "https://registry.npmmirror.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-2.3.5.tgz", + "integrity": "sha512-YFK6u5yltqtAOfTBcij/KGAS2SoZvzbNIAf9qTULauPObEp53xj22tDuohrrM2vNkgoD5kejXICIUBt2Q4ZDqQ==" + }, + "node_modules/vue-virtual-scroller": { + "version": "2.0.0-beta.8", + "resolved": "https://registry.npmmirror.com/vue-virtual-scroller/-/vue-virtual-scroller-2.0.0-beta.8.tgz", + "integrity": "sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==", + "dependencies": { + "mitt": "^2.1.0", + "vue-observe-visibility": "^2.0.0-alpha.1", + "vue-resize": "^2.0.0-alpha.1" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vuedraggable": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz", + "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", + "dependencies": { + "sortablejs": "1.14.0" + }, + "peerDependencies": { + "vue": "^3.0.1" + } + }, + "node_modules/vueuc": { + "version": "0.4.51", + "resolved": "https://registry.npmmirror.com/vueuc/-/vueuc-0.4.51.tgz", + "integrity": "sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==", + "dev": true, + "dependencies": { + "@css-render/vue3-ssr": "^0.15.10", + "@juggle/resize-observer": "^3.3.1", + "css-render": "^0.15.10", + "evtd": "^0.2.4", + "seemly": "^0.3.6", + "vdirs": "^0.1.4", + "vooks": "^0.2.4" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dev": true, + "dependencies": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/wait-on/node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "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, + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/watchpack/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, + "peer": true + }, + "node_modules/web-worker": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz", + "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==" + }, + "node_modules/webpack": { + "version": "5.76.2", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.76.2.tgz", + "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==", + "dev": true, + "peer": 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-chain": { + "version": "4.12.1", + "resolved": "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-4.12.1.tgz", + "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^1.6.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, + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/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, + "peer": true + }, + "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/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==" + }, + "node_modules/xgplayer": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/xgplayer/-/xgplayer-3.0.4.tgz", + "integrity": "sha512-7BFsSIDpUkvx4XmS8+4u9ryEHm/UZ4E0mzQCI+JhJvGeGVkcx1+Xlrn4GHQOjuSnPN+l+LKs3biQTYedPhtO6w==", + "dependencies": { + "danmu.js": ">=1.1.6", + "delegate": "^3.2.0", + "downloadjs": "1.4.7", + "eventemitter3": "^4.0.7", + "xgplayer-subtitles": "3.0.4" + }, + "peerDependencies": { + "core-js": ">=3.12.1" + } + }, + "node_modules/xgplayer-subtitles": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-3.0.4.tgz", + "integrity": "sha512-KuoLpSzlM9qlIEA8VKBZLTxwkhZB5LH8LsZ59ntueccJ7LAIbsDvMSmmo1kDabInEh+koeZYzhACChT2UrFjTQ==", + "dependencies": { + "eventemitter3": "^4.0.7" + }, + "peerDependencies": { + "core-js": ">=3.12.1" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xss": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/xss/-/xss-1.0.11.tgz", + "integrity": "sha512-EimjrjThZeK2MO7WKR9mN5ZC1CSqivSl55wvUK5EtU6acf0rzEE1pN+9ZDrFXJ82BRp3JL38pPE6S4o/rpp1zQ==", + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/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==" + }, + "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": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "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.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmmirror.com/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 2e1b1978..aff2e4d9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "LumenIM", "private": true, - "version": "0.0.0", + "version": "0.0.1", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", @@ -22,6 +22,7 @@ "axios": "^1.6.2", "highlight.js": "^11.5.0", "js-audio-recorder": "^1.0.7", + "paho-mqtt": "^1.1.0", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.0", "quill": "^1.3.7", diff --git a/src/App.vue b/src/App.vue index ccef8d49..e0013bcd 100644 --- a/src/App.vue +++ b/src/App.vue @@ -48,10 +48,12 @@ const onChangeRemark = (value) => { } const init = () => { - if (!isLoggedIn()) return - - socket.connect() - userStore.loadSetting() + if (!isLoggedIn()) { + return + } else { + userStore.loadSetting() + socket.connect('App.vue init...') + } } init() diff --git a/src/hooks/useConnectStatus.ts b/src/hooks/useConnectStatus.ts index 6fce1871..d2c97b92 100644 --- a/src/hooks/useConnectStatus.ts +++ b/src/hooks/useConnectStatus.ts @@ -18,7 +18,7 @@ export const useConnectStatus = () => { const paths = ['/auth/login', '/auth/register', '/auth/forget'] if (!paths.includes(pathname) && isLoggedIn()) { - !socket.isConnect() && socket.connect() + !socket.isConnect() && socket.connect('useConnectStatus...') } }) diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 711e2dfb..4df4ee8e 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -5,4 +5,4 @@ export * from './core' export * from './md-editor' export * from './naive-ui' export * from './sms-lock' -export * from './ws-socket' +// export * from './ws-socket' diff --git a/src/socket.ts b/src/socket.ts new file mode 100644 index 00000000..7ac6a87e --- /dev/null +++ b/src/socket.ts @@ -0,0 +1,464 @@ +import { h } from 'vue' +import { useTalkStore, useUserStore, useDialogueStore } from '@/store' +import { isLoggedIn } from './utils/auth' + +import EventTalk from './event/socket/talk' +import EventKeyboard from './event/socket/keyboard' +import EventLogin from './event/socket/login' +import EventRevoke from './event/socket/revoke' + +import { NAvatar } from 'naive-ui' +import { notifyIcon } from '@/constant/default' + +import { Client } from 'paho-mqtt' // 从'mqtt-paho'库导入Client +import { v4 } from 'uuid' +import { storage } from '@/utils/storage' + +// æ ¼å¼åŒ–æ¶ˆæ¯æ•°æ® +function formatMsg(data) { + return JSON.stringify({ + reqId: v4(), + method: 'thing.event.post', + version: '1.0', + timestamp: new Date().getTime(), + events: data + }) +} + +function formatMsgToWechaty(data) { + // {"type":"text","content":"ok","quote_id":"","mention":{"all":0,"uids":[]},"receiver":{"receiver_id":"wxid_pnza7m7kf9tq12","talk_type":1}} + // {"type":"image","width":1024,"height":1024,"url":"https://im.gzydong.com/public/media/image/common/20231030/2143db60700049fd68ab44263cd8b2cc_1024x1024.png","size":10000,"receiver":{"receiver_id":"20889085065@chatroom","talk_type":2}} + const msg_type = data.type + let messageType: any = 'Text' + let messagePayload = '' + + switch (msg_type) { + case 'text': + messageType = 'Text' + messagePayload = data.content + break + case 'image': + messagePayload = data.url + messageType = 'Image' + break + case 'Emoticon': + messageType = 'Text' + break + case 'ChatHistory': + messageType = 'Text' + break + case 'Audio': + messageType = 4 + break + case 'Attachment': + messageType = 6 + break + case 'Video': + messageType = 5 + break + case 'MiniProgram': + messageType = 1 + break + case 'Url': + messageType = 1 + break + case 'Recalled': + messageType = 1 + break + case 'RedEnvelope': + messageType = 1 + break + case 'Contact': + messageType = 1 + break + case 'Location': + messageType = 1 + break + default: + messageType = 'Text' + break + } + const msg = { + reqId: v4(), + method: 'thing.command.invoke', + version: '1.0', + timestamp: new Date().getTime(), + name: 'send', + params: { + toContacts: [ + data.receiver.receiver_id + // "5550027590@chatroom", + ], + messageType: messageType, + messagePayload: messagePayload + } + } + return JSON.stringify(msg) +} + +/** + * MQTT 连接实例 + * + * 注释: 所有 mqtt æ¶ˆæ¯æŽ¥æ”¶å¤„ç†åœ¨æ­¤å®žä¾‹ä¸­å¤„ç† + */ +class Socket { + /** + * mqtt 实例 + */ + client + + endpoint + + clientID + + options + + apis + + botid + + /** + * Socket åˆå§‹åŒ–实例 + */ + constructor() { + console.debug('Socket init...') + this.endpoint = import.meta.env.VITE_SOCKET_API + console.debug('mqtt endpoint:', this.endpoint) + this.clientID = v4() + console.log('client id:', this.clientID) + this.client = new Client(this.endpoint, 8084, this.clientID) // 创建新的mqtt-paho客户端实例 + + this.options = { + useSSL: true, // 使用 SSL/TLS 进行安全连接 + timeout: 40, + userName: '', + password: '', + cleanSession: true, + onSuccess: async () => { + console.debug('MQTT连接æˆåŠŸ~') + this.subscribeToTopics() + // æ›´æ–° MQTT è¿žæŽ¥çŠ¶æ€ + useUserStore().updateSocketStatus(true) + // 载入èŠå¤©åˆ—表 + useTalkStore().loadTalkList() + }, + onFailure: (evt) => { + console.debug('MQTT连接失败~', evt) + } + } + + this.client.onConnectionLost = (responseObject) => { + console.debug('MQTT连接丢失~', responseObject) + // æ›´æ–° MQTT è¿žæŽ¥çŠ¶æ€ + useUserStore().updateSocketStatus(false) + + // 连接丢失时的回调函数 + if (responseObject.errorCode !== 0 && this.client.isConnected()) { + console.log('MQTT 连接丢失:', responseObject.errorMessage) + this.connect('断线é‡è¿ž...') // 连接到mqttæœåС噍 + } + } + + this.client.onMessageArrived = (message) => { + // æ”¶åˆ°æ¶ˆæ¯æ—¶çš„回调函数 + // console.log('接收到消æ¯:', JSON.stringify(message)); + this.onMessage(message.destinationName, message.payloadString) + } + // console.debug("MQTT开始连接~"); + // this.connect(); + } + + subscribeToTopics() { + console.debug('订阅消æ¯ä¸»é¢˜:', JSON.stringify(this.apis)) + this.client.subscribe(this.apis.eventApi) + this.client.subscribe(this.apis.commandApi) + } + + // 新增方法处ç†è¯»å–消æ¯äº‹ä»¶ + handleMessageRead(data) { + console.debug('客户端:', this.clientID) + const dialogueStore = useDialogueStore() + if (dialogueStore.index_name === `1_${data.sender_id}`) { + for (const msgid of data.ids) { + dialogueStore.updateDialogueRecord({ id: msgid, is_read: 1 }) + } + } + } + + // 连接 mqtt æœåŠ¡ + connect(from) { + console.debug('connect()请求æ¥è‡ªï¼š', from) + + const user = storage.get('user_info') + console.debug('从缓存中获å–用户信æ¯ï¼š', user) + const { hash } = user.user_info + this.botid = hash + console.debug('从用户信æ¯ä¸­èŽ·å–hash', hash) + + this.apis = { + eventApi: `thing/chatbot/${this.botid}/event/post`, + commandApi: `thing/chatbot/${this.botid}/command/invoke` + } + + console.debug('MQTT连接状æ€ï¼š', this.client.isConnected()) + + if (!this.client.isConnected() && isLoggedIn()) { + try { + console.debug('MQTT建立连接...') + this.client.connect(this.options) + console.debug('MQTT建立连接æˆåŠŸ~') + } catch (e) { + console.error('MQTT建立连接失败:', e) + } + } else { + console.debug('MQTT连接存在,ä¸éœ€è¦è¿žæŽ¥...') + } + console.debug('connect() success') + } + + // 连接 mqtt æœåŠ¡ + disconnect() { + console.debug('disconnect()...') + this.client.disconnect() + } + + isConnect() { + console.debug('isConnect()..., MQTT连接状æ€ï¼š', this.client.isConnected()) + if (!this.client.isConnected()) { + return false + } + return true + } + + /** + * 注册回调消æ¯å¤„ç†äº‹ä»¶ + */ + onMessage(topic, message) { + console.debug('topic:', topic) + console.debug('payload:', message) + const messageObj = JSON.parse(message) + + if (topic === this.apis.eventApi) { + if (messageObj.events['onMessage']) { + const rawMsg = messageObj.events.onMessage + // if(rawMsg.room) { + // rawMsg.room.id = 1029; + // } + // rawMsg.talker.id = 2055; + + const talk_type = rawMsg.room ? 2 : 1 + const user_id = rawMsg.talker.id + const receiver_id = rawMsg.room ? rawMsg.room.id : rawMsg.listener.id + const messageType = rawMsg.data.payload.type + let msg_type = 1 + switch (messageType) { + case 'Text': + msg_type = 1 + break + case 'Image': + msg_type = 3 + break + case 'Emoticon': + msg_type = 1 + break + case 'ChatHistory': + msg_type = 9 + break + case 'Audio': + msg_type = 4 + break + case 'Attachment': + msg_type = 6 + break + case 'Video': + msg_type = 5 + break + case 'MiniProgram': + msg_type = 1 + break + case 'Url': + msg_type = 1 + break + case 'Recalled': + msg_type = 1 + break + case 'RedEnvelope': + msg_type = 1 + break + case 'Contact': + msg_type = 1 + break + case 'Location': + msg_type = 1 + break + case 'GroupNote': + msg_type = 1 + break + case 'Transfer': + msg_type = 1 + break + case 'Post': + msg_type = 1 + break + case 'qrcode': + msg_type = 3 + break + case 'Unknown': + msg_type = 1 + break + default: + break + } + const newMsg = { + receiver_id, // 接收者ID + sender_id: user_id, // å‘é€è€…ID + talk_type, // 对è¯ç±»åž‹ + data: { + id: rawMsg.data.payload.timestamp || rawMsg.data.id, // 消æ¯ID + sequence: rawMsg.data.payload.timestamp, // 消æ¯åºåˆ—å· + msg_id: rawMsg.data.id, // 消æ¯ID + talk_type, // 对è¯ç±»åž‹ + msg_type, // 消æ¯ç±»åž‹ + user_id, // å‘é€è€…ID + receiver_id, // 接收者ID + nickname: rawMsg.talker.payload.name, // å‘é€è€…昵称 + avatar: + rawMsg.talker.payload.avatar || + 'https://im.gzydong.com/public/media/image/avatar/20230530/f76a14ce98ca684752df742974f5473a_200x200.png', // å‘é€è€…å¤´åƒ + is_revoke: 0, // æ˜¯å¦æ’¤å›ž + is_mark: 0, // æ˜¯å¦æ ‡è®° + is_read: 0, // 是å¦å·²è¯» + content: rawMsg.data.payload.text, // 消æ¯å†…容 + created_at: rawMsg.time, // 创建时间 + extra: { + // 扩展字段 + } + } + } + this.emit('im.message', newMsg) + this.client.publish(this.apis.eventApi, formatMsg({ 'im.message': newMsg })) + } + + if (messageObj.events['ping']) { + this.emit('pong', '') + } + + if (messageObj.events['pong']) { + console.debug('pong') + } + + // å¯¹è¯æ¶ˆæ¯äº‹ä»¶ + if (messageObj.events['im.message']) { + const data = messageObj.events['im.message'] + new EventTalk(data) + } + + if (messageObj.events['im.message.read']) { + const data = messageObj.events['im.message.read'] + console.debug('im.message.read', data) + + const dialogueStore = useDialogueStore() + + if (dialogueStore.index_name == `1_${data.sender_id}`) { + for (const msgid of data.ids) { + dialogueStore.updateDialogueRecord({ id: msgid, is_read: 1 }) + } + } + } + + // 好å‹åœ¨çº¿çжæ€äº‹ä»¶ + if (messageObj.events['im.contact.status']) { + const data = messageObj.events['im.contact.status'] + new EventLogin(data) + } + + // 好å‹é”®ç›˜è¾“入事件 + if (messageObj.events['im.message.keyboard']) { + const data = messageObj.events['im.message.keyboard'] + new EventKeyboard(data) + } + + // æ¶ˆæ¯æ’¤å›žäº‹ä»¶ + if (messageObj.events['im.message.revoke']) { + const data = messageObj.events['im.message.revoke'] + new EventRevoke(data) + } + + // 好å‹ç”³è¯·äº‹ä»¶ + + if (messageObj.events['im.contact.apply']) { + const data = messageObj.events['im.contact.apply'] + window['$notification'].create({ + title: '好å‹ç”³è¯·é€šçŸ¥', + content: data.remark, + description: `申请人: ${data.friend.nickname}`, + meta: data.friend.created_at, + avatar: () => + h(NAvatar, { + size: 'small', + round: true, + src: notifyIcon, + style: 'background-color:#fff;' + }), + duration: 3000 + }) + useUserStore().isContactApply = true + } + + // 群组申请事件 + if (messageObj.events['im.group.apply']) { + const data = messageObj.events['im.group.apply'] + console.debug('im.group.apply', data) + window['$notification'].create({ + title: '入群申请通知', + content: 'æœ‰æ–°çš„å…¥ç¾¤ç”³è¯·ï¼Œè¯·æ³¨æ„æŸ¥æ”¶', + avatar: () => + h(NAvatar, { + size: 'small', + round: true, + src: notifyIcon, + style: 'background-color:#fff;' + }), + duration: 30000 + }) + + useUserStore().isGroupApply = true + } + + // 报错事件 + if (messageObj.events.event_error) { + const data = messageObj.events['event_error'] + window['$message'].error(JSON.stringify(data)) + } + } + } + + /** + * èŠå¤©å‘逿•°æ® + * + * @param {Object} mesage + */ + send(message) { + if (this.isConnect()) { + this.client.publish(this.apis.eventApi, formatMsg({ 'im.message': message })) + this.client.publish(this.apis.commandApi, formatMsgToWechaty(message)) + } else { + this.client.end() + } + } + + /** + * æŽ¨é€æ¶ˆæ¯ + * + * @param {String} event 事件å + * @param {Object} data æ•°æ® + */ + emit(event, data) { + const rawMsg = {} + rawMsg[event] = data + const payload = formatMsg(rawMsg) + this.client.publish(this.apis.eventApi, payload) + } +} + +export default new Socket() diff --git a/src/socket.js b/src/socket1.js similarity index 100% rename from src/socket.js rename to src/socket1.js diff --git a/src/store/modules/user.js b/src/store/modules/user.js index e7eacd87..eca0c67e 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -18,7 +18,8 @@ export const useUserStore = defineStore('user', { online: false, // åœ¨çº¿çŠ¶æ€ isQiye: false, isContactApply: false, - isGroupApply: false + isGroupApply: false, + hash: '' } }, getters: {}, @@ -37,6 +38,7 @@ export const useUserStore = defineStore('user', { loadSetting() { ServeGetUserSetting().then(({ code, data }) => { + console.debug('ServeGetUserSetting', code, data) if (code == 200) { this.nickname = data.user_info.nickname this.uid = data.user_info.uid @@ -47,6 +49,7 @@ export const useUserStore = defineStore('user', { this.email = data.user_info.email || '' this.motto = data.user_info.motto this.isQiye = data.user_info.is_qiye || false + this.hash = data.user_info.hash || '' storage.set('user_info', data) } diff --git a/src/views/auth/login.vue b/src/views/auth/login.vue index e928d82a..025d4d31 100644 --- a/src/views/auth/login.vue +++ b/src/views/auth/login.vue @@ -44,8 +44,9 @@ const onLogin = () => { if (res.code == 200) { window['$message'].success('登录æˆåŠŸ') setAccessToken(res.data.access_token, res.data.expires_in) - socket.connect() userStore.loadSetting() + !socket.isConnect() && socket.connect('onLogin...') + // socket.connect() router.push(route.query.redirect || '/') } else { window['$message'].warning(res.message) @@ -91,7 +92,7 @@ const onClickAccount = (type) => { diff --git a/src/vue-shim.d.ts b/src/vue-shim.d.ts new file mode 100644 index 00000000..ac1ded79 --- /dev/null +++ b/src/vue-shim.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/tsconfig.json b/tsconfig.json index 32af3de3..94292c8a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -46,7 +46,9 @@ "src/**/*.tsx", "src/**/*.vue", "vite.config.ts", - "assets/**/*.jpg" + "assets/**/*.jpg", + "vite-env.d.ts", + "src/vue-shim.d.ts" ], "exclude": [ "node_modules", diff --git a/vite-env.d.ts b/vite-env.d.ts new file mode 100644 index 00000000..151aa685 --- /dev/null +++ b/vite-env.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7f211eaf..c40fad37 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,9 @@ # yarn lockfile v1 -"7zip-bin@~5.1.1": - version "5.1.1" - resolved "https://registry.npmmirror.com/7zip-bin/-/7zip-bin-5.1.1.tgz" - integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== - "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@ampproject/remapping@^2.2.0": @@ -20,22 +15,22 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.21.4", "@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.22.13.tgz" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.21.4", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" "@babel/compat-data@^7.22.9": version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.3.tgz" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz" integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== -"@babel/core@^7.23.3": +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.23.3": version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/core/-/core-7.23.3.tgz" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz" integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== dependencies: "@ampproject/remapping" "^2.2.0" @@ -54,26 +49,26 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.3": - version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.3.tgz" - integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== +"@babel/generator@^7.23.3", "@babel/generator@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== dependencies: - "@babel/types" "^7.23.3" + "@babel/types" "^7.23.4" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" - resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz" integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: "@babel/types" "^7.22.5" "@babel/helper-compilation-targets@^7.22.15": version "7.22.15" - resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz" integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: "@babel/compat-data" "^7.22.9" @@ -84,7 +79,7 @@ "@babel/helper-create-class-features-plugin@^7.22.15": version "7.22.15" - resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz" integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" @@ -99,12 +94,12 @@ "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": version "7.22.20" - resolved "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== "@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": version "7.23.0" - resolved "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: "@babel/template" "^7.22.15" @@ -112,28 +107,28 @@ "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" - resolved "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: "@babel/types" "^7.22.5" "@babel/helper-member-expression-to-functions@^7.22.15": version "7.23.0" - resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz" integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: "@babel/types" "^7.23.0" "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" - resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: "@babel/types" "^7.22.15" "@babel/helper-module-transforms@^7.23.3": version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: "@babel/helper-environment-visitor" "^7.22.20" @@ -144,19 +139,19 @@ "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" - resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz" integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== dependencies: "@babel/types" "^7.22.5" "@babel/helper-plugin-utils@^7.22.5": version "7.22.5" - resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== "@babel/helper-replace-supers@^7.22.9": version "7.22.20" - resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" @@ -165,81 +160,81 @@ "@babel/helper-simple-access@^7.22.5": version "7.22.5" - resolved "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: "@babel/types" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" - resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz" integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: "@babel/types" "^7.22.5" "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" - resolved "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" - resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== "@babel/helper-validator-option@^7.22.15": version "7.22.15" - resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== "@babel/helpers@^7.23.2": - version "7.23.2" - resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.2.tgz" - integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.2" - "@babel/types" "^7.23.0" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.22.20.tgz" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0", "@babel/parser@^7.23.3": - version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.3.tgz" - integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== "@babel/plugin-syntax-jsx@^7.22.5": version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz" integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript@^7.23.3": version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz" integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typescript@^7.23.3": - version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.3.tgz" - integrity sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw== + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz" + integrity sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-create-class-features-plugin" "^7.22.15" @@ -247,54 +242,54 @@ "@babel/plugin-syntax-typescript" "^7.23.3" "@babel/runtime@^7.14.0", "@babel/runtime@^7.21.0": - version "7.23.2" - resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz" + integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== dependencies: regenerator-runtime "^0.14.0" "@babel/template@^7.22.15", "@babel/template@^7.22.5": version "7.22.15" - resolved "https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: "@babel/code-frame" "^7.22.13" "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.5", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3": - version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.3.tgz" - integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== +"@babel/traverse@^7.22.5", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3": - version "7.23.3" - resolved "https://registry.npmmirror.com/@babel/types/-/types-7.23.3.tgz" - integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4": + version "7.23.4" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@braintree/sanitize-url@^6.0.1": version "6.0.4" - resolved "https://registry.npmmirror.com/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz" + resolved "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz" integrity sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A== "@css-render/plugin-bem@^0.15.12": version "0.15.12" - resolved "https://registry.npmmirror.com/@css-render/plugin-bem/-/plugin-bem-0.15.12.tgz" + resolved "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.12.tgz" integrity sha512-Lq2jSOZn+wYQtsyaFj6QRz2EzAnd3iW5fZeHO1WSXQdVYwvwGX0ZiH3X2JQgtgYLT1yeGtrwrqJdNdMEUD2xTw== "@css-render/vue3-ssr@^0.15.10", "@css-render/vue3-ssr@^0.15.12": @@ -344,132 +339,27 @@ resolved "https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - "@esbuild/darwin-arm64@0.18.20": version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== - "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + version "4.9.1" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz" + integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -481,10 +371,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== +"@eslint/js@8.52.0": + version "8.52.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz" + integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== "@hapi/hoek@^9.0.0": version "9.3.0" @@ -505,7 +395,7 @@ "@humanwhocodes/config-array@^0.11.13": version "0.11.13" - resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz" integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: "@humanwhocodes/object-schema" "^2.0.1" @@ -514,46 +404,54 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.1": version "2.0.1" - resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz" integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@icon-park/vue-next@^1.4.2": version "1.4.2" - resolved "https://registry.npmmirror.com/@icon-park/vue-next/-/vue-next-1.4.2.tgz#818c048100401620e8112beb2636f10171b195cc" + resolved "https://registry.npmjs.org/@icon-park/vue-next/-/vue-next-1.4.2.tgz" integrity sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ== "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + version "0.3.2" + resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.0" + resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" - resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.20" - resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz" integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -566,7 +464,7 @@ "@kangc/v-md-editor@^2.3.18": version "2.3.18" - resolved "https://registry.npmmirror.com/@kangc/v-md-editor/-/v-md-editor-2.3.18.tgz#e4e0aadd818a6d6f47610a533abd873d2fd6f4cf" + resolved "https://registry.npmjs.org/@kangc/v-md-editor/-/v-md-editor-2.3.18.tgz" integrity sha512-wjI9lUQs4Ktn3gYru3C1hauOuOo2na5cF4ycHCgBZmIk08RjQVNbHO169yqkt9PMj6Djnl8W6ZknCBhTQfFbzQ== dependencies: "@babel/runtime" "^7.14.0" @@ -612,25 +510,30 @@ "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -638,7 +541,7 @@ "@pkgr/utils@^2.3.1": version "2.4.2" - resolved "https://registry.npmmirror.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" + resolved "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz" integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== dependencies: cross-spawn "^7.0.3" @@ -648,10 +551,15 @@ picocolors "^1.0.0" tslib "^2.6.0" +"@popperjs/core@^2.9.2": + version "2.11.5" + resolved "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.5.tgz" + integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== + "@rushstack/eslint-patch@^1.3.3": - version "1.5.1" - resolved "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" - integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== + version "1.6.0" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz" + integrity sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA== "@sideway/address@^4.1.3": version "4.1.4" @@ -660,10 +568,10 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.1.tgz" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.0.tgz" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== "@sideway/pinpoint@^2.0.0": version "2.0.0" @@ -689,33 +597,54 @@ "@tsconfig/node18@^18.2.2": version "18.2.2" - resolved "https://registry.npmmirror.com/@tsconfig/node18/-/node18-18.2.2.tgz#81fb16ecff0d400b1cbadbf76713b50f331029ce" + resolved "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz" integrity sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw== "@types/d3-scale-chromatic@^3.0.0": - version "3.0.2" - resolved "https://registry.npmmirror.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.2.tgz" - integrity sha512-kpKNZMDT3OAX6b5ct5nS/mv6LULagnUy4DmS6yyNjclje1qVe7vbjPwY3q1TGz6+Wr2IUkgFatCzqYUl54fHag== + version "3.0.3" + resolved "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz" + integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== "@types/d3-scale@^4.0.3": version "4.0.8" - resolved "https://registry.npmmirror.com/@types/d3-scale/-/d3-scale-4.0.8.tgz" + resolved "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz" integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== dependencies: "@types/d3-time" "*" "@types/d3-time@*": version "3.0.3" - resolved "https://registry.npmmirror.com/@types/d3-time/-/d3-time-3.0.3.tgz" + resolved "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz" integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== "@types/debug@^4.0.0", "@types/debug@^4.1.6": - version "4.1.12" - resolved "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + version "4.1.7" + resolved "https://registry.npmmirror.com/@types/debug/-/debug-4.1.7.tgz" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== dependencies: "@types/ms" "*" +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@>=8.0.0": + version "8.44.6" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.6.tgz" + integrity sha512-P6bY56TVmX8y9J87jHNgQh43h6VVU+6H7oN7hgvivV81K2XY8qJZ5vqPy/HdUoVIelii2kChYVzQanlswPWVFw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + "@types/fs-extra@^9.0.11": version "9.0.13" resolved "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-9.0.13.tgz" @@ -731,91 +660,84 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/json-schema@^7.0.12": - version "7.0.15" - resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== +"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.8": + version "7.0.14" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz" + integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== "@types/katex@^0.16.2": - version "0.16.6" - resolved "https://registry.npmmirror.com/@types/katex/-/katex-0.16.6.tgz" - integrity sha512-rZYO1HInM99rAFYNwGqbYPxHZHxu2IwZYKj4bJ4oh6edVrm1UId8mmbHIZLBtG253qU6y3piag0XYe/joNnwzQ== + version "0.16.7" + resolved "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz" + integrity sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ== "@types/lodash-es@^4.17.9": - version "4.17.11" - resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.11.tgz" - integrity sha512-eCw8FYAWHt2DDl77s+AMLLzPn310LKohruumpucZI4oOFJkIgnlaJcy23OKMJxx4r9PeTF13Gv6w+jqjWQaYUg== + version "4.17.12" + resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz" + integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== dependencies: "@types/lodash" "*" "@types/lodash@*", "@types/lodash@^4.14.198": - version "4.14.201" - resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.201.tgz" - integrity sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ== + version "4.14.202" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz" + integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== "@types/mdast@^3.0.0": version "3.0.15" - resolved "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz" integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== dependencies: "@types/unist" "^2" "@types/minimatch@*": - version "5.1.2" - resolved "https://registry.npmmirror.com/@types/minimatch/-/minimatch-5.1.2.tgz" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + version "3.0.5" + resolved "https://registry.npmmirror.com/@types/minimatch/-/minimatch-3.0.5.tgz" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/ms@*": - version "0.7.34" - resolved "https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + version "0.7.31" + resolved "https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*": - version "20.9.1" - resolved "https://registry.npmmirror.com/@types/node/-/node-20.9.1.tgz" - integrity sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA== +"@types/node@*", "@types/node@^18.18.5", "@types/node@>= 14": + version "18.18.13" + resolved "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz" + integrity sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g== dependencies: undici-types "~5.26.4" "@types/node@^16.11.26": - version "16.18.61" - resolved "https://registry.npmmirror.com/@types/node/-/node-16.18.61.tgz" - integrity sha512-k0N7BqGhJoJzdh6MuQg1V1ragJiXTh8VUBAZTWjJ9cUq23SG0F0xavOwZbhiP4J3y20xd6jxKx+xNUhkMAi76Q== - -"@types/node@^18.18.5": - version "18.18.10" - resolved "https://registry.npmmirror.com/@types/node/-/node-18.18.10.tgz#4971bffdf3a43977c4c8166aa714b2c0b05b3256" - integrity sha512-luANqZxPmjTll8bduz4ACs/lNTCLuWssCyjqTY9yLdsv1xnViQp3ISKwsEWOIecO13JWUqjVdig/Vjjc09o8uA== - dependencies: - undici-types "~5.26.4" + version "16.11.45" + resolved "https://registry.npmmirror.com/@types/node/-/node-16.11.45.tgz" + integrity sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ== "@types/normalize-package-data@^2.4.1": version "2.4.4" - resolved "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/plist@^3.0.1": - version "3.0.5" - resolved "https://registry.npmmirror.com/@types/plist/-/plist-3.0.5.tgz" - integrity sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA== + version "3.0.2" + resolved "https://registry.npmmirror.com/@types/plist/-/plist-3.0.2.tgz" + integrity sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw== dependencies: "@types/node" "*" xmlbuilder ">=11.0.1" "@types/semver@^7.5.0": - version "7.5.5" - resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" - integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== + version "7.5.4" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz" + integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== "@types/unist@^2", "@types/unist@^2.0.0": version "2.0.10" - resolved "https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz" integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== "@types/verror@^1.10.3": - version "1.10.9" - resolved "https://registry.npmmirror.com/@types/verror/-/verror-1.10.9.tgz" - integrity sha512-MLx9Z+9lGzwEuW16ubGeNkpBDE84RpB/NyGgg6z2BTpWzKkGU451cAY3UkUzZEp72RHF585oJ3V8JVNqIplcAQ== + version "1.10.6" + resolved "https://registry.npmmirror.com/@types/verror/-/verror-1.10.6.tgz" + integrity sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ== "@types/vue@^2.0.0": version "2.0.0" @@ -825,27 +747,27 @@ vue "*" "@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + version "21.0.0" + resolved "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.1": - version "17.0.31" - resolved "https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.31.tgz" - integrity sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg== + version "17.0.10" + resolved "https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.10.tgz" + integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6.7.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz#52aae65174ff526576351f9ccd41cea01001463f" - integrity sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w== + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz" + integrity sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.11.0" - "@typescript-eslint/type-utils" "6.11.0" - "@typescript-eslint/utils" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/scope-manager" "6.8.0" + "@typescript-eslint/type-utils" "6.8.0" + "@typescript-eslint/utils" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -853,77 +775,77 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.7.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.11.0.tgz#9640d9595d905f3be4f278bf515130e6129b202e" - integrity sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ== +"@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha", "@typescript-eslint/parser@^6.7.0": + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.8.0.tgz" + integrity sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg== dependencies: - "@typescript-eslint/scope-manager" "6.11.0" - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/typescript-estree" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/scope-manager" "6.8.0" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/typescript-estree" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.11.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz#621f603537c89f4d105733d949aa4d55eee5cea8" - integrity sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A== +"@typescript-eslint/scope-manager@6.8.0": + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz" + integrity sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g== dependencies: - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" -"@typescript-eslint/type-utils@6.11.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz#d0b8b1ab6c26b974dbf91de1ebc5b11fea24e0d1" - integrity sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA== +"@typescript-eslint/type-utils@6.8.0": + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz" + integrity sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g== dependencies: - "@typescript-eslint/typescript-estree" "6.11.0" - "@typescript-eslint/utils" "6.11.0" + "@typescript-eslint/typescript-estree" "6.8.0" + "@typescript-eslint/utils" "6.8.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.11.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.11.0.tgz#8ad3aa000cbf4bdc4dcceed96e9b577f15e0bf53" - integrity sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA== +"@typescript-eslint/types@6.8.0": + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.8.0.tgz" + integrity sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ== -"@typescript-eslint/typescript-estree@6.11.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz#7b52c12a623bf7f8ec7f8a79901b9f98eb5c7990" - integrity sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ== +"@typescript-eslint/typescript-estree@6.8.0": + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz" + integrity sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg== dependencies: - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/visitor-keys" "6.8.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.11.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.11.0.tgz#11374f59ef4cea50857b1303477c08aafa2ca604" - integrity sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g== +"@typescript-eslint/utils@6.8.0": + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.8.0.tgz" + integrity sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.11.0" - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/typescript-estree" "6.11.0" + "@typescript-eslint/scope-manager" "6.8.0" + "@typescript-eslint/types" "6.8.0" + "@typescript-eslint/typescript-estree" "6.8.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.11.0": - version "6.11.0" - resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz#d991538788923f92ec40d44389e7075b359f3458" - integrity sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ== +"@typescript-eslint/visitor-keys@6.8.0": + version "6.8.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz" + integrity sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg== dependencies: - "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/types" "6.8.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== "@vant/icons@^1.8.0": @@ -931,19 +853,21 @@ resolved "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz" integrity sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg== -"@vant/popperjs@^1.2.1": - version "1.3.0" - resolved "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz" - integrity sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw== +"@vant/popperjs@^1.1.0": + version "1.1.0" + resolved "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.1.0.tgz" + integrity sha512-8MD1gz146awV/uPxYjz4pet22f7a9YVKqk7T+gFkWFwT9mEcrIUEg/xPrdOnWKLP9puXyYtm7oVfSDSefZ/p/w== + dependencies: + "@popperjs/core" "^2.9.2" -"@vant/use@^1.4.2": - version "1.6.0" - resolved "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz" - integrity sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA== +"@vant/use@^1.3.6": + version "1.3.6" + resolved "https://registry.npmmirror.com/@vant/use/-/use-1.3.6.tgz" + integrity sha512-3z+nywPaV2F5BdJO7RQxWlgfzJeEOmViD2yHMb7Tg+R4NR/7iQskqW8v2Cnv9FWSJgTOSHlcr7UzeLpiTAP4HA== "@vitejs/plugin-vue-jsx@^3.0.2": version "3.1.0" - resolved "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz#9953fd9456539e1f0f253bf0fcd1289e66c67cd1" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz" integrity sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA== dependencies: "@babel/core" "^7.23.3" @@ -952,26 +876,26 @@ "@vitejs/plugin-vue@^4.4.0": version "4.5.0" - resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz#b4569fcb1faac054eba4f5efc1aaf4d39f4379e5" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz" integrity sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ== -"@volar/language-core@1.10.10", "@volar/language-core@~1.10.5": +"@volar/language-core@~1.10.5", "@volar/language-core@1.10.10": version "1.10.10" - resolved "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.10.10.tgz" + resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-1.10.10.tgz" integrity sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw== dependencies: "@volar/source-map" "1.10.10" -"@volar/source-map@1.10.10", "@volar/source-map@~1.10.5": +"@volar/source-map@~1.10.5", "@volar/source-map@1.10.10": version "1.10.10" - resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.10.10.tgz" + resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-1.10.10.tgz" integrity sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg== dependencies: muggle-string "^0.3.1" "@volar/typescript@~1.10.5": version "1.10.10" - resolved "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.10.10.tgz" + resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-1.10.10.tgz" integrity sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A== dependencies: "@volar/language-core" "1.10.10" @@ -979,12 +903,12 @@ "@vue/babel-helper-vue-transform-on@^1.1.5": version "1.1.5" - resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz" + resolved "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz" integrity sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w== "@vue/babel-plugin-jsx@^1.1.5": version "1.1.5" - resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz" + resolved "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz" integrity sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g== dependencies: "@babel/helper-module-imports" "^7.22.5" @@ -997,56 +921,56 @@ html-tags "^3.3.1" svg-tags "^1.0.0" -"@vue/compiler-core@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz" - integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g== +"@vue/compiler-core@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.9.tgz" + integrity sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ== dependencies: - "@babel/parser" "^7.23.0" - "@vue/shared" "3.3.8" + "@babel/parser" "^7.23.3" + "@vue/shared" "3.3.9" estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-dom@3.3.8", "@vue/compiler-dom@^3.3.0": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz" - integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ== - dependencies: - "@vue/compiler-core" "3.3.8" - "@vue/shared" "3.3.8" - -"@vue/compiler-sfc@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz" - integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA== - dependencies: - "@babel/parser" "^7.23.0" - "@vue/compiler-core" "3.3.8" - "@vue/compiler-dom" "3.3.8" - "@vue/compiler-ssr" "3.3.8" - "@vue/reactivity-transform" "3.3.8" - "@vue/shared" "3.3.8" +"@vue/compiler-dom@^3.3.0", "@vue/compiler-dom@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.9.tgz" + integrity sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg== + dependencies: + "@vue/compiler-core" "3.3.9" + "@vue/shared" "3.3.9" + +"@vue/compiler-sfc@^3.0.0", "@vue/compiler-sfc@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.9.tgz" + integrity sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A== + dependencies: + "@babel/parser" "^7.23.3" + "@vue/compiler-core" "3.3.9" + "@vue/compiler-dom" "3.3.9" + "@vue/compiler-ssr" "3.3.9" + "@vue/reactivity-transform" "3.3.9" + "@vue/shared" "3.3.9" estree-walker "^2.0.2" magic-string "^0.30.5" postcss "^8.4.31" source-map-js "^1.0.2" -"@vue/compiler-ssr@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz" - integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w== +"@vue/compiler-ssr@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.9.tgz" + integrity sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g== dependencies: - "@vue/compiler-dom" "3.3.8" - "@vue/shared" "3.3.8" + "@vue/compiler-dom" "3.3.9" + "@vue/shared" "3.3.9" "@vue/devtools-api@^6.5.0": - version "6.5.1" - resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz" - integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== + version "6.5.0" + resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz" + integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== "@vue/eslint-config-prettier@^8.0.0": version "8.0.0" - resolved "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz#de5cb77ed483b43683d17a788808a0fa4e7bd07e" + resolved "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz" integrity sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg== dependencies: eslint-config-prettier "^8.8.0" @@ -1054,7 +978,7 @@ "@vue/eslint-config-typescript@^12.0.0": version "12.0.0" - resolved "https://registry.npmmirror.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#0ce22d97af5e4155f3f2e7b21a48cfde8a6f3365" + resolved "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz" integrity sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg== dependencies: "@typescript-eslint/eslint-plugin" "^6.7.0" @@ -1063,7 +987,7 @@ "@vue/language-core@1.8.22": version "1.8.22" - resolved "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.22.tgz" + resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.22.tgz" integrity sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw== dependencies: "@volar/language-core" "~1.10.5" @@ -1075,53 +999,53 @@ muggle-string "^0.3.1" vue-template-compiler "^2.7.14" -"@vue/reactivity-transform@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz" - integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw== +"@vue/reactivity-transform@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.9.tgz" + integrity sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg== dependencies: - "@babel/parser" "^7.23.0" - "@vue/compiler-core" "3.3.8" - "@vue/shared" "3.3.8" + "@babel/parser" "^7.23.3" + "@vue/compiler-core" "3.3.9" + "@vue/shared" "3.3.9" estree-walker "^2.0.2" magic-string "^0.30.5" -"@vue/reactivity@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.8.tgz" - integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw== +"@vue/reactivity@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.9.tgz" + integrity sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw== dependencies: - "@vue/shared" "3.3.8" + "@vue/shared" "3.3.9" -"@vue/runtime-core@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz" - integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw== +"@vue/runtime-core@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.9.tgz" + integrity sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w== dependencies: - "@vue/reactivity" "3.3.8" - "@vue/shared" "3.3.8" + "@vue/reactivity" "3.3.9" + "@vue/shared" "3.3.9" -"@vue/runtime-dom@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz" - integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA== +"@vue/runtime-dom@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.9.tgz" + integrity sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ== dependencies: - "@vue/runtime-core" "3.3.8" - "@vue/shared" "3.3.8" + "@vue/runtime-core" "3.3.9" + "@vue/shared" "3.3.9" csstype "^3.1.2" -"@vue/server-renderer@3.3.8": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz" - integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg== +"@vue/server-renderer@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.9.tgz" + integrity sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A== dependencies: - "@vue/compiler-ssr" "3.3.8" - "@vue/shared" "3.3.8" + "@vue/compiler-ssr" "3.3.9" + "@vue/shared" "3.3.9" -"@vue/shared@3.3.8", "@vue/shared@^3.3.0": - version "3.3.8" - resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.8.tgz" - integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw== +"@vue/shared@^3.3.0", "@vue/shared@3.3.9": + version "3.3.9" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.9.tgz" + integrity sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA== "@vue/tsconfig@^0.4.0": version "0.4.0" @@ -1129,11 +1053,11 @@ integrity sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg== "@vuepress/markdown@^1.8.2": - version "1.9.10" - resolved "https://registry.npmmirror.com/@vuepress/markdown/-/markdown-1.9.10.tgz" - integrity sha512-sXTLjeZzH8SQuAL5AEH0hhsMljjNJbzWbBvzaj5yQCCdf+3sp/dJ0kwnBSnQjFPPnzPg5t3tLKGUYHyW0KiKzA== + version "1.9.7" + resolved "https://registry.npmmirror.com/@vuepress/markdown/-/markdown-1.9.7.tgz" + integrity sha512-DFOjYkwV6fT3xXTGdTDloeIrT1AbwJ9pwefmrp0rMgC6zOz3XUJn6qqUwcYFO5mNBWpbiFQ3JZirCtgOe+xxBA== dependencies: - "@vuepress/shared-utils" "1.9.10" + "@vuepress/shared-utils" "1.9.7" markdown-it "^8.4.1" markdown-it-anchor "^5.0.2" markdown-it-chain "^1.3.0" @@ -1141,10 +1065,10 @@ markdown-it-table-of-contents "^0.4.0" prismjs "^1.13.0" -"@vuepress/shared-utils@1.9.10": - version "1.9.10" - resolved "https://registry.npmmirror.com/@vuepress/shared-utils/-/shared-utils-1.9.10.tgz" - integrity sha512-M9A3DocPih+V8dKK2Zg9FJQ/f3JZrYsdaM/vQ9F48l8bPlzxw5NvqXIYMK4kKcGEyerQNTWCudoCpLL5uiU0hg== +"@vuepress/shared-utils@1.9.7": + version "1.9.7" + resolved "https://registry.npmmirror.com/@vuepress/shared-utils/-/shared-utils-1.9.7.tgz" + integrity sha512-lIkO/eSEspXgVHjYHa9vuhN7DuaYvkfX1+TTJDiEYXIwgwqtvkTv55C+IOdgswlt0C/OXDlJaUe1rGgJJ1+FTw== dependencies: chalk "^2.3.2" escape-html "^1.0.3" @@ -1158,26 +1082,162 @@ "@vueup/vue-quill@^1.2.0": version "1.2.0" - resolved "https://registry.npmmirror.com/@vueup/vue-quill/-/vue-quill-1.2.0.tgz#cd0d93559256d069f639723dd91c044e8162c72a" + resolved "https://registry.npmmirror.com/@vueup/vue-quill/-/vue-quill-1.2.0.tgz" integrity sha512-kd5QPSHMDpycklojPXno2Kw2JSiKMYduKYQckTm1RJoVDA557MnyUXgcuuDpry4HY/Rny9nGNcK+m3AHk94wag== dependencies: quill "^1.3.7" quill-delta "^4.2.2" -"@xmldom/xmldom@^0.8.8": - version "0.8.10" - resolved "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz" - integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + 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== + +"@webassemblyjs/helper-api-error@1.11.1": + 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== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + 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== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + 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== + +"@webassemblyjs/helper-wasm-section@1.11.1": + 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== + 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" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + 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" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + 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" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@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@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + 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" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +"7zip-bin@~5.1.1": + version "5.1.1" + resolved "https://registry.npmmirror.com/7zip-bin/-/7zip-bin-5.1.1.tgz" + integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== + +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== agent-base@6: version "6.0.2" @@ -1186,12 +1246,12 @@ agent-base@6: dependencies: debug "4" -ajv-keywords@^3.4.1: +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: +ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: version "6.12.6" resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1213,7 +1273,14 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -1222,7 +1289,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: ansi-styles@^6.2.1: version "6.2.1" - resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== app-builder-bin@4.0.0: @@ -1235,10 +1302,10 @@ app-builder-lib@23.6.0: resolved "https://registry.npmmirror.com/app-builder-lib/-/app-builder-lib-23.6.0.tgz" integrity sha512-dQYDuqm/rmy8GSCE6Xl/3ShJg6Ab4bZJMT8KaTKGzT436gl1DN4REP3FCWfXoh75qGTJ+u+WsdnnpO9Jl8nyMA== dependencies: - "7zip-bin" "~5.1.1" "@develar/schema-utils" "~2.6.5" "@electron/universal" "1.2.1" "@malept/flatpak-bundler" "^0.4.0" + "7zip-bin" "~5.1.1" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" builder-util "23.6.0" @@ -1298,7 +1365,7 @@ array-union@^1.0.2: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^1.0.1: @@ -1349,9 +1416,9 @@ async-validator@^4.2.5: integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== async@^3.2.3: - version "3.2.5" - resolved "https://registry.npmmirror.com/async/-/async-3.2.5.tgz" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + version "3.2.4" + resolved "https://registry.npmmirror.com/async/-/async-3.2.4.tgz" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== asynckit@^0.4.0: version "0.4.0" @@ -1377,7 +1444,7 @@ axios@^0.25.0: axios@^1.6.2: version "1.6.2" - resolved "https://registry.npmmirror.com/axios/-/axios-1.6.2.tgz" + resolved "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz" integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: follow-redirects "^1.15.0" @@ -1389,11 +1456,6 @@ balanced-match@^1.0.0: resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.3.1, base64-js@^1.5.1: - version "1.5.1" - resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - base@^0.11.1: version "0.11.2" resolved "https://registry.npmmirror.com/base/-/base-0.11.2.tgz" @@ -1407,9 +1469,14 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + big-integer@^1.6.44: version "1.6.51" - resolved "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz" integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== bluebird-lst@^1.0.9: @@ -1426,7 +1493,7 @@ bluebird@^3.5.0, bluebird@^3.5.5: boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== boolean@^3.0.1: @@ -1436,7 +1503,7 @@ boolean@^3.0.1: bplist-parser@^0.2.0: version "0.2.0" - resolved "https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" + resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz" integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== dependencies: big-integer "^1.6.44" @@ -1451,7 +1518,7 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" @@ -1474,14 +1541,14 @@ braces@^2.3.1: braces@^3.0.2: version "3.0.2" - resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -browserslist@^4.21.9: +browserslist@^4.14.5, browserslist@^4.21.9, "browserslist@>= 4.21.0": version "4.22.1" - resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.1.tgz" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz" integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: caniuse-lite "^1.0.30001541" @@ -1543,9 +1610,9 @@ builder-util@23.6.0: resolved "https://registry.npmmirror.com/builder-util/-/builder-util-23.6.0.tgz" integrity sha512-QiQHweYsh8o+U/KNCZFSvISRnvRctb8m/2rB2I1JdByzvNKxPeFLlHFRPQRXab6aYeXc18j9LpsDLJ3sGQmWTQ== dependencies: - "7zip-bin" "~5.1.1" "@types/debug" "^4.1.6" "@types/fs-extra" "^9.0.11" + "7zip-bin" "~5.1.1" app-builder-bin "4.0.0" bluebird-lst "^1.0.9" builder-util-runtime "9.1.1" @@ -1563,7 +1630,7 @@ builder-util@23.6.0: bundle-name@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" + resolved "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz" integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== dependencies: run-applescript "^5.0.0" @@ -1598,7 +1665,7 @@ cacheable-request@^6.0.0: call-bind@^1.0.2: version "1.0.5" - resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz" integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: function-bind "^1.1.2" @@ -1606,13 +1673,13 @@ call-bind@^1.0.2: set-function-length "^1.1.1" call-me-maybe@^1.0.1: - version "1.0.2" - resolved "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz" - integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + version "1.0.1" + resolved "https://registry.npmmirror.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz" + integrity sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw== callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^6.3.0: @@ -1621,9 +1688,9 @@ camelcase@^6.3.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001541: - version "1.0.30001563" - resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz" - integrity sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw== + version "1.0.30001565" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz" + integrity sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w== chalk@^2.3.2, chalk@^2.4.2: version "2.4.2" @@ -1634,7 +1701,39 @@ chalk@^2.3.2, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1644,7 +1743,7 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: character-entities@^2.0.0: version "2.0.2" - resolved "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== chownr@^2.0.0: @@ -1652,15 +1751,20 @@ chownr@^2.0.0: resolved "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chrome-trace-event@^1.0.2: + 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== + chromium-pickle-js@^0.2.0: version "0.2.0" resolved "https://registry.npmmirror.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + version "3.8.0" + resolved "https://registry.npmmirror.com/ci-info/-/ci-info-3.8.0.tgz" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== class-utils@^0.3.5: version "0.3.6" @@ -1680,13 +1784,13 @@ cli-truncate@^2.1.0: slice-ansi "^3.0.0" string-width "^4.2.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.1" + strip-ansi "^6.0.0" wrap-ansi "^7.0.0" clone-response@^1.0.2: @@ -1702,9 +1806,9 @@ clone@^2.1.1: integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== codemirror@^5.61.1: - version "5.65.15" - resolved "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.15.tgz" - integrity sha512-YC4EHbbwQeubZzxLl5G4nlbLc1T21QTrKGaOal/Pkm9dVDMZXMH7+ieSPEOZCtO9I68i8/oteJKOxzHC2zR+0g== + version "5.65.3" + resolved "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.3.tgz" + integrity sha512-kCC0iwGZOVZXHEKW3NDTObvM7pTIyowjty4BUqeREROc/3I6bWbgZDA3fGDwlA+rbgRjvnRnfqs9SfXynel1AQ== collection-visit@^1.0.0: version "1.0.0" @@ -1728,16 +1832,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + colors@1.0.3: version "1.0.3" resolved "https://registry.npmmirror.com/colors/-/colors-1.0.3.tgz" @@ -1750,17 +1854,10 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@2.9.0: - version "2.9.0" - resolved "https://registry.npmmirror.com/commander/-/commander-2.9.0.tgz" - integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== - dependencies: - graceful-readlink ">= 1.0.0" - -commander@7: - version "7.2.0" - resolved "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^2.20.0: + 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== commander@^2.20.3: version "2.20.3" @@ -1777,19 +1874,31 @@ commander@^8.0.0: resolved "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@2.9.0: + version "2.9.0" + resolved "https://registry.npmmirror.com/commander/-/commander-2.9.0.tgz" + integrity sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A== + dependencies: + graceful-readlink ">= 1.0.0" + +commander@7: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + compare-version@^0.1.2: version "0.1.2" resolved "https://registry.npmmirror.com/compare-version/-/compare-version-0.1.2.tgz" integrity sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A== component-emitter@^1.2.1: - version "1.3.1" - resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz" - integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + version "1.3.0" + resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== computeds@^0.0.1: version "0.0.1" - resolved "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz" + resolved "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz" integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== concat-map@0.0.1: @@ -1808,12 +1917,12 @@ concat-stream@^1.6.2: typedarray "^0.0.6" concurrently@^7.3.0: - version "7.6.0" - resolved "https://registry.npmmirror.com/concurrently/-/concurrently-7.6.0.tgz" - integrity sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw== + version "7.3.0" + resolved "https://registry.npmmirror.com/concurrently/-/concurrently-7.3.0.tgz" + integrity sha512-IiDwm+8DOcFEInca494A8V402tNTQlJaYq78RF2rijOrKEk/AOHTxhN4U1cp7GYKYX5Q6Ymh1dLTBlzIMN0ikA== dependencies: chalk "^4.1.0" - date-fns "^2.29.1" + date-fns "^2.16.1" lodash "^4.17.21" rxjs "^7.0.0" shell-quote "^1.7.3" @@ -1832,7 +1941,7 @@ config-chain@^1.1.11: convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== copy-anything@^2.0.1: @@ -1848,32 +1957,37 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== copy-to-clipboard@^3.3.1: - version "3.3.3" - resolved "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" - integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + version "3.3.1" + resolved "https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz" + integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== dependencies: toggle-selection "^1.0.6" -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== +core-js@>=3.12.1: + version "3.31.0" + resolved "https://registry.npmmirror.com/core-js/-/core-js-3.31.0.tgz" + integrity sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ== core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + cose-base@^1.0.0: version "1.0.3" - resolved "https://registry.npmmirror.com/cose-base/-/cose-base-1.0.3.tgz" + resolved "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz" integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== dependencies: layout-base "^1.0.0" cose-base@^2.2.0: version "2.2.0" - resolved "https://registry.npmmirror.com/cose-base/-/cose-base-2.2.0.tgz" + resolved "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz" integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== dependencies: layout-base "^2.0.0" @@ -1901,9 +2015,9 @@ cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-render@^0.15.10, css-render@^0.15.12: +css-render@^0.15.10, css-render@^0.15.12, css-render@~0.15.12: version "0.15.12" - resolved "https://registry.npmmirror.com/css-render/-/css-render-0.15.12.tgz" + resolved "https://registry.npmjs.org/css-render/-/css-render-0.15.12.tgz" integrity sha512-eWzS66patiGkTTik+ipO9qNGZ+uNuGyTmnz6/+EJIiFg8+3yZRpnMwgFo8YdXhQRsiePzehnusrxVvugNjXzbw== dependencies: "@emotion/hash" "~0.8.0" @@ -1911,7 +2025,7 @@ css-render@^0.15.10, css-render@^0.15.12: cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== cssfilter@0.0.10: @@ -1921,7 +2035,7 @@ cssfilter@0.0.10: csstype@^3.1.2: version "3.1.2" - resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== csstype@~3.0.5: @@ -1931,48 +2045,56 @@ csstype@~3.0.5: cytoscape-cose-bilkent@^4.1.0: version "4.1.0" - resolved "https://registry.npmmirror.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz" + resolved "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz" integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== dependencies: cose-base "^1.0.0" cytoscape-fcose@^2.1.0: version "2.2.0" - resolved "https://registry.npmmirror.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz" + resolved "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz" integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== dependencies: cose-base "^2.2.0" -cytoscape@^3.23.0: +cytoscape@^3.2.0, cytoscape@^3.23.0: version "3.27.0" - resolved "https://registry.npmmirror.com/cytoscape/-/cytoscape-3.27.0.tgz" + resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.27.0.tgz" integrity sha512-pPZJilfX9BxESwujODz5pydeGi+FBrXq1rcaB1mfhFXXFJ9GjE6CNndAk+8jPzoXGD+16LtSS4xlYEIUiW4Abg== dependencies: heap "^0.2.6" lodash "^4.17.21" -"d3-array@1 - 2": - version "2.12.1" - resolved "https://registry.npmmirror.com/d3-array/-/d3-array-2.12.1.tgz" - integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== +d@^1.0.1, d@1: + version "1.0.1" + resolved "https://registry.npmmirror.com/d/-/d-1.0.1.tgz" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: - internmap "^1.0.0" + es5-ext "^0.10.50" + type "^1.0.1" -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: +d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: version "3.2.4" - resolved "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz" + resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz" integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== dependencies: internmap "1 - 2" +"d3-array@1 - 2": + version "2.12.1" + resolved "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + d3-axis@3: version "3.0.0" - resolved "https://registry.npmmirror.com/d3-axis/-/d3-axis-3.0.0.tgz" + resolved "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz" integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== d3-brush@3: version "3.0.0" - resolved "https://registry.npmmirror.com/d3-brush/-/d3-brush-3.0.0.tgz" + resolved "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz" integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== dependencies: d3-dispatch "1 - 3" @@ -1983,38 +2105,38 @@ d3-brush@3: d3-chord@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-chord/-/d3-chord-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz" integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== dependencies: d3-path "1 - 3" "d3-color@1 - 3", d3-color@3: version "3.1.0" - resolved "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz" + resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== d3-contour@4: version "4.0.2" - resolved "https://registry.npmmirror.com/d3-contour/-/d3-contour-4.0.2.tgz" + resolved "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz" integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== dependencies: d3-array "^3.2.0" d3-delaunay@6: version "6.0.4" - resolved "https://registry.npmmirror.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz" + resolved "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz" integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== dependencies: delaunator "5" "d3-dispatch@1 - 3", d3-dispatch@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz" integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== "d3-drag@2 - 3", d3-drag@3: version "3.0.0" - resolved "https://registry.npmmirror.com/d3-drag/-/d3-drag-3.0.0.tgz" + resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz" integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== dependencies: d3-dispatch "1 - 3" @@ -2022,7 +2144,7 @@ d3-delaunay@6: "d3-dsv@1 - 3", d3-dsv@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-dsv/-/d3-dsv-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz" integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== dependencies: commander "7" @@ -2031,19 +2153,19 @@ d3-delaunay@6: "d3-ease@1 - 3", d3-ease@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz" integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== d3-fetch@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-fetch/-/d3-fetch-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz" integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== dependencies: d3-dsv "1 - 3" d3-force@3: version "3.0.0" - resolved "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz" + resolved "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz" integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== dependencies: d3-dispatch "1 - 3" @@ -2052,56 +2174,56 @@ d3-force@3: "d3-format@1 - 3", d3-format@3: version "3.1.0" - resolved "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz" + resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz" integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== d3-geo@3: version "3.1.0" - resolved "https://registry.npmmirror.com/d3-geo/-/d3-geo-3.1.0.tgz" + resolved "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz" integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== dependencies: d3-array "2.5.0 - 3" d3-hierarchy@3: version "3.1.2" - resolved "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz" + resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz" integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== dependencies: d3-color "1 - 3" +d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3: + version "3.1.0" + resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + d3-path@1: version "1.0.9" - resolved "https://registry.npmmirror.com/d3-path/-/d3-path-1.0.9.tgz" + resolved "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz" integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== -"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: - version "3.1.0" - resolved "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - d3-polygon@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-polygon/-/d3-polygon-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz" integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== "d3-quadtree@1 - 3", d3-quadtree@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz" integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== d3-random@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-random/-/d3-random-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz" integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== d3-sankey@^0.12.3: version "0.12.3" - resolved "https://registry.npmmirror.com/d3-sankey/-/d3-sankey-0.12.3.tgz" + resolved "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz" integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== dependencies: d3-array "1 - 2" @@ -2109,7 +2231,7 @@ d3-sankey@^0.12.3: d3-scale-chromatic@3: version "3.0.0" - resolved "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz" + resolved "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz" integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== dependencies: d3-color "1 - 3" @@ -2117,7 +2239,7 @@ d3-scale-chromatic@3: d3-scale@4: version "4.0.2" - resolved "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz" + resolved "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz" integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== dependencies: d3-array "2.10.0 - 3" @@ -2128,45 +2250,45 @@ d3-scale@4: "d3-selection@2 - 3", d3-selection@3: version "3.0.0" - resolved "https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz" + resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== -d3-shape@3: - version "3.2.0" - resolved "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - d3-shape@^1.2.0: version "1.3.7" - resolved "https://registry.npmmirror.com/d3-shape/-/d3-shape-1.3.7.tgz" + resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz" integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== dependencies: d3-path "1" +d3-shape@3: + version "3.2.0" + resolved "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + "d3-time-format@2 - 4", d3-time-format@4: version "4.1.0" - resolved "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz" + resolved "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz" integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== dependencies: d3-time "1 - 3" "d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: version "3.1.0" - resolved "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz" + resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz" integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== dependencies: d3-array "2 - 3" "d3-timer@1 - 3", d3-timer@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz" integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== "d3-transition@2 - 3", d3-transition@3: version "3.0.1" - resolved "https://registry.npmmirror.com/d3-transition/-/d3-transition-3.0.1.tgz" + resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz" integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== dependencies: d3-color "1 - 3" @@ -2177,7 +2299,7 @@ d3-shape@^1.2.0: d3-zoom@3: version "3.0.0" - resolved "https://registry.npmmirror.com/d3-zoom/-/d3-zoom-3.0.0.tgz" + resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz" integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== dependencies: d3-dispatch "1 - 3" @@ -2188,7 +2310,7 @@ d3-zoom@3: d3@^7.4.0, d3@^7.8.2: version "7.8.5" - resolved "https://registry.npmmirror.com/d3/-/d3-7.8.5.tgz" + resolved "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz" integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== dependencies: d3-array "3" @@ -2222,59 +2344,65 @@ d3@^7.4.0, d3@^7.8.2: d3-transition "3" d3-zoom "3" -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/d/-/d-1.0.1.tgz" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - dagre-d3-es@7.0.10: version "7.0.10" - resolved "https://registry.npmmirror.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz" + resolved "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz" integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== dependencies: d3 "^7.8.2" lodash-es "^4.17.21" danmu.js@>=1.1.6: - version "1.1.13" - resolved "https://registry.npmmirror.com/danmu.js/-/danmu.js-1.1.13.tgz" - integrity sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg== + version "1.1.8" + resolved "https://registry.npmmirror.com/danmu.js/-/danmu.js-1.1.8.tgz" + integrity sha512-GIFSHqJ+HFTGLLaL2BHMPBaOuPY1bWPwC0Pvi/V06uMIoxNTyEGxMuoO2SzNHsDvKC/r252zR9T/Gwx93AaKfw== dependencies: event-emitter "^0.3.5" date-fns-tz@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/date-fns-tz/-/date-fns-tz-2.0.0.tgz" + resolved "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.0.tgz" integrity sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ== -date-fns@^2.29.1, date-fns@^2.30.0: +date-fns@^2.16.1, date-fns@^2.30.0, date-fns@>=2.0.0: version "2.30.0" - resolved "https://registry.npmmirror.com/date-fns/-/date-fns-2.30.0.tgz" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" dayjs@^1.11.7: version "1.11.10" - resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== de-indent@^1.0.2: version "1.0.2" - resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz" + resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@^2.2.0: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.3.3: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.8: + version "2.6.9" + resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: - ms "2.1.2" + ms "2.0.0" -debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@^2.6.9: version "2.6.9" resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2288,17 +2416,24 @@ debug@^3.2.6: dependencies: ms "^2.1.1" +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@4: + version "4.3.4" + resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decode-named-character-reference@^1.0.0: version "1.0.2" - resolved "https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" + resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + version "0.2.0" + resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== decompress-response@^3.3.0: version "3.3.0" @@ -2308,20 +2443,20 @@ decompress-response@^3.3.0: mimic-response "^1.0.0" deep-equal@^1.0.1: - version "1.1.2" - resolved "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.2.tgz" - integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== + version "1.1.1" + resolved "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== dependencies: - is-arguments "^1.1.1" - is-date-object "^1.0.5" - is-regex "^1.1.4" - object-is "^1.1.5" + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" object-keys "^1.1.1" - regexp.prototype.flags "^1.5.1" + regexp.prototype.flags "^1.2.0" deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^1.5.2: @@ -2331,7 +2466,7 @@ deepmerge@^1.5.2: default-browser-id@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" + resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz" integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== dependencies: bplist-parser "^0.2.0" @@ -2339,7 +2474,7 @@ default-browser-id@^3.0.0: default-browser@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" + resolved "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz" integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== dependencies: bundle-name "^3.0.0" @@ -2354,7 +2489,7 @@ defer-to-connect@^1.0.1: define-data-property@^1.0.1, define-data-property@^1.1.1: version "1.1.1" - resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== dependencies: get-intrinsic "^1.2.1" @@ -2363,15 +2498,14 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: define-lazy-prop@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz" integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== define-properties@^1.1.3, define-properties@^1.2.0: - version "1.2.1" - resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + 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== dependencies: - define-data-property "^1.0.1" has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -2399,7 +2533,7 @@ define-property@^2.0.2: delaunator@5: version "5.0.0" - resolved "https://registry.npmmirror.com/delaunator/-/delaunator-5.0.0.tgz" + resolved "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz" integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== dependencies: robust-predicates "^3.0.0" @@ -2416,7 +2550,7 @@ delegate@^3.2.0: dequal@^2.0.0: version "2.0.3" - resolved "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== detect-node@^2.0.4: @@ -2426,7 +2560,7 @@ detect-node@^2.0.4: diff@^5.0.0: version "5.1.0" - resolved "https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz" + resolved "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== dir-compare@^2.4.0: @@ -2448,7 +2582,7 @@ dir-glob@^2.2.2: dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" @@ -2483,14 +2617,14 @@ dmg-license@^1.0.11: doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dompurify@^3.0.5: version "3.0.6" - resolved "https://registry.npmmirror.com/dompurify/-/dompurify-3.0.6.tgz" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz" integrity sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w== dotenv-expand@^5.1.0: @@ -2564,9 +2698,9 @@ electron-publish@23.6.0: mime "^2.5.2" electron-to-chromium@^1.4.535: - version "1.4.588" - resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz" - integrity sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w== + version "1.4.594" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz" + integrity sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ== electron@^19.1.9: version "19.1.9" @@ -2579,7 +2713,7 @@ electron@^19.1.9: elkjs@^0.8.2: version "0.8.2" - resolved "https://registry.npmmirror.com/elkjs/-/elkjs-0.8.2.tgz" + resolved "https://registry.npmjs.org/elkjs/-/elkjs-0.8.2.tgz" integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ== emoji-regex@^8.0.0: @@ -2599,6 +2733,14 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" +enhanced-resolve@^5.10.0: + version "5.12.0" + resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz" + integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + entities@~1.1.1: version "1.1.2" resolved "https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz" @@ -2623,11 +2765,16 @@ errno@^0.1.1: error-ex@^1.3.2: version "1.3.2" - resolved "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: version "0.10.62" resolved "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz" @@ -2661,7 +2808,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3: esbuild@^0.18.10: version "0.18.20" - resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz" integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== optionalDependencies: "@esbuild/android-arm" "0.18.20" @@ -2709,21 +2856,26 @@ escape-string-regexp@^4.0.0: eslint-config-prettier@^8.8.0: version "8.10.0" - resolved "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz" integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== -eslint-plugin-prettier@^5.0.0: +eslint-config-prettier@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== + +eslint-plugin-prettier@^5.0.0, eslint-plugin-prettier@^5.0.1: version "5.0.1" - resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz" integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== dependencies: prettier-linter-helpers "^1.0.0" synckit "^0.8.5" -eslint-plugin-vue@^9.17.0: - version "9.18.1" - resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz#73cf29df7450ce5913296465f8d1dc545344920c" - integrity sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg== +eslint-plugin-vue@^9.0.0, eslint-plugin-vue@^9.17.0: + version "9.17.0" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz" + integrity sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" @@ -2733,28 +2885,44 @@ eslint-plugin-vue@^9.17.0: vue-eslint-parser "^9.3.1" xml-name-validator "^4.0.0" -eslint-scope@^7.1.1, eslint-scope@^7.2.2: +eslint-scope@^7.1.1: + version "7.2.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.49.0: - version "8.54.0" - resolved "https://registry.npmmirror.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.49.0, "eslint@>= 8.0.0", eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=8.0.0: + version "8.52.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz" + integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.0" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "8.52.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -2792,7 +2960,7 @@ eslint@^8.49.0: espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" @@ -2806,21 +2974,31 @@ esprima@^4.0.0: esquery@^1.4.0, esquery@^1.4.2: version "1.5.0" - resolved "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: @@ -2830,7 +3008,7 @@ estree-walker@^2.0.2: esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== event-emitter@^0.3.5: @@ -2851,6 +3029,11 @@ eventemitter3@^4.0.7: resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + evtd@^0.2.2, evtd@^0.2.4: version "0.2.4" resolved "https://registry.npmmirror.com/evtd/-/evtd-0.2.4.tgz" @@ -2858,7 +3041,7 @@ evtd@^0.2.2, evtd@^0.2.4: execa@^5.0.0: version "5.1.1" - resolved "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -2873,7 +3056,7 @@ execa@^5.0.0: execa@^7.1.1: version "7.2.0" - resolved "https://registry.npmmirror.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + resolved "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz" integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== dependencies: cross-spawn "^7.0.3" @@ -2960,7 +3143,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@1.1.2: +fast-diff@^1.1.2, fast-diff@1.1.2: version "1.1.2" resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.1.2.tgz" integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== @@ -2970,11 +3153,6 @@ fast-diff@1.2.0: resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-2.2.7.tgz" @@ -2987,10 +3165,21 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.2" - resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + 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" + +fast-glob@^3.3.0: + version "3.3.1" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3005,12 +3194,12 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.15.0" - resolved "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -3024,12 +3213,12 @@ fd-slicer@~1.1.0: file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -filelist@^1.0.4: +filelist@^1.0.1: version "1.0.4" resolved "https://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz" integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== @@ -3048,23 +3237,23 @@ fill-range@^4.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + version "3.1.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz" + integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== dependencies: flatted "^3.2.9" keyv "^4.5.3" @@ -3072,12 +3261,12 @@ flat-cache@^3.0.4: flatted@^3.2.9: version "3.2.9" - resolved "https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== follow-redirects@^1.14.7, follow-redirects@^1.15.0: version "1.15.3" - resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-in@^1.0.2: @@ -3101,7 +3290,16 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fs-extra@^10.0.0, fs-extra@^10.1.0: +fs-extra@^10.0.0: + version "10.0.1" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.0.1.tgz" + integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -3128,7 +3326,17 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1: +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -3151,13 +3359,13 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: - version "2.3.3" - resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + version "2.3.2" + resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== functions-have-names@^1.2.3: @@ -3175,9 +3383,9 @@ get-caller-file@^2.0.5: resolved "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: +get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1: version "1.2.2" - resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz" integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== dependencies: function-bind "^1.1.2" @@ -3199,9 +3407,14 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" - resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-value@^2.0.3, get-value@^2.0.6: @@ -3219,14 +3432,14 @@ glob-parent@^3.1.0: glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" @@ -3236,15 +3449,20 @@ glob-to-regexp@^0.3.0: resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== +glob-to-regexp@^0.4.1: + 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== + glob@^7.1.3, glob@^7.1.6: - version "7.2.3" - resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + version "7.2.0" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.0.tgz" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.1.1" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" @@ -3272,12 +3490,12 @@ global-tunnel-ng@^2.7.1: globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: version "13.23.0" - resolved "https://registry.npmmirror.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + resolved "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz" integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -3291,7 +3509,7 @@ globalthis@^1.0.1: globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -3317,7 +3535,7 @@ globby@^9.2.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" @@ -3339,10 +3557,10 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - 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== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.9" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== "graceful-readlink@>= 1.0.0": version "1.0.1" @@ -3351,7 +3569,7 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== gray-matter@^4.0.1: @@ -3375,15 +3593,15 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + version "1.0.0" + resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: - get-intrinsic "^1.2.2" + get-intrinsic "^1.1.1" has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== has-symbols@^1.0.2, has-symbols@^1.0.3: @@ -3436,19 +3654,19 @@ hash-sum@^1.0.2: hasown@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== dependencies: function-bind "^1.1.2" he@^1.2.0: version "1.2.0" - resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== heap@^0.2.6: version "0.2.7" - resolved "https://registry.npmmirror.com/heap/-/heap-0.2.7.tgz" + resolved "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz" integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== highlight.js@^10.7.2: @@ -3456,9 +3674,9 @@ highlight.js@^10.7.2: resolved "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== -highlight.js@^11.5.0, highlight.js@^11.8.0: +highlight.js@^11.0.1, highlight.js@^11.5.0, highlight.js@^11.8.0: version "11.9.0" - resolved "https://registry.npmmirror.com/highlight.js/-/highlight.js-11.9.0.tgz" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz" integrity sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw== hosted-git-info@^4.1.0: @@ -3470,20 +3688,20 @@ hosted-git-info@^4.1.0: hosted-git-info@^7.0.0: version "7.0.1" - resolved "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz" integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== dependencies: lru-cache "^10.0.1" html-tags@^3.3.1: version "3.3.1" - resolved "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz" + resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz" integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== http-cache-semantics@^4.0.0: - version "4.1.1" - resolved "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + version "4.1.0" + resolved "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-proxy-agent@^5.0.0: version "5.0.0" @@ -3504,12 +3722,12 @@ https-proxy-agent@^5.0.0: human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== human-signals@^4.3.0: version "4.3.1" - resolved "https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== iconv-corefoundation@^1.1.7: @@ -3520,13 +3738,27 @@ iconv-corefoundation@^1.1.7: cli-truncate "^2.1.0" node-addon-api "^1.6.3" -iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +iconv-lite@0.6: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + ieee754@^1.1.13: version "1.2.1" resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz" @@ -3537,10 +3769,15 @@ ignore@^4.0.3: resolved "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.2.0, ignore@^5.2.4: - version "5.3.0" - resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +ignore@^5.2.4: + version "5.2.4" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== image-size@~0.5.0: version "0.5.5" @@ -3549,7 +3786,7 @@ image-size@~0.5.0: import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -3557,7 +3794,7 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: @@ -3568,7 +3805,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@^2.0.3, inherits@~2.0.3, inherits@2: version "2.0.4" resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3583,24 +3820,31 @@ insert-text-at-cursor@^0.3.0: resolved "https://registry.npmmirror.com/insert-text-at-cursor/-/insert-text-at-cursor-0.3.0.tgz" integrity sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ== +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + "internmap@1 - 2": version "2.0.3" - resolved "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz" + resolved "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== -internmap@^1.0.0: - version "1.0.1" - resolved "https://registry.npmmirror.com/internmap/-/internmap-1.0.1.tgz" - integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== + dependencies: + kind-of "^3.0.2" -is-accessor-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz" - integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: - hasown "^2.0.0" + kind-of "^6.0.0" -is-arguments@^1.1.1: +is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== @@ -3610,7 +3854,7 @@ is-arguments@^1.1.1: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-buffer@^1.1.5: @@ -3627,19 +3871,26 @@ is-ci@^3.0.0: is-core-module@^2.8.1: version "2.13.1" - resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" -is-data-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz" - integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: - hasown "^2.0.0" + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" -is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -3647,29 +3898,40 @@ is-date-object@^1.0.5: has-tostringtag "^1.0.0" is-descriptor@^0.1.0: - version "0.1.7" - resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz" - integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + version "0.1.6" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.3" - resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz" - integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== +is-descriptor@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" is-docker@^2.0.0: version "2.2.1" - resolved "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-docker@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz" integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== is-extendable@^0.1.0, is-extendable@^0.1.1: @@ -3710,7 +3972,7 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: is-inside-container@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + resolved "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz" integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== dependencies: is-docker "^3.0.0" @@ -3724,12 +3986,12 @@ is-number@^3.0.0: is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-object@^2.0.3, is-plain-object@^2.0.4: @@ -3739,7 +4001,7 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.1.4: +is-regex@^1.0.4: version "1.1.4" resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -3749,12 +4011,12 @@ is-regex@^1.1.4: is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-stream@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== is-what@^3.14.1: @@ -3769,12 +4031,12 @@ is-windows@^1.0.2: is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" -isarray@1.0.0, isarray@~1.0.0: +isarray@~1.0.0, isarray@1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== @@ -3809,29 +4071,38 @@ isobject@^3.0.0, isobject@^3.0.1: integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== jake@^10.8.5: - version "10.8.7" - resolved "https://registry.npmmirror.com/jake/-/jake-10.8.7.tgz" - integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== + version "10.8.5" + resolved "https://registry.npmmirror.com/jake/-/jake-10.8.5.tgz" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== dependencies: async "^3.2.3" chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" + filelist "^1.0.1" + minimatch "^3.0.4" javascript-stringify@^1.6.0: version "1.6.0" resolved "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz" integrity sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ== +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + joi@^17.6.0: - version "17.11.0" - resolved "https://registry.npmmirror.com/joi/-/joi-17.11.0.tgz" - integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== + version "17.6.0" + resolved "https://registry.npmmirror.com/joi/-/joi-17.6.0.tgz" + integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== dependencies: "@hapi/hoek" "^9.0.0" "@hapi/topo" "^5.0.0" "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.1" + "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" js-audio-recorder@^1.0.7: @@ -3841,7 +4112,7 @@ js-audio-recorder@^1.0.7: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: @@ -3871,12 +4142,17 @@ json-buffer@3.0.0: json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== +json-parse-even-better-errors@^2.3.1: + 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== + json-parse-even-better-errors@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz" integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== json-schema-traverse@^0.4.1: @@ -3886,7 +4162,7 @@ json-schema-traverse@^0.4.1: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@^5.0.1: @@ -3931,17 +4207,31 @@ keyv@^3.0.0: keyv@^4.5.3: version "4.5.4" - resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" khroma@^2.0.0: version "2.1.0" - resolved "https://registry.npmmirror.com/khroma/-/khroma-2.1.0.tgz" + resolved "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz" integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^3.0.3: + version "3.2.2" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^3.2.0: version "3.2.2" resolved "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz" integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== @@ -3955,6 +4245,11 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz" @@ -3962,22 +4257,22 @@ kind-of@^6.0.0, kind-of@^6.0.2: kleur@^4.0.3: version "4.1.5" - resolved "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz" + resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== klona@^2.0.4: - version "2.0.6" - resolved "https://registry.npmmirror.com/klona/-/klona-2.0.6.tgz" - integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + version "2.0.5" + resolved "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz" + integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== layout-base@^1.0.0: version "1.0.2" - resolved "https://registry.npmmirror.com/layout-base/-/layout-base-1.0.2.tgz" + resolved "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz" integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== layout-base@^2.0.0: version "2.0.1" - resolved "https://registry.npmmirror.com/layout-base/-/layout-base-2.0.1.tgz" + resolved "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz" integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== lazy-val@^1.0.4, lazy-val@^1.0.5: @@ -3992,10 +4287,10 @@ less-loader@^10.2.0: dependencies: klona "^2.0.4" -less@^4.1.2: - version "4.2.0" - resolved "https://registry.npmmirror.com/less/-/less-4.2.0.tgz" - integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA== +less@*, "less@^3.5.0 || ^4.0.0", less@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/less/-/less-4.1.2.tgz" + integrity sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA== dependencies: copy-anything "^2.0.1" parse-node-version "^1.0.1" @@ -4006,12 +4301,12 @@ less@^4.1.2: image-size "~0.5.0" make-dir "^2.1.0" mime "^1.4.1" - needle "^3.1.0" + needle "^2.5.2" source-map "~0.6.0" levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -4019,7 +4314,7 @@ levn@^0.4.1: lines-and-columns@^2.0.3: version "2.0.4" - resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz" integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== linkify-it@^2.0.0: @@ -4036,9 +4331,14 @@ linkify-it@^3.0.1: dependencies: uc.micro "^1.0.1" +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" @@ -4060,7 +4360,7 @@ lodash.isequal@^4.5.0: lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.21: @@ -4079,13 +4379,13 @@ lowercase-keys@^2.0.0: integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^10.0.1: - version "10.0.3" - resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c" - integrity sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg== + version "10.1.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" @@ -4099,7 +4399,7 @@ lru-cache@^6.0.0: magic-string@^0.30.5: version "0.30.5" - resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz" integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: "@jridgewell/sourcemap-codec" "^1.4.15" @@ -4130,9 +4430,9 @@ markdown-it-anchor@^5.0.2: integrity sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA== markdown-it-attrs@^4.0.0: - version "4.1.6" - resolved "https://registry.npmmirror.com/markdown-it-attrs/-/markdown-it-attrs-4.1.6.tgz" - integrity sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA== + version "4.1.3" + resolved "https://registry.npmmirror.com/markdown-it-attrs/-/markdown-it-attrs-4.1.3.tgz" + integrity sha512-d5yg/lzQV2KFI/4LPsZQB3uxQrf0/l2/RnMPCPm4lYLOZUSmFlpPccyojnzaHkfQpAD8wBHfnfUW0aMhpKOS2g== markdown-it-chain@^1.3.0: version "1.3.0" @@ -4156,7 +4456,7 @@ markdown-it-table-of-contents@^0.4.0: resolved "https://registry.npmmirror.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz" integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw== -markdown-it@^12.3.2: +markdown-it@*, markdown-it@^12.3.2, "markdown-it@>= 9.0.0 < 13.0.0", markdown-it@>=5.0.0: version "12.3.2" resolved "https://registry.npmmirror.com/markdown-it/-/markdown-it-12.3.2.tgz" integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== @@ -4187,7 +4487,7 @@ matcher@^3.0.0: mdast-util-from-markdown@^1.3.0: version "1.3.1" - resolved "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz" integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== dependencies: "@types/mdast" "^3.0.0" @@ -4205,7 +4505,7 @@ mdast-util-from-markdown@^1.3.0: mdast-util-to-string@^3.1.0: version "3.2.0" - resolved "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz" + resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz" integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== dependencies: "@types/mdast" "^3.0.0" @@ -4217,12 +4517,12 @@ mdurl@^1.0.1: memorystream@^0.3.1: version "0.3.1" - resolved "https://registry.npmmirror.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: @@ -4232,7 +4532,7 @@ merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: mermaid@^10.6.1: version "10.6.1" - resolved "https://registry.npmmirror.com/mermaid/-/mermaid-10.6.1.tgz" + resolved "https://registry.npmjs.org/mermaid/-/mermaid-10.6.1.tgz" integrity sha512-Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A== dependencies: "@braintree/sanitize-url" "^6.0.1" @@ -4258,7 +4558,7 @@ mermaid@^10.6.1: micromark-core-commonmark@^1.0.1: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz" integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== dependencies: decode-named-character-reference "^1.0.0" @@ -4280,7 +4580,7 @@ micromark-core-commonmark@^1.0.1: micromark-factory-destination@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz" integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== dependencies: micromark-util-character "^1.0.0" @@ -4289,7 +4589,7 @@ micromark-factory-destination@^1.0.0: micromark-factory-label@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz" integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== dependencies: micromark-util-character "^1.0.0" @@ -4299,7 +4599,7 @@ micromark-factory-label@^1.0.0: micromark-factory-space@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz" integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== dependencies: micromark-util-character "^1.0.0" @@ -4307,7 +4607,7 @@ micromark-factory-space@^1.0.0: micromark-factory-title@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz" integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== dependencies: micromark-factory-space "^1.0.0" @@ -4317,7 +4617,7 @@ micromark-factory-title@^1.0.0: micromark-factory-whitespace@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz" integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== dependencies: micromark-factory-space "^1.0.0" @@ -4327,7 +4627,7 @@ micromark-factory-whitespace@^1.0.0: micromark-util-character@^1.0.0: version "1.2.0" - resolved "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz" integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== dependencies: micromark-util-symbol "^1.0.0" @@ -4335,14 +4635,14 @@ micromark-util-character@^1.0.0: micromark-util-chunked@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz" integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== dependencies: micromark-util-symbol "^1.0.0" micromark-util-classify-character@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz" integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== dependencies: micromark-util-character "^1.0.0" @@ -4351,7 +4651,7 @@ micromark-util-classify-character@^1.0.0: micromark-util-combine-extensions@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz" integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== dependencies: micromark-util-chunked "^1.0.0" @@ -4359,14 +4659,14 @@ micromark-util-combine-extensions@^1.0.0: micromark-util-decode-numeric-character-reference@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz" integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== dependencies: micromark-util-symbol "^1.0.0" micromark-util-decode-string@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz" integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== dependencies: decode-named-character-reference "^1.0.0" @@ -4376,31 +4676,31 @@ micromark-util-decode-string@^1.0.0: micromark-util-encode@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz" integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== micromark-util-html-tag-name@^1.0.0: version "1.2.0" - resolved "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz" integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== micromark-util-normalize-identifier@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz" integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== dependencies: micromark-util-symbol "^1.0.0" micromark-util-resolve-all@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz" integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== dependencies: micromark-util-types "^1.0.0" micromark-util-sanitize-uri@^1.0.0: version "1.2.0" - resolved "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz" integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== dependencies: micromark-util-character "^1.0.0" @@ -4409,7 +4709,7 @@ micromark-util-sanitize-uri@^1.0.0: micromark-util-subtokenize@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz" integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== dependencies: micromark-util-chunked "^1.0.0" @@ -4419,17 +4719,17 @@ micromark-util-subtokenize@^1.0.0: micromark-util-symbol@^1.0.0: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz" integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: version "1.1.0" - resolved "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz" integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== micromark@^3.0.0: version "3.2.0" - resolved "https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz" + resolved "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz" integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== dependencies: "@types/debug" "^4.0.0" @@ -4471,7 +4771,7 @@ micromatch@^3.1.10: micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -4482,7 +4782,7 @@ mime-db@1.52.0: resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12: +mime-types@^2.1.12, mime-types@^2.1.27: version "2.1.35" resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -4501,12 +4801,12 @@ mime@^2.5.2: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== mimic-response@^1.0.0, mimic-response@^1.0.1: @@ -4514,14 +4814,7 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -minimatch@3.0.4: - version "3.0.4" - resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -4535,16 +4828,30 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.3: +minimatch@^9.0.0: version "9.0.3" - resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^3.0.0: @@ -4554,10 +4861,10 @@ minipass@^3.0.0: dependencies: yallist "^4.0.0" -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== +minipass@^4.0.0: + version "4.2.8" + resolved "https://registry.npmmirror.com/minipass/-/minipass-4.2.8.tgz" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== minizlib@^2.1.1: version "2.1.2" @@ -4594,32 +4901,27 @@ mkdirp@^1.0.3: mri@^1.1.0: version "1.2.0" - resolved "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz" + resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2: +ms@^2.1.1, ms@2.1.2: version "2.1.2" resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== muggle-string@^0.3.1: version "0.3.1" - resolved "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz" + resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz" integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== naive-ui@^2.35.0: version "2.35.0" - resolved "https://registry.npmmirror.com/naive-ui/-/naive-ui-2.35.0.tgz#fe1fc2404694b4114486fa31e609e35714e8ed25" + resolved "https://registry.npmjs.org/naive-ui/-/naive-ui-2.35.0.tgz" integrity sha512-PdnLpOip1LQaKs5+rXLZoPDPQkTq26TnHWeABvUA2eOQjtHxE4+TQvj0Jq/W8clM2On/7jptoGmenLt48G3Bhg== dependencies: "@css-render/plugin-bem" "^0.15.12" @@ -4642,9 +4944,9 @@ naive-ui@^2.35.0: vueuc "^0.4.51" nanoid@^3.3.6: - version "3.3.7" - resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + version "3.3.6" + resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== nanomatch@^1.2.9: version "1.2.13" @@ -4665,18 +4967,23 @@ nanomatch@^1.2.9: natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -needle@^3.1.0: - version "3.2.0" - resolved "https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz" - integrity sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ== +needle@^2.5.2: + version "2.9.1" + resolved "https://registry.npmmirror.com/needle/-/needle-2.9.1.tgz" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== dependencies: debug "^3.2.6" - iconv-lite "^0.6.3" + iconv-lite "^0.4.4" sax "^1.2.4" +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + next-tick@^1.1.0: version "1.1.0" resolved "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz" @@ -4689,17 +4996,17 @@ node-addon-api@^1.6.3: node-releases@^2.0.13: version "2.0.13" - resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== non-layered-tidy-tree-layout@^2.0.2: version "2.0.2" - resolved "https://registry.npmmirror.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz" + resolved "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz" integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== normalize-package-data@^6.0.0: version "6.0.0" - resolved "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz" integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== dependencies: hosted-git-info "^7.0.0" @@ -4722,7 +5029,7 @@ npm-conf@^1.1.3: npm-run-all2@^6.1.1: version "6.1.1" - resolved "https://registry.npmmirror.com/npm-run-all2/-/npm-run-all2-6.1.1.tgz#afb58a18a4de1e226b2f4b5b44aaef0782ed81ce" + resolved "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.1.1.tgz" integrity sha512-lWLbkPZ5BSdXtN8lR+0rc8caKoPdymycpZksyDEC9MOBvfdwTXZ0uVhb7bMcGeXv2/BKtfQuo6Zn3zfc8rxNXA== dependencies: ansi-styles "^6.2.1" @@ -4735,21 +5042,21 @@ npm-run-all2@^6.1.1: npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" npm-run-path@^5.1.0: version "5.1.0" - resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== dependencies: path-key "^4.0.0" nth-check@^2.1.1: version "2.1.1" - resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" @@ -4763,7 +5070,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-is@^1.1.5: +object-is@^1.0.1: version "1.1.5" resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -4799,21 +5106,21 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" onetime@^6.0.0: version "6.0.0" - resolved "https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: mimic-fn "^4.0.0" open@^9.1.0: version "9.1.0" - resolved "https://registry.npmmirror.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" + resolved "https://registry.npmjs.org/open/-/open-9.1.0.tgz" integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== dependencies: default-browser "^4.0.0" @@ -4823,7 +5130,7 @@ open@^9.1.0: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -4840,18 +5147,23 @@ p-cancelable@^1.0.0: p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" +paho-mqtt@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/paho-mqtt/-/paho-mqtt-1.1.0.tgz" + integrity sha512-KPbL9KAB0ASvhSDbOrZBaccXS+/s7/LIofbPyERww8hM5Ko71GUJQ6Nmg0BWqj8phAIT8zdf/Sd/RftHU9i2HA== + parchment@^1.1.4: version "1.1.4" resolved "https://registry.npmmirror.com/parchment/-/parchment-1.1.4.tgz" @@ -4859,14 +5171,14 @@ parchment@^1.1.4: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-json@^7.0.0: version "7.1.1" - resolved "https://registry.npmmirror.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz" integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== dependencies: "@babel/code-frame" "^7.21.4" @@ -4887,7 +5199,7 @@ pascalcase@^0.1.1: path-browserify@^1.0.1: version "1.0.1" - resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-dirname@^1.0.0: @@ -4897,7 +5209,7 @@ path-dirname@^1.0.0: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: @@ -4912,7 +5224,7 @@ path-key@^3.0.0, path-key@^3.1.0: path-key@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== path-type@^3.0.0: @@ -4924,7 +5236,7 @@ path-type@^3.0.0: path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pend@~1.2.0: @@ -4939,12 +5251,12 @@ picocolors@^1.0.0: picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pidtree@^0.6.0: version "0.6.0" - resolved "https://registry.npmmirror.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== pify@^3.0.0: @@ -4959,23 +5271,22 @@ pify@^4.0.1: pinia-plugin-persistedstate@^3.2.0: version "3.2.0" - resolved "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz" + resolved "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.0.tgz" integrity sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw== -pinia@^2.1.7: +pinia@^2.0.0, pinia@^2.1.7: version "2.1.7" - resolved "https://registry.npmmirror.com/pinia/-/pinia-2.1.7.tgz" + resolved "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz" integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== dependencies: "@vue/devtools-api" "^6.5.0" vue-demi ">=0.14.5" plist@^3.0.1, plist@^3.0.4: - version "3.1.0" - resolved "https://registry.npmmirror.com/plist/-/plist-3.1.0.tgz" - integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== + version "3.0.6" + resolved "https://registry.npmmirror.com/plist/-/plist-3.0.6.tgz" + integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA== dependencies: - "@xmldom/xmldom" "^0.8.8" base64-js "^1.5.1" xmlbuilder "^15.1.1" @@ -4986,7 +5297,7 @@ posix-character-classes@^0.1.0: postcss-selector-parser@^6.0.13: version "6.0.13" - resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" @@ -4994,7 +5305,7 @@ postcss-selector-parser@^6.0.13: postcss@^8.4.27, postcss@^8.4.31: version "8.4.31" - resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" @@ -5003,7 +5314,7 @@ postcss@^8.4.27, postcss@^8.4.31: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prepend-http@^2.0.0: @@ -5013,20 +5324,20 @@ prepend-http@^2.0.0: prettier-linter-helpers@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== dependencies: fast-diff "^1.1.2" -prettier@^3.0.3: +prettier@^3.1.0, "prettier@>= 3.0.0", prettier@>=3.0.0: version "3.1.0" - resolved "https://registry.npmmirror.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz" integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== prismjs@^1.13.0, prismjs@^1.23.0: - version "1.29.0" - resolved "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz" - integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + version "1.28.0" + resolved "https://registry.npmmirror.com/prismjs/-/prismjs-1.28.0.tgz" + integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw== process-nextick-args@~2.0.0: version "2.0.1" @@ -5045,7 +5356,7 @@ proto-list@~1.2.1: proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== prr@~1.0.1: @@ -5062,13 +5373,13 @@ pump@^3.0.0: once "^1.3.1" punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + version "2.1.1" + resolved "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== quill-delta@^3.6.2: @@ -5095,15 +5406,15 @@ quill-image-uploader@^1.3.0: integrity sha512-vO43GEn93rGThje/MlotkQE9OV5nOKBZ4oKhn71L/EjrM/J2P/8iDDVd9GEwlsGsbskeJqPLopsSQ4HlVVIn6A== quill-mention@^3.2.0: - version "3.4.1" - resolved "https://registry.npmmirror.com/quill-mention/-/quill-mention-3.4.1.tgz" - integrity sha512-7/KyWGDbh3T2pw/kPNhXrsUkc1j2Kp9mxtK7QqmU84A6oHIlcjCubsFntHQYPwX/xoJnjyzcWiBrig8vEgW0AA== + version "3.2.0" + resolved "https://registry.npmmirror.com/quill-mention/-/quill-mention-3.2.0.tgz" + integrity sha512-GVARl6kiOuo/YbizaoiseJaNlhU+5yQ01YlAyk0UAINQLNezZS7G9lZB/3DveYf6rGjQ7IpHOnR0OZo8g4Dp9A== dependencies: quill "^1.3.7" quill@^1.3.7: version "1.3.7" - resolved "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8" + resolved "https://registry.npmmirror.com/quill/-/quill-1.3.7.tgz" integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g== dependencies: clone "^2.1.1" @@ -5113,6 +5424,13 @@ quill@^1.3.7: parchment "^1.1.4" quill-delta "^3.6.2" +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + read-config-file@6.2.0: version "6.2.0" resolved "https://registry.npmmirror.com/read-config-file/-/read-config-file-6.2.0.tgz" @@ -5126,7 +5444,7 @@ read-config-file@6.2.0: read-pkg@^8.0.0: version "8.1.0" - resolved "https://registry.npmmirror.com/read-pkg/-/read-pkg-8.1.0.tgz#6cf560b91d90df68bce658527e7e3eee75f7c4c7" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz" integrity sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ== dependencies: "@types/normalize-package-data" "^2.4.1" @@ -5135,9 +5453,9 @@ read-pkg@^8.0.0: type-fest "^4.2.0" readable-stream@^2.2.2: - version "2.3.8" - resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + version "2.3.7" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -5149,7 +5467,7 @@ readable-stream@^2.2.2: regenerator-runtime@^0.14.0: version "0.14.0" - resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== regex-not@^1.0.0, regex-not@^1.0.2: @@ -5160,9 +5478,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.5.1: +regexp.prototype.flags@^1.2.0: version "1.5.1" - resolved "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" @@ -5191,7 +5509,7 @@ resize-observer-polyfill@^1.5.1: resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-url@^0.2.1: @@ -5213,7 +5531,7 @@ ret@~0.1.10: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^3.0.0, rimraf@^3.0.2: @@ -5237,50 +5555,50 @@ roarr@^2.15.3: robust-predicates@^3.0.0: version "3.0.2" - resolved "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz" + resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz" integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== rollup@^3.27.1: version "3.29.4" - resolved "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz" + resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz" integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== optionalDependencies: fsevents "~2.3.2" run-applescript@^5.0.0: version "5.0.0" - resolved "https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" + resolved "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz" integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== dependencies: execa "^5.0.0" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rw@1: version "1.3.3" - resolved "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz" + resolved "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz" integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== rxjs@^7.0.0, rxjs@^7.5.4: - version "7.8.1" - resolved "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + version "7.5.6" + resolved "https://registry.npmmirror.com/rxjs/-/rxjs-7.5.6.tgz" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== dependencies: tslib "^2.1.0" sade@^1.7.3: version "1.8.1" - resolved "https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz" + resolved "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz" integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== dependencies: mri "^1.1.0" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -5292,7 +5610,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -5305,9 +5623,18 @@ sanitize-filename@^1.6.3: truncate-utf8-bytes "^1.0.0" sax@^1.2.4: - version "1.3.0" - resolved "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz" - integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + version "1.2.4" + resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" section-matter@^1.0.0: version "1.0.0" @@ -5328,18 +5655,51 @@ semver-compare@^1.0.0: integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== semver@^5.6.0: - version "5.7.2" - resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + version "5.7.1" + resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.2.0: + version "6.3.0" + resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.1: +semver@^6.3.1: version "6.3.1" - resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7, semver@^7.5.4: +semver@^7.3.2: + version "7.3.7" + resolved "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.5: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.6: + version "7.5.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.7: + version "7.5.0" + resolved "https://registry.npmmirror.com/semver/-/semver-7.5.0.tgz" + integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.5.4: version "7.5.4" - resolved "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -5356,9 +5716,16 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" +serialize-javascript@^6.0.1: + 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== + dependencies: + randombytes "^2.1.0" + set-function-length@^1.1.1: version "1.1.1" - resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz" integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== dependencies: define-data-property "^1.1.1" @@ -5368,7 +5735,7 @@ set-function-length@^1.1.1: set-function-name@^2.0.0: version "2.0.1" - resolved "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== dependencies: define-data-property "^1.0.1" @@ -5398,13 +5765,13 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.7.3: - version "1.8.1" - resolved "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.8.1.tgz" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + version "1.7.3" + resolved "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.3.tgz" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-update-notifier@^1.0.7: @@ -5421,7 +5788,7 @@ slash@^2.0.0: slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^3.0.0: @@ -5489,7 +5856,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.19: +source-map-support@^0.5.19, source-map-support@~0.5.20: 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== @@ -5519,7 +5886,7 @@ spawn-command@^0.0.2-1: spdx-correct@^3.0.0: version "3.2.0" - resolved "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" @@ -5527,12 +5894,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: version "3.0.1" - resolved "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" @@ -5540,7 +5907,7 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.16" - resolved "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz" integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== split-string@^3.0.1, split-string@^3.0.2: @@ -5551,9 +5918,9 @@ split-string@^3.0.1, split-string@^3.0.2: extend-shallow "^3.0.0" sprintf-js@^1.1.2: - version "1.1.3" - resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.3.tgz" - integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + version "1.1.2" + resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.1.2.tgz" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== sprintf-js@~1.0.2: version "1.0.3" @@ -5573,6 +5940,13 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz" @@ -5582,13 +5956,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -5603,22 +5970,22 @@ strip-bom-string@^1.0.0: strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-final-newline@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== stylis@^4.1.3: version "4.3.0" - resolved "https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz" integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ== sumchecker@^3.0.1: @@ -5642,6 +6009,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-color@^8.1.0: version "8.1.1" resolved "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz" @@ -5651,25 +6025,30 @@ supports-color@^8.1.0: svg-tags@^1.0.0: version "1.0.0" - resolved "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz" + resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz" integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== synckit@^0.8.5: version "0.8.5" - resolved "https://registry.npmmirror.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" + resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz" integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== dependencies: "@pkgr/utils" "^2.3.1" tslib "^2.5.0" +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + tar@^6.1.11: - version "6.2.0" - resolved "https://registry.npmmirror.com/tar/-/tar-6.2.0.tgz" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + version "6.1.13" + resolved "https://registry.npmmirror.com/tar/-/tar-6.1.13.tgz" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^5.0.0" + minipass "^4.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -5682,14 +6061,35 @@ temp-file@^3.4.0: async-exit-hook "^2.0.1" fs-extra "^10.0.0" +terser-webpack-plugin@^5.1.3: + version "5.3.7" + resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz" + integrity sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw== + 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" + +terser@^5.16.5, terser@^5.4.0: + version "5.16.6" + resolved "https://registry.npmmirror.com/terser/-/terser-5.16.6.tgz" + integrity sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== titleize@^3.0.0: version "3.0.0" - resolved "https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" + resolved "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz" integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== tmp-promise@^3.0.2: @@ -5733,7 +6133,7 @@ to-regex-range@^2.1.0: to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" @@ -5777,17 +6177,17 @@ truncate-utf8-bytes@^1.0.0: ts-api-utils@^1.0.1: version "1.0.3" - resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== ts-dedent@^2.2.0: version "2.2.0" - resolved "https://registry.npmmirror.com/ts-dedent/-/ts-dedent-2.2.0.tgz" + resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== tslib@^2.1.0, tslib@^2.3.0, tslib@^2.5.0, tslib@^2.6.0: version "2.6.2" - resolved "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tunnel@^0.0.6: @@ -5797,7 +6197,7 @@ tunnel@^0.0.6: type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" @@ -5809,18 +6209,18 @@ type-fest@^0.13.1: type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^3.8.0: version "3.13.1" - resolved "https://registry.npmmirror.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz" integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== type-fest@^4.2.0: - version "4.8.1" - resolved "https://registry.npmmirror.com/type-fest/-/type-fest-4.8.1.tgz#2a5bf1074abb580d2d6eb5c1e79c11147fd11d4f" - integrity sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q== + version "4.8.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz" + integrity sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ== type@^1.0.1: version "1.2.0" @@ -5837,9 +6237,9 @@ typedarray@^0.0.6: resolved "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@~5.2.0: +typescript@*, typescript@>=4.2.0, typescript@>=4.4.4, typescript@~5.2.0: version "5.2.2" - resolved "https://registry.npmmirror.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== uc.micro@^1.0.1, uc.micro@^1.0.5: @@ -5849,7 +6249,7 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== union-value@^1.0.0: @@ -5864,7 +6264,7 @@ union-value@^1.0.0: unist-util-stringify-position@^3.0.0: version "3.0.3" - resolved "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz" integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== dependencies: "@types/unist" "^2.0.0" @@ -5875,9 +6275,9 @@ universalify@^0.1.0: integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + version "2.0.0" + resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unset-value@^1.0.0: version "1.0.0" @@ -5889,7 +6289,7 @@ unset-value@^1.0.0: untildify@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== upath@^1.1.0: @@ -5899,7 +6299,7 @@ upath@^1.1.0: update-browserslist-db@^1.0.13: version "1.0.13" - resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" @@ -5941,12 +6341,12 @@ util-deprecate@^1.0.2, util-deprecate@~1.0.1: uuid@^9.0.0: version "9.0.1" - resolved "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== uvu@^0.5.0: version "0.5.6" - resolved "https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz" + resolved "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz" integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" @@ -5956,20 +6356,20 @@ uvu@^0.5.0: validate-npm-package-license@^3.0.4: version "3.0.4" - resolved "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" vant@^3.1.3: - version "3.6.12" - resolved "https://registry.npmmirror.com/vant/-/vant-3.6.12.tgz" - integrity sha512-fLzwhpV0ZPQqxrTx6RU8mJVUqP7DSkpdXNeByKubp+O9vKYGcWRX9wFdEwApyy7qLZLLu+rU1Jw52d6lktPL4w== + version "3.4.8" + resolved "https://registry.npmmirror.com/vant/-/vant-3.4.8.tgz" + integrity sha512-xPAiPdCiaZbcdbVplVh4N2lmYzDAr2UdadkUHoa9uwfHS9/dab4f8TigfCFzlfAEk53U1J6w+6qZ+whtt4T3hw== dependencies: "@vant/icons" "^1.8.0" - "@vant/popperjs" "^1.2.1" - "@vant/use" "^1.4.2" + "@vant/popperjs" "^1.1.0" + "@vant/use" "^1.3.6" vdirs@^0.1.4, vdirs@^0.1.8: version "0.1.8" @@ -5996,9 +6396,9 @@ vite-plugin-compression@^0.5.1: debug "^4.3.3" fs-extra "^10.0.0" -vite@^4.5.0: +"vite@^4.0.0 || ^5.0.0", vite@^4.5.0, vite@>=2.0.0: version "4.5.0" - resolved "https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz" + resolved "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz" integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== dependencies: esbuild "^0.18.10" @@ -6016,17 +6416,17 @@ vooks@^0.2.12, vooks@^0.2.4: vue-cropper@^1.1.1: version "1.1.1" - resolved "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-1.1.1.tgz#e1d2729f7139182a893e8badcb8f33257aa2a40f" + resolved "https://registry.npmjs.org/vue-cropper/-/vue-cropper-1.1.1.tgz" integrity sha512-WsqKMpaBf9Osi1LQlE/5AKdD0nHWOy1asLXocaG8NomOWO07jiZi968+/PbMmnD0QbPJOumDQaGuGa13qys85A== vue-demi@>=0.14.5: version "0.14.6" - resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz" integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== vue-eslint-parser@^9.3.1: version "9.3.2" - resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz" integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg== dependencies: debug "^4.3.4" @@ -6049,14 +6449,14 @@ vue-resize@^2.0.0-alpha.1: vue-router@^4.2.5: version "4.2.5" - resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.5.tgz" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz" integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== dependencies: "@vue/devtools-api" "^6.5.0" vue-template-compiler@^2.7.14: version "2.7.15" - resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz" + resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz" integrity sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og== dependencies: de-indent "^1.0.2" @@ -6064,7 +6464,7 @@ vue-template-compiler@^2.7.14: vue-tsc@^1.8.19: version "1.8.22" - resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.22.tgz#421e73c38b50802a6716ca32ed87b5970c867323" + resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.22.tgz" integrity sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A== dependencies: "@volar/typescript" "~1.10.5" @@ -6085,16 +6485,16 @@ vue-virtual-scroller@^2.0.0-beta.8: vue-observe-visibility "^2.0.0-alpha.1" vue-resize "^2.0.0-alpha.1" -vue@*, vue@^3.3.8: - version "3.3.8" - resolved "https://registry.npmmirror.com/vue/-/vue-3.3.8.tgz" - integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w== +vue@*, "vue@^2.6.14 || ^3.3.0", vue@^3, vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.11, vue@^3.2.0, vue@^3.2.25, vue@^3.2.41, vue@^3.3.8, vue@3.3.9, vue@3.x: + version "3.3.9" + resolved "https://registry.npmjs.org/vue/-/vue-3.3.9.tgz" + integrity sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w== dependencies: - "@vue/compiler-dom" "3.3.8" - "@vue/compiler-sfc" "3.3.8" - "@vue/runtime-dom" "3.3.8" - "@vue/server-renderer" "3.3.8" - "@vue/shared" "3.3.8" + "@vue/compiler-dom" "3.3.9" + "@vue/compiler-sfc" "3.3.9" + "@vue/runtime-dom" "3.3.9" + "@vue/server-renderer" "3.3.9" + "@vue/shared" "3.3.9" vuedraggable@^4.1.0: version "4.1.0" @@ -6127,9 +6527,17 @@ wait-on@^6.0.1: minimist "^1.2.5" rxjs "^7.5.4" +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + web-worker@^1.2.0: version "1.2.0" - resolved "https://registry.npmmirror.com/web-worker/-/web-worker-1.2.0.tgz" + resolved "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz" integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== webpack-chain@^4.9.0: @@ -6140,6 +6548,41 @@ webpack-chain@^4.9.0: deepmerge "^1.5.2" javascript-stringify "^1.6.0" +webpack-sources@^3.2.3: + 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== + +webpack@^5.0.0, webpack@^5.1.0: + version "5.76.2" + resolved "https://registry.npmmirror.com/webpack/-/webpack-5.76.2.tgz" + integrity sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w== + 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" + which@^2.0.1: version "2.0.2" resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz" @@ -6161,38 +6604,38 @@ wrappy@1: resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -xgplayer-subtitles@3.0.10: - version "3.0.10" - resolved "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-3.0.10.tgz" - integrity sha512-zdpWLmQu2JhITDIEnV9LqtNMpPxOQf4zcwZ2yxVWjviPtb8CMPA0OBYJ/0uCvI5w2bBY6P7VKcr+r83FQ6PkeQ== +xgplayer-subtitles@3.0.4: + version "3.0.4" + resolved "https://registry.npmmirror.com/xgplayer-subtitles/-/xgplayer-subtitles-3.0.4.tgz" + integrity sha512-KuoLpSzlM9qlIEA8VKBZLTxwkhZB5LH8LsZ59ntueccJ7LAIbsDvMSmmo1kDabInEh+koeZYzhACChT2UrFjTQ== dependencies: eventemitter3 "^4.0.7" xgplayer@^3.0.4: - version "3.0.10" - resolved "https://registry.npmmirror.com/xgplayer/-/xgplayer-3.0.10.tgz" - integrity sha512-lyqVKUOkMeTx9U1DXySHNso2vSfvt249nho+L5sDo+Mroa3dE9mOXJtMs2APG4xEUzj87SiKluh5ha9ytvUg1A== + version "3.0.4" + resolved "https://registry.npmmirror.com/xgplayer/-/xgplayer-3.0.4.tgz" + integrity sha512-7BFsSIDpUkvx4XmS8+4u9ryEHm/UZ4E0mzQCI+JhJvGeGVkcx1+Xlrn4GHQOjuSnPN+l+LKs3biQTYedPhtO6w== dependencies: danmu.js ">=1.1.6" delegate "^3.2.0" downloadjs "1.4.7" eventemitter3 "^4.0.7" - xgplayer-subtitles "3.0.10" + xgplayer-subtitles "3.0.4" xml-name-validator@^4.0.0: version "4.0.0" - resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1: +xmlbuilder@^15.1.1, xmlbuilder@>=11.0.1: version "15.1.1" resolved "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz" integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== xss@^1.0.9: - version "1.0.14" - resolved "https://registry.npmmirror.com/xss/-/xss-1.0.14.tgz" - integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + version "1.0.11" + resolved "https://registry.npmmirror.com/xss/-/xss-1.0.11.tgz" + integrity sha512-EimjrjThZeK2MO7WKR9mN5ZC1CSqivSl55wvUK5EtU6acf0rzEE1pN+9ZDrFXJ82BRp3JL38pPE6S4o/rpp1zQ== dependencies: commander "^2.20.3" cssfilter "0.0.10" @@ -6204,7 +6647,7 @@ y18n@^5.0.5: yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: @@ -6212,23 +6655,23 @@ yallist@^4.0.0: resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== +yargs-parser@^21.0.0: + version "21.0.1" + resolved "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.0.1.tgz" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== yargs@^17.3.1, yargs@^17.5.1: - version "17.7.2" - resolved "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + version "17.5.1" + resolved "https://registry.npmmirror.com/yargs/-/yargs-17.5.1.tgz" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== dependencies: - cliui "^8.0.1" + cliui "^7.0.2" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^21.1.1" + yargs-parser "^21.0.0" yauzl@^2.10.0: version "2.10.0" @@ -6240,5 +6683,5 @@ yauzl@^2.10.0: yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From f9a58cbd6f51847c6163302548f25a3126f6831a Mon Sep 17 00:00:00 2001 From: atorber Date: Tue, 28 Nov 2023 23:15:50 +0800 Subject: [PATCH 02/67] 0.0.2 --- .env | 2 +- .env.electron | 2 +- .env.production | 2 +- package.json | 2 +- src/hooks/useConnectStatus.ts | 4 +++- src/socket.ts | 29 +++++++++++++++++++++++------ 6 files changed, 30 insertions(+), 11 deletions(-) diff --git a/.env b/.env index 24218ca4..9bd8358a 100755 --- a/.env +++ b/.env @@ -4,5 +4,5 @@ VITE_BASE=/ VUE_APP_PREVIEW=false # VITE_BASE_API=http://117.72.9.69:9503 VITE_BASE_API=http://127.0.0.1:9503 -VITE_SOCKET_API=broker.emqx.io +VITE_SOCKET_API=wss://broker.emqx.io:8084 VUE_APP_WEBSITE_NAME="Lumen IM" \ No newline at end of file diff --git a/.env.electron b/.env.electron index 1fb750e6..9faa512f 100644 --- a/.env.electron +++ b/.env.electron @@ -3,4 +3,4 @@ ENV = 'production' VITE_BASE=./ VITE_ROUTER_MODE=hash VITE_BASE_API=http://117.72.9.69:9503 -VITE_SOCKET_API=broker.emqx.io +VITE_SOCKET_API=wss://broker.emqx.io:8084 diff --git a/.env.production b/.env.production index c77cc55f..9c216727 100644 --- a/.env.production +++ b/.env.production @@ -4,4 +4,4 @@ ENV = 'production' VITE_BASE=/ VITE_ROUTER_MODE=history VITE_BASE_API=http://117.72.9.69:9503 -VITE_SOCKET_API=broker.emqx.io \ No newline at end of file +VITE_SOCKET_API=wss://broker.emqx.io:8084 \ No newline at end of file diff --git a/package.json b/package.json index aff2e4d9..93a417cf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "LumenIM", "private": true, - "version": "0.0.1", + "version": "0.0.2", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", diff --git a/src/hooks/useConnectStatus.ts b/src/hooks/useConnectStatus.ts index d2c97b92..5c2ef6c0 100644 --- a/src/hooks/useConnectStatus.ts +++ b/src/hooks/useConnectStatus.ts @@ -3,11 +3,12 @@ import { useRouter } from 'vue-router' import { useSettingsStore } from '@/store' import { isLoggedIn } from '@/utils/auth' import socket from '@/socket' +import { useUserStore } from '@/store' export const useConnectStatus = () => { const settingsStore = useSettingsStore() const router = useRouter() - + const userStore = useUserStore() watchEffect(() => { if (settingsStore.isLeaveWeb) { return @@ -18,6 +19,7 @@ export const useConnectStatus = () => { const paths = ['/auth/login', '/auth/register', '/auth/forget'] if (!paths.includes(pathname) && isLoggedIn()) { + userStore.loadSetting() !socket.isConnect() && socket.connect('useConnectStatus...') } }) diff --git a/src/socket.ts b/src/socket.ts index 7ac6a87e..2408ffa8 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -14,6 +14,14 @@ import { Client } from 'paho-mqtt' // 从'mqtt-paho'库导入Client import { v4 } from 'uuid' import { storage } from '@/utils/storage' +/** + * 延时函数 + * @param {*} ms 毫秒 + */ +async function delay(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + // æ ¼å¼åŒ–æ¶ˆæ¯æ•°æ® function formatMsg(data) { return JSON.stringify({ @@ -109,6 +117,8 @@ class Socket { endpoint + port + clientID options @@ -122,11 +132,15 @@ class Socket { */ constructor() { console.debug('Socket init...') - this.endpoint = import.meta.env.VITE_SOCKET_API + const VITE_SOCKET_API = import.meta.env.VITE_SOCKET_API + // 分割字符串VITE_SOCKET_API为hostå’Œç«¯å£ + const hostAndPort = VITE_SOCKET_API.split('://')[1] + this.endpoint = hostAndPort.split(':')[0] + this.port = hostAndPort.split(':')[1] console.debug('mqtt endpoint:', this.endpoint) this.clientID = v4() console.log('client id:', this.clientID) - this.client = new Client(this.endpoint, 8084, this.clientID) // 创建新的mqtt-paho客户端实例 + this.client = new Client(this.endpoint, Number(this.port), this.clientID) // 创建新的mqtt-paho客户端实例 this.options = { useSSL: true, // 使用 SSL/TLS 进行安全连接 @@ -188,9 +202,11 @@ class Socket { // 连接 mqtt æœåŠ¡ connect(from) { console.debug('connect()请求æ¥è‡ªï¼š', from) - + delay(3000) + const user = storage.get('user_info') console.debug('从缓存中获å–用户信æ¯ï¼š', user) + const { hash } = user.user_info this.botid = hash console.debug('从用户信æ¯ä¸­èŽ·å–hash', hash) @@ -336,7 +352,7 @@ class Socket { } } this.emit('im.message', newMsg) - this.client.publish(this.apis.eventApi, formatMsg({ 'im.message': newMsg })) + // this.client.publish(this.apis.eventApi, formatMsg({ 'im.message': newMsg })) } if (messageObj.events['ping']) { @@ -385,7 +401,6 @@ class Socket { } // 好å‹ç”³è¯·äº‹ä»¶ - if (messageObj.events['im.contact.apply']) { const data = messageObj.events['im.contact.apply'] window['$notification'].create({ @@ -440,7 +455,7 @@ class Socket { */ send(message) { if (this.isConnect()) { - this.client.publish(this.apis.eventApi, formatMsg({ 'im.message': message })) + // this.client.publish(this.apis.eventApi, formatMsg({ 'im.message': message })) this.client.publish(this.apis.commandApi, formatMsgToWechaty(message)) } else { this.client.end() @@ -454,6 +469,8 @@ class Socket { * @param {Object} data æ•°æ® */ emit(event, data) { + console.debug('emit() event:', event) + console.debug('emit() data:', data) const rawMsg = {} rawMsg[event] = data const payload = formatMsg(rawMsg) From 9f35471278b8e2ffca7562d0a764e6f6df908549 Mon Sep 17 00:00:00 2001 From: atorber Date: Tue, 28 Nov 2023 23:24:45 +0800 Subject: [PATCH 03/67] 0.0.3 --- Dockerfile | 15 +++++++++++++++ package.json | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..143b6eea --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +# 使用更å°çš„åŸºç¡€é•œåƒ +FROM node:16-alpine + +# 设置工作目录 +WORKDIR /usr/src/app + +# å¤åˆ¶ package.json å’Œ package-lock.json 并执行 npm install +COPY package.json ./ +RUN npm install + +# å¤åˆ¶åº”ç”¨ç¨‹åºæ–‡ä»¶ +COPY . . + +# 设置å¯åЍ命令 +CMD [ "npm", "run", "dev" ] \ No newline at end of file diff --git a/package.json b/package.json index 93a417cf..f50841f2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "LumenIM", "private": true, - "version": "0.0.2", + "version": "0.0.3", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", From 8ba13b87876b6552d109eebfbcd5bc0e2380a144 Mon Sep 17 00:00:00 2001 From: atorber Date: Tue, 28 Nov 2023 23:33:28 +0800 Subject: [PATCH 04/67] 0.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f50841f2..7634e850 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "LumenIM", "private": true, - "version": "0.0.3", + "version": "0.1.0", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", From f9d5e49ca4cc5a4d3cbd40f86ca3a1c4fba023f2 Mon Sep 17 00:00:00 2001 From: atorber Date: Tue, 28 Nov 2023 23:41:49 +0800 Subject: [PATCH 05/67] 0.1.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7634e850..aff0905b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "LumenIM", "private": true, - "version": "0.1.0", + "version": "0.1.1", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", From 81e733ed462994bf3be23d6b633712ca1ea3dd5e Mon Sep 17 00:00:00 2001 From: atorber Date: Tue, 28 Nov 2023 23:45:30 +0800 Subject: [PATCH 06/67] Create docker-image.yml --- .github/workflows/docker-image.yml | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 00000000..ab904bec --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,37 @@ +# docker-image.yml +name: Publish Docker image # workflowå称,å¯ä»¥åœ¨Github项目主页的ã€Actions】中看到所有的workflow + +on: # é…置触å‘workflow的事件 + push: + branches: + - chatflow + +jobs: # workflow中的job + + push_to_registry: # jobçš„åå­— + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest # jobè¿è¡Œçš„基础环境 + + steps: # 一个job由一个或多个stepç»„æˆ + - name: Check out the repo + uses: actions/checkout@v2 # 官方的action,获å–ä»£ç  + + - name: Log in to Docker Hub + uses: docker/login-action@v1 # 三方的actionæ“作, 执行docker login + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} # é…ç½®dockerhub的认è¯ï¼Œåœ¨Github项目主页 ã€Settings】 -> ã€Secrets】 添加对应å˜é‡ + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v3 # 抽å–项目信æ¯ï¼Œä¸»è¦æ˜¯é•œåƒçš„tag + with: + images: atorber/chatflow-console + + - name: Build and push Docker image + uses: docker/build-push-action@v2 # docker build & push + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From 8085e4a4023c33af9f82be4ea005ccfb4047477d Mon Sep 17 00:00:00 2001 From: atorber Date: Wed, 29 Nov 2023 00:15:00 +0800 Subject: [PATCH 07/67] Update docker-image.yml --- .github/workflows/docker-image.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index ab904bec..b95fcdf0 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -22,6 +22,10 @@ jobs: # workflow中的job username: ${{ secrets.DOCKERHUB_USERNAME }} # é…ç½®dockerhub的认è¯ï¼Œåœ¨Github项目主页 ã€Settings】 -> ã€Secrets】 添加对应å˜é‡ password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Extract package version + id: package_version + run: echo "::set-output name=VERSION::$(jq -r '.version' package.json)" + - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v3 # 抽å–项目信æ¯ï¼Œä¸»è¦æ˜¯é•œåƒçš„tag @@ -33,5 +37,5 @@ jobs: # workflow中的job with: context: . push: true - tags: ${{ steps.meta.outputs.tags }} + tags: ${{ steps.package_version.outputs.VERSION }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From 302a3d8868aeb58c5891cd0f957b07160bd80f35 Mon Sep 17 00:00:00 2001 From: atorber Date: Wed, 29 Nov 2023 00:18:29 +0800 Subject: [PATCH 08/67] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index b95fcdf0..c1b66157 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -37,5 +37,5 @@ jobs: # workflow中的job with: context: . push: true - tags: ${{ steps.package_version.outputs.VERSION }} + tags: atorber/chatflow-console:${{ steps.package_version.outputs.VERSION }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From af8713e163b2f3fcf9040446c038bdf7fc10397b Mon Sep 17 00:00:00 2001 From: atorber Date: Wed, 29 Nov 2023 01:15:30 +0800 Subject: [PATCH 09/67] 0.2.0 --- .env | 2 +- Dockerfile | 2 +- README.md | 64 ++++++++--------------- index.html | 2 +- package-lock.json | 8 +-- package.json | 11 ++-- src/event/socket/talk.js | 2 +- src/layout/component/Menu.vue | 2 +- src/views/auth/layout.vue | 6 +-- src/views/message/inner/IndexAmicable.vue | 2 +- 10 files changed, 40 insertions(+), 61 deletions(-) diff --git a/.env b/.env index 9bd8358a..5d30762b 100755 --- a/.env +++ b/.env @@ -5,4 +5,4 @@ VUE_APP_PREVIEW=false # VITE_BASE_API=http://117.72.9.69:9503 VITE_BASE_API=http://127.0.0.1:9503 VITE_SOCKET_API=wss://broker.emqx.io:8084 -VUE_APP_WEBSITE_NAME="Lumen IM" \ No newline at end of file +VUE_APP_WEBSITE_NAME="ChatFlow" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 143b6eea..5454a1d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,4 +12,4 @@ RUN npm install COPY . . # 设置å¯åЍ命令 -CMD [ "npm", "run", "dev" ] \ No newline at end of file +CMD [ "npm", "run", "dev:host"] \ No newline at end of file diff --git a/README.md b/README.md index fb5a401f..01f13a5e 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,25 @@ -# Lumen IM 峿—¶èŠå¤© -GitHub stars badge GitHub forks badge GitHub license badge +# ChatFlow Console 峿—¶èŠå¤© +GitHub stars badge GitHub forks badge GitHub license badge -### é¡¹ç›®ä»‹ç» -Lumen IM 是一个网页版在线èŠå¤©é¡¹ç›®ï¼Œå‰ç«¯ä½¿ç”¨ Naive UI + Vue3,åŽç«¯é‡‡ç”¨ GO å¼€å‘。 +## é¡¹ç›®ä»‹ç» +ChatFlow Console 是一个网页版在线èŠå¤©é¡¹ç›®ï¼Œå‰ç«¯ä½¿ç”¨ Naive UI + Vue3,åŽç«¯é‡‡ç”¨ nest å¼€å‘。 -### åŠŸèƒ½æ¨¡å— +## åŠŸèƒ½æ¨¡å— - 支æŒç§èŠåŠç¾¤èŠ - 支æŒå¤šç§èŠå¤©æ¶ˆæ¯ç±»åž‹ 例如:文本消æ¯ã€ä»£ç å—ã€ç¾¤æŠ•票ã€å›¾ç‰‡åŠå…¶å®ƒç±»åž‹æ–‡ä»¶ï¼Œå¹¶æ”¯æŒæ–‡ä»¶ä¸‹è½½ - 支æŒèŠå¤©æ¶ˆæ¯æ’¤å›žã€åˆ é™¤(批é‡åˆ é™¤)ã€è½¬å‘消æ¯(逿¡è½¬å‘ã€åˆå¹¶è½¬å‘) - 支æŒç¼–写笔记 -### 项目预览 -- 地å€ï¼š [http://im.gzydong.com](http://im.gzydong.com) +## 项目预览 +- 地å€ï¼š [http://117.72.9.69:5173](http://117.72.9.69:5173) -### 项目安装(部署) +## 项目安装(部署) -###### 下载安装 +### 下载安装 ```bash ## 克隆项目æºç åŒ… -git clone https://gitee.com/gzydong/LumenIM.git -或 -git clone https://github.com/gzydong/LumenIM.git + +git clone https://github.com/atorber/chat-studio.git ## 安装项目ä¾èµ–扩展组件 yarn install @@ -37,44 +36,23 @@ yarn build yarn electron:build ``` -###### 修改 .env é…ç½®ä¿¡æ¯ +### 修改 .env é…ç½®ä¿¡æ¯ ```env VITE_BASE_API=http://127.0.0.1:9503 -VITE_SOCKET_API=ws://127.0.0.1:9504 +VITE_SOCKET_API=wss://broker.emqx.io:8084 ``` -###### 关于 Nginx 的一些é…ç½® -```nginx -server { - listen 80; - server_name www.yourdomain.com; - - root /project-path/dist; - index index.html; - - location / { - try_files $uri $uri/ /index.html; - } - - location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ { - expires 7d; - } - - location ~ .*\.(js|css)?$ { - expires 7d; - } -} -``` - -### 项目æºç  +## 项目æºç  |代ç ä»“库|å‰ç«¯æºç |åŽç«¯æºç | |-|-|-| -|Github|https://github.com/gzydong/LumenIM|https://github.com/gzydong/go-chat| -|ç äº‘|https://gitee.com/gzydong/LumenIM|https://gitee.com/gzydong/go-chat| +|Github|https://github.com/atorber/chat-studio|https://github.com/atorber/chatflow-admin| + + +## è”ç³»æ–¹å¼ +QQ群 : 583830241 -#### è”ç³»æ–¹å¼ -QQ作者 : 837215079 +微信 : ledongmao -### 如果你觉得还ä¸é”™ï¼Œè¯· Star , Fork 给作者鼓励一下。 \ No newline at end of file +> 如果你觉得还ä¸é”™ï¼Œè¯· Star , Fork 给作者鼓励一下。 \ No newline at end of file diff --git a/index.html b/index.html index 157560b0..0dba6853 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ - Lumen IM + ChatFlow diff --git a/src/views/setting/layout.vue b/src/views/setting/layout.vue index 966ba947..7ee07a04 100644 --- a/src/views/setting/layout.vue +++ b/src/views/setting/layout.vue @@ -27,6 +27,11 @@ const menus = [ name: '通知设置', path: '/settings/notification', icon: Remind + }, + { + name: '系统é…ç½®', + path: '/settings/config', + icon: Remind } ] From 87f34a402e2e44920c279799968ed1dcee8b7d5f Mon Sep 17 00:00:00 2001 From: atorber Date: Fri, 1 Dec 2023 20:11:38 +0800 Subject: [PATCH 20/67] 0.3.2 --- .env | 4 +- src/App.vue | 2 +- src/api/user.js | 10 + src/components/user/EditorConfig.vue | 152 ++++++ src/views/setting/config.vue | 775 +++++++++++++-------------- src/views/setting/layout.vue | 30 +- src/views/setting/personalize.vue | 66 ++- 7 files changed, 612 insertions(+), 427 deletions(-) create mode 100644 src/components/user/EditorConfig.vue diff --git a/.env b/.env index 5c945864..ba9196a0 100755 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ ENV = 'development' VITE_BASE=/ VUE_APP_PREVIEW=false -# VITE_BASE_API=https://chat.vlist.cc -VITE_BASE_API=http://127.0.0.1:9503 +VITE_BASE_API=https://chat.vlist.cc +# VITE_BASE_API=http://127.0.0.1:9503 VITE_SOCKET_API=wss://broker.emqx.io:8084 VUE_APP_WEBSITE_NAME="ChatFlow" \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index e0013bcd..e2097701 100644 --- a/src/App.vue +++ b/src/App.vue @@ -58,7 +58,7 @@ const init = () => { init() useVisibilityChange() -useAccessPrompt() +// useAccessPrompt() useNotifyAuth() useUnreadMessage() useConnectStatus() diff --git a/src/api/user.js b/src/api/user.js index 0db385ed..982aa9db 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -34,3 +34,13 @@ export const ServeGetUserSetting = () => { export const ServeGetUserConfig = () => { return get('/api/v1/users/config') } + +// 获å–用户相关系统é…置信æ¯åˆ†ç»„ +export const ServeGetUserConfigGroup = () => { + return get('/api/v1/users/config/group') +} + +// 修改é…ç½®æœåŠ¡æŽ¥å£ +export const ServeUpdateConfig = (data) => { + return post('/api/v1/users/config', data) +} \ No newline at end of file diff --git a/src/components/user/EditorConfig.vue b/src/components/user/EditorConfig.vue new file mode 100644 index 00000000..76c60e89 --- /dev/null +++ b/src/components/user/EditorConfig.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/views/setting/config.vue b/src/views/setting/config.vue index 02403183..dbf2a665 100644 --- a/src/views/setting/config.vue +++ b/src/views/setting/config.vue @@ -1,21 +1,37 @@ diff --git a/src/views/setting/personalize.vue b/src/views/setting/personalize.vue index c4dab954..5e26dde2 100644 --- a/src/views/setting/personalize.vue +++ b/src/views/setting/personalize.vue @@ -7,6 +7,34 @@ import { isElectronMode } from '@/utils/common' const settingsStore = useSettingsStore() +const isPromptTone = computed({ + get: () => settingsStore.isPromptTone, + set: (val) => { + settingsStore.setPromptTone(val) + } +}) + +const isKeyboard = computed({ + get: () => settingsStore.isKeyboard, + set: (val) => { + settingsStore.setKeyboard(val) + } +}) + +const isWebNotify = computed({ + get: () => settingsStore.isWebNotify, + set: (val) => { + if (val === false) { + settingsStore.isWebNotify = false + } else { + window.Notification.requestPermission((res) => { + console.log(res) + settingsStore.isWebNotify = 'granted' === res + }) + } + } +}) + const isFullScreen = computed({ get: () => settingsStore.isFullScreen, set: (val) => { @@ -45,41 +73,49 @@ const railStyle = ({ focused, checked }) => {
-
主题颜色
-
当å‰ä¸»é¢˜é¢œè‰² :{{ darkTheme ? '浅色' : '深色' }}
+
æ–°æ¶ˆæ¯æç¤ºéŸ³
+
æ–°æ¶ˆæ¯æç¤ºéŸ³ :{{ isPromptTone ? '已开å¯' : '已关闭' }}
- +
-
+
-
主题模å¼
-
当å‰ä¸»é¢˜æ¨¡å¼ :{{ isFullScreen ? '免屿¨¡å¼' : '居中模å¼' }}
+
推é€é”®ç›˜è¾“入消æ¯
+
推é€é”®ç›˜è¾“入消æ¯ï¼š{{ isKeyboard ? '已开å¯' : '已关闭' }}
- +
-
-
我的å片
-
当剿œªè®¾ç½®å片背景
+
消æ¯é€šçŸ¥
+
消æ¯é€šçŸ¥ï¼š{{ isWebNotify ? '已开å¯' : '已关闭' }}
- 修改 +
-
-
èŠå¤©èƒŒæ™¯
-
当剿œªè®¾ç½®èŠå¤©èƒŒæ™¯å›¾
+
主题颜色
+
当å‰ä¸»é¢˜é¢œè‰² :{{ darkTheme ? '浅色' : '深色' }}
+
+
+ +
+
+ +
+
+
主题模å¼
+
当å‰ä¸»é¢˜æ¨¡å¼ :{{ isFullScreen ? '免屿¨¡å¼' : '居中模å¼' }}
- 修改 +
From e0826a8c61eb06f202ee1485df6da7ceb81b1828 Mon Sep 17 00:00:00 2001 From: atorber Date: Sat, 2 Dec 2023 12:31:57 +0800 Subject: [PATCH 21/67] 0.3.3 --- .env | 4 ++-- package-lock.json | 8 +++---- package.json | 2 +- src/api/upload.js | 1 + src/components/editor/Editor.vue | 1 - src/socket.ts | 39 ++++++++++++++++++++++++++------ src/store/modules/uploads.js | 6 ++++- 7 files changed, 45 insertions(+), 16 deletions(-) diff --git a/.env b/.env index ba9196a0..5c945864 100755 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ ENV = 'development' VITE_BASE=/ VUE_APP_PREVIEW=false -VITE_BASE_API=https://chat.vlist.cc -# VITE_BASE_API=http://127.0.0.1:9503 +# VITE_BASE_API=https://chat.vlist.cc +VITE_BASE_API=http://127.0.0.1:9503 VITE_SOCKET_API=wss://broker.emqx.io:8084 VUE_APP_WEBSITE_NAME="ChatFlow" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0f61d17d..be56ce62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "ChatFlow", - "version": "0.1.1", + "name": "ChatFlowConsole", + "version": "0.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "ChatFlow", - "version": "0.1.1", + "name": "ChatFlowConsole", + "version": "0.3.2", "dependencies": { "@highlightjs/vue-plugin": "^2.1.0", "@kangc/v-md-editor": "^2.3.18", diff --git a/package.json b/package.json index 6815c736..3807bf5a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ChatFlowConsole", "private": true, - "version": "0.3.2", + "version": "0.3.3", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", diff --git a/src/api/upload.js b/src/api/upload.js index 78e61afc..73fa5184 100644 --- a/src/api/upload.js +++ b/src/api/upload.js @@ -7,6 +7,7 @@ export const ServeUploadAvatar = (data) => { // 上传头åƒè£å‰ªå›¾ç‰‡æœåŠ¡æŽ¥å£ export const ServeUploadImage = (data) => { + console.log(data) return post('/api/v1/upload/image', data) } diff --git a/src/components/editor/Editor.vue b/src/components/editor/Editor.vue index 1971d6a5..1546629a 100644 --- a/src/components/editor/Editor.vue +++ b/src/components/editor/Editor.vue @@ -190,7 +190,6 @@ function onUploadImage(file: File) { form.append('file', file) form.append('width', image.width.toString()) form.append('height', image.height.toString()) - ServeUploadImage(form).then(({ code, data, message }) => { if (code == 200) { resolve(data.src) diff --git a/src/socket.ts b/src/socket.ts index 2408ffa8..b29d784e 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -203,7 +203,7 @@ class Socket { connect(from) { console.debug('connect()请求æ¥è‡ªï¼š', from) delay(3000) - + const user = storage.get('user_info') console.debug('从缓存中获å–用户信æ¯ï¼š', user) @@ -267,13 +267,21 @@ class Socket { const receiver_id = rawMsg.room ? rawMsg.room.id : rawMsg.listener.id const messageType = rawMsg.data.payload.type let msg_type = 1 + let extra = {} switch (messageType) { case 'Text': msg_type = 1 break - case 'Image': + case 'Image': { msg_type = 3 + extra = { + width: 108, + height: 108, + url: rawMsg.url, + size: 0 + } break + } case 'Emoticon': msg_type = 1 break @@ -283,11 +291,30 @@ class Socket { case 'Audio': msg_type = 4 break - case 'Attachment': + case 'Attachment': { msg_type = 6 + const filename = rawMsg.url.split('/').pop() + const suffix = filename.split('.').pop() + extra = { + "suffix": suffix, + "name": filename, + "path": rawMsg.url, + "size": 0, + "drive": 1 + } break + } case 'Video': msg_type = 5 + const filename = rawMsg.url.split('/').pop() + const suffix = filename.split('.').pop() + extra = { + "suffix": suffix, + "name": filename, + "path": rawMsg.url, + "size": 0, + "drive": 1 + } break case 'MiniProgram': msg_type = 1 @@ -344,11 +371,9 @@ class Socket { is_revoke: 0, // æ˜¯å¦æ’¤å›ž is_mark: 0, // æ˜¯å¦æ ‡è®° is_read: 0, // 是å¦å·²è¯» - content: rawMsg.data.payload.text, // 消æ¯å†…容 + content: rawMsg.data.payload.text || messageType, // 消æ¯å†…容 created_at: rawMsg.time, // 创建时间 - extra: { - // 扩展字段 - } + extra, } } this.emit('im.message', newMsg) diff --git a/src/store/modules/uploads.js b/src/store/modules/uploads.js index 15c67ca8..17fb3972 100644 --- a/src/store/modules/uploads.js +++ b/src/store/modules/uploads.js @@ -7,6 +7,7 @@ const message = window.window.$message // å¤„ç†æ‹†åˆ†ä¸Šä¼ æ–‡ä»¶ function fileSlice(file, uploadId, eachSize) { + console.log(file, uploadId, eachSize) const splitNum = Math.ceil(file.size / eachSize) // 分片总数 const items = [] @@ -16,6 +17,7 @@ function fileSlice(file, uploadId, eachSize) { let end = Math.min(file.size, start + eachSize) const form = new FormData() + form.append('file_name', file.name) form.append('file', file.slice(start, end)) form.append('upload_id', uploadId) form.append('split_index', i) @@ -97,6 +99,7 @@ export const useUploadsStore = defineStore('uploads', { if (item.uploadIndex === item.files.length) { item.status = 2 item.percentage = 100 + item.url = res.data.src this.sendUploadMessage(item) } else { let percentage = (item.uploadIndex / item.files.length) * 100 @@ -117,7 +120,8 @@ export const useUploadsStore = defineStore('uploads', { ServeSendTalkFile({ upload_id: item.upload_id, receiver_id: item.receiver_id, - talk_type: item.talk_type + talk_type: item.talk_type, + url: item.url, }) } } From cae68ce929723bc867f6b4fbdcde1e1493b1047e Mon Sep 17 00:00:00 2001 From: atorber Date: Sat, 2 Dec 2023 15:00:51 +0800 Subject: [PATCH 22/67] Update socket.ts --- src/socket.ts | 71 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/src/socket.ts b/src/socket.ts index b29d784e..e78de7f4 100644 --- a/src/socket.ts +++ b/src/socket.ts @@ -7,7 +7,7 @@ import EventKeyboard from './event/socket/keyboard' import EventLogin from './event/socket/login' import EventRevoke from './event/socket/revoke' -import { NAvatar } from 'naive-ui' +import { NAvatar, c } from 'naive-ui' import { notifyIcon } from '@/constant/default' import { Client } from 'paho-mqtt' // 从'mqtt-paho'库导入Client @@ -261,12 +261,13 @@ class Socket { // rawMsg.room.id = 1029; // } // rawMsg.talker.id = 2055; - const talk_type = rawMsg.room ? 2 : 1 const user_id = rawMsg.talker.id const receiver_id = rawMsg.room ? rawMsg.room.id : rawMsg.listener.id - const messageType = rawMsg.data.payload.type + const messageType = rawMsg.type let msg_type = 1 + const text = rawMsg.text ? JSON.parse(rawMsg.text) : {} + console.debug('text', text) let extra = {} switch (messageType) { case 'Text': @@ -274,11 +275,13 @@ class Socket { break case 'Image': { msg_type = 3 - extra = { - width: 108, - height: 108, - url: rawMsg.url, - size: 0 + if (text.url) { + extra = { + width: 54, + height: 54, + url: text.url, + size: text.size + } } break } @@ -290,32 +293,48 @@ class Socket { break case 'Audio': msg_type = 4 + if (text.url) { + const filename = text.name + const suffix = filename.split('.').pop() + extra = { + "suffix": suffix, + "name": text.name, + "path": text.url, + "size": 0, + "drive": 1 + } + } break case 'Attachment': { msg_type = 6 - const filename = rawMsg.url.split('/').pop() - const suffix = filename.split('.').pop() - extra = { - "suffix": suffix, - "name": filename, - "path": rawMsg.url, - "size": 0, - "drive": 1 + if (text.url) { + const filename = text.name + const suffix = filename.split('.').pop() + extra = { + "suffix": suffix, + "name": text.name, + "path": text.url, + "size": 0, + "drive": 1 + } } break } - case 'Video': + case 'Video': { msg_type = 5 - const filename = rawMsg.url.split('/').pop() - const suffix = filename.split('.').pop() - extra = { - "suffix": suffix, - "name": filename, - "path": rawMsg.url, - "size": 0, - "drive": 1 + if (text.url) { + const filename = text.name + const suffix = filename.split('.').pop() + extra = { + "suffix": suffix, + "name": text.name, + "path": text.url, + "size": 0, + "drive": 1 + } } break + } case 'MiniProgram': msg_type = 1 break @@ -371,7 +390,7 @@ class Socket { is_revoke: 0, // æ˜¯å¦æ’¤å›ž is_mark: 0, // æ˜¯å¦æ ‡è®° is_read: 0, // 是å¦å·²è¯» - content: rawMsg.data.payload.text || messageType, // 消æ¯å†…容 + content: rawMsg.data.payload.text || '', // 消æ¯å†…容 created_at: rawMsg.time, // 创建时间 extra, } From 9254a9db62fc2d60a9c6a432251eda9e4eed2e31 Mon Sep 17 00:00:00 2001 From: LuChao Date: Sat, 2 Dec 2023 15:48:55 +0800 Subject: [PATCH 23/67] Delete .github/workflows/docker-image.yml --- .github/workflows/docker-image.yml | 41 ------------------------------ 1 file changed, 41 deletions(-) delete mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index 8d5e8ec0..00000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,41 +0,0 @@ -# docker-image.yml -name: Publish Docker image # workflowå称,å¯ä»¥åœ¨Github项目主页的ã€Actions】中看到所有的workflow - -on: # é…置触å‘workflow的事件 - push: - branches: - - main - -jobs: # workflow中的job - - push_to_registry: # jobçš„åå­— - name: Push Docker image to Docker Hub - runs-on: ubuntu-latest # jobè¿è¡Œçš„基础环境 - - steps: # 一个job由一个或多个stepç»„æˆ - - name: Check out the repo - uses: actions/checkout@v2 # 官方的action,获å–ä»£ç  - - - name: Log in to Docker Hub - uses: docker/login-action@v1 # 三方的actionæ“作, 执行docker login - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} # é…ç½®dockerhub的认è¯ï¼Œåœ¨Github项目主页 ã€Settings】 -> ã€Secrets】 添加对应å˜é‡ - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Extract package version - id: package_version - run: echo "::set-output name=VERSION::$(jq -r '.version' package.json)" - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v3 # 抽å–项目信æ¯ï¼Œä¸»è¦æ˜¯é•œåƒçš„tag - with: - images: atorber/chatflow-console - - - name: Build and push Docker image - uses: docker/build-push-action@v2 # docker build & push - with: - context: . - push: true - tags: atorber/chatflow-console:${{ steps.package_version.outputs.VERSION }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From f6bbcb45d377b73a0c85d8227e743f2a83cd1356 Mon Sep 17 00:00:00 2001 From: atorber Date: Sat, 2 Dec 2023 22:27:07 +0800 Subject: [PATCH 24/67] 0.4.0 --- .env | 4 ++-- .gitignore | 1 - env.d.ts | 1 + index.html | 10 ---------- package.json | 2 +- src/App.vue | 4 ++-- src/components/editor/Editor.vue | 16 ++++++++-------- src/components/talk/HistoryRecord.vue | 2 +- src/{socket.ts => connect.ts} | 6 +++--- src/event/socket/talk.js | 4 ++-- src/hooks/useConnectStatus.ts | 4 ++-- src/hooks/useIconProvider.js | 15 --------------- src/hooks/useTalkRecord.ts | 3 --- src/hooks/useThemeMode.ts | 1 - src/plugins/ws-socket.js | 2 +- src/views/auth/login.vue | 6 +++--- src/views/message/inner/panel/PanelFooter.vue | 4 ++-- src/views/setting/config.vue | 9 ++++++++- tsconfig.json | 10 +--------- 19 files changed, 37 insertions(+), 67 deletions(-) create mode 100644 env.d.ts rename src/{socket.ts => connect.ts} (99%) delete mode 100644 src/hooks/useIconProvider.js diff --git a/.env b/.env index 5c945864..ba9196a0 100755 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ ENV = 'development' VITE_BASE=/ VUE_APP_PREVIEW=false -# VITE_BASE_API=https://chat.vlist.cc -VITE_BASE_API=http://127.0.0.1:9503 +VITE_BASE_API=https://chat.vlist.cc +# VITE_BASE_API=http://127.0.0.1:9503 VITE_SOCKET_API=wss://broker.emqx.io:8084 VUE_APP_WEBSITE_NAME="ChatFlow" \ No newline at end of file diff --git a/.gitignore b/.gitignore index da4fb3af..e4679766 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,3 @@ makefile *.njsproj *.sln *.sw? -makefile diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/index.html b/index.html index 0dba6853..7beabe87 100644 --- a/index.html +++ b/index.html @@ -49,16 +49,6 @@ } } - diff --git a/package.json b/package.json index 3807bf5a..0f45e409 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ChatFlowConsole", "private": true, - "version": "0.3.3", + "version": "0.4.0", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", diff --git a/src/App.vue b/src/App.vue index e2097701..5e8092f2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -13,7 +13,7 @@ import { } from 'naive-ui' import hljs from 'highlight.js/lib/core' import { useUserStore, useTalkStore } from '@/store' -import socket from '@/socket' +import ws from '@/connect' import { bus } from '@/utils/event-bus' import { isLoggedIn } from '@/utils/auth' import { NotificationApi, MessageApi, DialogApi } from '@/components/common' @@ -52,7 +52,7 @@ const init = () => { return } else { userStore.loadSetting() - socket.connect('App.vue init...') + ws.connect('App.vue init...') } } diff --git a/src/components/editor/Editor.vue b/src/components/editor/Editor.vue index 1546629a..f55cafaa 100644 --- a/src/components/editor/Editor.vue +++ b/src/components/editor/Editor.vue @@ -163,14 +163,14 @@ const navs = reactive([ show: true, click: () => {} }, - { - title: '群投票', - icon: markRaw(Ranking), - show: computed(() => props.vote), - click: () => { - isShowEditorVote.value = true - } - }, + // { + // title: '群投票', + // icon: markRaw(Ranking), + // show: computed(() => props.vote), + // click: () => { + // isShowEditorVote.value = true + // } + // }, { title: '历å²è®°å½•', icon: markRaw(History), diff --git a/src/components/talk/HistoryRecord.vue b/src/components/talk/HistoryRecord.vue index b6ebe6a5..8145ddab 100644 --- a/src/components/talk/HistoryRecord.vue +++ b/src/components/talk/HistoryRecord.vue @@ -39,7 +39,7 @@ const tabs = [ { name: '会è¯', type: message.ChatMsgTypeForward, show: true }, { name: '代ç ', type: message.ChatMsgTypeCode, show: true }, { name: 'ä½ç½®', type: message.ChatMsgTypeLocation, show: true }, - { name: '群投票', type: message.ChatMsgTypeVote, show: props.talkType == 2 } + // { name: '群投票', type: message.ChatMsgTypeVote, show: props.talkType == 2 } ] const onMaskClick = () => { diff --git a/src/socket.ts b/src/connect.ts similarity index 99% rename from src/socket.ts rename to src/connect.ts index e78de7f4..3e1e2fd0 100644 --- a/src/socket.ts +++ b/src/connect.ts @@ -1,5 +1,8 @@ import { h } from 'vue' +import { NAvatar } from 'naive-ui' import { useTalkStore, useUserStore, useDialogueStore } from '@/store' +import { notifyIcon } from '@/constant/default' + import { isLoggedIn } from './utils/auth' import EventTalk from './event/socket/talk' @@ -7,9 +10,6 @@ import EventKeyboard from './event/socket/keyboard' import EventLogin from './event/socket/login' import EventRevoke from './event/socket/revoke' -import { NAvatar, c } from 'naive-ui' -import { notifyIcon } from '@/constant/default' - import { Client } from 'paho-mqtt' // 从'mqtt-paho'库导入Client import { v4 } from 'uuid' import { storage } from '@/utils/storage' diff --git a/src/event/socket/talk.js b/src/event/socket/talk.js index 0706b4ea..94eb3f02 100644 --- a/src/event/socket/talk.js +++ b/src/event/socket/talk.js @@ -1,6 +1,6 @@ import Base from './base' import { nextTick } from 'vue' -import socket from '@/socket' +import ws from '@/connect' import { parseTime } from '@/utils/datetime' import { WebNotify } from '@/utils/notification' import * as message from '@/constant/message' @@ -177,7 +177,7 @@ class Talk extends Base { if (!this.isCurrSender()) { // 推é€å·²è¯»æ¶ˆæ¯ setTimeout(() => { - socket.emit('im.message.read', { + ws.emit('im.message.read', { receiver_id: this.sender_id, msg_id: [this.resource.id] }) diff --git a/src/hooks/useConnectStatus.ts b/src/hooks/useConnectStatus.ts index 5c2ef6c0..3fc2b2a9 100644 --- a/src/hooks/useConnectStatus.ts +++ b/src/hooks/useConnectStatus.ts @@ -2,7 +2,7 @@ import { watchEffect } from 'vue' import { useRouter } from 'vue-router' import { useSettingsStore } from '@/store' import { isLoggedIn } from '@/utils/auth' -import socket from '@/socket' +import ws from '@/connect' import { useUserStore } from '@/store' export const useConnectStatus = () => { @@ -20,7 +20,7 @@ export const useConnectStatus = () => { if (!paths.includes(pathname) && isLoggedIn()) { userStore.loadSetting() - !socket.isConnect() && socket.connect('useConnectStatus...') + !ws.isConnect() && ws.connect('useConnectStatus...') } }) diff --git a/src/hooks/useIconProvider.js b/src/hooks/useIconProvider.js deleted file mode 100644 index 2ed24b3b..00000000 --- a/src/hooks/useIconProvider.js +++ /dev/null @@ -1,15 +0,0 @@ -import { IconProvider, DEFAULT_ICON_CONFIGS } from '@icon-park/vue-next' - -export function useIconProvider() { - function iconProvider() { - IconProvider({ - ...DEFAULT_ICON_CONFIGS, - theme: 'outline', - size: 24, - strokeWidth: 3, - strokeLinejoin: 'bevel' - }) - } - - return { iconProvider } -} diff --git a/src/hooks/useTalkRecord.ts b/src/hooks/useTalkRecord.ts index 2c017d89..0a23e14e 100644 --- a/src/hooks/useTalkRecord.ts +++ b/src/hooks/useTalkRecord.ts @@ -116,9 +116,6 @@ export const useTalkRecord = (uid: number) => { if (request.record_id == 0) { el.scrollTop = el.scrollHeight - setTimeout(() => { - el && (el.scrollTop = el?.scrollHeight) - }, 100) } else { el.scrollTop = el.scrollHeight - scrollHeight } diff --git a/src/hooks/useThemeMode.ts b/src/hooks/useThemeMode.ts index eda9bfd6..2243cbb5 100644 --- a/src/hooks/useThemeMode.ts +++ b/src/hooks/useThemeMode.ts @@ -10,7 +10,6 @@ export function useThemeMode() { const theme = settingsStore.darkTheme ? 'dark' : 'light' document.getElementsByTagName('html')[0].dataset.theme = theme - document.getElementsByTagName('html')[0].style = '' return settingsStore.darkTheme ? darkTheme : undefined }) diff --git a/src/plugins/ws-socket.js b/src/plugins/ws-socket.js index 69ddc431..2605a2f4 100644 --- a/src/plugins/ws-socket.js +++ b/src/plugins/ws-socket.js @@ -6,7 +6,7 @@ class WsSocket { * * @var Websocket */ - connect = null + connect /** * é…ç½®ä¿¡æ¯ diff --git a/src/views/auth/login.vue b/src/views/auth/login.vue index ddf016a8..1defc663 100644 --- a/src/views/auth/login.vue +++ b/src/views/auth/login.vue @@ -5,7 +5,7 @@ import { NDivider, NForm, NFormItem } from 'naive-ui' import { ServeLogin } from '@/api/auth' import { setAccessToken } from '@/utils/auth' import { palyMusic } from '@/utils/talk' -import socket from '@/socket' +import ws from '@/connect' import { useUserStore } from '@/store' const userStore = useUserStore() @@ -45,8 +45,8 @@ const onLogin = () => { window['$message'].success('登录æˆåŠŸ') setAccessToken(res.data.access_token, res.data.expires_in) userStore.loadSetting() - !socket.isConnect() && socket.connect('onLogin...') - // socket.connect() + !ws.isConnect() && ws.connect('onLogin...') + // ws.connect() router.push(route.query.redirect || '/') } else { window['$message'].warning(res.message) diff --git a/src/views/message/inner/panel/PanelFooter.vue b/src/views/message/inner/panel/PanelFooter.vue index a9226894..7c9c67cc 100644 --- a/src/views/message/inner/panel/PanelFooter.vue +++ b/src/views/message/inner/panel/PanelFooter.vue @@ -7,7 +7,7 @@ import { useUploadsStore, useEditorStore } from '@/store' -import socket from '@/socket' +import ws from '@/connect' import { ServePublishMessage, ServeSendVote } from '@/api/chat' import { throttle, getVideoImage } from '@/utils/common' import Editor from '@/components/editor/Editor.vue' @@ -181,7 +181,7 @@ const onSendMixedEvent = ({ data, callBack }) => { } const onKeyboardPush = throttle(() => { - socket.emit('im.message.keyboard', { + ws.emit('im.message.keyboard', { sender_id: props.uid, receiver_id: props.receiver_id }) diff --git a/src/views/setting/config.vue b/src/views/setting/config.vue index dbf2a665..aecdbd63 100644 --- a/src/views/setting/config.vue +++ b/src/views/setting/config.vue @@ -414,7 +414,7 @@ const onUploadAvatar = (avatar) => {
{{ key }}
-
+
{{ subitem.name }} : {{ subitem.value || '未设置' }}      @@ -472,4 +472,11 @@ const onUploadAvatar = (avatar) => { border-radius: 10px; margin-bottom: 20px; } +.text-ellipsis { + width: 750px; /* 调整这个宽度以适应大约10个字符 */ + white-space: nowrap; /* ç¡®ä¿æ–‡æœ¬ä¸ä¼šæ¢è¡Œ */ + overflow: hidden; /* éšè—超出部分的文本 */ + text-overflow: ellipsis; /* 当文本超出容器宽度时显示çœç•¥å· */ +} + diff --git a/tsconfig.json b/tsconfig.json index 94292c8a..13eed3dc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,17 +18,9 @@ "experimentalDecorators": true, "noEmit": true, "allowImportingTsExtensions": true, - "lib": [ - "dom", - "esnext" - ], "types": [ "vite/client" ], - "typeRoots": [ - "./node_modules/@types/", - "./types" - ], "noImplicitAny": false, "skipLibCheck": true, "paths": { @@ -41,11 +33,11 @@ } }, "include": [ + "env.d.ts", "src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", - "vite.config.ts", "assets/**/*.jpg", "vite-env.d.ts", "src/vue-shim.d.ts" From a175793c52440e084cc19508fc59c367ec554694 Mon Sep 17 00:00:00 2001 From: atorber Date: Sun, 3 Dec 2023 15:57:19 +0800 Subject: [PATCH 25/67] 0.5.0 --- build/getConfigFileName.ts | 10 + components.d.ts | 71 +++ package-lock.json | 127 ++++- package.json | 7 +- src/App.vue | 1 + src/components/Application/Application.vue | 26 + src/components/Application/index.ts | 3 + src/components/CountTo/CountTo.vue | 110 ++++ src/components/CountTo/index.ts | 4 + src/components/Form/index.ts | 4 + src/components/Form/src/BasicForm.vue | 325 ++++++++++++ src/components/Form/src/helper.ts | 42 ++ src/components/Form/src/hooks/useForm.ts | 95 ++++ .../Form/src/hooks/useFormContext.ts | 11 + .../Form/src/hooks/useFormEvents.ts | 116 +++++ .../Form/src/hooks/useFormValues.ts | 54 ++ src/components/Form/src/props.ts | 82 +++ src/components/Form/src/types/form.ts | 61 +++ src/components/Form/src/types/index.ts | 28 + src/components/Lockscreen/Lockscreen.vue | 304 +++++++++++ src/components/Lockscreen/Recharge.vue | 164 ++++++ src/components/Lockscreen/index.ts | 3 + src/components/Modal/index.ts | 3 + src/components/Modal/src/basicModal.vue | 107 ++++ src/components/Modal/src/hooks/useModal.ts | 54 ++ src/components/Modal/src/props.ts | 30 ++ src/components/Modal/src/type/index.ts | 19 + src/components/Table/index.ts | 4 + src/components/Table/src/Table.vue | 353 +++++++++++++ src/components/Table/src/componentMap.ts | 41 ++ .../Table/src/components/TableAction.vue | 139 +++++ .../src/components/editable/CellComponent.ts | 47 ++ .../src/components/editable/EditableCell.vue | 418 +++++++++++++++ .../Table/src/components/editable/helper.ts | 15 + .../Table/src/components/editable/index.ts | 49 ++ .../src/components/settings/ColumnSetting.vue | 331 ++++++++++++ src/components/Table/src/const.ts | 11 + src/components/Table/src/hooks/useColumns.ts | 162 ++++++ .../Table/src/hooks/useDataSource.ts | 150 ++++++ src/components/Table/src/hooks/useLoading.ts | 21 + .../Table/src/hooks/usePagination.ts | 62 +++ .../Table/src/hooks/useTableContext.ts | 22 + src/components/Table/src/props.ts | 59 +++ .../Table/src/types/componentType.ts | 9 + src/components/Table/src/types/pagination.ts | 10 + src/components/Table/src/types/table.ts | 38 ++ src/components/Table/src/types/tableAction.ts | 27 + src/components/Upload/index.ts | 1 + src/components/Upload/src/BasicUpload.vue | 311 +++++++++++ src/components/Upload/src/props.ts | 34 ++ src/components/Upload/src/type/index.ts | 7 + src/components/editor/Editor.vue | 32 +- src/directives/clickOutside.ts | 86 ++++ src/enums/breakpointEnum.ts | 28 + src/enums/cacheEnum.ts | 20 + src/enums/httpEnum.ts | 34 ++ src/enums/pageEnum.ts | 14 + src/enums/permissionsEnum.ts | 4 + src/enums/roleEnum.ts | 7 + src/hooks/event/useBreakpoint.ts | 89 ++++ src/hooks/event/useEventListener.ts | 62 +++ src/hooks/event/useWindowSizeFn copy.ts | 36 ++ src/hooks/event/useWindowSizeFn.ts | 35 ++ src/hooks/setting/useDesignSetting.ts | 18 + src/hooks/web/usePermission.ts | 52 ++ src/layout/PageTitle.vue | 83 +++ src/layout/component/Menu.vue | 32 +- src/main.ts | 5 + src/router/index.js | 24 +- src/router/modules/statistic.ts | 19 + src/router/modules/whitelist.ts | 39 ++ src/settings/componentSetting.ts | 34 ++ src/settings/designSetting.ts | 33 ++ src/store/index.ts | 11 + src/store/modules/designSetting.ts | 40 ++ src/types/config.d.ts | 75 +++ src/types/index.d.ts | 28 + src/types/modules.d.ts | 11 + src/types/utils.d.ts | 5 + src/utils/domUtils.ts | 165 ++++++ src/utils/env.ts | 87 ++++ src/utils/index.ts | 240 +++++++++ src/utils/is/index.ts | 118 +++++ src/utils/log.ts | 9 + src/utils/propTypes.ts | 33 ++ src/views/groupnotice/columns.ts | 64 +++ src/views/groupnotice/index.vue | 480 +++++++++++++++++ src/views/notice/columns.ts | 64 +++ src/views/notice/index.vue | 480 +++++++++++++++++ src/views/qa/CellColumns.ts | 83 +++ src/views/qa/basic.vue | 241 +++++++++ src/views/qa/basicColumns.ts | 72 +++ src/views/qa/columns.ts | 59 +++ src/views/qa/editCell.vue | 59 +++ src/views/qa/editRow.vue | 114 +++++ src/views/qa/index.vue | 481 +++++++++++++++++ src/views/statistic/binding.vue | 57 +++ src/views/statistic/columns.ts | 59 +++ src/views/statistic/config.vue | 482 ++++++++++++++++++ src/views/statistic/detail.vue | 188 +++++++ src/views/statistic/layout.vue | 41 ++ src/views/statistic/notification.vue | 76 +++ src/views/statistic/order.vue | 481 +++++++++++++++++ src/views/statistic/personalize.vue | 127 +++++ src/views/statistic/security.vue | 68 +++ src/views/statistic/statistic.vue | 481 +++++++++++++++++ src/views/whitelist/binding.vue | 57 +++ src/views/whitelist/black.vue | 481 +++++++++++++++++ src/views/whitelist/columns.ts | 59 +++ src/views/whitelist/config.vue | 482 ++++++++++++++++++ src/views/whitelist/detail.vue | 188 +++++++ src/views/whitelist/layout.vue | 41 ++ src/views/whitelist/notification.vue | 76 +++ src/views/whitelist/personalize.vue | 127 +++++ src/views/whitelist/security.vue | 68 +++ src/views/whitelist/white.vue | 481 +++++++++++++++++ yarn.lock | 51 +- 117 files changed, 12135 insertions(+), 23 deletions(-) create mode 100644 build/getConfigFileName.ts create mode 100644 components.d.ts create mode 100644 src/components/Application/Application.vue create mode 100644 src/components/Application/index.ts create mode 100644 src/components/CountTo/CountTo.vue create mode 100644 src/components/CountTo/index.ts create mode 100644 src/components/Form/index.ts create mode 100644 src/components/Form/src/BasicForm.vue create mode 100644 src/components/Form/src/helper.ts create mode 100644 src/components/Form/src/hooks/useForm.ts create mode 100644 src/components/Form/src/hooks/useFormContext.ts create mode 100644 src/components/Form/src/hooks/useFormEvents.ts create mode 100644 src/components/Form/src/hooks/useFormValues.ts create mode 100644 src/components/Form/src/props.ts create mode 100644 src/components/Form/src/types/form.ts create mode 100644 src/components/Form/src/types/index.ts create mode 100644 src/components/Lockscreen/Lockscreen.vue create mode 100644 src/components/Lockscreen/Recharge.vue create mode 100644 src/components/Lockscreen/index.ts create mode 100644 src/components/Modal/index.ts create mode 100644 src/components/Modal/src/basicModal.vue create mode 100644 src/components/Modal/src/hooks/useModal.ts create mode 100644 src/components/Modal/src/props.ts create mode 100644 src/components/Modal/src/type/index.ts create mode 100644 src/components/Table/index.ts create mode 100644 src/components/Table/src/Table.vue create mode 100644 src/components/Table/src/componentMap.ts create mode 100644 src/components/Table/src/components/TableAction.vue create mode 100644 src/components/Table/src/components/editable/CellComponent.ts create mode 100644 src/components/Table/src/components/editable/EditableCell.vue create mode 100644 src/components/Table/src/components/editable/helper.ts create mode 100644 src/components/Table/src/components/editable/index.ts create mode 100644 src/components/Table/src/components/settings/ColumnSetting.vue create mode 100644 src/components/Table/src/const.ts create mode 100644 src/components/Table/src/hooks/useColumns.ts create mode 100644 src/components/Table/src/hooks/useDataSource.ts create mode 100644 src/components/Table/src/hooks/useLoading.ts create mode 100644 src/components/Table/src/hooks/usePagination.ts create mode 100644 src/components/Table/src/hooks/useTableContext.ts create mode 100644 src/components/Table/src/props.ts create mode 100644 src/components/Table/src/types/componentType.ts create mode 100644 src/components/Table/src/types/pagination.ts create mode 100644 src/components/Table/src/types/table.ts create mode 100644 src/components/Table/src/types/tableAction.ts create mode 100644 src/components/Upload/index.ts create mode 100644 src/components/Upload/src/BasicUpload.vue create mode 100644 src/components/Upload/src/props.ts create mode 100644 src/components/Upload/src/type/index.ts create mode 100644 src/directives/clickOutside.ts create mode 100644 src/enums/breakpointEnum.ts create mode 100644 src/enums/cacheEnum.ts create mode 100644 src/enums/httpEnum.ts create mode 100644 src/enums/pageEnum.ts create mode 100644 src/enums/permissionsEnum.ts create mode 100644 src/enums/roleEnum.ts create mode 100644 src/hooks/event/useBreakpoint.ts create mode 100644 src/hooks/event/useEventListener.ts create mode 100644 src/hooks/event/useWindowSizeFn copy.ts create mode 100644 src/hooks/event/useWindowSizeFn.ts create mode 100644 src/hooks/setting/useDesignSetting.ts create mode 100644 src/hooks/web/usePermission.ts create mode 100644 src/layout/PageTitle.vue create mode 100644 src/router/modules/statistic.ts create mode 100644 src/router/modules/whitelist.ts create mode 100644 src/settings/componentSetting.ts create mode 100644 src/settings/designSetting.ts create mode 100644 src/store/modules/designSetting.ts create mode 100644 src/types/config.d.ts create mode 100644 src/types/index.d.ts create mode 100644 src/types/modules.d.ts create mode 100644 src/types/utils.d.ts create mode 100644 src/utils/domUtils.ts create mode 100644 src/utils/env.ts create mode 100644 src/utils/index.ts create mode 100644 src/utils/is/index.ts create mode 100644 src/utils/log.ts create mode 100644 src/utils/propTypes.ts create mode 100644 src/views/groupnotice/columns.ts create mode 100644 src/views/groupnotice/index.vue create mode 100644 src/views/notice/columns.ts create mode 100644 src/views/notice/index.vue create mode 100644 src/views/qa/CellColumns.ts create mode 100644 src/views/qa/basic.vue create mode 100644 src/views/qa/basicColumns.ts create mode 100644 src/views/qa/columns.ts create mode 100644 src/views/qa/editCell.vue create mode 100644 src/views/qa/editRow.vue create mode 100644 src/views/qa/index.vue create mode 100644 src/views/statistic/binding.vue create mode 100644 src/views/statistic/columns.ts create mode 100644 src/views/statistic/config.vue create mode 100644 src/views/statistic/detail.vue create mode 100644 src/views/statistic/layout.vue create mode 100644 src/views/statistic/notification.vue create mode 100644 src/views/statistic/order.vue create mode 100644 src/views/statistic/personalize.vue create mode 100644 src/views/statistic/security.vue create mode 100644 src/views/statistic/statistic.vue create mode 100644 src/views/whitelist/binding.vue create mode 100644 src/views/whitelist/black.vue create mode 100644 src/views/whitelist/columns.ts create mode 100644 src/views/whitelist/config.vue create mode 100644 src/views/whitelist/detail.vue create mode 100644 src/views/whitelist/layout.vue create mode 100644 src/views/whitelist/notification.vue create mode 100644 src/views/whitelist/personalize.vue create mode 100644 src/views/whitelist/security.vue create mode 100644 src/views/whitelist/white.vue diff --git a/build/getConfigFileName.ts b/build/getConfigFileName.ts new file mode 100644 index 00000000..b0169dc6 --- /dev/null +++ b/build/getConfigFileName.ts @@ -0,0 +1,10 @@ +/** + * Get the configuration file variable name + * @param env + */ +export const getConfigFileName = (env: Record) => { + return `__PRODUCTION__${env.VITE_GLOB_APP_SHORT_NAME || '__APP'}__CONF__` + .toUpperCase() + .replace(/\s/g, ''); + }; + \ No newline at end of file diff --git a/components.d.ts b/components.d.ts new file mode 100644 index 00000000..6484a67e --- /dev/null +++ b/components.d.ts @@ -0,0 +1,71 @@ +// generated by unplugin-vue-components +// We suggest you to commit this file into source control +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' + +export {} + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + Application: typeof import('./src/components/Application/Application.vue')['default'] + BasicForm: typeof import('./src/components/Form/src/BasicForm.vue')['default'] + BasicModal: typeof import('./src/components/Modal/src/basicModal.vue')['default'] + BasicUpload: typeof import('./src/components/Upload/src/BasicUpload.vue')['default'] + ColumnSetting: typeof import('./src/components/Table/src/components/settings/ColumnSetting.vue')['default'] + CountTo: typeof import('./src/components/CountTo/CountTo.vue')['default'] + EditableCell: typeof import('./src/components/Table/src/components/editable/EditableCell.vue')['default'] + Lockscreen: typeof import('./src/components/Lockscreen/Lockscreen.vue')['default'] + NAlert: typeof import('naive-ui')['NAlert'] + NAvatar: typeof import('naive-ui')['NAvatar'] + NBackTop: typeof import('naive-ui')['NBackTop'] + NBadge: typeof import('naive-ui')['NBadge'] + NBreadcrumb: typeof import('naive-ui')['NBreadcrumb'] + NBreadcrumbItem: typeof import('naive-ui')['NBreadcrumbItem'] + NButton: typeof import('naive-ui')['NButton'] + NCard: typeof import('naive-ui')['NCard'] + NCheckbox: typeof import('naive-ui')['NCheckbox'] + NCheckboxGroup: typeof import('naive-ui')['NCheckboxGroup'] + NCol: typeof import('naive-ui')['NCol'] + NConfigProvider: typeof import('naive-ui')['NConfigProvider'] + NDataTable: typeof import('naive-ui')['NDataTable'] + NDatePicker: typeof import('naive-ui')['NDatePicker'] + NDialogProvider: typeof import('naive-ui')['NDialogProvider'] + NDivider: typeof import('naive-ui')['NDivider'] + NDrawer: typeof import('naive-ui')['NDrawer'] + NDrawerContent: typeof import('naive-ui')['NDrawerContent'] + NDropdown: typeof import('naive-ui')['NDropdown'] + NForm: typeof import('naive-ui')['NForm'] + NFormItem: typeof import('naive-ui')['NFormItem'] + NGi: typeof import('naive-ui')['NGi'] + NGrid: typeof import('naive-ui')['NGrid'] + NGridItem: typeof import('naive-ui')['NGridItem'] + NIcon: typeof import('naive-ui')['NIcon'] + NInput: typeof import('naive-ui')['NInput'] + NLayout: typeof import('naive-ui')['NLayout'] + NLayoutContent: typeof import('naive-ui')['NLayoutContent'] + NLayoutHeader: typeof import('naive-ui')['NLayoutHeader'] + NLayoutSider: typeof import('naive-ui')['NLayoutSider'] + NMenu: typeof import('naive-ui')['NMenu'] + NMessageProvider: typeof import('naive-ui')['NMessageProvider'] + NModal: typeof import('naive-ui')['NModal'] + NNotificationProvider: typeof import('naive-ui')['NNotificationProvider'] + NPopover: typeof import('naive-ui')['NPopover'] + NProgress: typeof import('naive-ui')['NProgress'] + NRadio: typeof import('naive-ui')['NRadio'] + NRadioGroup: typeof import('naive-ui')['NRadioGroup'] + NRow: typeof import('naive-ui')['NRow'] + NSelect: typeof import('naive-ui')['NSelect'] + NSkeleton: typeof import('naive-ui')['NSkeleton'] + NSpace: typeof import('naive-ui')['NSpace'] + NSwitch: typeof import('naive-ui')['NSwitch'] + NTabPane: typeof import('naive-ui')['NTabPane'] + NTabs: typeof import('naive-ui')['NTabs'] + NTag: typeof import('naive-ui')['NTag'] + NTooltip: typeof import('naive-ui')['NTooltip'] + Recharge: typeof import('./src/components/Lockscreen/Recharge.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Table: typeof import('./src/components/Table/src/Table.vue')['default'] + TableAction: typeof import('./src/components/Table/src/components/TableAction.vue')['default'] + } +} diff --git a/package-lock.json b/package-lock.json index be56ce62..fadfc67e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,18 @@ { "name": "ChatFlowConsole", - "version": "0.3.2", + "version": "0.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ChatFlowConsole", - "version": "0.3.2", + "version": "0.4.0", "dependencies": { "@highlightjs/vue-plugin": "^2.1.0", "@kangc/v-md-editor": "^2.3.18", + "@vicons/antd": "^0.12.0", "@vueup/vue-quill": "^1.2.0", + "@vueuse/core": "^10.6.1", "axios": "^1.6.2", "highlight.js": "^11.5.0", "js-audio-recorder": "^1.0.7", @@ -23,6 +25,7 @@ "vue": "^3.3.8", "vue-cropper": "^1.1.1", "vue-router": "^4.2.5", + "vue-types": "^5.1.1", "vue-virtual-scroll-list": "^2.3.5", "vue-virtual-scroller": "^2.0.0-beta.8", "vuedraggable": "^4.1.0", @@ -1440,6 +1443,11 @@ "vue": "*" } }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==" + }, "node_modules/@types/yargs": { "version": "17.0.10", "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.10.tgz", @@ -1885,6 +1893,11 @@ "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.3.6.tgz", "integrity": "sha512-3z+nywPaV2F5BdJO7RQxWlgfzJeEOmViD2yHMb7Tg+R4NR/7iQskqW8v2Cnv9FWSJgTOSHlcr7UzeLpiTAP4HA==" }, + "node_modules/@vicons/antd": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/antd/-/antd-0.12.0.tgz", + "integrity": "sha512-C0p6aO1EmGG1QHrqgUWQS1No20934OdWSRQshM5NIDK5H1On6tC26U0hT6Rmp40KfUsvhvX5YW8BoWJdNFifPg==" + }, "node_modules/@vitejs/plugin-vue": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz", @@ -2287,6 +2300,89 @@ "lodash.isequal": "^4.5.0" } }, + "node_modules/@vueuse/core": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.6.1.tgz", + "integrity": "sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.6.1", + "@vueuse/shared": "10.6.1", + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.6.1.tgz", + "integrity": "sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.6.1.tgz", + "integrity": "sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==", + "dependencies": { + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -11303,6 +11399,33 @@ "node": ">=10" } }, + "node_modules/vue-types": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-5.1.1.tgz", + "integrity": "sha512-FMY/JCLWePXgGIcMDqYdJsQm1G0CDxEjq6W0+tZMJZlX37q/61eSGSIa/XFRwa9T7kkKXuxxl94/2kgxyWQqKw==", + "dependencies": { + "is-plain-object": "5.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "vue": "^2.0.0 || ^3.0.0" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/vue-types/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/vue-virtual-scroll-list": { "version": "2.3.5", "resolved": "https://registry.npmmirror.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-2.3.5.tgz", diff --git a/package.json b/package.json index 0f45e409..190e4456 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ChatFlowConsole", "private": true, - "version": "0.4.0", + "version": "0.5.0", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", @@ -14,12 +14,14 @@ "type-check": "vue-tsc --noEmit -p tsconfig.app.json --composite false", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", "format": "prettier --write src/", - "dev:host":"npx vite --mode development --host" + "dev:host": "npx vite --mode development --host" }, "dependencies": { "@highlightjs/vue-plugin": "^2.1.0", "@kangc/v-md-editor": "^2.3.18", + "@vicons/antd": "^0.12.0", "@vueup/vue-quill": "^1.2.0", + "@vueuse/core": "^10.6.1", "axios": "^1.6.2", "highlight.js": "^11.5.0", "js-audio-recorder": "^1.0.7", @@ -32,6 +34,7 @@ "vue": "^3.3.8", "vue-cropper": "^1.1.1", "vue-router": "^4.2.5", + "vue-types": "^5.1.1", "vue-virtual-scroll-list": "^2.3.5", "vue-virtual-scroller": "^2.0.0-beta.8", "vuedraggable": "^4.1.0", diff --git a/src/App.vue b/src/App.vue index 5e8092f2..c3b3cb71 100644 --- a/src/App.vue +++ b/src/App.vue @@ -27,6 +27,7 @@ import { useUnreadMessage } from '@/hooks/useUnreadMessage' import { useConnectStatus } from '@/hooks/useConnectStatus' import { useClickEvent } from '@/hooks/useClickEvent' import { ContactConst } from '@/constant/event-bus' +import { AppProvider } from '@/components/Application'; IconProvider({ ...DEFAULT_ICON_CONFIGS, diff --git a/src/components/Application/Application.vue b/src/components/Application/Application.vue new file mode 100644 index 00000000..4a5d0a23 --- /dev/null +++ b/src/components/Application/Application.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/components/Application/index.ts b/src/components/Application/index.ts new file mode 100644 index 00000000..5cea04a6 --- /dev/null +++ b/src/components/Application/index.ts @@ -0,0 +1,3 @@ +import AppProvider from './Application.vue'; + +export { AppProvider }; diff --git a/src/components/CountTo/CountTo.vue b/src/components/CountTo/CountTo.vue new file mode 100644 index 00000000..9576a82a --- /dev/null +++ b/src/components/CountTo/CountTo.vue @@ -0,0 +1,110 @@ + + diff --git a/src/components/CountTo/index.ts b/src/components/CountTo/index.ts new file mode 100644 index 00000000..946e5252 --- /dev/null +++ b/src/components/CountTo/index.ts @@ -0,0 +1,4 @@ +import { withInstall } from '@/utils'; +import countTo from './CountTo.vue'; + +export const CountTo = withInstall(countTo); diff --git a/src/components/Form/index.ts b/src/components/Form/index.ts new file mode 100644 index 00000000..0f37df5d --- /dev/null +++ b/src/components/Form/index.ts @@ -0,0 +1,4 @@ +export { default as BasicForm } from './src/BasicForm.vue'; +export { useForm } from './src/hooks/useForm'; +export * from './src/types/form'; +export * from './src/types/index'; diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue new file mode 100644 index 00000000..f108e8f4 --- /dev/null +++ b/src/components/Form/src/BasicForm.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/src/components/Form/src/helper.ts b/src/components/Form/src/helper.ts new file mode 100644 index 00000000..5db0e32e --- /dev/null +++ b/src/components/Form/src/helper.ts @@ -0,0 +1,42 @@ +import { ComponentType } from './types/index'; + +/** + * @description: 生æˆplaceholder + */ +export function createPlaceholderMessage(component: ComponentType) { + if (component === 'NInput') return '请输入'; + if ( + ['NPicker', 'NSelect', 'NCheckbox', 'NRadio', 'NSwitch', 'NDatePicker', 'NTimePicker'].includes( + component + ) + ) + return '请选择'; + return ''; +} + +const DATE_TYPE = ['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker']; + +function genType() { + return [...DATE_TYPE, 'RangePicker']; +} + +/** + * 时间字段 + */ +export const dateItemType = genType(); + +export function defaultType(component) { + if (component === 'NInput') return ''; + if (component === 'NInputNumber') return null; + return [ + 'NPicker', + 'NSelect', + 'NCheckbox', + 'NRadio', + 'NSwitch', + 'NDatePicker', + 'NTimePicker', + ].includes(component) + ? '' + : undefined; +} diff --git a/src/components/Form/src/hooks/useForm.ts b/src/components/Form/src/hooks/useForm.ts new file mode 100644 index 00000000..da279fd9 --- /dev/null +++ b/src/components/Form/src/hooks/useForm.ts @@ -0,0 +1,95 @@ +import type { FormProps, FormActionType, UseFormReturnType } from '../types/form'; +import type { DynamicProps } from '/#/utils'; + +import { ref, onUnmounted, unref, nextTick, watch } from 'vue'; +import { isProdMode } from '@/utils/env'; +import { getDynamicProps } from '@/utils'; + +type Props = Partial>; + +export function useForm(props?: Props): UseFormReturnType { + const formRef = ref>(null); + const loadedRef = ref>(false); + + async function getForm() { + const form = unref(formRef); + if (!form) { + console.error( + 'The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!' + ); + } + await nextTick(); + return form as FormActionType; + } + + function register(instance: FormActionType) { + isProdMode() && + onUnmounted(() => { + formRef.value = null; + loadedRef.value = null; + }); + if (unref(loadedRef) && isProdMode() && instance === unref(formRef)) return; + + formRef.value = instance; + loadedRef.value = true; + + watch( + () => props, + () => { + props && instance.setProps(getDynamicProps(props)); + }, + { + immediate: true, + deep: true, + } + ); + } + + const methods: FormActionType = { + setProps: async (formProps: Partial) => { + const form = await getForm(); + await form.setProps(formProps); + }, + + resetFields: async () => { + getForm().then(async (form) => { + await form.resetFields(); + }); + }, + + clearValidate: async (name?: string | string[]) => { + const form = await getForm(); + await form.clearValidate(name); + }, + + getFieldsValue: () => { + return unref(formRef)?.getFieldsValue() as T; + }, + + setFieldsValue: async (values: T) => { + const form = await getForm(); + await form.setFieldsValue(values); + }, + + submit: async (): Promise => { + const form = await getForm(); + return form.submit(); + }, + + validate: async (nameList?: any[]): Promise => { + const form = await getForm(); + return form.validate(nameList); + }, + + setLoading: (value: boolean) => { + loadedRef.value = value; + }, + + setSchema: async (values) => { + const form = await getForm(); + form.setSchema(values); + }, + }; + + return [register, methods]; +} diff --git a/src/components/Form/src/hooks/useFormContext.ts b/src/components/Form/src/hooks/useFormContext.ts new file mode 100644 index 00000000..2d2a212b --- /dev/null +++ b/src/components/Form/src/hooks/useFormContext.ts @@ -0,0 +1,11 @@ +import { provide, inject } from 'vue'; + +const key = Symbol('formElRef'); + +export function createFormContext(instance) { + provide(key, instance); +} + +export function useFormContext() { + return inject(key); +} diff --git a/src/components/Form/src/hooks/useFormEvents.ts b/src/components/Form/src/hooks/useFormEvents.ts new file mode 100644 index 00000000..61e44a65 --- /dev/null +++ b/src/components/Form/src/hooks/useFormEvents.ts @@ -0,0 +1,116 @@ +import type { ComputedRef, Ref } from 'vue'; +import type { FormProps, FormSchema, FormActionType } from '../types/form'; +import { unref, toRaw } from 'vue'; +import { isFunction } from '@/utils/is'; + +declare type EmitType = (event: string, ...args: any[]) => void; + +interface UseFormActionContext { + emit: EmitType; + getProps: ComputedRef; + getSchema: ComputedRef; + formModel: Recordable; + formElRef: Ref; + defaultFormModel: Recordable; + loadingSub: Ref; + handleFormValues: Function; +} + +export function useFormEvents({ + emit, + getProps, + formModel, + getSchema, + formElRef, + defaultFormModel, + loadingSub, + handleFormValues, +}: UseFormActionContext) { + // éªŒè¯ + async function validate() { + return unref(formElRef)?.validate(); + } + + // æäº¤ + async function handleSubmit(e?: Event): Promise { + e && e.preventDefault(); + loadingSub.value = true; + const { submitFunc } = unref(getProps); + if (submitFunc && isFunction(submitFunc)) { + await submitFunc(); + loadingSub.value = false; + return false; + } + const formEl = unref(formElRef); + if (!formEl) return false; + try { + await validate(); + const values = getFieldsValue(); + loadingSub.value = false; + emit('submit', values); + return values; + } catch (error: any) { + emit('submit', false); + loadingSub.value = false; + console.error(error); + return false; + } + } + + //清空校验 + async function clearValidate() { + // @ts-ignore + await unref(formElRef)?.restoreValidation(); + } + + //é‡ç½® + async function resetFields(): Promise { + const { resetFunc, submitOnReset } = unref(getProps); + resetFunc && isFunction(resetFunc) && (await resetFunc()); + + const formEl = unref(formElRef); + if (!formEl) return; + Object.keys(formModel).forEach((key) => { + formModel[key] = unref(defaultFormModel)[key] || null; + }); + await clearValidate(); + const fromValues = handleFormValues(toRaw(unref(formModel))); + emit('reset', fromValues); + submitOnReset && (await handleSubmit()); + } + + //获å–表å•值 + function getFieldsValue(): Recordable { + const formEl = unref(formElRef); + if (!formEl) return {}; + return handleFormValues(toRaw(unref(formModel))); + } + + //设置表å•字段值 + async function setFieldsValue(values: Recordable): Promise { + const fields = unref(getSchema) + .map((item) => item.field) + .filter(Boolean); + + Object.keys(values).forEach((key) => { + const value = values[key]; + if (fields.includes(key)) { + formModel[key] = value; + } + }); + } + + function setLoading(value: boolean): void { + loadingSub.value = value; + } + + return { + handleSubmit, + validate, + resetFields, + getFieldsValue, + clearValidate, + setFieldsValue, + setLoading, + }; +} diff --git a/src/components/Form/src/hooks/useFormValues.ts b/src/components/Form/src/hooks/useFormValues.ts new file mode 100644 index 00000000..2d45bbe9 --- /dev/null +++ b/src/components/Form/src/hooks/useFormValues.ts @@ -0,0 +1,54 @@ +import { isArray, isFunction, isObject, isString, isNullOrUnDef } from '@/utils/is'; +import { unref } from 'vue'; +import type { Ref, ComputedRef } from 'vue'; +import type { FormSchema } from '../types/form'; +import { set } from 'lodash-es'; + +interface UseFormValuesContext { + defaultFormModel: Ref; + getSchema: ComputedRef; + formModel: Recordable; +} +export function useFormValues({ defaultFormModel, getSchema, formModel }: UseFormValuesContext) { + // 加工 form values + function handleFormValues(values: Recordable) { + if (!isObject(values)) { + return {}; + } + const res: Recordable = {}; + for (const item of Object.entries(values)) { + let [, value] = item; + const [key] = item; + if ( + !key || + (isArray(value) && value.length === 0) || + isFunction(value) || + isNullOrUnDef(value) + ) { + continue; + } + // 删除空格 + if (isString(value)) { + value = value.trim(); + } + set(res, key, value); + } + return res; + } + + //åˆå§‹åŒ–默认值 + function initDefault() { + const schemas = unref(getSchema); + const obj: Recordable = {}; + schemas.forEach((item) => { + const { defaultValue } = item; + if (!isNullOrUnDef(defaultValue)) { + obj[item.field] = defaultValue; + formModel[item.field] = defaultValue; + } + }); + defaultFormModel.value = obj; + } + + return { handleFormValues, initDefault }; +} diff --git a/src/components/Form/src/props.ts b/src/components/Form/src/props.ts new file mode 100644 index 00000000..46582e7d --- /dev/null +++ b/src/components/Form/src/props.ts @@ -0,0 +1,82 @@ +import type { CSSProperties, PropType } from 'vue'; +import { FormSchema } from './types/form'; +import type { GridProps, GridItemProps } from 'naive-ui/lib/grid'; +import type { ButtonProps } from 'naive-ui/lib/button'; +import { propTypes } from '@/utils/propTypes'; +export const basicProps = { + // 标签宽度 固定宽度 + labelWidth: { + type: [Number, String] as PropType, + default: 80, + }, + // 表å•é…置规则 + schemas: { + type: [Array] as PropType, + default: () => [], + }, + //å¸ƒå±€æ–¹å¼ + layout: { + type: String, + default: 'inline', + }, + //是å¦å±•ç¤ºä¸ºè¡Œå†…è¡¨å• + inline: { + type: Boolean, + default: false, + }, + //å¤§å° + size: { + type: String, + default: 'medium', + }, + //标签ä½ç½® + labelPlacement: { + type: String, + default: 'left', + }, + //组件是å¦width 100% + isFull: { + type: Boolean, + default: true, + }, + //æ˜¯å¦æ˜¾ç¤ºæ“作按钮(查询/é‡ç½®ï¼‰ + showActionButtonGroup: propTypes.bool.def(true), + // 显示é‡ç½®æŒ‰é’® + showResetButton: propTypes.bool.def(true), + //é‡ç½®æŒ‰é’®é…ç½® + resetButtonOptions: Object as PropType>, + // 显示确认按钮 + showSubmitButton: propTypes.bool.def(true), + // 确认按钮é…ç½® + submitButtonOptions: Object as PropType>, + //展开收起按钮 + showAdvancedButton: propTypes.bool.def(true), + // 确认按钮文字 + submitButtonText: { + type: String, + default: '查询', + }, + //é‡ç½®æŒ‰é’®æ–‡å­— + resetButtonText: { + type: String, + default: 'é‡ç½®', + }, + //grid é…ç½® + gridProps: Object as PropType, + //gié…ç½® + giProps: Object as PropType, + //grid æ ·å¼ + baseGridStyle: { + type: Object as PropType, + }, + //æ˜¯å¦æŠ˜å  + collapsed: { + type: Boolean, + default: false, + }, + //默认展示的行数 + collapsedRows: { + type: Number, + default: 1, + }, +}; diff --git a/src/components/Form/src/types/form.ts b/src/components/Form/src/types/form.ts new file mode 100644 index 00000000..d4c70cca --- /dev/null +++ b/src/components/Form/src/types/form.ts @@ -0,0 +1,61 @@ +import { ComponentType } from './index'; +import type { CSSProperties } from 'vue'; +import type { GridProps, GridItemProps } from 'naive-ui/lib/grid'; +import type { ButtonProps } from 'naive-ui/lib/button'; + +export interface FormSchema { + field: string; + label: string; + labelMessage?: string; + labelMessageStyle?: object | string; + defaultValue?: any; + component?: ComponentType; + componentProps?: object; + slot?: string; + rules?: object | object[]; + giProps?: GridItemProps; + isFull?: boolean; + suffix?: string; +} + +export interface FormProps { + model?: Recordable; + labelWidth?: number | string; + schemas?: FormSchema[]; + inline: boolean; + layout?: string; + size: string; + labelPlacement: string; + isFull: boolean; + showActionButtonGroup?: boolean; + showResetButton?: boolean; + resetButtonOptions?: Partial; + showSubmitButton?: boolean; + showAdvancedButton?: boolean; + submitButtonOptions?: Partial; + submitButtonText?: string; + resetButtonText?: string; + gridProps?: GridProps; + giProps?: GridItemProps; + resetFunc?: () => Promise; + submitFunc?: () => Promise; + submitOnReset?: boolean; + baseGridStyle?: CSSProperties; + collapsedRows?: number; +} + +export interface FormActionType { + submit: () => Promise; + setProps: (formProps: Partial) => Promise; + setSchema: (schemaProps: Partial) => Promise; + setFieldsValue: (values: Recordable) => void; + clearValidate: (name?: string | string[]) => Promise; + getFieldsValue: () => Recordable; + resetFields: () => Promise; + validate: (nameList?: any[]) => Promise; + setLoading: (status: boolean) => void; +} + +export type RegisterFn = (formInstance: FormActionType) => void; + +export type UseFormReturnType = [RegisterFn, FormActionType]; diff --git a/src/components/Form/src/types/index.ts b/src/components/Form/src/types/index.ts new file mode 100644 index 00000000..5cb0baa0 --- /dev/null +++ b/src/components/Form/src/types/index.ts @@ -0,0 +1,28 @@ +export type ComponentType = + | 'NInput' + | 'NInputGroup' + | 'NInputPassword' + | 'NInputSearch' + | 'NInputTextArea' + | 'NInputNumber' + | 'NInputCountDown' + | 'NSelect' + | 'NTreeSelect' + | 'NRadioButtonGroup' + | 'NRadioGroup' + | 'NCheckbox' + | 'NCheckboxGroup' + | 'NAutoComplete' + | 'NCascader' + | 'NDatePicker' + | 'NMonthPicker' + | 'NRangePicker' + | 'NWeekPicker' + | 'NTimePicker' + | 'NSwitch' + | 'NStrengthMeter' + | 'NUpload' + | 'NIconPicker' + | 'NRender' + | 'NSlider' + | 'NRate'; diff --git a/src/components/Lockscreen/Lockscreen.vue b/src/components/Lockscreen/Lockscreen.vue new file mode 100644 index 00000000..bf3dde53 --- /dev/null +++ b/src/components/Lockscreen/Lockscreen.vue @@ -0,0 +1,304 @@ + + + + + diff --git a/src/components/Lockscreen/Recharge.vue b/src/components/Lockscreen/Recharge.vue new file mode 100644 index 00000000..4eef4438 --- /dev/null +++ b/src/components/Lockscreen/Recharge.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/src/components/Lockscreen/index.ts b/src/components/Lockscreen/index.ts new file mode 100644 index 00000000..7e086dcc --- /dev/null +++ b/src/components/Lockscreen/index.ts @@ -0,0 +1,3 @@ +import LockScreen from './Lockscreen.vue'; + +export { LockScreen }; diff --git a/src/components/Modal/index.ts b/src/components/Modal/index.ts new file mode 100644 index 00000000..586a945e --- /dev/null +++ b/src/components/Modal/index.ts @@ -0,0 +1,3 @@ +export { default as basicModal } from './src/basicModal.vue'; +export { useModal } from './src/hooks/useModal'; +export * from './src/type'; diff --git a/src/components/Modal/src/basicModal.vue b/src/components/Modal/src/basicModal.vue new file mode 100644 index 00000000..7ee81a60 --- /dev/null +++ b/src/components/Modal/src/basicModal.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/components/Modal/src/hooks/useModal.ts b/src/components/Modal/src/hooks/useModal.ts new file mode 100644 index 00000000..0b737d61 --- /dev/null +++ b/src/components/Modal/src/hooks/useModal.ts @@ -0,0 +1,54 @@ +import { ref, unref, getCurrentInstance, watch } from 'vue'; +import { isProdMode } from '@/utils/env'; +import { ModalMethods, UseModalReturnType } from '../type'; +import { getDynamicProps } from '@/utils'; +import { tryOnUnmounted } from '@vueuse/core'; +export function useModal(props): UseModalReturnType { + const modalRef = ref>(null); + const currentInstance = getCurrentInstance(); + + const getInstance = () => { + const instance = unref(modalRef.value); + if (!instance) { + console.error('useModal instance is undefined!'); + } + return instance; + }; + + const register = (modalInstance: ModalMethods) => { + isProdMode() && + tryOnUnmounted(() => { + modalRef.value = null; + }); + modalRef.value = modalInstance; + currentInstance?.emit('register', modalInstance); + + watch( + () => props, + () => { + props && modalInstance.setProps(getDynamicProps(props)); + }, + { + immediate: true, + deep: true, + } + ); + }; + + const methods: ModalMethods = { + setProps: (props): void => { + getInstance()?.setProps(props); + }, + openModal: () => { + getInstance()?.openModal(); + }, + closeModal: () => { + getInstance()?.closeModal(); + }, + setSubLoading: (status) => { + getInstance()?.setSubLoading(status); + }, + }; + + return [register, methods]; +} diff --git a/src/components/Modal/src/props.ts b/src/components/Modal/src/props.ts new file mode 100644 index 00000000..9fafa12c --- /dev/null +++ b/src/components/Modal/src/props.ts @@ -0,0 +1,30 @@ +import { NModal } from 'naive-ui'; + +export const basicProps = { + ...NModal.props, + // 确认按钮文字 + subBtuText: { + type: String, + default: '确认', + }, + showIcon: { + type: Boolean, + default: false, + }, + width: { + type: Number, + default: 446, + }, + title: { + type: String, + default: '', + }, + maskClosable: { + type: Boolean, + default: false, + }, + preset: { + type: String, + default: 'dialog', + }, +}; diff --git a/src/components/Modal/src/type/index.ts b/src/components/Modal/src/type/index.ts new file mode 100644 index 00000000..804e7417 --- /dev/null +++ b/src/components/Modal/src/type/index.ts @@ -0,0 +1,19 @@ +import type { DialogOptions } from 'naive-ui/lib/dialog'; +/** + * @description: 弹窗对外暴露的方法 + */ +export interface ModalMethods { + setProps: (props) => void; + openModal: () => void; + closeModal: () => void; + setSubLoading: (status) => void; +} + +/** + * 支æŒä¿®æ”¹ï¼ŒDialogOptions åƒæ•¸ + */ +export type ModalProps = DialogOptions; + +export type RegisterFn = (ModalInstance: ModalMethods) => void; + +export type UseModalReturnType = [RegisterFn, ModalMethods]; diff --git a/src/components/Table/index.ts b/src/components/Table/index.ts new file mode 100644 index 00000000..38725adb --- /dev/null +++ b/src/components/Table/index.ts @@ -0,0 +1,4 @@ +export { default as BasicTable } from './src/Table.vue'; +export { default as TableAction } from './src/components/TableAction.vue'; +export * from './src/types/table'; +export * from './src/types/tableAction'; diff --git a/src/components/Table/src/Table.vue b/src/components/Table/src/Table.vue new file mode 100644 index 00000000..75e1293a --- /dev/null +++ b/src/components/Table/src/Table.vue @@ -0,0 +1,353 @@ + + + + diff --git a/src/components/Table/src/componentMap.ts b/src/components/Table/src/componentMap.ts new file mode 100644 index 00000000..9fbb3fd6 --- /dev/null +++ b/src/components/Table/src/componentMap.ts @@ -0,0 +1,41 @@ +import type { Component } from 'vue'; +import { + NInput, + NSelect, + NCheckbox, + NInputNumber, + NSwitch, + NDatePicker, + NTimePicker, +} from 'naive-ui'; +import type { ComponentType } from './types/componentType'; + +export enum EventEnum { + NInput = 'on-input', + NInputNumber = 'on-input', + NSelect = 'on-update:value', + NSwitch = 'on-update:value', + NCheckbox = 'on-update:value', + NDatePicker = 'on-update:value', + NTimePicker = 'on-update:value', +} + +const componentMap = new Map(); + +componentMap.set('NInput', NInput); +componentMap.set('NInputNumber', NInputNumber); +componentMap.set('NSelect', NSelect); +componentMap.set('NSwitch', NSwitch); +componentMap.set('NCheckbox', NCheckbox); +componentMap.set('NDatePicker', NDatePicker); +componentMap.set('NTimePicker', NTimePicker); + +export function add(compName: ComponentType, component: Component) { + componentMap.set(compName, component); +} + +export function del(compName: ComponentType) { + componentMap.delete(compName); +} + +export { componentMap }; diff --git a/src/components/Table/src/components/TableAction.vue b/src/components/Table/src/components/TableAction.vue new file mode 100644 index 00000000..cf0bc523 --- /dev/null +++ b/src/components/Table/src/components/TableAction.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/components/Table/src/components/editable/CellComponent.ts b/src/components/Table/src/components/editable/CellComponent.ts new file mode 100644 index 00000000..8085e0cc --- /dev/null +++ b/src/components/Table/src/components/editable/CellComponent.ts @@ -0,0 +1,47 @@ +import type { FunctionalComponent, defineComponent } from 'vue'; +import type { ComponentType } from '../../types/componentType'; +import { componentMap } from '@/components/Table/src/componentMap'; + +import { h } from 'vue'; + +import { NPopover } from 'naive-ui'; + +export interface ComponentProps { + component: ComponentType; + rule: boolean; + popoverVisible: boolean; + ruleMessage: string; +} + +export const CellComponent: FunctionalComponent = ( + { component = 'NInput', rule = true, ruleMessage, popoverVisible }: ComponentProps, + { attrs } +) => { + const Comp = componentMap.get(component) as typeof defineComponent; + + const DefaultComp = h(Comp, attrs); + if (!rule) { + return DefaultComp; + } + return h( + NPopover, + { 'display-directive': 'show', show: !!popoverVisible, manual: 'manual' }, + { + trigger: () => DefaultComp, + default: () => + h( + 'span', + { + style: { + color: 'red', + width: '90px', + display: 'inline-block', + }, + }, + { + default: () => ruleMessage, + } + ), + } + ); +}; diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue new file mode 100644 index 00000000..715f940f --- /dev/null +++ b/src/components/Table/src/components/editable/EditableCell.vue @@ -0,0 +1,418 @@ + + + + diff --git a/src/components/Table/src/components/editable/helper.ts b/src/components/Table/src/components/editable/helper.ts new file mode 100644 index 00000000..48e7682b --- /dev/null +++ b/src/components/Table/src/components/editable/helper.ts @@ -0,0 +1,15 @@ +import { ComponentType } from '../../types/componentType'; + +/** + * @description: 生æˆplaceholder + */ +export function createPlaceholderMessage(component: ComponentType) { + if (component === 'NInput') return '请输入'; + if ( + ['NPicker', 'NSelect', 'NCheckbox', 'NRadio', 'NSwitch', 'NDatePicker', 'NTimePicker'].includes( + component + ) + ) + return '请选择'; + return ''; +} diff --git a/src/components/Table/src/components/editable/index.ts b/src/components/Table/src/components/editable/index.ts new file mode 100644 index 00000000..064763dd --- /dev/null +++ b/src/components/Table/src/components/editable/index.ts @@ -0,0 +1,49 @@ +import type { BasicColumn } from '@/components/Table/src/types/table'; +import { h, Ref } from 'vue'; + +import EditableCell from './EditableCell.vue'; + +export function renderEditCell(column: BasicColumn) { + return (record, index) => { + const _key = column.key; + const value = record[_key]; + record.onEdit = async (edit: boolean, submit = false) => { + if (!submit) { + record.editable = edit; + } + + if (!edit && submit) { + const res = await record.onSubmitEdit?.(); + if (res) { + record.editable = false; + return true; + } + return false; + } + // cancel + if (!edit && !submit) { + record.onCancelEdit?.(); + } + return true; + }; + return h(EditableCell, { + value, + record, + column, + index, + }); + }; +} + +export type EditRecordRow = Partial< + { + onEdit: (editable: boolean, submit?: boolean) => Promise; + editable: boolean; + onCancel: Fn; + onSubmit: Fn; + submitCbs: Fn[]; + cancelCbs: Fn[]; + validCbs: Fn[]; + editValueRefs: Recordable; + } & T +>; diff --git a/src/components/Table/src/components/settings/ColumnSetting.vue b/src/components/Table/src/components/settings/ColumnSetting.vue new file mode 100644 index 00000000..8963ac23 --- /dev/null +++ b/src/components/Table/src/components/settings/ColumnSetting.vue @@ -0,0 +1,331 @@ + + + + + diff --git a/src/components/Table/src/const.ts b/src/components/Table/src/const.ts new file mode 100644 index 00000000..82ebca69 --- /dev/null +++ b/src/components/Table/src/const.ts @@ -0,0 +1,11 @@ +import componentSetting from '@/settings/componentSetting'; + +const { table } = componentSetting; + +const { apiSetting, defaultPageSize, pageSizes } = table; + +export const DEFAULTPAGESIZE = defaultPageSize; + +export const APISETTING = apiSetting; + +export const PAGESIZES = pageSizes; diff --git a/src/components/Table/src/hooks/useColumns.ts b/src/components/Table/src/hooks/useColumns.ts new file mode 100644 index 00000000..13ffaf7c --- /dev/null +++ b/src/components/Table/src/hooks/useColumns.ts @@ -0,0 +1,162 @@ +import { ref, Ref, ComputedRef, unref, computed, watch, toRaw, h } from 'vue'; +import type { BasicColumn, BasicTableProps } from '../types/table'; +import { isEqual, cloneDeep } from 'lodash-es'; +import { isArray, isString, isBoolean, isFunction } from '@/utils/is'; +import { ActionItem } from '@/components/Table'; +import { renderEditCell } from '../components/editable'; +import { NTooltip, NIcon } from 'naive-ui'; +import { FormOutlined } from '@vicons/antd'; + +export function useColumns(propsRef: ComputedRef) { + const columnsRef = ref(unref(propsRef).columns) as unknown as Ref; + let cacheColumns = unref(propsRef).columns; + + const getColumnsRef = computed(() => { + const columns = cloneDeep(unref(columnsRef)); + + handleActionColumn(propsRef, columns); + if (!columns) return []; + return columns; + }); + + function isIfShow(action: ActionItem): boolean { + const ifShow = action.ifShow; + + let isIfShow = true; + + if (isBoolean(ifShow)) { + isIfShow = ifShow; + } + if (isFunction(ifShow)) { + isIfShow = ifShow(action); + } + return isIfShow; + } + + const renderTooltip = (trigger, content) => { + return h(NTooltip, null, { + trigger: () => trigger, + default: () => content, + }); + }; + + const getPageColumns = computed(() => { + const pageColumns = unref(getColumnsRef); + const columns = cloneDeep(pageColumns); + return columns + .filter((column) => { + // return hasPermission(column.auth as string[]) && isIfShow(column); + return true + }) + .map((column) => { + //默认 ellipsis 为true + column.ellipsis = typeof column.ellipsis === 'undefined' ? { tooltip: true } : false; + const { edit } = column; + if (edit) { + column.render = renderEditCell(column); + if (edit) { + const title: any = column.title; + column.title = () => { + return renderTooltip( + h('span', {}, [ + h('span', { style: { 'margin-right': '5px' } }, title), + h( + NIcon, + { + size: 14, + }, + { + default: () => h(FormOutlined), + } + ), + ]), + '该列å¯ç¼–辑' + ); + }; + } + } + return column; + }); + }); + + watch( + () => unref(propsRef).columns, + (columns) => { + columnsRef.value = columns; + cacheColumns = columns; + } + ); + + function handleActionColumn(propsRef: ComputedRef, columns: BasicColumn[]) { + const { actionColumn } = unref(propsRef); + if (!actionColumn) return; + !columns.find((col) => col.key === 'action') && + columns.push({ + ...(actionColumn as any), + }); + } + + //设置 + function setColumns(columnList: string[]) { + const columns: any[] = cloneDeep(columnList); + if (!isArray(columns)) return; + + if (!columns.length) { + columnsRef.value = []; + return; + } + const cacheKeys = cacheColumns.map((item) => item.key); + //é’ˆå¯¹æ‹–æ‹½æŽ’åº + if (!isString(columns[0])) { + columnsRef.value = columns; + } else { + const newColumns: any[] = []; + cacheColumns.forEach((item) => { + if (columnList.includes(item.key)) { + newColumns.push({ ...item }); + } + }); + if (!isEqual(cacheKeys, columns)) { + newColumns.sort((prev, next) => { + return cacheKeys.indexOf(prev.key) - cacheKeys.indexOf(next.key); + }); + } + columnsRef.value = newColumns; + } + } + + //èŽ·å– + function getColumns(): BasicColumn[] { + const columns = toRaw(unref(getColumnsRef)); + return columns.map((item) => { + return { ...item, title: item.title, key: item.key, fixed: item.fixed || undefined }; + }); + } + + //获å–原始 + function getCacheColumns(isKey?: boolean): any[] { + return isKey ? cacheColumns.map((item) => item.key) : cacheColumns; + } + + //更新原始数æ®å•个字段 + function setCacheColumnsField(key: string | undefined, value: Partial) { + if (!key || !value) { + return; + } + cacheColumns.forEach((item) => { + if (item.key === key) { + Object.assign(item, value); + return; + } + }); + } + + return { + getColumnsRef, + getCacheColumns, + setCacheColumnsField, + setColumns, + getColumns, + getPageColumns, + }; +} diff --git a/src/components/Table/src/hooks/useDataSource.ts b/src/components/Table/src/hooks/useDataSource.ts new file mode 100644 index 00000000..9bf628e4 --- /dev/null +++ b/src/components/Table/src/hooks/useDataSource.ts @@ -0,0 +1,150 @@ +import { ref, ComputedRef, unref, computed, onMounted, watchEffect, watch } from 'vue'; +import type { BasicTableProps } from '../types/table'; +import type { PaginationProps } from '../types/pagination'; +import { isBoolean, isFunction, isArray } from '@/utils/is'; +import { APISETTING } from '../const'; + +export function useDataSource( + propsRef: ComputedRef, + { getPaginationInfo, setPagination, setLoading, tableData }, + emit +) { + const dataSourceRef = ref([]); + + watchEffect(() => { + tableData.value = unref(dataSourceRef); + }); + + watch( + () => unref(propsRef).dataSource, + () => { + const { dataSource }: any = unref(propsRef); + dataSource && (dataSourceRef.value = dataSource); + }, + { + immediate: true, + } + ); + + const getRowKey = computed(() => { + const { rowKey }: any = unref(propsRef); + return rowKey + ? rowKey + : () => { + return 'key'; + }; + }); + + const getDataSourceRef = computed(() => { + const dataSource = unref(dataSourceRef); + if (!dataSource || dataSource.length === 0) { + return unref(dataSourceRef); + } + return unref(dataSourceRef); + }); + + async function fetch(opt?) { + try { + setLoading(true); + const { request, pagination, beforeRequest, afterRequest }: any = unref(propsRef); + if (!request) return; + //ç»„è£…åˆ†é¡µä¿¡æ¯ + const pageField = APISETTING.pageField; + const sizeField = APISETTING.sizeField; + const totalField = APISETTING.totalField; + const listField = APISETTING.listField; + const itemCount = APISETTING.countField; + let pageParams = {}; + const { page = 1, pageSize = 10 } = unref(getPaginationInfo) as PaginationProps; + + if ((isBoolean(pagination) && !pagination) || isBoolean(getPaginationInfo)) { + pageParams = {}; + } else { + pageParams[pageField] = (opt && opt[pageField]) || page; + pageParams[sizeField] = pageSize; + } + + let params = { + ...pageParams, + ...opt, + }; + if (beforeRequest && isFunction(beforeRequest)) { + // The params parameter can be modified by outsiders + params = (await beforeRequest(params)) || params; + } + const res = await request(params); + const resultTotal = res[totalField]; + const currentPage = res[pageField]; + const total = res[itemCount]; + const results = res[listField] ? res[listField] : []; + + // 如果数æ®å¼‚å¸¸ï¼Œéœ€èŽ·å–æ­£ç¡®çš„页ç å†æ¬¡æ‰§è¡Œ + if (resultTotal) { + const currentTotalPage = Math.ceil(total / pageSize); + if (page > currentTotalPage) { + setPagination({ + page: currentTotalPage, + itemCount: total, + }); + return await fetch(opt); + } + } + let resultInfo = res[listField] ? res[listField] : []; + if (afterRequest && isFunction(afterRequest)) { + // can modify the data returned by the interface for processing + resultInfo = (await afterRequest(resultInfo)) || resultInfo; + } + dataSourceRef.value = resultInfo; + setPagination({ + page: currentPage, + pageCount: resultTotal, + itemCount: total, + }); + if (opt && opt[pageField]) { + setPagination({ + page: opt[pageField] || 1, + }); + } + emit('fetch-success', { + items: unref(resultInfo), + resultTotal, + }); + } catch (error) { + console.error(error); + emit('fetch-error', error); + dataSourceRef.value = []; + setPagination({ + pageCount: 0, + }); + } finally { + setLoading(false); + } + } + + onMounted(() => { + setTimeout(() => { + fetch(); + }, 16); + }); + + function setTableData(values) { + dataSourceRef.value = values; + } + + function getDataSource(): any[] { + return getDataSourceRef.value; + } + + async function reload(opt?) { + await fetch(opt); + } + + return { + fetch, + getRowKey, + getDataSourceRef, + getDataSource, + setTableData, + reload, + }; +} diff --git a/src/components/Table/src/hooks/useLoading.ts b/src/components/Table/src/hooks/useLoading.ts new file mode 100644 index 00000000..0a670b00 --- /dev/null +++ b/src/components/Table/src/hooks/useLoading.ts @@ -0,0 +1,21 @@ +import { ref, ComputedRef, unref, computed, watch } from 'vue'; +import type { BasicTableProps } from '../types/table'; + +export function useLoading(props: ComputedRef) { + const loadingRef = ref(unref(props).loading); + + watch( + () => unref(props).loading, + (loading) => { + loadingRef.value = loading; + } + ); + + const getLoading = computed(() => unref(loadingRef)); + + function setLoading(loading: boolean) { + loadingRef.value = loading; + } + + return { getLoading, setLoading }; +} diff --git a/src/components/Table/src/hooks/usePagination.ts b/src/components/Table/src/hooks/usePagination.ts new file mode 100644 index 00000000..8ae55b3c --- /dev/null +++ b/src/components/Table/src/hooks/usePagination.ts @@ -0,0 +1,62 @@ +import type { PaginationProps } from '../types/pagination'; +import type { BasicTableProps } from '../types/table'; +import { computed, unref, ref, ComputedRef, watch } from 'vue'; + +import { isBoolean } from '@/utils/is'; +import { DEFAULTPAGESIZE, PAGESIZES } from '../const'; + +export function usePagination(refProps: ComputedRef) { + const configRef = ref({}); + const show = ref(true); + + watch( + () => unref(refProps).pagination, + (pagination) => { + if (!isBoolean(pagination) && pagination) { + configRef.value = { + ...unref(configRef), + ...(pagination ?? {}), + }; + } + } + ); + + const getPaginationInfo = computed((): PaginationProps | boolean => { + const { pagination } = unref(refProps); + if (!unref(show) || (isBoolean(pagination) && !pagination)) { + return false; + } + return { + page: 1, //当å‰é¡µ + pageSize: DEFAULTPAGESIZE, //åˆ†é¡µå¤§å° + pageSizes: PAGESIZES, // æ¯é¡µæ¡æ•° + showSizePicker: true, + showQuickJumper: true, + prefix: (pagingInfo) => `å…± ${pagingInfo.itemCount} æ¡`, // ä¸éœ€è¦å¯ä»¥é€šè¿‡ pagination é‡ç½®æˆ–者删除 + ...(isBoolean(pagination) ? {} : pagination), + ...unref(configRef), + }; + }); + + function setPagination(info: Partial) { + const paginationInfo = unref(getPaginationInfo); + configRef.value = { + ...(!isBoolean(paginationInfo) ? paginationInfo : {}), + ...info, + }; + } + + function getPagination() { + return unref(getPaginationInfo); + } + + function getShowPagination() { + return unref(show); + } + + async function setShowPagination(flag: boolean) { + show.value = flag; + } + + return { getPagination, getPaginationInfo, setShowPagination, getShowPagination, setPagination }; +} diff --git a/src/components/Table/src/hooks/useTableContext.ts b/src/components/Table/src/hooks/useTableContext.ts new file mode 100644 index 00000000..e975ac3f --- /dev/null +++ b/src/components/Table/src/hooks/useTableContext.ts @@ -0,0 +1,22 @@ +import type { Ref } from 'vue'; +import type { BasicTableProps, TableActionType } from '../types/table'; +import { provide, inject, ComputedRef } from 'vue'; + +const key = Symbol('s-table'); + +type Instance = TableActionType & { + wrapRef: Ref>; + getBindValues: ComputedRef; +}; + +type RetInstance = Omit & { + getBindValues: ComputedRef; +}; + +export function createTableContext(instance: Instance) { + provide(key, instance); +} + +export function useTableContext(): RetInstance { + return inject(key) as RetInstance; +} diff --git a/src/components/Table/src/props.ts b/src/components/Table/src/props.ts new file mode 100644 index 00000000..34b9111c --- /dev/null +++ b/src/components/Table/src/props.ts @@ -0,0 +1,59 @@ +import type { PropType } from 'vue'; +import { propTypes } from '@/utils/propTypes'; +import { BasicColumn } from './types/table'; +import { NDataTable } from 'naive-ui'; +export const basicProps = { + ...NDataTable.props, // 这里继承原 UI 组件的 props + title: { + type: String, + default: null, + }, + titleTooltip: { + type: String, + default: null, + }, + size: { + type: String, + default: 'medium', + }, + dataSource: { + type: [Object], + default: () => [], + }, + columns: { + type: [Array] as PropType, + default: () => [], + required: true, + }, + beforeRequest: { + type: Function as PropType<(...arg: any[]) => void | Promise>, + default: null, + }, + request: { + type: Function as PropType<(...arg: any[]) => Promise>, + default: null, + }, + afterRequest: { + type: Function as PropType<(...arg: any[]) => void | Promise>, + default: null, + }, + rowKey: { + type: [String, Function] as PropType string)>, + default: undefined, + }, + pagination: { + type: [Object, Boolean], + default: () => {}, + }, + //废弃 + showPagination: { + type: [String, Boolean], + default: 'auto', + }, + actionColumn: { + type: Object as PropType, + default: null, + }, + canResize: propTypes.bool.def(true), + resizeHeightOffset: propTypes.number.def(0), +}; diff --git a/src/components/Table/src/types/componentType.ts b/src/components/Table/src/types/componentType.ts new file mode 100644 index 00000000..92b2408e --- /dev/null +++ b/src/components/Table/src/types/componentType.ts @@ -0,0 +1,9 @@ +export type ComponentType = + | 'NInput' + | 'NInputNumber' + | 'NSelect' + | 'NCheckbox' + | 'NSwitch' + | 'NDatePicker' + | 'NTimePicker' + | 'NCascader'; diff --git a/src/components/Table/src/types/pagination.ts b/src/components/Table/src/types/pagination.ts new file mode 100644 index 00000000..29ffe0a7 --- /dev/null +++ b/src/components/Table/src/types/pagination.ts @@ -0,0 +1,10 @@ +export interface PaginationProps { + page?: number; //ÊÜ¿ØÄ£Ê½Ïµĵ±Ç°Ò³ + itemCount?: number; //×ÜÌõÊý + pageCount?: number; //×ÜÒ³Êý + pageSize?: number; //ÊÜ¿ØÄ£Ê½ÏµķÖÒ³´óС + pageSizes?: number[]; //ÿҳÌõÊý£¬ ¿É×Ô¶¨Òå + showSizePicker?: boolean; //ÊÇ·ñÏÔʾÿҳÌõÊýµÄÑ¡ÔñÆ÷ + showQuickJumper?: boolean; //ÊÇ·ñÏÔʾ¿ìËÙÌø×ª + prefix?: any; //·Öҳǰ׺ +} diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts new file mode 100644 index 00000000..38cebf93 --- /dev/null +++ b/src/components/Table/src/types/table.ts @@ -0,0 +1,38 @@ +import type { InternalRowData, TableBaseColumn } from 'naive-ui/lib/data-table/src/interface'; +import { ComponentType } from './componentType'; +export interface BasicColumn extends TableBaseColumn { + //编辑表格 + edit?: boolean; + editRow?: boolean; + editable?: boolean; + editComponent?: ComponentType; + editComponentProps?: Recordable; + editRule?: boolean | ((text: string, record: Recordable) => Promise); + editValueMap?: (value: any) => string; + onEditRow?: () => void; + // æƒé™ç¼–ç æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + auth?: string[]; + // ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + ifShow?: boolean | ((column: BasicColumn) => boolean); + // æŽ§åˆ¶æ˜¯å¦æ”¯æŒæ‹–æ‹½ï¼Œé»˜è®¤æ”¯æŒ + draggable?: boolean; +} + +export interface TableActionType { + reload: (opt) => Promise; + emit?: any; + getColumns: (opt?) => BasicColumn[]; + setColumns: (columns: BasicColumn[] | string[]) => void; +} + +export interface BasicTableProps { + title?: string; + dataSource: Function; + columns: any[]; + pagination: object; + showPagination: boolean; + actionColumn: any[]; + canResize: boolean; + resizeHeightOffset: number; + loading: boolean; +} diff --git a/src/components/Table/src/types/tableAction.ts b/src/components/Table/src/types/tableAction.ts new file mode 100644 index 00000000..27d483f7 --- /dev/null +++ b/src/components/Table/src/types/tableAction.ts @@ -0,0 +1,27 @@ +import { NButton } from 'naive-ui'; +import type { Component } from 'vue'; +import { PermissionsEnum } from '@/enums/permissionsEnum'; +export interface ActionItem extends Partial> { + onClick?: Fn; + label?: string; + type?: 'success' | 'error' | 'warning' | 'info' | 'primary' | 'default'; + // 设定 color åŽä¼šè¦†ç›– type çš„æ ·å¼ + color?: string; + icon?: Component; + popConfirm?: PopConfirm; + disabled?: boolean; + divider?: boolean; + // æƒé™ç¼–ç æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + auth?: PermissionsEnum | PermissionsEnum[] | string | string[]; + // ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + ifShow?: boolean | ((action: ActionItem) => boolean); +} + +export interface PopConfirm { + title: string; + okText?: string; + cancelText?: string; + confirm: Fn; + cancel?: Fn; + icon?: Component; +} diff --git a/src/components/Upload/index.ts b/src/components/Upload/index.ts new file mode 100644 index 00000000..10a2c43d --- /dev/null +++ b/src/components/Upload/index.ts @@ -0,0 +1 @@ +export { default as BasicUpload } from './src/BasicUpload.vue'; diff --git a/src/components/Upload/src/BasicUpload.vue b/src/components/Upload/src/BasicUpload.vue new file mode 100644 index 00000000..0269b121 --- /dev/null +++ b/src/components/Upload/src/BasicUpload.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/src/components/Upload/src/props.ts b/src/components/Upload/src/props.ts new file mode 100644 index 00000000..461aea1f --- /dev/null +++ b/src/components/Upload/src/props.ts @@ -0,0 +1,34 @@ +import type { PropType } from 'vue'; +import { NUpload } from 'naive-ui'; + +export const basicProps = { + ...NUpload.props, + accept: { + type: String, + default: '.jpg,.png,.jpeg,.svg,.gif', + }, + helpText: { + type: String as PropType, + default: '', + }, + maxSize: { + type: Number as PropType, + default: 2, + }, + maxNumber: { + type: Number as PropType, + default: Infinity, + }, + value: { + type: Array as PropType, + default: () => [], + }, + width: { + type: Number as PropType, + default: 104, + }, + height: { + type: Number as PropType, + default: 104, //建议ä¸å°äºŽè¿™ä¸ªå°ºå¯¸ 太å°é¡µé¢å¯èƒ½æ˜¾ç¤ºæœ‰å¼‚常 + }, +}; diff --git a/src/components/Upload/src/type/index.ts b/src/components/Upload/src/type/index.ts new file mode 100644 index 00000000..b2ea97f4 --- /dev/null +++ b/src/components/Upload/src/type/index.ts @@ -0,0 +1,7 @@ +export interface BasicProps { + title?: string; + dataSource: Function; + columns: any[]; + pagination: object; + showPagination: boolean; +} diff --git a/src/components/editor/Editor.vue b/src/components/editor/Editor.vue index f55cafaa..8a759d25 100644 --- a/src/components/editor/Editor.vue +++ b/src/components/editor/Editor.vue @@ -134,35 +134,35 @@ const navs = reactive([ } }, { - title: '附件', + title: '文件', icon: markRaw(FolderUpload), show: true, click: () => { uploadFileRef.value.click() } }, + // { + // title: '代ç ', + // icon: markRaw(SourceCode), + // show: true, + // click: () => { + // isShowEditorCode.value = true + // } + // }, { - title: '代ç ', - icon: markRaw(SourceCode), - show: true, - click: () => { - isShowEditorCode.value = true - } - }, - { - title: '语音消æ¯', + title: '语音', icon: markRaw(IconVoice), show: true, click: () => { isShowEditorRecorder.value = true } }, - { - title: '地ç†ä½ç½®', - icon: markRaw(Local), - show: true, - click: () => {} - }, + // { + // title: '地ç†ä½ç½®', + // icon: markRaw(Local), + // show: true, + // click: () => {} + // }, // { // title: '群投票', // icon: markRaw(Ranking), diff --git a/src/directives/clickOutside.ts b/src/directives/clickOutside.ts new file mode 100644 index 00000000..2758a9da --- /dev/null +++ b/src/directives/clickOutside.ts @@ -0,0 +1,86 @@ +import { on } from '@/utils/domUtils'; +import { isServer } from '@/utils/is'; +import type { ComponentPublicInstance, DirectiveBinding, ObjectDirective } from 'vue'; + +type DocumentHandler = (mouseup: T, mousedown: T) => void; + +type FlushList = Map< + HTMLElement, + { + documentHandler: DocumentHandler; + bindingFn: (...args: unknown[]) => unknown; + } +>; + +const nodeList: FlushList = new Map(); + +let startClick: MouseEvent; + +if (!isServer) { + on(document, 'mousedown', (e: MouseEvent) => (startClick = e)); + on(document, 'mouseup', (e: MouseEvent) => { + for (const { documentHandler } of nodeList.values()) { + documentHandler(e, startClick); + } + }); +} + +function createDocumentHandler(el: HTMLElement, binding: DirectiveBinding): DocumentHandler { + let excludes: HTMLElement[] = []; + if (Array.isArray(binding.arg)) { + excludes = binding.arg; + } else { + // due to current implementation on binding type is wrong the type casting is necessary here + excludes.push(binding.arg as unknown as HTMLElement); + } + return function (mouseup, mousedown) { + const popperRef = ( + binding.instance as ComponentPublicInstance<{ + popperRef: Nullable; + }> + ).popperRef; + const mouseUpTarget = mouseup.target as Node; + const mouseDownTarget = mousedown.target as Node; + const isBound = !binding || !binding.instance; + const isTargetExists = !mouseUpTarget || !mouseDownTarget; + const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget); + const isSelf = el === mouseUpTarget; + + const isTargetExcluded = + (excludes.length && excludes.some((item) => item?.contains(mouseUpTarget))) || + (excludes.length && excludes.includes(mouseDownTarget as HTMLElement)); + const isContainedByPopper = + popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget)); + if ( + isBound || + isTargetExists || + isContainedByEl || + isSelf || + isTargetExcluded || + isContainedByPopper + ) { + return; + } + binding.value(); + }; +} + +const ClickOutside: ObjectDirective = { + beforeMount(el, binding) { + nodeList.set(el, { + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value, + }); + }, + updated(el, binding) { + nodeList.set(el, { + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value, + }); + }, + unmounted(el) { + nodeList.delete(el); + }, +}; + +export default ClickOutside; diff --git a/src/enums/breakpointEnum.ts b/src/enums/breakpointEnum.ts new file mode 100644 index 00000000..93acc1a3 --- /dev/null +++ b/src/enums/breakpointEnum.ts @@ -0,0 +1,28 @@ +export enum sizeEnum { + XS = 'XS', + SM = 'SM', + MD = 'MD', + LG = 'LG', + XL = 'XL', + XXL = 'XXL', +} + +export enum screenEnum { + XS = 480, + SM = 576, + MD = 768, + LG = 992, + XL = 1200, + XXL = 1600, +} + +const screenMap = new Map(); + +screenMap.set(sizeEnum.XS, screenEnum.XS); +screenMap.set(sizeEnum.SM, screenEnum.SM); +screenMap.set(sizeEnum.MD, screenEnum.MD); +screenMap.set(sizeEnum.LG, screenEnum.LG); +screenMap.set(sizeEnum.XL, screenEnum.XL); +screenMap.set(sizeEnum.XXL, screenEnum.XXL); + +export { screenMap }; diff --git a/src/enums/cacheEnum.ts b/src/enums/cacheEnum.ts new file mode 100644 index 00000000..77cfdbdd --- /dev/null +++ b/src/enums/cacheEnum.ts @@ -0,0 +1,20 @@ +// token key +export const TOKEN_KEY = 'TOKEN'; + +// user info key +export const USER_INFO_KEY = 'USER__INFO__'; + +// role info key +export const ROLES_KEY = 'ROLES__KEY__'; + +// project config key +export const PROJ_CFG_KEY = 'PROJ__CFG__KEY__'; + +// lock info +export const LOCK_INFO_KEY = 'LOCK__INFO__KEY__'; + +// base global local key +export const BASE_LOCAL_CACHE_KEY = 'LOCAL__CACHE__KEY__'; + +// base global session key +export const BASE_SESSION_CACHE_KEY = 'SESSION__CACHE__KEY__'; diff --git a/src/enums/httpEnum.ts b/src/enums/httpEnum.ts new file mode 100644 index 00000000..9aa83e0e --- /dev/null +++ b/src/enums/httpEnum.ts @@ -0,0 +1,34 @@ +/** + * @description: 请求结果集 + */ +export enum ResultEnum { + SUCCESS = 200, + ERROR = -1, + TIMEOUT = 10042, + TYPE = 'success', +} + +/** + * @description: 请求方法 + */ +export enum RequestEnum { + GET = 'GET', + POST = 'POST', + PATCH = 'PATCH', + PUT = 'PUT', + DELETE = 'DELETE', +} + +/** + * @description: 常用的contentTyp类型 + */ +export enum ContentTypeEnum { + // json + JSON = 'application/json;charset=UTF-8', + // json + TEXT = 'text/plain;charset=UTF-8', + // form-data 一般é…åˆqs + FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8', + // form-data 上传 + FORM_DATA = 'multipart/form-data;charset=UTF-8', +} diff --git a/src/enums/pageEnum.ts b/src/enums/pageEnum.ts new file mode 100644 index 00000000..d08ada9f --- /dev/null +++ b/src/enums/pageEnum.ts @@ -0,0 +1,14 @@ +export enum PageEnum { + // 登录 + BASE_LOGIN = '/login', + BASE_LOGIN_NAME = 'Login', + //é‡å®šå‘ + REDIRECT = '/redirect', + REDIRECT_NAME = 'Redirect', + // 首页 + BASE_HOME = '/dashboard', + //首页跳转默认路由 + BASE_HOME_REDIRECT = '/dashboard/console', + // 错误 + ERROR_PAGE_NAME = 'ErrorPage', +} diff --git a/src/enums/permissionsEnum.ts b/src/enums/permissionsEnum.ts new file mode 100644 index 00000000..bf3f53a2 --- /dev/null +++ b/src/enums/permissionsEnum.ts @@ -0,0 +1,4 @@ +export interface PermissionsEnum { + value: string; + label: string; +} diff --git a/src/enums/roleEnum.ts b/src/enums/roleEnum.ts new file mode 100644 index 00000000..e8f01056 --- /dev/null +++ b/src/enums/roleEnum.ts @@ -0,0 +1,7 @@ +export enum RoleEnum { + // 管ç†å‘˜ + ADMIN = 'admin', + + // 普通用户 + NORMAL = 'normal', +} diff --git a/src/hooks/event/useBreakpoint.ts b/src/hooks/event/useBreakpoint.ts new file mode 100644 index 00000000..4b2d29c7 --- /dev/null +++ b/src/hooks/event/useBreakpoint.ts @@ -0,0 +1,89 @@ +import { ref, computed, ComputedRef, unref } from 'vue'; +import { useEventListener } from '@/hooks/event/useEventListener'; +import { screenMap, sizeEnum, screenEnum } from '@/enums/breakpointEnum'; + +let globalScreenRef: ComputedRef; +let globalWidthRef: ComputedRef; +let globalRealWidthRef: ComputedRef; + +export interface CreateCallbackParams { + screen: ComputedRef; + width: ComputedRef; + realWidth: ComputedRef; + screenEnum: typeof screenEnum; + screenMap: Map; + sizeEnum: typeof sizeEnum; +} + +export function useBreakpoint() { + return { + screenRef: computed(() => unref(globalScreenRef)), + widthRef: globalWidthRef, + screenEnum, + realWidthRef: globalRealWidthRef, + }; +} + +// Just call it once +export function createBreakpointListen(fn?: (opt: CreateCallbackParams) => void) { + const screenRef = ref(sizeEnum.XL); + const realWidthRef = ref(window.innerWidth); + + function getWindowWidth() { + const width = document.body.clientWidth; + const xs = screenMap.get(sizeEnum.XS)!; + const sm = screenMap.get(sizeEnum.SM)!; + const md = screenMap.get(sizeEnum.MD)!; + const lg = screenMap.get(sizeEnum.LG)!; + const xl = screenMap.get(sizeEnum.XL)!; + if (width < xs) { + screenRef.value = sizeEnum.XS; + } else if (width < sm) { + screenRef.value = sizeEnum.SM; + } else if (width < md) { + screenRef.value = sizeEnum.MD; + } else if (width < lg) { + screenRef.value = sizeEnum.LG; + } else if (width < xl) { + screenRef.value = sizeEnum.XL; + } else { + screenRef.value = sizeEnum.XXL; + } + realWidthRef.value = width; + } + + useEventListener({ + el: window, + name: 'resize', + + listener: () => { + getWindowWidth(); + resizeFn(); + }, + // wait: 100, + }); + + getWindowWidth(); + globalScreenRef = computed(() => unref(screenRef)); + globalWidthRef = computed((): number => screenMap.get(unref(screenRef)!)!); + globalRealWidthRef = computed((): number => unref(realWidthRef)); + + function resizeFn() { + fn?.({ + screen: globalScreenRef, + width: globalWidthRef, + realWidth: globalRealWidthRef, + screenEnum, + screenMap, + sizeEnum, + }); + } + + resizeFn(); + return { + screenRef: globalScreenRef, + screenEnum, + widthRef: globalWidthRef, + realWidthRef: globalRealWidthRef, + }; +} diff --git a/src/hooks/event/useEventListener.ts b/src/hooks/event/useEventListener.ts new file mode 100644 index 00000000..600afabd --- /dev/null +++ b/src/hooks/event/useEventListener.ts @@ -0,0 +1,62 @@ +import type { Ref } from 'vue'; + +import { ref, watch, unref } from 'vue'; +import { useThrottleFn, useDebounceFn } from '@vueuse/core'; + +export type RemoveEventFn = () => void; + +export interface UseEventParams { + el?: Element | Ref | Window | any; + name: string; + listener: EventListener; + options?: boolean | AddEventListenerOptions; + autoRemove?: boolean; + isDebounce?: boolean; + wait?: number; +} + +export function useEventListener({ + el = window, + name, + listener, + options, + autoRemove = true, + isDebounce = true, + wait = 80, +}: UseEventParams): { removeEvent: RemoveEventFn } { + /* eslint-disable-next-line */ + let remove: RemoveEventFn = () => { + }; + const isAddRef = ref(false); + + if (el) { + const element: Ref = ref(el as Element); + + const handler = isDebounce ? useDebounceFn(listener, wait) : useThrottleFn(listener, wait); + const realHandler = wait ? handler : listener; + const removeEventListener = (e: Element) => { + isAddRef.value = true; + e.removeEventListener(name, realHandler, options); + }; + const addEventListener = (e: Element) => e.addEventListener(name, realHandler, options); + + const removeWatch = watch( + element, + (v, _ov, cleanUp) => { + if (v) { + !unref(isAddRef) && addEventListener(v); + cleanUp(() => { + autoRemove && removeEventListener(v); + }); + } + }, + { immediate: true } + ); + + remove = () => { + removeEventListener(element.value); + removeWatch(); + }; + } + return { removeEvent: remove }; +} diff --git a/src/hooks/event/useWindowSizeFn copy.ts b/src/hooks/event/useWindowSizeFn copy.ts new file mode 100644 index 00000000..7b18ca0e --- /dev/null +++ b/src/hooks/event/useWindowSizeFn copy.ts @@ -0,0 +1,36 @@ +import { tryOnMounted, tryOnUnmounted } from '@vueuse/core'; +import { useDebounceFn } from '@vueuse/core'; + +interface WindowSizeOptions { + once?: boolean; + immediate?: boolean; + listenerOptions?: AddEventListenerOptions | boolean; +} + +export function useWindowSizeFn(fn: Fn, wait = 150, options?: WindowSizeOptions) { + let handler = () => { + fn(); + }; + const handleSize = useDebounceFn(handler, wait); + handler = handleSize; + + const start = () => { + if (options && options.immediate) { + handler(); + } + window.addEventListener('resize', handler); + }; + + const stop = () => { + window.removeEventListener('resize', handler); + }; + + tryOnMounted(() => { + start(); + }); + + tryOnUnmounted(() => { + stop(); + }); + return [start, stop]; +} diff --git a/src/hooks/event/useWindowSizeFn.ts b/src/hooks/event/useWindowSizeFn.ts new file mode 100644 index 00000000..01cdc752 --- /dev/null +++ b/src/hooks/event/useWindowSizeFn.ts @@ -0,0 +1,35 @@ +import { tryOnMounted, tryOnUnmounted, useDebounceFn } from '@vueuse/core'; + +interface WindowSizeOptions { + once?: boolean; + immediate?: boolean; + listenerOptions?: AddEventListenerOptions | boolean; +} + +export function useWindowSizeFn(fn: Fn, wait = 150, options?: WindowSizeOptions) { + let handler = () => { + fn(); + }; + const handleSize = useDebounceFn(handler, wait); + handler = handleSize; + + const start = () => { + if (options && options.immediate) { + handler(); + } + window.addEventListener('resize', handler); + }; + + const stop = () => { + window.removeEventListener('resize', handler); + }; + + tryOnMounted(() => { + start(); + }); + + tryOnUnmounted(() => { + stop(); + }); + return [start, stop]; +} diff --git a/src/hooks/setting/useDesignSetting.ts b/src/hooks/setting/useDesignSetting.ts new file mode 100644 index 00000000..0a873b5d --- /dev/null +++ b/src/hooks/setting/useDesignSetting.ts @@ -0,0 +1,18 @@ +import { computed } from 'vue'; +import { useDesignSettingStore } from '@/store/modules/designSetting'; + +export function useDesignSetting() { + const designStore = useDesignSettingStore(); + + const getDarkTheme = computed(() => designStore.darkTheme); + + const getAppTheme = computed(() => designStore.appTheme); + + const getAppThemeList = computed(() => designStore.appThemeList); + + return { + getDarkTheme, + getAppTheme, + getAppThemeList, + }; +} diff --git a/src/hooks/web/usePermission.ts b/src/hooks/web/usePermission.ts new file mode 100644 index 00000000..66f8e205 --- /dev/null +++ b/src/hooks/web/usePermission.ts @@ -0,0 +1,52 @@ +import { useUserStore } from '@/store/modules/user'; + +export function usePermission() { + const userStore = useUserStore(); + + /** + * 检查æƒé™ + * @param accesses + */ + function _somePermissions(accesses: string[]) { + return userStore.getPermissions.some((item) => { + const { value }: any = item; + return accesses.includes(value); + }); + } + + /** + * 判断是å¦å­˜åœ¨æƒé™ + * å¯ç”¨äºŽ v-if 显示逻辑 + * */ + function hasPermission(accesses: string[]): boolean { + if (!accesses || !accesses.length) return true; + return _somePermissions(accesses); + } + + /** + * 是å¦åŒ…嫿Œ‡å®šçš„æ‰€æœ‰æƒé™ + * @param accesses + */ + function hasEveryPermission(accesses: string[]): boolean { + const permissionsList = userStore.getPermissions; + if (Array.isArray(accesses)) { + return permissionsList.every((access: any) => accesses.includes(access.value)); + } + throw new Error(`[hasEveryPermission]: ${accesses} should be a array !`); + } + + /** + * 是å¦åŒ…å«å…¶ä¸­æŸä¸ªæƒé™ + * @param accesses + * @param accessMap + */ + function hasSomePermission(accesses: string[]): boolean { + const permissionsList = userStore.getPermissions; + if (Array.isArray(accesses)) { + return permissionsList.some((access: any) => accesses.includes(access.value)); + } + throw new Error(`[hasSomePermission]: ${accesses} should be a array !`); + } + + return { hasPermission, hasEveryPermission, hasSomePermission }; +} diff --git a/src/layout/PageTitle.vue b/src/layout/PageTitle.vue new file mode 100644 index 00000000..9503e92d --- /dev/null +++ b/src/layout/PageTitle.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/layout/component/Menu.vue b/src/layout/component/Menu.vue index 52563743..a67d2f19 100644 --- a/src/layout/component/Menu.vue +++ b/src/layout/component/Menu.vue @@ -10,7 +10,12 @@ import { Message, NotebookAndPen, People, - SmartOptimization + SmartOptimization, + Send, + TimedMail, + ThinkingProblem, + WrongUser, + Mark, } from '@icon-park/vue-next' defineProps({ @@ -53,6 +58,31 @@ const menus = reactive([ // icon: markRaw(SmartOptimization), // title: 'Ai助手' // }, + { + link: '/groupnotice', + icon: markRaw(Send), + title: '群å‘' + }, + { + link: '/notice', + icon: markRaw(TimedMail), + title: '定时æé†’' + }, + { + link: '/qa', + icon: markRaw(ThinkingProblem), + title: '自动问答' + }, + { + link: '/statistic', + icon: markRaw(Mark), + title: '统计' + }, + { + link: '/whitelist', + icon: markRaw(WrongUser), + title: '黑白åå•' + }, { link: '/settings', icon: markRaw(SettingTwo), diff --git a/src/main.ts b/src/main.ts index 8ef17d08..227ebb0e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,6 +8,8 @@ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate' import router from './router' import App from './App.vue' import * as plugins from './plugins' +import { setupNaiveDiscreteApi, setupNaive, setupDirectives } from '@/plugins'; +import naive from 'naive-ui' async function bootstrap() { const pinia = createPinia() @@ -15,8 +17,11 @@ async function bootstrap() { const app = createApp(App) + // 注册全局常用的 naive-ui 组件 + setupNaive(app); app.use(pinia) app.use(router) + app.use(naive) plugins.setHljsVuePlugin(app) plugins.setupNaive(app) diff --git a/src/router/index.js b/src/router/index.js index a6c549c2..8b7b2382 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -5,6 +5,8 @@ import MainLayout from '@/layout/MainLayout.vue' import SettingRouter from './modules/setting' import ContactRouter from './modules/contact' import AuthRouter from './modules/auth' +import StatisticRouter from './modules/statistic' +import WhitelistRouter from './modules/whitelist' const routes = [ { @@ -26,13 +28,33 @@ const routes = [ meta: { auth: true }, component: () => import('@/views/note/index.vue') }, + { + path: '/notice', + name: 'notice', + meta: { auth: true }, + component: () => import('@/views/notice/index.vue') + }, + { + path: '/groupnotice', + name: 'groupnotice', + meta: { auth: true }, + component: () => import('@/views/groupnotice/index.vue') + }, + { + path: '/qa', + name: 'qa', + meta: { auth: true }, + component: () => import('@/views/qa/index.vue') + }, { path: '/example', name: 'example', component: () => import('@/views/example/index.vue') }, SettingRouter, - ContactRouter + ContactRouter, + StatisticRouter, + WhitelistRouter, ] }, AuthRouter, diff --git a/src/router/modules/statistic.ts b/src/router/modules/statistic.ts new file mode 100644 index 00000000..75f34d0a --- /dev/null +++ b/src/router/modules/statistic.ts @@ -0,0 +1,19 @@ +export default { + path: '/statistic', + name: 'statistic', + redirect: '/statistic/list', + component: () => import('@/views/statistic/layout.vue'), + children: [ + { + path: '/statistic/list', + meta: { auth: true }, + component: () => import('@/views/statistic/statistic.vue') + }, + { + path: '/statistic/order', + meta: { auth: true }, + component: () => import('@/views/statistic/order.vue') + } + ] + } + \ No newline at end of file diff --git a/src/router/modules/whitelist.ts b/src/router/modules/whitelist.ts new file mode 100644 index 00000000..b7f98632 --- /dev/null +++ b/src/router/modules/whitelist.ts @@ -0,0 +1,39 @@ +export default { + path: '/whitelist', + name: 'whitelist', + redirect: '/whitelist/white', + component: () => import('@/views/whitelist/layout.vue'), + children: [ + { + path: '/whitelist/white', + meta: { auth: true }, + component: () => import('@/views/whitelist/white.vue') + }, + { + path: '/whitelist/black', + meta: { auth: true }, + component: () => import('@/views/whitelist/black.vue') + }, + { + path: '/whitelist/security', + meta: { auth: true }, + component: () => import('@/views/notice/index.vue') + }, + { + path: '/whitelist/binding', + meta: { auth: true }, + component: () => import('@/views/whitelist/binding.vue') + }, + { + path: '/whitelist/personalize', + meta: { auth: true }, + component: () => import('@/views/whitelist/personalize.vue') + }, + { + path: '/whitelist/notification', + meta: { auth: true }, + component: () => import('@/views/whitelist/notification.vue') + } + ] + } + \ No newline at end of file diff --git a/src/settings/componentSetting.ts b/src/settings/componentSetting.ts new file mode 100644 index 00000000..cd669f02 --- /dev/null +++ b/src/settings/componentSetting.ts @@ -0,0 +1,34 @@ +export default { + table: { + apiSetting: { + // 当å‰é¡µçš„字段å + pageField: 'page', + // æ¯é¡µæ•°é‡å­—段å + sizeField: 'pageSize', + // 接å£è¿”回的数æ®å­—段å + listField: 'list', + // 接å£è¿”回总页数字段å + totalField: 'pageCount', + //总数字段å + countField: 'itemCount', + }, + //é»˜è®¤åˆ†é¡µæ•°é‡ + defaultPageSize: 10, + //å¯åˆ‡æ¢æ¯é¡µæ•°é‡é›†åˆ + pageSizes: [10, 20, 30, 40, 50], + }, + upload: { + //考虑接å£è§„范ä¸åŒ + apiSetting: { + // 集åˆå­—段å + infoField: 'data', + // 图片地å€å­—段å + imgField: 'photo', + }, + //æœ€å¤§ä¸Šä¼ å›¾ç‰‡å¤§å° + maxSize: 2, + //图片上传类型 + fileType: ['image/png', 'image/jpg', 'image/jpeg', 'image/gif', 'image/svg+xml'], + }, + }; + \ No newline at end of file diff --git a/src/settings/designSetting.ts b/src/settings/designSetting.ts new file mode 100644 index 00000000..5efcf225 --- /dev/null +++ b/src/settings/designSetting.ts @@ -0,0 +1,33 @@ +// app theme preset color +export const appThemeList: string[] = [ + '#2d8cf0', + '#0960bd', + '#0084f4', + '#009688', + '#536dfe', + '#ff5c93', + '#ee4f12', + '#0096c7', + '#9c27b0', + '#ff9800', + '#FF3D68', + '#00C1D4', + '#71EFA3', + '#171010', + '#78DEC7', + '#1768AC', + '#FB9300', + '#FC5404', + ]; + + const setting = { + //深色主题 + darkTheme: false, + //系统主题色 + appTheme: '#2d8cf0', + //系统内置主题色列表 + appThemeList, + }; + + export default setting; + \ No newline at end of file diff --git a/src/store/index.ts b/src/store/index.ts index 97483d2b..e820fbe8 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -7,6 +7,9 @@ import { useEditorDraftStore } from '@/store/modules/editor-draft' import { useUploadsStore } from '@/store/modules/uploads' import { useNoteStore } from '@/store/modules/note' +import type { App } from 'vue'; +import { createPinia } from 'pinia'; + export { useUserStore, useSettingsStore, @@ -17,3 +20,11 @@ export { useTalkStore, useNoteStore } + +const store = createPinia(); + +export function setupStore(app: App) { + app.use(store); +} + +export { store }; diff --git a/src/store/modules/designSetting.ts b/src/store/modules/designSetting.ts new file mode 100644 index 00000000..f21dc414 --- /dev/null +++ b/src/store/modules/designSetting.ts @@ -0,0 +1,40 @@ +import { defineStore } from 'pinia'; +import { store } from '@/store'; +import designSetting from '@/settings/designSetting'; + +const { darkTheme, appTheme, appThemeList } = designSetting; + +interface DesignSettingState { + //深色主题 + darkTheme: boolean; + //系统风格 + appTheme: string; + //系统内置风格 + appThemeList: string[]; +} + +export const useDesignSettingStore = defineStore({ + id: 'app-design-setting', + state: (): DesignSettingState => ({ + darkTheme, + appTheme, + appThemeList, + }), + getters: { + getDarkTheme(): boolean { + return this.darkTheme; + }, + getAppTheme(): string { + return this.appTheme; + }, + getAppThemeList(): string[] { + return this.appThemeList; + }, + }, + actions: {}, +}); + +// Need to be used outside the setup +export function useDesignSetting() { + return useDesignSettingStore(store); +} diff --git a/src/types/config.d.ts b/src/types/config.d.ts new file mode 100644 index 00000000..2363b81b --- /dev/null +++ b/src/types/config.d.ts @@ -0,0 +1,75 @@ +export interface ProjectSettingState { + //å¯¼èˆªæ¨¡å¼ + navMode: string; + //导航风格 + navTheme: string; + //顶部设置 + headerSetting: object; + //页脚 + showFooter: boolean; + //èœå•设置 + menuSetting: object; + //多标签 + multiTabsSetting: object; + //é¢åŒ…屑 + crumbsSetting: object; + //æƒé™æ¨¡å¼ + permissionMode: string; + } + + export interface IBodySetting { + fixed: boolean; + } + + export interface IHeaderSetting { + bgColor: string; + fixed: boolean; + isReload: boolean; + } + + export interface IMenuSetting { + minMenuWidth: number; + menuWidth: number; + fixed: boolean; + mixMenu: boolean; + collapsed: boolean; + mobileWidth: number; + } + + export interface ICrumbsSetting { + show: boolean; + showIcon: boolean; + } + + export interface IMultiTabsSetting { + bgColor: string; + fixed: boolean; + show: boolean; + } + export interface GlobConfig { + title: string; + apiUrl: string; + shortName: string; + urlPrefix?: string; + uploadUrl?: string; + prodMock: boolean; + imgUrl?: string; + } + + export interface GlobEnvConfig { + // 标题 + VITE_GLOB_APP_TITLE: string; + // 接å£åœ°å€ + VITE_GLOB_API_URL: string; + // 接å£å‰ç¼€ + VITE_GLOB_API_URL_PREFIX?: string; + // Project abbreviation + VITE_GLOB_APP_SHORT_NAME: string; + // å›¾ç‰‡ä¸Šä¼ åœ°å€ + VITE_GLOB_UPLOAD_URL?: string; + //图片å‰ç¼€åœ°å€ + VITE_GLOB_IMG_URL?: string; + //生产环境开å¯mock + VITE_GLOB_PROD_MOCK: boolean; + } + \ No newline at end of file diff --git a/src/types/index.d.ts b/src/types/index.d.ts new file mode 100644 index 00000000..85d2492e --- /dev/null +++ b/src/types/index.d.ts @@ -0,0 +1,28 @@ +declare interface Fn { + (...arg: T[]): R; +} + +declare interface PromiseFn { + (...arg: T[]): Promise; +} + +declare type RefType = T | null; + +declare type LabelValueOptions = { + label: string; + value: any; + disabled: boolean; + [key: string]: string | number | boolean; +}[]; + +declare type EmitType = (event: string, ...args: any[]) => void; + +declare type TargetContext = '_self' | '_blank'; + +declare interface ComponentElRef { + $el: T; +} + +declare type ComponentRef = ComponentElRef | null; + +declare type ElRef = Nullable; diff --git a/src/types/modules.d.ts b/src/types/modules.d.ts new file mode 100644 index 00000000..a7c8ffdc --- /dev/null +++ b/src/types/modules.d.ts @@ -0,0 +1,11 @@ +/// +declare module '*.vue' { + import { DefineComponent } from 'vue'; + const Component: DefineComponent<{}, {}, any>; + export default Component; +} + +declare module 'virtual:*' { + const result: any; + export default result; +} diff --git a/src/types/utils.d.ts b/src/types/utils.d.ts new file mode 100644 index 00000000..6500d447 --- /dev/null +++ b/src/types/utils.d.ts @@ -0,0 +1,5 @@ +import type { ComputedRef, Ref } from 'vue'; + +export type DynamicProps = { + [P in keyof T]: Ref | T[P] | ComputedRef; +}; diff --git a/src/utils/domUtils.ts b/src/utils/domUtils.ts new file mode 100644 index 00000000..80a77a57 --- /dev/null +++ b/src/utils/domUtils.ts @@ -0,0 +1,165 @@ +import { upperFirst } from 'lodash-es'; + +export interface ViewportOffsetResult { + left: number; + top: number; + right: number; + bottom: number; + rightIncludeBody: number; + bottomIncludeBody: number; +} + +export function getBoundingClientRect(element: Element): DOMRect | number { + if (!element || !element.getBoundingClientRect) { + return 0; + } + return element.getBoundingClientRect(); +} + +function trim(string: string) { + return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); +} + +/* istanbul ignore next */ +export function hasClass(el: Element, cls: string) { + if (!el || !cls) return false; + if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.'); + if (el.classList) { + return el.classList.contains(cls); + } else { + return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1; + } +} + +/* istanbul ignore next */ +export function addClass(el: Element, cls: string) { + if (!el) return; + let curClass = el.className; + const classes = (cls || '').split(' '); + + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i]; + if (!clsName) continue; + + if (el.classList) { + el.classList.add(clsName); + } else if (!hasClass(el, clsName)) { + curClass += ' ' + clsName; + } + } + if (!el.classList) { + el.className = curClass; + } +} + +/* istanbul ignore next */ +export function removeClass(el: Element, cls: string) { + if (!el || !cls) return; + const classes = cls.split(' '); + let curClass = ' ' + el.className + ' '; + + for (let i = 0, j = classes.length; i < j; i++) { + const clsName = classes[i]; + if (!clsName) continue; + + if (el.classList) { + el.classList.remove(clsName); + } else if (hasClass(el, clsName)) { + curClass = curClass.replace(' ' + clsName + ' ', ' '); + } + } + if (!el.classList) { + el.className = trim(curClass); + } +} +/** + * Get the left and top offset of the current element + * left: the distance between the leftmost element and the left side of the document + * top: the distance from the top of the element to the top of the document + * right: the distance from the far right of the element to the right of the document + * bottom: the distance from the bottom of the element to the bottom of the document + * rightIncludeBody: the distance between the leftmost element and the right side of the document + * bottomIncludeBody: the distance from the bottom of the element to the bottom of the document + * + * @description: + */ +export function getViewportOffset(element: Element): ViewportOffsetResult { + const doc = document.documentElement; + + const docScrollLeft = doc.scrollLeft; + const docScrollTop = doc.scrollTop; + const docClientLeft = doc.clientLeft; + const docClientTop = doc.clientTop; + + const pageXOffset = window.pageXOffset; + const pageYOffset = window.pageYOffset; + + const box = getBoundingClientRect(element); + + const { left: retLeft, top: rectTop, width: rectWidth, height: rectHeight } = box as DOMRect; + + const scrollLeft = (pageXOffset || docScrollLeft) - (docClientLeft || 0); + const scrollTop = (pageYOffset || docScrollTop) - (docClientTop || 0); + const offsetLeft = retLeft + pageXOffset; + const offsetTop = rectTop + pageYOffset; + + const left = offsetLeft - scrollLeft; + const top = offsetTop - scrollTop; + + const clientWidth = window.document.documentElement.clientWidth; + const clientHeight = window.document.documentElement.clientHeight; + return { + left: left, + top: top, + right: clientWidth - rectWidth - left, + bottom: clientHeight - rectHeight - top, + rightIncludeBody: clientWidth - left, + bottomIncludeBody: clientHeight - top, + }; +} + +export function hackCss(attr: string, value: string) { + const prefix: string[] = ['webkit', 'Moz', 'ms', 'OT']; + + const styleObj: any = {}; + prefix.forEach((item) => { + styleObj[`${item}${upperFirst(attr)}`] = value; + }); + return { + ...styleObj, + [attr]: value, + }; +} + +/* istanbul ignore next */ +export function on( + element: Element | HTMLElement | Document | Window, + event: string, + handler: EventListenerOrEventListenerObject +): void { + if (element && event && handler) { + element.addEventListener(event, handler, false); + } +} + +/* istanbul ignore next */ +export function off( + element: Element | HTMLElement | Document | Window, + event: string, + handler: Fn +): void { + if (element && event && handler) { + element.removeEventListener(event, handler, false); + } +} + +/* istanbul ignore next */ +export function once(el: HTMLElement, event: string, fn: EventListener): void { + const listener = function (this: any, ...args: unknown[]) { + if (fn) { + fn.apply(this, args); + } + off(el, event, listener); + }; + on(el, event, listener); +} diff --git a/src/utils/env.ts b/src/utils/env.ts new file mode 100644 index 00000000..d53f2bda --- /dev/null +++ b/src/utils/env.ts @@ -0,0 +1,87 @@ +import type { GlobEnvConfig } from '/#/config'; + +import { warn } from '@/utils/log'; +import pkg from '../../package.json'; +import { getConfigFileName } from '../../build/getConfigFileName'; + +export function getCommonStoragePrefix() { + const { VITE_GLOB_APP_SHORT_NAME } = getAppEnvConfig(); + return `${VITE_GLOB_APP_SHORT_NAME}__${getEnv()}`.toUpperCase(); +} + +// Generate cache key according to version +export function getStorageShortName() { + return `${getCommonStoragePrefix()}${`__${pkg.version}`}__`.toUpperCase(); +} + +export function getAppEnvConfig() { + const ENV_NAME = getConfigFileName(import.meta.env); + + const ENV = (import.meta.env.DEV + ? // Get the global configuration (the configuration will be extracted independently when packaging) + (import.meta.env as unknown as GlobEnvConfig) + : window[ENV_NAME as any]) as unknown as GlobEnvConfig; + + const { + VITE_GLOB_APP_TITLE, + VITE_GLOB_API_URL, + VITE_GLOB_APP_SHORT_NAME, + VITE_GLOB_API_URL_PREFIX, + VITE_GLOB_UPLOAD_URL, + VITE_GLOB_PROD_MOCK, + VITE_GLOB_IMG_URL, + } = ENV; + + if (!/^[a-zA-Z\_]*$/.test(VITE_GLOB_APP_SHORT_NAME)) { + warn( + `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.` + ); + } + + return { + VITE_GLOB_APP_TITLE, + VITE_GLOB_API_URL, + VITE_GLOB_APP_SHORT_NAME, + VITE_GLOB_API_URL_PREFIX, + VITE_GLOB_UPLOAD_URL, + VITE_GLOB_PROD_MOCK, + VITE_GLOB_IMG_URL, + }; +} + +/** + * @description: Development model + */ +export const devMode = 'development'; + +/** + * @description: Production mode + */ +export const prodMode = 'production'; + +/** + * @description: Get environment variables + * @returns: + * @example: + */ +export function getEnv(): string { + return import.meta.env.MODE; +} + +/** + * @description: Is it a development mode + * @returns: + * @example: + */ +export function isDevMode(): boolean { + return import.meta.env.DEV; +} + +/** + * @description: Is it a production mode + * @returns: + * @example: + */ +export function isProdMode(): boolean { + return import.meta.env.PROD; +} diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 00000000..e26f0f19 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,240 @@ +import { h, unref } from 'vue'; +import type { App, Plugin, Component } from 'vue'; +import { NIcon, NTag } from 'naive-ui'; +import { PageEnum } from '@/enums/pageEnum'; +import { isObject } from './is/index'; +import { cloneDeep } from 'lodash-es'; +/** + * render 图标 + * */ +export function renderIcon(icon) { + return () => h(NIcon, null, { default: () => h(icon) }); +} +/** + * font 图标(Font class) + * */ +export function renderFontClassIcon(icon: string, iconName = 'iconfont') { + return () => h('span', { class: [iconName, icon] }); +} +/** + * font 图标(Unicode) + * */ +export function renderUnicodeIcon(icon: string, iconName = 'iconfont') { + return () => h('span', { class: [iconName], innerHTML: icon }); +} +/** + * font svg 图标 + * */ +export function renderfontsvg(icon) { + return () => + h(NIcon, null, { + default: () => + h('svg', { class: `icon`, 'aria-hidden': 'true' }, h('use', { 'xlink:href': `#${icon}` })), + }); +} + +/** + * render new Tag + * */ +const newTagColors = { color: '#f90', textColor: '#fff', borderColor: '#f90' }; +export function renderNew(type = 'warning', text = 'New', color: object = newTagColors) { + return () => + h( + NTag as any, + { + type, + round: true, + size: 'small', + color, + }, + { default: () => text } + ); +} + +/** + * 递归组装èœå•æ ¼å¼ + */ +export function generatorMenu(routerMap: Array) { + return filterRouter(routerMap).map((item) => { + const isRoot = isRootRouter(item); + const info = isRoot ? item.children[0] : item; + const currentMenu = { + ...info, + ...info.meta, + label: info.meta?.title, + key: info.name, + icon: isRoot ? item.meta?.icon : info.meta?.icon, + }; + // æ˜¯å¦æœ‰å­èœå•ï¼Œå¹¶é€’å½’å¤„ç† + if (info.children && info.children.length > 0) { + // Recursion + currentMenu.children = generatorMenu(info.children); + } + return currentMenu; + }); +} + +/** + * æ··åˆèœå• + * */ +export function generatorMenuMix(routerMap: Array, routerName: string, location: string) { + const cloneRouterMap = cloneDeep(routerMap); + const newRouter = filterRouter(cloneRouterMap); + if (location === 'header') { + const firstRouter: any[] = []; + newRouter.forEach((item) => { + const isRoot = isRootRouter(item); + const info = isRoot ? item.children[0] : item; + info.children = undefined; + const currentMenu = { + ...info, + ...info.meta, + label: info.meta?.title, + key: info.name, + }; + firstRouter.push(currentMenu); + }); + return firstRouter; + } else { + return getChildrenRouter(newRouter.filter((item) => item.name === routerName)); + } +} + +/** + * 递归组装å­èœå• + * */ +export function getChildrenRouter(routerMap: Array) { + return filterRouter(routerMap).map((item) => { + const isRoot = isRootRouter(item); + const info = isRoot ? item.children[0] : item; + const currentMenu = { + ...info, + ...info.meta, + label: info.meta?.title, + key: info.name, + }; + // æ˜¯å¦æœ‰å­èœå•ï¼Œå¹¶é€’å½’å¤„ç† + if (info.children && info.children.length > 0) { + // Recursion + currentMenu.children = getChildrenRouter(info.children); + } + return currentMenu; + }); +} + +/** + * 判断根路由 Router + * */ +export function isRootRouter(item) { + return ( + item.meta?.alwaysShow != true && + item?.children?.filter((item) => !Boolean(item?.meta?.hidden))?.length === 1 + ); +} + +/** + * 排除Router + * */ +export function filterRouter(routerMap: Array) { + return routerMap.filter((item) => { + return ( + (item.meta?.hidden || false) != true && + !['/:path(.*)*', '/', PageEnum.REDIRECT, PageEnum.BASE_LOGIN].includes(item.path) + ); + }); +} + +export const withInstall = (component: T, alias?: string) => { + const comp = component as any; + comp.install = (app: App) => { + app.component(comp.name || comp.displayName, component); + if (alias) { + app.config.globalProperties[alias] = component; + } + }; + return component as T & Plugin; +}; + +/** + * 找到对应的节点 + * */ +let result = null; +export function getTreeItem(data: any[], key?: string | number): any { + data.map((item) => { + if (item.key === key) { + result = item; + } else { + if (item.children && item.children.length) { + getTreeItem(item.children, key); + } + } + }); + return result; +} + +/** + * 找到所有节点 + * */ +const treeAll: any[] = []; +export function getTreeAll(data: any[]): any[] { + data.map((item) => { + treeAll.push(item.key); + if (item.children && item.children.length) { + getTreeAll(item.children); + } + }); + return treeAll; +} + +// dynamic use hook props +export function getDynamicProps(props: T): Partial { + const ret: Recordable = {}; + + Object.keys(props).map((key) => { + ret[key] = unref((props as Recordable)[key]); + }); + + return ret as Partial; +} + +export function deepMerge(src: any = {}, target: any = {}): T { + let key: string; + for (key in target) { + src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]); + } + return src; +} + +/** + * Sums the passed percentage to the R, G or B of a HEX color + * @param {string} color The color to change + * @param {number} amount The amount to change the color by + * @returns {string} The processed part of the color + */ +function addLight(color: string, amount: number) { + const cc = parseInt(color, 16) + amount; + const c = cc > 255 ? 255 : cc; + return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`; +} + +/** + * Lightens a 6 char HEX color according to the passed percentage + * @param {string} color The color to change + * @param {number} amount The amount to change the color by + * @returns {string} The processed color represented as HEX + */ +export function lighten(color: string, amount: number) { + color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color; + amount = Math.trunc((255 * amount) / 100); + return `#${addLight(color.substring(0, 2), amount)}${addLight( + color.substring(2, 4), + amount + )}${addLight(color.substring(4, 6), amount)}`; +} + +/** + * åˆ¤æ–­æ˜¯å¦ url + * */ +export function isUrl(url: string) { + return /^(http|https):\/\//g.test(url); +} diff --git a/src/utils/is/index.ts b/src/utils/is/index.ts new file mode 100644 index 00000000..74bd5767 --- /dev/null +++ b/src/utils/is/index.ts @@ -0,0 +1,118 @@ +const toString = Object.prototype.toString; + +/** + * @description: åˆ¤æ–­å€¼æ˜¯å¦æœªæŸä¸ªç±»åž‹ + */ +export function is(val: unknown, type: string) { + return toString.call(val) === `[object ${type}]`; +} + +/** + * @description: 是å¦ä¸ºå‡½æ•° + */ +export function isFunction(val: unknown): val is T { + return is(val, 'Function') || is(val, 'AsyncFunction'); +} + +/** + * @description: 是å¦å·²å®šä¹‰ + */ +export const isDef = (val?: T): val is T => { + return typeof val !== 'undefined'; +}; + +export const isUnDef = (val?: T): val is T => { + return !isDef(val); +}; +/** + * @description: 是å¦ä¸ºå¯¹è±¡ + */ +export const isObject = (val: any): val is Record => { + return val !== null && is(val, 'Object'); +}; + +/** + * @description: 是å¦ä¸ºæ—¶é—´ + */ +export function isDate(val: unknown): val is Date { + return is(val, 'Date'); +} + +/** + * @description: 是å¦ä¸ºæ•°å€¼ + */ +export function isNumber(val: unknown): val is number { + return is(val, 'Number'); +} + +/** + * @description: 是å¦ä¸ºAsyncFunction + */ +export function isAsyncFunction(val: unknown): val is () => Promise { + return is(val, 'AsyncFunction'); +} + +/** + * @description: 是å¦ä¸ºpromise + */ +export function isPromise(val: unknown): val is Promise { + return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch); +} + +/** + * @description: 是å¦ä¸ºå­—符串 + */ +export function isString(val: unknown): val is string { + return is(val, 'String'); +} + +/** + * @description: 是å¦ä¸ºboolean类型 + */ +export function isBoolean(val: unknown): val is boolean { + return is(val, 'Boolean'); +} + +/** + * @description: 是å¦ä¸ºæ•°ç»„ + */ +export function isArray(val: any): val is Array { + return val && Array.isArray(val); +} + +/** + * @description: 是å¦å®¢æˆ·ç«¯ + */ +export const isClient = () => { + return typeof window !== 'undefined'; +}; + +/** + * @description: 是å¦ä¸ºæµè§ˆå™¨ + */ +export const isWindow = (val: any): val is Window => { + return typeof window !== 'undefined' && is(val, 'Window'); +}; + +export const isElement = (val: unknown): val is Element => { + return isObject(val) && !!val.tagName; +}; + +export const isServer = typeof window === 'undefined'; + +// 是å¦ä¸ºå›¾ç‰‡èŠ‚ç‚¹ +export function isImageDom(o: Element) { + return o && ['IMAGE', 'IMG'].includes(o.tagName); +} + +export function isNull(val: unknown): val is null { + return val === null; +} + +export function isNullAndUnDef(val: unknown): val is null | undefined { + return isUnDef(val) && isNull(val); +} + +export function isNullOrUnDef(val: unknown): val is null | undefined { + return isUnDef(val) || isNull(val); +} diff --git a/src/utils/log.ts b/src/utils/log.ts new file mode 100644 index 00000000..8f798001 --- /dev/null +++ b/src/utils/log.ts @@ -0,0 +1,9 @@ +const projectName = import.meta.env.VITE_GLOB_APP_TITLE; + +export function warn(message: string) { + console.warn(`[${projectName} warn]:${message}`); +} + +export function error(message: string) { + throw new Error(`[${projectName} error]:${message}`); +} diff --git a/src/utils/propTypes.ts b/src/utils/propTypes.ts new file mode 100644 index 00000000..a61be724 --- /dev/null +++ b/src/utils/propTypes.ts @@ -0,0 +1,33 @@ +import { CSSProperties, VNodeChild } from 'vue'; +import { createTypes, VueTypeValidableDef, VueTypesInterface } from 'vue-types'; + +export type VueNode = VNodeChild | JSX.Element; + +type PropTypes = VueTypesInterface & { + readonly style: VueTypeValidableDef; + readonly VNodeChild: VueTypeValidableDef; +}; + +const propTypes = createTypes({ + func: undefined, + bool: undefined, + string: undefined, + number: undefined, + object: undefined, + integer: undefined, +}) as PropTypes; + +propTypes.extend([ + { + name: 'style', + getter: true, + type: [String, Object], + default: undefined, + }, + { + name: 'VNodeChild', + getter: true, + type: undefined, + }, +]); +export { propTypes }; diff --git a/src/views/groupnotice/columns.ts b/src/views/groupnotice/columns.ts new file mode 100644 index 00000000..5befbebe --- /dev/null +++ b/src/views/groupnotice/columns.ts @@ -0,0 +1,64 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; +import { BasicColumn } from '@/components/Table'; +export interface ListData { + id: string; + name: string; + avatar: string; + address: string; + beginTime: string; + endTime: string; + date: string; +} +export const columns: BasicColumn[] = [ + { + title: 'åºå·', + key: 'id', + width: 100, + }, + { + title: '所属应用', + key: 'name', + width: 100, + }, + { + title: '头åƒ', + key: 'avatar', + width: 100, + render(row) { + return h(NAvatar, { + size: 48, + src: row.avatar, + }); + }, + }, + { + title: '类型', + key: 'address', + auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + ifShow: (_column) => { + return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + }, + width: 150, + }, + { + title: '昵称/群åç§°', + key: 'beginTime', + width: 160, + }, + { + title: '好å‹ID/群ID', + key: 'endTime', + width: 160, + }, + { + title: '好å‹å¤‡æ³¨', + key: 'endTime', + width: 160, + }, + { + title: '创建时间', + key: 'date', + width: 100, + }, +]; \ No newline at end of file diff --git a/src/views/groupnotice/index.vue b/src/views/groupnotice/index.vue new file mode 100644 index 00000000..36341bfa --- /dev/null +++ b/src/views/groupnotice/index.vue @@ -0,0 +1,480 @@ + + + + + diff --git a/src/views/notice/columns.ts b/src/views/notice/columns.ts new file mode 100644 index 00000000..5befbebe --- /dev/null +++ b/src/views/notice/columns.ts @@ -0,0 +1,64 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; +import { BasicColumn } from '@/components/Table'; +export interface ListData { + id: string; + name: string; + avatar: string; + address: string; + beginTime: string; + endTime: string; + date: string; +} +export const columns: BasicColumn[] = [ + { + title: 'åºå·', + key: 'id', + width: 100, + }, + { + title: '所属应用', + key: 'name', + width: 100, + }, + { + title: '头åƒ', + key: 'avatar', + width: 100, + render(row) { + return h(NAvatar, { + size: 48, + src: row.avatar, + }); + }, + }, + { + title: '类型', + key: 'address', + auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + ifShow: (_column) => { + return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + }, + width: 150, + }, + { + title: '昵称/群åç§°', + key: 'beginTime', + width: 160, + }, + { + title: '好å‹ID/群ID', + key: 'endTime', + width: 160, + }, + { + title: '好å‹å¤‡æ³¨', + key: 'endTime', + width: 160, + }, + { + title: '创建时间', + key: 'date', + width: 100, + }, +]; \ No newline at end of file diff --git a/src/views/notice/index.vue b/src/views/notice/index.vue new file mode 100644 index 00000000..c827211b --- /dev/null +++ b/src/views/notice/index.vue @@ -0,0 +1,480 @@ + + + + + diff --git a/src/views/qa/CellColumns.ts b/src/views/qa/CellColumns.ts new file mode 100644 index 00000000..2a529e67 --- /dev/null +++ b/src/views/qa/CellColumns.ts @@ -0,0 +1,83 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; + +export const columns = [ + { + title: 'id', + key: 'id', + width: 100, + }, + { + title: 'ç¼–ç ', + key: 'no', + width: 100, + }, + { + title: 'åç§°', + key: 'name', + editComponent: 'NInput', + // 默认必填校验 + editRule: true, + edit: true, + width: 200, + }, + { + title: '头åƒ', + key: 'avatar', + width: 100, + render(row) { + return h(NAvatar, { + size: 48, + src: row.avatar, + }); + }, + }, + { + title: '地å€', + key: 'address', + editComponent: 'NSelect', + editComponentProps: { + options: [ + { + label: '广东çœ', + value: 1, + }, + { + label: '浙江çœ', + value: 2, + }, + ], + }, + edit: true, + width: 200, + ellipsis: false, + }, + { + title: '开始日期', + key: 'beginTime', + edit: true, + width: 160, + editComponent: 'NDatePicker', + editComponentProps: { + type: 'datetime', + format: 'yyyy-MM-dd HH:mm:ss', + valueFormat: 'yyyy-MM-dd HH:mm:ss', + }, + ellipsis: false, + }, + { + title: 'ç»“æŸæ—¥æœŸ', + key: 'endTime', + width: 160, + }, + { + title: '创建时间', + key: 'date', + width: 160, + }, + { + title: 'åœç•™æ—¶é—´', + key: 'time', + width: 80, + }, +]; diff --git a/src/views/qa/basic.vue b/src/views/qa/basic.vue new file mode 100644 index 00000000..64bebaf4 --- /dev/null +++ b/src/views/qa/basic.vue @@ -0,0 +1,241 @@ + + + + + diff --git a/src/views/qa/basicColumns.ts b/src/views/qa/basicColumns.ts new file mode 100644 index 00000000..d927dacc --- /dev/null +++ b/src/views/qa/basicColumns.ts @@ -0,0 +1,72 @@ +import { h } from 'vue'; +import { NAvatar, NTag } from 'naive-ui'; + +export const columns = [ + { + title: 'id', + key: 'id', + width: 100, + }, + { + title: 'ç¼–ç ', + key: 'no', + width: 100, + }, + { + title: 'åç§°', + key: 'name', + width: 100, + }, + { + title: '头åƒ', + key: 'avatar', + width: 100, + render(row) { + return h(NAvatar, { + size: 48, + src: row.avatar, + }); + }, + }, + { + title: '地å€', + key: 'address', + width: 150, + }, + { + title: '开始日期', + key: 'beginTime', + width: 160, + }, + { + title: 'ç»“æŸæ—¥æœŸ', + key: 'endTime', + width: 160, + }, + { + title: '状æ€', + key: 'status', + width: 100, + render(row) { + return h( + NTag, + { + type: row.status ? 'success' : 'error', + }, + { + default: () => (row.status ? 'å¯ç”¨' : 'ç¦ç”¨'), + } + ); + }, + }, + { + title: '创建时间', + key: 'date', + width: 160, + }, + { + title: 'åœç•™æ—¶é—´', + key: 'time', + width: 80, + }, +]; diff --git a/src/views/qa/columns.ts b/src/views/qa/columns.ts new file mode 100644 index 00000000..34ab9c98 --- /dev/null +++ b/src/views/qa/columns.ts @@ -0,0 +1,59 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; +import { BasicColumn } from '@/components/Table'; +export interface ListData { + id: string; + name: string; + avatar: string; + address: string; + beginTime: string; + endTime: string; + date: string; +} +export const columns: BasicColumn[] = [ + { + title: 'id', + key: 'id', + width: 100, + }, + { + title: 'åç§°', + key: 'name', + width: 100, + }, + { + title: '头åƒ', + key: 'avatar', + width: 100, + render(row) { + return h(NAvatar, { + size: 48, + src: row.avatar, + }); + }, + }, + { + title: '地å€', + key: 'address', + auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + ifShow: (_column) => { + return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + }, + width: 150, + }, + { + title: '开始日期', + key: 'beginTime', + width: 160, + }, + { + title: 'ç»“æŸæ—¥æœŸ', + key: 'endTime', + width: 160, + }, + { + title: '创建时间', + key: 'date', + width: 100, + }, +]; \ No newline at end of file diff --git a/src/views/qa/editCell.vue b/src/views/qa/editCell.vue new file mode 100644 index 00000000..18fb5656 --- /dev/null +++ b/src/views/qa/editCell.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/views/qa/editRow.vue b/src/views/qa/editRow.vue new file mode 100644 index 00000000..8adab09a --- /dev/null +++ b/src/views/qa/editRow.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/src/views/qa/index.vue b/src/views/qa/index.vue new file mode 100644 index 00000000..66187deb --- /dev/null +++ b/src/views/qa/index.vue @@ -0,0 +1,481 @@ + + + + + + \ No newline at end of file diff --git a/src/views/statistic/binding.vue b/src/views/statistic/binding.vue new file mode 100644 index 00000000..61cbe4de --- /dev/null +++ b/src/views/statistic/binding.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/views/statistic/columns.ts b/src/views/statistic/columns.ts new file mode 100644 index 00000000..34ab9c98 --- /dev/null +++ b/src/views/statistic/columns.ts @@ -0,0 +1,59 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; +import { BasicColumn } from '@/components/Table'; +export interface ListData { + id: string; + name: string; + avatar: string; + address: string; + beginTime: string; + endTime: string; + date: string; +} +export const columns: BasicColumn[] = [ + { + title: 'id', + key: 'id', + width: 100, + }, + { + title: 'åç§°', + key: 'name', + width: 100, + }, + { + title: '头åƒ', + key: 'avatar', + width: 100, + render(row) { + return h(NAvatar, { + size: 48, + src: row.avatar, + }); + }, + }, + { + title: '地å€', + key: 'address', + auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + ifShow: (_column) => { + return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + }, + width: 150, + }, + { + title: '开始日期', + key: 'beginTime', + width: 160, + }, + { + title: 'ç»“æŸæ—¥æœŸ', + key: 'endTime', + width: 160, + }, + { + title: '创建时间', + key: 'date', + width: 100, + }, +]; \ No newline at end of file diff --git a/src/views/statistic/config.vue b/src/views/statistic/config.vue new file mode 100644 index 00000000..aecdbd63 --- /dev/null +++ b/src/views/statistic/config.vue @@ -0,0 +1,482 @@ + + + + + diff --git a/src/views/statistic/detail.vue b/src/views/statistic/detail.vue new file mode 100644 index 00000000..16ab7e9e --- /dev/null +++ b/src/views/statistic/detail.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/src/views/statistic/layout.vue b/src/views/statistic/layout.vue new file mode 100644 index 00000000..122506b0 --- /dev/null +++ b/src/views/statistic/layout.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/views/statistic/notification.vue b/src/views/statistic/notification.vue new file mode 100644 index 00000000..8494eb64 --- /dev/null +++ b/src/views/statistic/notification.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/views/statistic/order.vue b/src/views/statistic/order.vue new file mode 100644 index 00000000..b97457f3 --- /dev/null +++ b/src/views/statistic/order.vue @@ -0,0 +1,481 @@ + + + + + + \ No newline at end of file diff --git a/src/views/statistic/personalize.vue b/src/views/statistic/personalize.vue new file mode 100644 index 00000000..5e26dde2 --- /dev/null +++ b/src/views/statistic/personalize.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/views/statistic/security.vue b/src/views/statistic/security.vue new file mode 100644 index 00000000..31f58fc4 --- /dev/null +++ b/src/views/statistic/security.vue @@ -0,0 +1,68 @@ + + + + diff --git a/src/views/statistic/statistic.vue b/src/views/statistic/statistic.vue new file mode 100644 index 00000000..08fb8cf2 --- /dev/null +++ b/src/views/statistic/statistic.vue @@ -0,0 +1,481 @@ + + + + + + \ No newline at end of file diff --git a/src/views/whitelist/binding.vue b/src/views/whitelist/binding.vue new file mode 100644 index 00000000..61cbe4de --- /dev/null +++ b/src/views/whitelist/binding.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/views/whitelist/black.vue b/src/views/whitelist/black.vue new file mode 100644 index 00000000..b8d45603 --- /dev/null +++ b/src/views/whitelist/black.vue @@ -0,0 +1,481 @@ + + + + + + \ No newline at end of file diff --git a/src/views/whitelist/columns.ts b/src/views/whitelist/columns.ts new file mode 100644 index 00000000..34ab9c98 --- /dev/null +++ b/src/views/whitelist/columns.ts @@ -0,0 +1,59 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; +import { BasicColumn } from '@/components/Table'; +export interface ListData { + id: string; + name: string; + avatar: string; + address: string; + beginTime: string; + endTime: string; + date: string; +} +export const columns: BasicColumn[] = [ + { + title: 'id', + key: 'id', + width: 100, + }, + { + title: 'åç§°', + key: 'name', + width: 100, + }, + { + title: '头åƒ', + key: 'avatar', + width: 100, + render(row) { + return h(NAvatar, { + size: 48, + src: row.avatar, + }); + }, + }, + { + title: '地å€', + key: 'address', + auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + ifShow: (_column) => { + return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º + }, + width: 150, + }, + { + title: '开始日期', + key: 'beginTime', + width: 160, + }, + { + title: 'ç»“æŸæ—¥æœŸ', + key: 'endTime', + width: 160, + }, + { + title: '创建时间', + key: 'date', + width: 100, + }, +]; \ No newline at end of file diff --git a/src/views/whitelist/config.vue b/src/views/whitelist/config.vue new file mode 100644 index 00000000..aecdbd63 --- /dev/null +++ b/src/views/whitelist/config.vue @@ -0,0 +1,482 @@ + + + + + diff --git a/src/views/whitelist/detail.vue b/src/views/whitelist/detail.vue new file mode 100644 index 00000000..16ab7e9e --- /dev/null +++ b/src/views/whitelist/detail.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/src/views/whitelist/layout.vue b/src/views/whitelist/layout.vue new file mode 100644 index 00000000..25031ab4 --- /dev/null +++ b/src/views/whitelist/layout.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/views/whitelist/notification.vue b/src/views/whitelist/notification.vue new file mode 100644 index 00000000..8494eb64 --- /dev/null +++ b/src/views/whitelist/notification.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/views/whitelist/personalize.vue b/src/views/whitelist/personalize.vue new file mode 100644 index 00000000..5e26dde2 --- /dev/null +++ b/src/views/whitelist/personalize.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/src/views/whitelist/security.vue b/src/views/whitelist/security.vue new file mode 100644 index 00000000..31f58fc4 --- /dev/null +++ b/src/views/whitelist/security.vue @@ -0,0 +1,68 @@ + + + + diff --git a/src/views/whitelist/white.vue b/src/views/whitelist/white.vue new file mode 100644 index 00000000..2673f5be --- /dev/null +++ b/src/views/whitelist/white.vue @@ -0,0 +1,481 @@ + + + + + + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c40fad37..00122b30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -746,6 +746,11 @@ dependencies: vue "*" +"@types/web-bluetooth@^0.0.20": + version "0.0.20" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" + integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" @@ -865,6 +870,11 @@ resolved "https://registry.npmmirror.com/@vant/use/-/use-1.3.6.tgz" integrity sha512-3z+nywPaV2F5BdJO7RQxWlgfzJeEOmViD2yHMb7Tg+R4NR/7iQskqW8v2Cnv9FWSJgTOSHlcr7UzeLpiTAP4HA== +"@vicons/antd@^0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@vicons/antd/-/antd-0.12.0.tgz" + integrity sha512-C0p6aO1EmGG1QHrqgUWQS1No20934OdWSRQshM5NIDK5H1On6tC26U0hT6Rmp40KfUsvhvX5YW8BoWJdNFifPg== + "@vitejs/plugin-vue-jsx@^3.0.2": version "3.1.0" resolved "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz" @@ -1088,6 +1098,28 @@ quill "^1.3.7" quill-delta "^4.2.2" +"@vueuse/core@^10.6.1": + version "10.6.1" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.6.1.tgz" + integrity sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q== + dependencies: + "@types/web-bluetooth" "^0.0.20" + "@vueuse/metadata" "10.6.1" + "@vueuse/shared" "10.6.1" + vue-demi ">=0.14.6" + +"@vueuse/metadata@10.6.1": + version "10.6.1" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.6.1.tgz" + integrity sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw== + +"@vueuse/shared@10.6.1": + version "10.6.1" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.6.1.tgz" + integrity sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q== + dependencies: + vue-demi ">=0.14.6" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz" @@ -4001,6 +4033,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-regex@^1.0.4: version "1.1.4" resolved "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz" @@ -6424,6 +6461,11 @@ vue-demi@>=0.14.5: resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz" integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== +vue-demi@>=0.14.6: + version "0.14.6" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz" + integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== + vue-eslint-parser@^9.3.1: version "9.3.2" resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz" @@ -6471,6 +6513,13 @@ vue-tsc@^1.8.19: "@vue/language-core" "1.8.22" semver "^7.5.4" +vue-types@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/vue-types/-/vue-types-5.1.1.tgz" + integrity sha512-FMY/JCLWePXgGIcMDqYdJsQm1G0CDxEjq6W0+tZMJZlX37q/61eSGSIa/XFRwa9T7kkKXuxxl94/2kgxyWQqKw== + dependencies: + is-plain-object "5.0.0" + vue-virtual-scroll-list@^2.3.5: version "2.3.5" resolved "https://registry.npmmirror.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-2.3.5.tgz" @@ -6485,7 +6534,7 @@ vue-virtual-scroller@^2.0.0-beta.8: vue-observe-visibility "^2.0.0-alpha.1" vue-resize "^2.0.0-alpha.1" -vue@*, "vue@^2.6.14 || ^3.3.0", vue@^3, vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.11, vue@^3.2.0, vue@^3.2.25, vue@^3.2.41, vue@^3.3.8, vue@3.3.9, vue@3.x: +vue@*, "vue@^2.0.0 || ^3.0.0", "vue@^2.6.14 || ^3.3.0", vue@^3, vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.11, vue@^3.2.0, vue@^3.2.25, vue@^3.2.41, vue@^3.3.8, vue@3.3.9, vue@3.x: version "3.3.9" resolved "https://registry.npmjs.org/vue/-/vue-3.3.9.tgz" integrity sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w== From 173c5a906a30f2d5f0cb50eb624c736d64ce1e70 Mon Sep 17 00:00:00 2001 From: atorber Date: Mon, 4 Dec 2023 01:04:51 +0800 Subject: [PATCH 26/67] 0.5.0 --- .env | 4 +- src/api/keyword.ts | 6 + src/api/notice.ts | 6 + src/api/order.ts | 6 + src/api/qa.ts | 6 + src/api/statistic.ts | 6 + src/layout/component/Menu.vue | 6 + src/router/index.js | 6 + src/views/keyword/columns.ts | 37 ++ src/views/keyword/index.vue | 354 +++++++++++++ src/views/notice/columns.ts | 70 +-- src/views/notice/index.vue | 140 +---- src/views/qa/columns.ts | 76 +-- src/views/qa/index.vue | 791 ++++++++++++---------------- src/views/statistic/columns.ts | 99 ++-- src/views/statistic/columnsOrder.ts | 70 +++ src/views/statistic/order.vue | 791 ++++++++++++---------------- src/views/statistic/statistic.vue | 791 ++++++++++++---------------- 18 files changed, 1641 insertions(+), 1624 deletions(-) create mode 100644 src/api/keyword.ts create mode 100644 src/api/notice.ts create mode 100644 src/api/order.ts create mode 100644 src/api/qa.ts create mode 100644 src/api/statistic.ts create mode 100644 src/views/keyword/columns.ts create mode 100644 src/views/keyword/index.vue create mode 100644 src/views/statistic/columnsOrder.ts diff --git a/.env b/.env index ba9196a0..5c945864 100755 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ ENV = 'development' VITE_BASE=/ VUE_APP_PREVIEW=false -VITE_BASE_API=https://chat.vlist.cc -# VITE_BASE_API=http://127.0.0.1:9503 +# VITE_BASE_API=https://chat.vlist.cc +VITE_BASE_API=http://127.0.0.1:9503 VITE_SOCKET_API=wss://broker.emqx.io:8084 VUE_APP_WEBSITE_NAME="ChatFlow" \ No newline at end of file diff --git a/src/api/keyword.ts b/src/api/keyword.ts new file mode 100644 index 00000000..586dbea3 --- /dev/null +++ b/src/api/keyword.ts @@ -0,0 +1,6 @@ +import { get } from '@/utils/request' + +// 获å–好å‹åˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetKeywords = (data) => { + return get('/api/v1/keyword/list', data) +} \ No newline at end of file diff --git a/src/api/notice.ts b/src/api/notice.ts new file mode 100644 index 00000000..b6a9d947 --- /dev/null +++ b/src/api/notice.ts @@ -0,0 +1,6 @@ +import { get } from '@/utils/request' + +// 获å–好å‹åˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetNotices = (data) => { + return get('/api/v1/notice/list', data) +} \ No newline at end of file diff --git a/src/api/order.ts b/src/api/order.ts new file mode 100644 index 00000000..1ebc52da --- /dev/null +++ b/src/api/order.ts @@ -0,0 +1,6 @@ +import { get } from '@/utils/request' + +// 获å–好å‹åˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetOrders = (data) => { + return get('/api/v1/order/list', data) +} \ No newline at end of file diff --git a/src/api/qa.ts b/src/api/qa.ts new file mode 100644 index 00000000..bc0c3c90 --- /dev/null +++ b/src/api/qa.ts @@ -0,0 +1,6 @@ +import { get } from '@/utils/request' + +// 获å–好å‹åˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetQas = (data) => { + return get('/api/v1/qa/list', data) +} \ No newline at end of file diff --git a/src/api/statistic.ts b/src/api/statistic.ts new file mode 100644 index 00000000..f643f9ec --- /dev/null +++ b/src/api/statistic.ts @@ -0,0 +1,6 @@ +import { get } from '@/utils/request' + +// 获å–好å‹åˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetStatistics = (data) => { + return get('/api/v1/statistic/list', data) +} \ No newline at end of file diff --git a/src/layout/component/Menu.vue b/src/layout/component/Menu.vue index a67d2f19..0ffe23e7 100644 --- a/src/layout/component/Menu.vue +++ b/src/layout/component/Menu.vue @@ -16,6 +16,7 @@ import { ThinkingProblem, WrongUser, Mark, + KeyboardOne } from '@icon-park/vue-next' defineProps({ @@ -87,6 +88,11 @@ const menus = reactive([ link: '/settings', icon: markRaw(SettingTwo), title: '设置' + }, + { + link: '/keyword', + icon: markRaw(KeyboardOne), + title: '关键è¯' } ]) diff --git a/src/router/index.js b/src/router/index.js index 8b7b2382..b4190a92 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -46,6 +46,12 @@ const routes = [ meta: { auth: true }, component: () => import('@/views/qa/index.vue') }, + { + path: '/keyword', + name: 'keyword', + meta: { auth: true }, + component: () => import('@/views/keyword/index.vue') + }, { path: '/example', name: 'example', diff --git a/src/views/keyword/columns.ts b/src/views/keyword/columns.ts new file mode 100644 index 00000000..9d8b302e --- /dev/null +++ b/src/views/keyword/columns.ts @@ -0,0 +1,37 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; +import { BasicColumn } from '@/components/Table'; +export interface ListData { + name?: string; // 定义å字属性,å¯é€‰ + desc?: string; + type?: string; + details?: number; + recordId?: string; +} +export const columns: BasicColumn[] = [ + { + title: 'åºå·', + key: 'recordId', + width: 150, + }, + { + title: '类型', + key: 'type', + width: 200, + }, + { + title: '关键è¯', + key: 'name', + width: 200, + }, + { + title: '说明', + key: 'desc', + width: 200, + }, + { + title: '详细说明', + key: 'details', + width: 200, + } +]; \ No newline at end of file diff --git a/src/views/keyword/index.vue b/src/views/keyword/index.vue new file mode 100644 index 00000000..48298697 --- /dev/null +++ b/src/views/keyword/index.vue @@ -0,0 +1,354 @@ + + + + + diff --git a/src/views/notice/columns.ts b/src/views/notice/columns.ts index 5befbebe..a3656cca 100644 --- a/src/views/notice/columns.ts +++ b/src/views/notice/columns.ts @@ -2,63 +2,47 @@ import { h } from 'vue'; import { NAvatar } from 'naive-ui'; import { BasicColumn } from '@/components/Table'; export interface ListData { - id: string; - name: string; - avatar: string; - address: string; - beginTime: string; - endTime: string; - date: string; + desc: string + time: number + cycle: string + state: string + syncStatus: string + lastOperationTime: number + action: string + recordId: string } export const columns: BasicColumn[] = [ { title: 'åºå·', - key: 'id', - width: 100, + key: 'recordId', + width: 150, }, { - title: '所属应用', - key: 'name', - width: 100, + title: '内容', + key: 'desc', + width: 300, }, { - title: '头åƒ', - key: 'avatar', + title: '周期', + key: 'cycle', width: 100, - render(row) { - return h(NAvatar, { - size: 48, - src: row.avatar, - }); - }, }, { - title: '类型', - key: 'address', - auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º - ifShow: (_column) => { - return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º - }, - width: 150, - }, - { - title: '昵称/群åç§°', - key: 'beginTime', - width: 160, + title: '状æ€', + key: 'state', + width: 100, }, { - title: '好å‹ID/群ID', - key: 'endTime', - width: 160, + title: 'åŒæ­¥çжæ€', + key: 'syncStatus', + width: 100, }, { - title: '好å‹å¤‡æ³¨', - key: 'endTime', + title: 'æ›´æ–°æ—¶é—´', + key: 'lastOperationTime', width: 160, - }, - { - title: '创建时间', - key: 'date', - width: 100, - }, + render(row) { + return new Date(row.lastOperationTime as number).toLocaleString(); + }, + } ]; \ No newline at end of file diff --git a/src/views/notice/index.vue b/src/views/notice/index.vue index c827211b..df183b38 100644 --- a/src/views/notice/index.vue +++ b/src/views/notice/index.vue @@ -66,7 +66,8 @@ import { h, reactive, ref } from 'vue' import { BasicTable, TableAction } from '@/components/Table' import { BasicForm, FormSchema, useForm } from '@/components/Form/index' -import { getTableList } from '@/api/table/list' +import { ServeGetNotices } from '@/api/notice' + import { columns, ListData } from './columns' import { PlusOutlined } from '@vicons/antd' import { useRouter } from 'vue-router' @@ -281,7 +282,7 @@ const actionColumn = reactive({ } }) -const [register] = useForm({ +const [register, { getFieldsValue }] = useForm({ gridProps: { cols: '1 s:1 m:2 l:3 xl:4 2xl:4' }, labelWidth: 80, schemas @@ -291,137 +292,10 @@ function addTable() { showModal.value = true } -const loadDataTable = async (_res) => { - // return await getTableList({ ...getFieldsValue(), ...res }); - - return { - "page":1, - "pageSize":10, - "pageCount":60, - "itemCount":600, - "list":[ - { - "id":853349, - "beginTime":"2002-04-11 21:59:56", - "endTime":"1988-01-11 03:49:19", - "address":"廊åŠå¸‚", - "name":"金丽", - "avatar":"http://dummyimage.com/400x400/79ccf2/f0f279&text=Susan", - "date":"1994-06-08", - "time":"00:11", - "no":4176237, - "status":true - }, - { - "id":158023, - "beginTime":"2008-05-26 19:27:55", - "endTime":"2002-11-12 09:35:37", - "address":"汉中市", - "name":"林军", - "avatar":"http://dummyimage.com/400x400/d079f2/79f2ad&text=Sandra", - "date":"2014-03-19", - "time":"05:39", - "no":7337022, - "status":false - }, - { - "id":260065, - "beginTime":"2009-09-12 12:48:17", - "endTime":"1976-07-08 05:04:47", - "address":"毕节市", - "name":"锺æ•", - "avatar":"http://dummyimage.com/400x400/f28a79/798bf2&text=Daniel", - "date":"2010-06-23", - "time":"04:43", - "no":8146502, - "status":true - }, - { - "id":283066, - "beginTime":"1972-10-24 13:39:56", - "endTime":"2004-04-03 14:10:38", - "address":"海外", - "name":"范é™", - "avatar":"http://dummyimage.com/400x400/aef279/f279d1&text=Donna", - "date":"1993-09-13", - "time":"12:48", - "no":2482337, - "status":true - }, - { - "id":28263, - "beginTime":"2012-11-27 13:42:26", - "endTime":"2022-09-14 17:22:19", - "address":"鹤å£å¸‚", - "name":"å¤ä¸½", - "avatar":"http://dummyimage.com/400x400/79f2ef/f2cb79&text=Deborah", - "date":"2017-12-03", - "time":"09:25", - "no":5821656, - "status":false - }, - { - "id":108505, - "beginTime":"1980-03-12 17:35:16", - "endTime":"1975-06-05 00:54:32", - "address":"湖州市", - "name":"田娜", - "avatar":"http://dummyimage.com/400x400/a879f2/79f285&text=Donna", - "date":"1985-03-22", - "time":"07:05", - "no":1963024, - "status":true - }, - { - "id":985346, - "beginTime":"1996-07-16 19:59:46", - "endTime":"2018-07-21 16:30:39", - "address":"ç»å…´å¸‚", - "name":"è‹å¨œ", - "avatar":"http://dummyimage.com/400x400/f27990/79b3f2&text=Kenneth", - "date":"2021-12-20", - "time":"15:08", - "no":609904, - "status":false - }, - { - "id":635879, - "beginTime":"2007-11-04 20:06:20", - "endTime":"1982-03-22 21:48:44", - "address":"临沧市", - "name":"岿•", - "avatar":"http://dummyimage.com/400x400/d7f279/ea79f2&text=Kevin", - "date":"2013-06-26", - "time":"09:50", - "no":1549986, - "status":true - }, - { - "id":240535, - "beginTime":"1974-08-21 11:30:25", - "endTime":"1995-07-16 20:36:19", - "address":"è†é—¨å¸‚", - "name":"孟艳", - "avatar":"http://dummyimage.com/400x400/79f2c6/f2a379&text=Kenneth", - "date":"1976-03-07", - "time":"08:40", - "no":9542516, - "status":true - }, - { - "id":122280, - "beginTime":"1985-10-24 12:42:23", - "endTime":"2010-05-11 03:14:18", - "address":"离岛", - "name":"陈秀英", - "avatar":"http://dummyimage.com/400x400/7f79f2/95f279&text=Frank", - "date":"1996-12-05", - "time":"04:42", - "no":9664492, - "status":true - } - ] -} +const loadDataTable = async (res) => { + const { data } = await ServeGetNotices({ ...getFieldsValue(), ...res }); + console.log('data', JSON.stringify(data)) + return data } function onCheckedRow(rowKeys) { diff --git a/src/views/qa/columns.ts b/src/views/qa/columns.ts index 34ab9c98..4bf9ba8b 100644 --- a/src/views/qa/columns.ts +++ b/src/views/qa/columns.ts @@ -2,58 +2,64 @@ import { h } from 'vue'; import { NAvatar } from 'naive-ui'; import { BasicColumn } from '@/components/Table'; export interface ListData { - id: string; - name: string; - avatar: string; - address: string; - beginTime: string; - endTime: string; - date: string; + skillname?: string; // 定义å字属性,å¯é€‰ + title?: string; + question1?: string; + question2?: number; + answer?: string; + state?: string; + syncStatus?: string; + lastOperationTime: string; + action?: string; + recordId?: string; } export const columns: BasicColumn[] = [ { - title: 'id', - key: 'id', - width: 100, + title: 'åºå·', + key: 'recordId', + width: 150, }, { - title: 'åç§°', - key: 'name', + title: '分类', + key: 'skillname', width: 100, }, { - title: '头åƒ', - key: 'avatar', - width: 100, - render(row) { - return h(NAvatar, { - size: 48, - src: row.avatar, - }); - }, + title: '标准问题', + key: 'title', + width: 200, }, { - title: '地å€', - key: 'address', - auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º - ifShow: (_column) => { - return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º - }, - width: 150, + title: '相似问题1', + key: 'question1', + width: 200, }, { - title: '开始日期', - key: 'beginTime', - width: 160, + title: '相似问题2', + key: 'question2', + width: 200, }, { - title: 'ç»“æŸæ—¥æœŸ', - key: 'endTime', + title: '回答内容', + key: 'answer', width: 160, }, { - title: '创建时间', - key: 'date', + title: '状æ€', + key: 'state', width: 100, }, + { + title: 'åŒæ­¥çжæ€', + key: 'syncStatus', + width: 100, + }, + { + title: 'æ›´æ–°æ—¶é—´', + key: 'lastOperationTime', + width: 160, + render(row) { + return new Date(row.lastOperationTime).toLocaleString(); + }, + } ]; \ No newline at end of file diff --git a/src/views/qa/index.vue b/src/views/qa/index.vue index 66187deb..89d3b77d 100644 --- a/src/views/qa/index.vue +++ b/src/views/qa/index.vue @@ -1,481 +1,354 @@ - - - - - \ No newline at end of file +}) + +const [register, { getFieldsValue }] = useForm({ + gridProps: { cols: '1 s:1 m:2 l:3 xl:4 2xl:4' }, + labelWidth: 80, + schemas +}) + +function addTable() { + showModal.value = true +} + +const loadDataTable = async (res) => { + const { data } = await ServeGetQas({ ...getFieldsValue(), ...res }); + console.log('data', JSON.stringify(data)) + return data +} + +function onCheckedRow(rowKeys) { + console.log(rowKeys) +} + +function reloadTable() { + actionRef.value.reload() +} + +function confirmForm(e) { + e.preventDefault() + formBtnLoading.value = true + formRef.value.validate((errors) => { + if (!errors) { + window['$message'].success('新建æˆåŠŸ') + setTimeout(() => { + showModal.value = false + reloadTable() + }) + } else { + window['$message'].error('请填写完整信æ¯') + } + formBtnLoading.value = false + }) +} + +function handleEdit(record: Recordable) { + console.log('点击了编辑', record) + router.push({ name: 'basic-info', params: { id: record.id } }) +} + +function handleDelete(record: Recordable) { + console.log('点击了删除', record) + window['$message'].info('点击了删除') +} + +function handleSubmit(values: Recordable) { + console.log(values) + reloadTable() +} + +function handleReset(values: Recordable) { + console.log(values) +} + + + diff --git a/src/views/statistic/columns.ts b/src/views/statistic/columns.ts index 34ab9c98..9ebafcd9 100644 --- a/src/views/statistic/columns.ts +++ b/src/views/statistic/columns.ts @@ -2,58 +2,89 @@ import { h } from 'vue'; import { NAvatar } from 'naive-ui'; import { BasicColumn } from '@/components/Table'; export interface ListData { - id: string; - name: string; - avatar: string; - address: string; - beginTime: string; - endTime: string; - date: string; + _id?: string; // 定义å字属性,å¯é€‰ + type?: string; + startTime: number; + duration?: number; + maximum?: number; + cycle?: number; + topic?: string; + roomid?: string; + state?: string; + syncStatus?: string; + lastOperationTime: string; + action?: string; } export const columns: BasicColumn[] = [ { - title: 'id', - key: 'id', - width: 100, + title: 'åºå·', + key: 'recordId', + width: 150, }, { - title: 'åç§°', - key: 'name', - width: 100, + title: 'ç¼–å·', + key: '_id', + width: 50, }, { - title: '头åƒ', - key: 'avatar', + title: '类型', + key: 'type', width: 100, + }, + { + title: 'æè¿°', + key: 'desc', + width: 200, + }, + { + title: '开始时间', + key: 'startTime', + width: 160, render(row) { - return h(NAvatar, { - size: 48, - src: row.avatar, - }); + return new Date(row.startTime || 0).toLocaleString(); }, }, { - title: '地å€', - key: 'address', - auth: ['basic_list'], // åŒæ—¶æ ¹æ®æƒé™æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º - ifShow: (_column) => { - return true; // æ ¹æ®ä¸šåŠ¡æŽ§åˆ¶æ˜¯å¦æ˜¾ç¤º - }, - width: 150, + title: 'æ—¶é•¿', + key: 'duration', + width: 100, }, { - title: '开始日期', - key: 'beginTime', - width: 160, + title: 'é™åˆ¶äººæ•°', + key: 'maximum', + width: 100, }, { - title: 'ç»“æŸæ—¥æœŸ', - key: 'endTime', - width: 160, + title: '周期', + key: 'cycle', + width: 100, + }, + { + title: 'å…³è”群åç§°', + key: 'topic', + width: 100, + }, + { + title: 'å…³è”群ID', + key: 'roomid', + width: 100, }, { - title: '创建时间', - key: 'date', + title: '状æ€', + key: 'active', width: 100, }, + { + title: 'åŒæ­¥çжæ€', + key: 'syncStatus', + width: 100, + }, + { + title: 'æ›´æ–°æ—¶é—´', + key: 'lastOperationTime', + width: 160, + render(row) { + return new Date(row.lastOperationTime).toLocaleString(); + }, + } ]; \ No newline at end of file diff --git a/src/views/statistic/columnsOrder.ts b/src/views/statistic/columnsOrder.ts new file mode 100644 index 00000000..6a17f7e6 --- /dev/null +++ b/src/views/statistic/columnsOrder.ts @@ -0,0 +1,70 @@ +import { h } from 'vue'; +import { NAvatar } from 'naive-ui'; +import { BasicColumn } from '@/components/Table'; +export interface ListData { + serialNumber: string; // 定义å字属性,å¯é€‰ + code: string; + desc: string; + name: string; + alias: string; + wxid: string; + topic: string; + createdAt: string; + info: string; + recordId: string; +} +export const columns: BasicColumn[] = [ + { + title: 'åºå·', + key: 'recordId', + width: 150, + }, + { + title: 'æµæ°´å·', + key: 'serialNumber', + width: 100, + }, + { + title: '活动编å·', + key: 'type', + width: 100, + }, + { + title: 'æè¿°', + key: 'desc', + width: 200, + }, + { + title: '昵称', + key: 'name', + width: 150, + }, + { + title: '备注åç§°', + key: 'alias', + width: 100, + }, + { + title: '微信ID', + key: 'wxid', + width: 100, + }, + { + title: '群åç§°', + key: 'topic', + width: 100, + }, + { + title: '备注信æ¯', + key: 'info', + width: 100, + }, + { + title: '创建时间', + key: 'createdAt', + width: 160, + render(row) { + return new Date(row.createdAt).toLocaleString(); + }, + } +]; \ No newline at end of file diff --git a/src/views/statistic/order.vue b/src/views/statistic/order.vue index b97457f3..c3ab9c9c 100644 --- a/src/views/statistic/order.vue +++ b/src/views/statistic/order.vue @@ -1,481 +1,354 @@ - - - - - \ No newline at end of file +}) + +const [register, { getFieldsValue }] = useForm({ + gridProps: { cols: '1 s:1 m:2 l:3 xl:4 2xl:4' }, + labelWidth: 80, + schemas +}) + +function addTable() { + showModal.value = true +} + +const loadDataTable = async (res) => { + const { data } = await ServeGetOrders({ ...getFieldsValue(), ...res }); + console.log('data', JSON.stringify(data)) + return data +} + +function onCheckedRow(rowKeys) { + console.log(rowKeys) +} + +function reloadTable() { + actionRef.value.reload() +} + +function confirmForm(e) { + e.preventDefault() + formBtnLoading.value = true + formRef.value.validate((errors) => { + if (!errors) { + window['$message'].success('新建æˆåŠŸ') + setTimeout(() => { + showModal.value = false + reloadTable() + }) + } else { + window['$message'].error('请填写完整信æ¯') + } + formBtnLoading.value = false + }) +} + +function handleEdit(record: Recordable) { + console.log('点击了编辑', record) + router.push({ name: 'basic-info', params: { id: record.id } }) +} + +function handleDelete(record: Recordable) { + console.log('点击了删除', record) + window['$message'].info('点击了删除') +} + +function handleSubmit(values: Recordable) { + console.log(values) + reloadTable() +} + +function handleReset(values: Recordable) { + console.log(values) +} + + + diff --git a/src/views/statistic/statistic.vue b/src/views/statistic/statistic.vue index 08fb8cf2..cb5358dd 100644 --- a/src/views/statistic/statistic.vue +++ b/src/views/statistic/statistic.vue @@ -1,481 +1,354 @@ - - - - - \ No newline at end of file +}) + +const [register, { getFieldsValue }] = useForm({ + gridProps: { cols: '1 s:1 m:2 l:3 xl:4 2xl:4' }, + labelWidth: 80, + schemas +}) + +function addTable() { + showModal.value = true +} + +const loadDataTable = async (res) => { + const { data } = await ServeGetStatistics({ ...getFieldsValue(), ...res }); + console.log('data', JSON.stringify(data)) + return data +} + +function onCheckedRow(rowKeys) { + console.log(rowKeys) +} + +function reloadTable() { + actionRef.value.reload() +} + +function confirmForm(e) { + e.preventDefault() + formBtnLoading.value = true + formRef.value.validate((errors) => { + if (!errors) { + window['$message'].success('新建æˆåŠŸ') + setTimeout(() => { + showModal.value = false + reloadTable() + }) + } else { + window['$message'].error('请填写完整信æ¯') + } + formBtnLoading.value = false + }) +} + +function handleEdit(record: Recordable) { + console.log('点击了编辑', record) + router.push({ name: 'basic-info', params: { id: record.id } }) +} + +function handleDelete(record: Recordable) { + console.log('点击了删除', record) + window['$message'].info('点击了删除') +} + +function handleSubmit(values: Recordable) { + console.log(values) + reloadTable() +} + +function handleReset(values: Recordable) { + console.log(values) +} + + + From e524decf96d460baa31685025f4cada77cbbf3d1 Mon Sep 17 00:00:00 2001 From: atorber Date: Thu, 7 Dec 2023 15:15:36 +0800 Subject: [PATCH 27/67] 0.5.1 --- README.md | 8 +- index.html | 98 ++- package-lock.json | 727 +++++++++++++++- package.json | 6 +- postcss.config.js | 6 + src/App.vue | 8 + src/api/chatbot.ts | 11 + src/api/groupnotice.ts | 6 + src/api/whitelist.ts | 11 + src/assets/css/tailwind.css | 4 + src/assets/image/schoolboy.png | Bin 0 -> 126131 bytes src/assets/images/Business.svg | 474 +++++++++++ src/assets/images/Error.svg | 255 ++++++ src/assets/images/account-logo.png | Bin 0 -> 11762 bytes src/assets/images/analysis.svg | 156 ++++ src/assets/images/exception/403.svg | 100 +++ src/assets/images/exception/404.svg | 115 +++ src/assets/images/exception/500.svg | 111 +++ src/assets/images/exception/developing.svg | 133 +++ src/assets/images/exception/load-error.svg | 178 ++++ src/assets/images/exception/nodata.svg | 106 +++ src/assets/images/header-theme-dark.svg | 49 ++ src/assets/images/login.svg | 127 +++ src/assets/images/logo.png | Bin 0 -> 6448 bytes src/assets/images/nav-horizontal-mix.svg | 15 + src/assets/images/nav-horizontal.svg | 26 + src/assets/images/nav-theme-dark.svg | 49 ++ src/assets/images/nav-theme-light.svg | 49 ++ src/assets/images/schoolboy.png | Bin 0 -> 126131 bytes src/assets/images/tool.png | Bin 0 -> 2629 bytes src/components/talk/message/ImageMessage.vue | 7 +- src/components/talk/message/TextMessage.vue | 2 +- src/connect.ts | 452 +++++----- src/event/socket/talk.js | 2 +- src/hooks/useTalkRecord.ts | 1 + src/layout/component/Menu.vue | 69 +- src/main.ts | 10 +- src/router/index.js | 44 +- src/router/modules/app.ts | 36 + src/router/modules/chatbot.ts | 24 + src/router/modules/qa.ts | 24 + src/router/modules/setting.js | 2 +- src/router/modules/statistic.ts | 10 + src/store/index.ts | 4 +- src/store/modules/dialogue.js | 1 + src/store/modules/plugin.js | 418 +++++++++ src/styles/index.less | 1 + src/styles/tailwind.css | 4 + src/styles/transition/base.less | 18 + src/styles/transition/fade.less | 81 ++ src/styles/transition/index.less | 10 + src/styles/transition/scale.less | 21 + src/styles/transition/scroll.less | 67 ++ src/styles/transition/slide.less | 39 + src/styles/transition/zoom.less | 27 + src/styles/var.less | 1 + src/utils/talk.js | 2 +- src/views/app/CellColumns.ts | 83 ++ src/views/app/basic.vue | 241 ++++++ src/views/app/basicColumns.ts | 72 ++ src/views/app/columns.ts | 65 ++ src/views/app/detail.vue | 168 ++++ src/views/app/editCell.vue | 59 ++ src/views/app/editRow.vue | 114 +++ src/views/app/index.vue | 357 ++++++++ src/views/app/layout.vue | 46 + src/views/chatbot/CellColumns.ts | 83 ++ src/views/chatbot/basic.vue | 241 ++++++ src/views/chatbot/basicColumns.ts | 72 ++ src/views/chatbot/columns.ts | 62 ++ src/views/chatbot/columnsPromt.ts | 62 ++ src/views/chatbot/columnsUser.ts | 61 ++ src/views/chatbot/detail.vue | 168 ++++ src/views/chatbot/editCell.vue | 59 ++ src/views/chatbot/editRow.vue | 114 +++ src/views/chatbot/index.vue | 357 ++++++++ src/views/chatbot/layout.vue | 36 + src/views/chatbot/prompt.vue | 357 ++++++++ src/views/chatbot/white.vue | 354 ++++++++ src/views/contact/friends.vue | 23 +- src/views/contact/layout.vue | 22 +- src/views/groupnotice/columns.ts | 83 +- src/views/groupnotice/index.vue | 144 +--- src/views/iframe/index.vue | 62 ++ src/views/keyword/index.vue | 8 +- src/views/message/index.vue | 21 + .../message/inner/panel/PanelContent.vue | 6 +- src/views/notice/columns.ts | 10 +- src/views/notice/index.vue | 4 +- src/views/plugin/columns.ts | 48 ++ src/views/plugin/index.vue | 41 + src/views/plugin/inner/AnnexUploadModal.vue | 206 +++++ src/views/plugin/inner/NoteEmpty.vue | 109 +++ src/views/plugin/inner/NoteList.vue | 237 ++++++ src/views/plugin/inner/NoteMenu.vue | 389 +++++++++ src/views/plugin/inner/NoteView.vue | 433 ++++++++++ src/views/plugin/inner/RecycleModal.vue | 431 ++++++++++ src/views/plugin/inner/TagsClipModal.vue | 143 ++++ src/views/qa/columns.ts | 10 +- src/views/qa/detail.vue | 168 ++++ src/views/qa/index.vue | 7 +- src/views/qa/layout.vue | 36 + src/views/setting/layout.vue | 10 +- src/views/statistic/columns.ts | 12 +- src/views/statistic/columnsOrder.ts | 12 +- src/views/statistic/detail.vue | 131 +-- src/views/statistic/layout.vue | 26 +- src/views/statistic/order.vue | 132 +-- src/views/statistic/statistic.vue | 4 +- src/views/whitelist/black.vue | 791 ++++++++---------- src/views/whitelist/columns.ts | 91 +- src/views/whitelist/white.vue | 791 ++++++++---------- src/views/workplace/workplace.vue | 331 ++++++++ tailwind.config.js | 7 + vite.config.ts | 23 +- yarn.lock | 343 +++++++- 116 files changed, 11128 insertions(+), 1653 deletions(-) create mode 100644 postcss.config.js create mode 100644 src/api/chatbot.ts create mode 100644 src/api/groupnotice.ts create mode 100644 src/api/whitelist.ts create mode 100644 src/assets/css/tailwind.css create mode 100644 src/assets/image/schoolboy.png create mode 100644 src/assets/images/Business.svg create mode 100644 src/assets/images/Error.svg create mode 100644 src/assets/images/account-logo.png create mode 100644 src/assets/images/analysis.svg create mode 100644 src/assets/images/exception/403.svg create mode 100644 src/assets/images/exception/404.svg create mode 100644 src/assets/images/exception/500.svg create mode 100644 src/assets/images/exception/developing.svg create mode 100644 src/assets/images/exception/load-error.svg create mode 100644 src/assets/images/exception/nodata.svg create mode 100644 src/assets/images/header-theme-dark.svg create mode 100644 src/assets/images/login.svg create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/nav-horizontal-mix.svg create mode 100644 src/assets/images/nav-horizontal.svg create mode 100644 src/assets/images/nav-theme-dark.svg create mode 100644 src/assets/images/nav-theme-light.svg create mode 100644 src/assets/images/schoolboy.png create mode 100644 src/assets/images/tool.png create mode 100644 src/router/modules/app.ts create mode 100644 src/router/modules/chatbot.ts create mode 100644 src/router/modules/qa.ts create mode 100644 src/store/modules/plugin.js create mode 100644 src/styles/index.less create mode 100644 src/styles/tailwind.css create mode 100644 src/styles/transition/base.less create mode 100644 src/styles/transition/fade.less create mode 100644 src/styles/transition/index.less create mode 100644 src/styles/transition/scale.less create mode 100644 src/styles/transition/scroll.less create mode 100644 src/styles/transition/slide.less create mode 100644 src/styles/transition/zoom.less create mode 100644 src/styles/var.less create mode 100644 src/views/app/CellColumns.ts create mode 100644 src/views/app/basic.vue create mode 100644 src/views/app/basicColumns.ts create mode 100644 src/views/app/columns.ts create mode 100644 src/views/app/detail.vue create mode 100644 src/views/app/editCell.vue create mode 100644 src/views/app/editRow.vue create mode 100644 src/views/app/index.vue create mode 100644 src/views/app/layout.vue create mode 100644 src/views/chatbot/CellColumns.ts create mode 100644 src/views/chatbot/basic.vue create mode 100644 src/views/chatbot/basicColumns.ts create mode 100644 src/views/chatbot/columns.ts create mode 100644 src/views/chatbot/columnsPromt.ts create mode 100644 src/views/chatbot/columnsUser.ts create mode 100644 src/views/chatbot/detail.vue create mode 100644 src/views/chatbot/editCell.vue create mode 100644 src/views/chatbot/editRow.vue create mode 100644 src/views/chatbot/index.vue create mode 100644 src/views/chatbot/layout.vue create mode 100644 src/views/chatbot/prompt.vue create mode 100644 src/views/chatbot/white.vue create mode 100644 src/views/iframe/index.vue create mode 100644 src/views/plugin/columns.ts create mode 100644 src/views/plugin/index.vue create mode 100644 src/views/plugin/inner/AnnexUploadModal.vue create mode 100644 src/views/plugin/inner/NoteEmpty.vue create mode 100644 src/views/plugin/inner/NoteList.vue create mode 100644 src/views/plugin/inner/NoteMenu.vue create mode 100644 src/views/plugin/inner/NoteView.vue create mode 100644 src/views/plugin/inner/RecycleModal.vue create mode 100644 src/views/plugin/inner/TagsClipModal.vue create mode 100644 src/views/qa/detail.vue create mode 100644 src/views/qa/layout.vue create mode 100644 src/views/workplace/workplace.vue create mode 100644 tailwind.config.js diff --git a/README.md b/README.md index 187242b2..942ba5f3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ChatFlow Console èŠå¤©å·¥ä½œå° -GitHub stars badge GitHub forks badge GitHub license badge +GitHub stars badge GitHub forks badge GitHub license badge ## é¡¹ç›®ä»‹ç» @@ -27,7 +27,7 @@ ChatFlow Consoleæ˜¯ä¸€ä¸ªç½‘é¡µç‰ˆå³æ—¶èŠå¤©ç³»ç»Ÿï¼Œç•Œé¢ç®€çº¦ç¾Žè§‚。基 ```bash ## 克隆项目æºç åŒ… -git clone https://github.com/atorber/chat-studio.git +git clone https://github.com/atorber/chatflow-console.git ## 安装项目ä¾èµ–扩展组件 npm install @@ -46,7 +46,7 @@ npm run electron:build ## 效果展示 -![image](https://github.com/atorber/chat-studio/assets/19552906/9c7ec288-b364-491a-a9db-eebc04a578d6) +![image](https://github.com/atorber/chatflow-console/assets/19552906/9c7ec288-b364-491a-a9db-eebc04a578d6) ## è”ç³»æ–¹å¼ @@ -56,4 +56,4 @@ QQ群 : 583830241 ## 如果你觉得还ä¸é”™ï¼Œè¯· Star , Fork 给作者鼓励一下。 -[![Star History Chart](https://api.star-history.com/svg?repos=atorber/chat-studio&type=Date)](https://star-history.com/#atorber/chat-studio&Date) +[![Star History Chart](https://api.star-history.com/svg?repos=atorber/chatflow-console&type=Date)](https://star-history.com/#atorber/chatflow-console&Date) diff --git a/index.html b/index.html index 7beabe87..1fe3551e 100644 --- a/index.html +++ b/index.html @@ -48,7 +48,102 @@ transform: rotate(360deg); } } - + + .first-loading-wrap { + display: flex; + width: 100%; + height: 100vh; + justify-content: center; + align-items: center; + flex-direction: column; + } + + .first-loading-wrap > h1 { + font-size: 128px + } + + .first-loading-wrap .loading-wrap { + padding: 98px; + display: flex; + justify-content: center; + align-items: center + } + + .dot { + animation: antRotate 1.2s infinite linear; + transform: rotate(45deg); + position: relative; + display: inline-block; + font-size: 32px; + width: 32px; + height: 32px; + box-sizing: border-box + } + + .dot i { + width: 14px; + height: 14px; + position: absolute; + display: block; + background-color: #1890ff; + border-radius: 100%; + transform: scale(.75); + transform-origin: 50% 50%; + opacity: .3; + animation: antSpinMove 1s infinite linear alternate + } + + .dot i:nth-child(1) { + top: 0; + left: 0 + } + + .dot i:nth-child(2) { + top: 0; + right: 0; + -webkit-animation-delay: .4s; + animation-delay: .4s + } + + .dot i:nth-child(3) { + right: 0; + bottom: 0; + -webkit-animation-delay: .8s; + animation-delay: .8s + } + + .dot i:nth-child(4) { + bottom: 0; + left: 0; + -webkit-animation-delay: 1.2s; + animation-delay: 1.2s + } + + @keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } + } + + @-webkit-keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } + } + + @keyframes antSpinMove { + to { + opacity: 1 + } + } + + @-webkit-keyframes antSpinMove { + to { + opacity: 1 + } + } @@ -61,6 +156,7 @@ + diff --git a/package-lock.json b/package-lock.json index fadfc67e..edd18fe0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,17 @@ { "name": "ChatFlowConsole", - "version": "0.4.0", + "version": "0.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ChatFlowConsole", - "version": "0.4.0", + "version": "0.5.0", "dependencies": { "@highlightjs/vue-plugin": "^2.1.0", "@kangc/v-md-editor": "^2.3.18", "@vicons/antd": "^0.12.0", + "@vicons/ionicons5": "^0.12.0", "@vueup/vue-quill": "^1.2.0", "@vueuse/core": "^10.6.1", "axios": "^1.6.2", @@ -42,6 +43,7 @@ "@vue/eslint-config-prettier": "^8.0.0", "@vue/eslint-config-typescript": "^12.0.0", "@vue/tsconfig": "^0.4.0", + "autoprefixer": "^10.4.16", "concurrently": "^7.3.0", "cross-env": "^7.0.3", "electron": "^19.1.9", @@ -54,7 +56,9 @@ "less-loader": "^10.2.0", "naive-ui": "^2.35.0", "npm-run-all2": "^6.1.1", + "postcss": "^8.4.32", "prettier": "^3.1.0", + "tailwindcss": "^3.3.6", "typescript": "~5.2.0", "vite": "^4.5.0", "vite-plugin-compression": "^0.5.1", @@ -71,6 +75,18 @@ "node": ">=0.10.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -1898,6 +1914,11 @@ "resolved": "https://registry.npmjs.org/@vicons/antd/-/antd-0.12.0.tgz", "integrity": "sha512-C0p6aO1EmGG1QHrqgUWQS1No20934OdWSRQshM5NIDK5H1On6tC26U0hT6Rmp40KfUsvhvX5YW8BoWJdNFifPg==" }, + "node_modules/@vicons/ionicons5": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.12.0.tgz", + "integrity": "sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==" + }, "node_modules/@vitejs/plugin-vue": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.0.tgz", @@ -2648,6 +2669,25 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/app-builder-bin": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/app-builder-bin/-/app-builder-bin-4.0.0.tgz", @@ -2738,6 +2778,12 @@ "node": ">=10" } }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", @@ -2902,6 +2948,43 @@ "node": ">= 4.5.0" } }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "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/axios": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", @@ -2995,6 +3078,15 @@ "node": ">=0.6" } }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", @@ -3393,6 +3485,15 @@ "node": ">=10" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001565", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", @@ -3435,6 +3536,90 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz", @@ -4644,6 +4829,12 @@ "dev": true, "optional": true }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -4702,6 +4893,12 @@ "node": ">=4" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/dmg-builder": { "version": "23.6.0", "resolved": "https://registry.npmmirror.com/dmg-builder/-/dmg-builder-23.6.0.tgz", @@ -6194,6 +6391,19 @@ "node": ">= 6" } }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -6860,6 +7070,18 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", @@ -7272,6 +7494,15 @@ "node": ">=10" } }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/joi": { "version": "17.6.0", "resolved": "https://registry.npmmirror.com/joi/-/joi-17.6.0.tgz", @@ -7484,6 +7715,21 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/linkify-it": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-2.2.0.tgz", @@ -8425,6 +8671,17 @@ "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/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/naive-ui": { "version": "2.35.0", "resolved": "https://registry.npmjs.org/naive-ui/-/naive-ui-2.35.0.tgz", @@ -8455,9 +8712,15 @@ } }, "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==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -8601,6 +8864,24 @@ "node": ">=10" } }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/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": "4.5.1", "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", @@ -8734,6 +9015,15 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", @@ -8769,6 +9059,15 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-is": { "version": "1.1.5", "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz", @@ -8984,6 +9283,12 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, "node_modules/path-type": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/path-type/-/path-type-3.0.0.tgz", @@ -9104,6 +9409,15 @@ } } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/plist": { "version": "3.0.6", "resolved": "https://registry.npmmirror.com/plist/-/plist-3.0.6.tgz", @@ -9126,9 +9440,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -9144,7 +9458,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -9152,6 +9466,105 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, "node_modules/postcss-selector-parser": { "version": "6.0.13", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", @@ -9165,6 +9578,12 @@ "node": ">=4" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -9348,6 +9767,24 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/read-config-file": { "version": "6.2.0", "resolved": "https://registry.npmmirror.com/read-config-file/-/read-config-file-6.2.0.tgz", @@ -9476,6 +9913,18 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", @@ -9539,6 +9988,23 @@ "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -10443,6 +10909,57 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==" }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/sumchecker/-/sumchecker-3.0.1.tgz", @@ -10466,6 +10983,18 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -10488,6 +11017,150 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/tailwindcss": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.6.tgz", + "integrity": "sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tailwindcss/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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/tailwindcss/node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/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/tailwindcss/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/tailwindcss/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/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/tailwindcss/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", @@ -10600,6 +11273,27 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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/titleize": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", @@ -10753,6 +11447,12 @@ "node": ">=6.10" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -11740,6 +12440,15 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs": { "version": "17.5.1", "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.5.1.tgz", diff --git a/package.json b/package.json index 190e4456..1e412421 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ChatFlowConsole", "private": true, - "version": "0.5.0", + "version": "0.5.1", "main": "electron/main.js", "scripts": { "dev": "vite --mode development", @@ -20,6 +20,7 @@ "@highlightjs/vue-plugin": "^2.1.0", "@kangc/v-md-editor": "^2.3.18", "@vicons/antd": "^0.12.0", + "@vicons/ionicons5": "^0.12.0", "@vueup/vue-quill": "^1.2.0", "@vueuse/core": "^10.6.1", "axios": "^1.6.2", @@ -51,6 +52,7 @@ "@vue/eslint-config-prettier": "^8.0.0", "@vue/eslint-config-typescript": "^12.0.0", "@vue/tsconfig": "^0.4.0", + "autoprefixer": "^10.4.16", "concurrently": "^7.3.0", "cross-env": "^7.0.3", "electron": "^19.1.9", @@ -63,7 +65,9 @@ "less-loader": "^10.2.0", "naive-ui": "^2.35.0", "npm-run-all2": "^6.1.1", + "postcss": "^8.4.32", "prettier": "^3.1.0", + "tailwindcss": "^3.3.6", "typescript": "~5.2.0", "vite": "^4.5.0", "vite-plugin-compression": "^0.5.1", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..12a703d9 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/src/App.vue b/src/App.vue index c3b3cb71..48d6ad27 100644 --- a/src/App.vue +++ b/src/App.vue @@ -103,3 +103,11 @@ useClickEvent() + + diff --git a/src/api/chatbot.ts b/src/api/chatbot.ts new file mode 100644 index 00000000..f7328178 --- /dev/null +++ b/src/api/chatbot.ts @@ -0,0 +1,11 @@ +import { get } from '@/utils/request' + +// 获å–èŠå¤©æœºå™¨äººåˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetChatbots = (data) => { + return get('/api/v1/chatbot/list', data) +} + +// 获å–好å‹åˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetChatbotUsers = (data) => { + return get('/api/v1/chatbot/user/list', data) +} \ No newline at end of file diff --git a/src/api/groupnotice.ts b/src/api/groupnotice.ts new file mode 100644 index 00000000..517559a0 --- /dev/null +++ b/src/api/groupnotice.ts @@ -0,0 +1,6 @@ +import { get } from '@/utils/request' + +// 获å–好å‹åˆ—表æœåŠ¡æŽ¥å£ +export const ServeGetGroupnotices = (data) => { + return get('/api/v1/groupnotice/list', data) +} \ No newline at end of file diff --git a/src/api/whitelist.ts b/src/api/whitelist.ts new file mode 100644 index 00000000..c58ecc27 --- /dev/null +++ b/src/api/whitelist.ts @@ -0,0 +1,11 @@ +import { get } from '@/utils/request' + +// 获å–白åå•列表æœåŠ¡æŽ¥å£ +export const ServeGetWhitelistWhite = (data) => { + return get('/api/v1/whitelist/list/white', data) +} + +// 获å–黑åå•列表æœåŠ¡æŽ¥å£ +export const ServeGetWhitelistBlack = (data) => { + return get('/api/v1/whitelist/list/black', data) + } \ No newline at end of file diff --git a/src/assets/css/tailwind.css b/src/assets/css/tailwind.css new file mode 100644 index 00000000..c187af78 --- /dev/null +++ b/src/assets/css/tailwind.css @@ -0,0 +1,4 @@ +/*! @import */ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/assets/image/schoolboy.png b/src/assets/image/schoolboy.png new file mode 100644 index 0000000000000000000000000000000000000000..bbdf5a0f2b02fa603c4fe95cd562c9f3dcba40a7 GIT binary patch literal 126131 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ξ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 n@YOnvZ^uuc+*x3IWSPTd;d6W + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/Error.svg b/src/assets/images/Error.svg new file mode 100644 index 00000000..181e5f13 --- /dev/null +++ b/src/assets/images/Error.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/account-logo.png b/src/assets/images/account-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..22cffd5994a639fb6174730163d9140ab79ac163 GIT binary patch literal 11762 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/analysis.svg b/src/assets/images/analysis.svg new file mode 100644 index 00000000..11024438 --- /dev/null +++ b/src/assets/images/analysis.svg @@ -0,0 +1,156 @@ + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/exception/403.svg b/src/assets/images/exception/403.svg new file mode 100644 index 00000000..f7565caf --- /dev/null +++ b/src/assets/images/exception/403.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + 无访问æƒé™ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/exception/404.svg b/src/assets/images/exception/404.svg new file mode 100644 index 00000000..18f3ba90 --- /dev/null +++ b/src/assets/images/exception/404.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + 404 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/exception/500.svg b/src/assets/images/exception/500.svg new file mode 100644 index 00000000..fd040bac --- /dev/null +++ b/src/assets/images/exception/500.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + 500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/exception/developing.svg b/src/assets/images/exception/developing.svg new file mode 100644 index 00000000..3b32c284 --- /dev/null +++ b/src/assets/images/exception/developing.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + å¼€å‘中 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/exception/load-error.svg b/src/assets/images/exception/load-error.svg new file mode 100644 index 00000000..bfbd13e2 --- /dev/null +++ b/src/assets/images/exception/load-error.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + 加载失败_1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/exception/nodata.svg b/src/assets/images/exception/nodata.svg new file mode 100644 index 00000000..5099ff2f --- /dev/null +++ b/src/assets/images/exception/nodata.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + æš‚æ— æ•°æ® + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/header-theme-dark.svg b/src/assets/images/header-theme-dark.svg new file mode 100644 index 00000000..9bc65dde --- /dev/null +++ b/src/assets/images/header-theme-dark.svg @@ -0,0 +1,49 @@ + + + + Group 5 Copy 5 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/login.svg b/src/assets/images/login.svg new file mode 100644 index 00000000..2490aa7f --- /dev/null +++ b/src/assets/images/login.svg @@ -0,0 +1,127 @@ + + + Group 21 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +