commit 0cdce1c49fdaea6f0fa111907eebe81140367c72 Author: liujianan Date: Thu Jan 4 09:02:38 2024 +0800 init diff --git a/.env b/.env new file mode 100644 index 0000000..f390579 --- /dev/null +++ b/.env @@ -0,0 +1,4 @@ +VITE_BASE_URL=http://192.168.0.17:8001/ +VITE_PROXY=/api +VITE_FILE_URL=https://file.zcloudchina.com/YTHFile + diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..e69de29 diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..e69de29 diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..b06f3f0 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +public +dist +package.json +!.prettierrc.cjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..2c8585c --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,34 @@ +module.exports = { + env: { + browser: true, + es2021: true, + node: true + }, + extends: [ + "plugin:vue/vue3-essential", + "standard", + "@vue/prettier", + "eslint:recommended" + ], + parserOptions: { + ecmaVersion: "latest", + sourceType: "module" + }, + plugins: ["vue"], + rules: { + "no-console": "warn", + "vue/multi-word-component-names": "off", + camelcase: "off", + eqeqeq: "error", + "vue/eqeqeq": "error", + "no-unused-vars": [ + "error", + { vars: "all", args: "after-used", ignoreRestSiblings: false } + ], + "linebreak-style": ["off",'windows'], + }, + globals: { + BMapGL: "readonly", + JSEncrypt: "readonly", + } +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..726619f --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + extends: ["@vue/prettier", "plugin:prettier/recommended"], + endOfLine: "crlf", +}; diff --git a/README.md b/README.md new file mode 100644 index 0000000..e62e093 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# Vue 3 + Vite + +This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` + + + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..d5329ef --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": [ + "src/*" + ] + } + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..3f3f483 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5766 @@ +{ + "name": "vue3_template", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vue3_template", + "version": "0.0.0", + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@icon-park/vue-next": "^1.4.2", + "@vueuse/core": "^9.13.0", + "@vueuse/integrations": "^10.7.0", + "animate.css": "^4.1.1", + "axios": "^1.6.3", + "dayjs": "^1.11.10", + "element-plus": "^2.4.4", + "lodash-es": "^4.17.21", + "mitt": "^3.0.1", + "normalize.css": "^8.0.1", + "pinia": "^2.1.7", + "pinia-plugin-persistedstate": "^3.2.0", + "qrcode": "^1.5.3", + "qs": "^6.11.2", + "throttle-debounce": "^5.0.0", + "v-viewer": "^3.0.11", + "vue": "^3.3.13", + "vue-router": "^4.2.5", + "vue3-print-nb": "^0.1.4", + "vue3-puzzle-vcode": "^1.0.16" + }, + "devDependencies": { + "@our-patches/postcss-px-to-viewport": "^1.2.0", + "@types/node": "^18.18.4", + "@vitejs/plugin-basic-ssl": "^1.0.1", + "@vitejs/plugin-vue": "^4.4.0", + "@vue/eslint-config-prettier": "^7.1.0", + "autoprefixer": "^10.4.16", + "eslint": "^8.51.0", + "eslint-config-prettier": "^8.10.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-vue": "^9.17.0", + "prettier": "^2.8.8", + "sass": "^1.69.0", + "unplugin-auto-import": "^0.12.2", + "unplugin-vue-components": "^0.22.12", + "vite": "^4.4.11", + "vite-plugin-enhance-log": "^0.5.2", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-remove-console": "^2.1.1", + "vue-eslint-parser": "^9.3.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.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.7.tgz", + "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "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/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@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.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/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, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@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-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-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, + "peer": 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, + "peer": 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-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-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, + "peer": 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.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz", + "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@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.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/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, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.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/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.21.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz", + "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/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/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "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/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "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/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "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.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "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/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz", + "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "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==", + "engines": { + "node": ">= 8.0.0", + "npm": ">= 5.0.0" + }, + "peerDependencies": { + "vue": "3.x" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/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/@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.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.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/@our-patches/postcss-px-to-viewport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@our-patches/postcss-px-to-viewport/-/postcss-px-to-viewport-1.2.0.tgz", + "integrity": "sha512-/yGylbA5hBCeF3vM6q/RgZxB3B2fOU1Mu64ETBIIymEyORMP/NVRmiek9f3Hfw4xNixH64S5Ph9YYA8BDpl5kw==", + "dev": true, + "dependencies": { + "object-assign": ">=4.0.1" + }, + "peerDependencies": { + "postcss": ">=5.0.2" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@types/eslint": { + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.1.tgz", + "integrity": "sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "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==" + }, + "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==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "18.19.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.4.tgz", + "integrity": "sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==" + }, + "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/@vitejs/plugin-basic-ssl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz", + "integrity": "sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.3.tgz", + "integrity": "sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==", + "dependencies": { + "@babel/parser": "^7.23.6", + "@vue/shared": "3.4.3", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.3.tgz", + "integrity": "sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==", + "dependencies": { + "@vue/compiler-core": "3.4.3", + "@vue/shared": "3.4.3" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.3.tgz", + "integrity": "sha512-NuJqb5is9I4uzv316VRUDYgIlPZCG8D+ARt5P4t5UDShIHKL25J3TGZAUryY/Aiy0DsY7srJnZL5ryB6DD63Zw==", + "dependencies": { + "@babel/parser": "^7.23.6", + "@vue/compiler-core": "3.4.3", + "@vue/compiler-dom": "3.4.3", + "@vue/compiler-ssr": "3.4.3", + "@vue/shared": "3.4.3", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.5", + "postcss": "^8.4.32", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-sfc/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/@vue/compiler-ssr": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.3.tgz", + "integrity": "sha512-wnYQtMBkeFSxgSSQbYGQeXPhQacQiog2c6AlvMldQH6DB+gSXK/0F6DVXAJfEiuBSgBhUc8dwrrG5JQcqwalsA==", + "dependencies": { + "@vue/compiler-dom": "3.4.3", + "@vue/shared": "3.4.3" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.1.0.tgz", + "integrity": "sha512-Pv/lVr0bAzSIHLd9iz0KnvAr4GKyCEl+h52bc4e5yWuDVtLgFwycF7nrbWTAQAS+FU6q1geVd07lc6EWfJiWKQ==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0" + }, + "peerDependencies": { + "eslint": ">= 7.28.0", + "prettier": ">= 2.0.0" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.3.tgz", + "integrity": "sha512-q5f9HLDU+5aBKizXHAx0w4whkIANs1Muiq9R5YXm0HtorSlflqv9u/ohaMxuuhHWCji4xqpQ1eL04WvmAmGnFg==", + "dependencies": { + "@vue/shared": "3.4.3" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.3.tgz", + "integrity": "sha512-C1r6QhB1qY7D591RCSFhMULyzL9CuyrGc+3PpB0h7dU4Qqw6GNyo4BNFjHZVvsWncrUlKX3DIKg0Y7rNNr06NQ==", + "dependencies": { + "@vue/reactivity": "3.4.3", + "@vue/shared": "3.4.3" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.3.tgz", + "integrity": "sha512-wrsprg7An5Ec+EhPngWdPuzkp0BEUxAKaQtN9dPU/iZctPyD9aaXmVtehPJerdQxQale6gEnhpnfywNw3zOv2A==", + "dependencies": { + "@vue/runtime-core": "3.4.3", + "@vue/shared": "3.4.3", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.3.tgz", + "integrity": "sha512-BUxt8oVGMKKsqSkM1uU3d3Houyfy4WAc2SpSQRebNd+XJGATVkW/rO129jkyL+kpB/2VRKzE63zwf5RtJ3XuZw==", + "dependencies": { + "@vue/compiler-ssr": "3.4.3", + "@vue/shared": "3.4.3" + }, + "peerDependencies": { + "vue": "3.4.3" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.3.tgz", + "integrity": "sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "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/integrations": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.1.tgz", + "integrity": "sha512-cKo5LEeKVHdBRBtMTOrDPdR0YNtrmN9IBfdcnY2P3m5LHVrsD0xiHUtAH1WKjHQRIErZG6rJUa6GA4tWZt89Og==", + "dependencies": { + "@vueuse/core": "10.7.1", + "@vueuse/shared": "10.7.1", + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "*", + "axios": "*", + "change-case": "*", + "drauu": "*", + "focus-trap": "*", + "fuse.js": "*", + "idb-keyval": "*", + "jwt-decode": "*", + "nprogress": "*", + "qrcode": "*", + "sortablejs": "*", + "universal-cookie": "*" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations/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/@vueuse/integrations/node_modules/@vueuse/core": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.1.tgz", + "integrity": "sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.7.1", + "@vueuse/shared": "10.7.1", + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/metadata": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.1.tgz", + "integrity": "sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/shared": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.1.tgz", + "integrity": "sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==", + "dependencies": { + "vue-demi": ">=0.14.6" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/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": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "dependencies": { + "vue-demi": "*" + }, + "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/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/animate.css": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", + "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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/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/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "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/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.3.tgz", + "integrity": "sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==", + "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.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "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/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/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "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.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/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/builtins/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "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/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": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001572", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "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": "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/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/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/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/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/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/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, + "peer": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/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/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/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "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/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.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/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-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + }, + "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/electron-to-chromium": { + "version": "1.4.617", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.617.tgz", + "integrity": "sha512-sYNE3QxcDS4ANW1k4S/wWYMXjCVcFSOX3Bg8jpuMFaXt/x8JCmp0R1Xe1ZXDX4WXnSRBf+GJ/3eGWicUuQq5cg==", + "dev": true + }, + "node_modules/element-plus": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.4.4.tgz", + "integrity": "sha512-TlKubXJgxwhER0dw+8ULn9hr9kZjraV4R6Q/eidwWUwCKxwXYPBGmMKsZ/85tlxlhMYbcLZd/YZh6G3QkHX4fg==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.npmjs.org/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.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.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": "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/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-n/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-plugin-n/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.19.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz", + "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==", + "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/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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-plugin-vue/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "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-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/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/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/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/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/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "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/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/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.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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/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/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.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/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/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/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "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-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "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/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "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.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/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/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/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/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "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/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/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "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.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "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/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, + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "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/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, + "node_modules/mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "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" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "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-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" + }, + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" + }, + "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-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/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-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/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "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/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "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/pathe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", + "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/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/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.1", + "resolved": "https://registry.npmjs.org/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.1.tgz", + "integrity": "sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==", + "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/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "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.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "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", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "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/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/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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/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==", + "dev": true, + "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/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "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", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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-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/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.69.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", + "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/scule": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.1.1.tgz", + "integrity": "sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==", + "dev": true + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/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==", + "dev": true, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "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/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/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/throttle-debounce": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz", + "integrity": "sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "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.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/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unimport": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-2.2.4.tgz", + "integrity": "sha512-qMgmeEGqqrrmEtm0dqxMG37J6xBtrriqxq9hILvDb+e6l2F0yTnJomLoCCp0eghLR7bYGeBsUU5Y0oyiUYhViw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.2", + "escape-string-regexp": "^5.0.0", + "fast-glob": "^3.2.12", + "local-pkg": "^0.4.3", + "magic-string": "^0.27.0", + "mlly": "^1.1.0", + "pathe": "^1.1.0", + "pkg-types": "^1.0.1", + "scule": "^1.0.0", + "strip-literal": "^1.0.0", + "unplugin": "^1.0.1" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unplugin": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz", + "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==", + "dev": true, + "dependencies": { + "acorn": "^8.11.2", + "chokidar": "^3.5.3", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.12.2.tgz", + "integrity": "sha512-hC4w0GZjPjmLtrxV0u10XO350V9eCtQyEyifXr7B9UGD7SvbbIvKuOcHt58Zd4FAqZJXKWoXkpr9mdhBp85Usw==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.2", + "@rollup/pluginutils": "^5.0.2", + "local-pkg": "^0.4.3", + "magic-string": "^0.27.0", + "unimport": "^2.0.1", + "unplugin": "^1.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz", + "integrity": "sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==", + "dev": true, + "dependencies": { + "@antfu/utils": "^0.7.2", + "@rollup/pluginutils": "^5.0.2", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "local-pkg": "^0.4.2", + "magic-string": "^0.27.0", + "minimatch": "^5.1.1", + "resolve": "^1.22.1", + "unplugin": "^1.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components/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/unplugin-vue-components/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "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.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v-viewer": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-3.0.11.tgz", + "integrity": "sha512-E8LOdAxhzuktt4HB3PswVCccQ1Q1sYHYnLsS6zaJISpb5EvmAFs5sYNfXnDLFxVb5DQ82v4ZlGxkYlseXwWRJw==", + "dependencies": { + "lodash": "^4.17.21", + "viewerjs": "^1.9.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/viewerjs": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.11.6.tgz", + "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==" + }, + "node_modules/vite": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", + "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-enhance-log": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/vite-plugin-enhance-log/-/vite-plugin-enhance-log-0.5.2.tgz", + "integrity": "sha512-ybCnKHMAE5viRkMacTw3WX5bLV/YLyELScwhw1LW1H3/uCpdx8Bu3vOO8C1RghbSrRlpmnJKnSY7SatttW2YZg==", + "dev": true, + "dependencies": { + "@babel/generator": "^7.21.4", + "@babel/parser": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.21.4", + "@babel/traverse": "7.21.4", + "source-map": "^0.7.4" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/vite-plugin-eslint": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz", + "integrity": "sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "@types/eslint": "^8.4.5", + "rollup": "^2.77.2" + }, + "peerDependencies": { + "eslint": ">=7", + "vite": ">=2" + } + }, + "node_modules/vite-plugin-eslint/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/vite-plugin-eslint/node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/vite-plugin-remove-console": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-remove-console/-/vite-plugin-remove-console-2.2.0.tgz", + "integrity": "sha512-qgjh5pz75MdE9Kzs8J0kBwaCfifHV0ezRbB9rpGsIOxam+ilcGV7WOk91vFJXquzRmiKrFh3Hxlh0JJWAmXTbQ==", + "dev": true + }, + "node_modules/vue": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.3.tgz", + "integrity": "sha512-GjN+culMAGv/mUbkIv8zMKItno8npcj5gWlXkSxf1SPTQf8eJ4A+YfHIvQFyL1IfuJcMl3soA7SmN1fRxbf/wA==", + "dependencies": { + "@vue/compiler-dom": "3.4.3", + "@vue/compiler-sfc": "3.4.3", + "@vue/runtime-dom": "3.4.3", + "@vue/server-renderer": "3.4.3", + "@vue/shared": "3.4.3" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "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/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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-eslint-parser/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "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/vue3-print-nb": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz", + "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==", + "dependencies": { + "vue": "^3.0.5" + } + }, + "node_modules/vue3-puzzle-vcode": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/vue3-puzzle-vcode/-/vue3-puzzle-vcode-1.1.5.tgz", + "integrity": "sha512-JesxfEucupQYDHXcywVx5BGQ1Wjybtlj4dAeNw2tC1jfHt1FXoG0bpBSlLUS4TPyS+pHp++4zmTfBQZLf9ldXw==" + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz", + "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/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/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/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/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "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 new file mode 100644 index 0000000..ffcc693 --- /dev/null +++ b/package.json @@ -0,0 +1,60 @@ +{ + "name": "vue3_template", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "lint": "eslint --ext .js,.vue --fix src .prettierrc.cjs" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@icon-park/vue-next": "^1.4.2", + "@vueuse/core": "^9.13.0", + "@vueuse/integrations": "^10.7.0", + "animate.css": "^4.1.1", + "axios": "^1.6.3", + "dayjs": "^1.11.10", + "element-plus": "^2.4.4", + "lodash-es": "^4.17.21", + "mitt": "^3.0.1", + "normalize.css": "^8.0.1", + "pinia": "^2.1.7", + "pinia-plugin-persistedstate": "^3.2.0", + "qrcode": "^1.5.3", + "qs": "^6.11.2", + "throttle-debounce": "^5.0.0", + "v-viewer": "^3.0.11", + "vue": "^3.3.13", + "vue-router": "^4.2.5", + "vue3-print-nb": "^0.1.4", + "vue3-puzzle-vcode": "^1.0.16" + }, + "devDependencies": { + "@our-patches/postcss-px-to-viewport": "^1.2.0", + "@types/node": "^18.18.4", + "@vitejs/plugin-basic-ssl": "^1.0.1", + "@vitejs/plugin-vue": "^4.4.0", + "@vue/eslint-config-prettier": "^7.1.0", + "autoprefixer": "^10.4.16", + "eslint": "^8.51.0", + "eslint-config-prettier": "^8.10.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-vue": "^9.17.0", + "prettier": "^2.8.8", + "sass": "^1.69.0", + "unplugin-auto-import": "^0.12.2", + "unplugin-vue-components": "^0.22.12", + "vite": "^4.4.11", + "vite-plugin-enhance-log": "^0.5.2", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-remove-console": "^2.1.1", + "vue-eslint-parser": "^9.3.1" + } +} diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..ddda00d --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,22 @@ +const path = require('path') +module.exports = { + plugins: { + autoprefixer: { + overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8', '> 1%'], + grid: true, + }, + // '@our-patches/postcss-px-to-viewport': { + // unitToConvert: 'px', + // viewportWidth: 1920, + // unitPrecision: 3, + // viewportUnit: 'vw', + // selectorBlackList: ['.ignore', '.hairlines'], + // minPixelValue: 1, + // mediaQuery: false, + // exclude: [/^node_modules$/], + // include: [/BI/], + // landscapeUnit: 'vw', + // landscapeWidth: 750, + // } + }, +}; diff --git a/public/jsencrypt.min.js b/public/jsencrypt.min.js new file mode 100644 index 0000000..667694f --- /dev/null +++ b/public/jsencrypt.min.js @@ -0,0 +1,3 @@ +/*! For license information please see jsencrypt.min.js.LICENSE.txt */ +// eslint-disable-next-line +!(function(t, e) { typeof exports == 'object' && typeof module == 'object' ? module.exports = e() : typeof define == 'function' && define.amd ? define([], e) : typeof exports == 'object' ? exports.JSEncrypt = e() : t.JSEncrypt = e() }(window, () => (() => { var t = { 155: t => { var e, i, r = t.exports = {}; function n() { throw new Error('setTimeout has not been defined') } function s() { throw new Error('clearTimeout has not been defined') } function o(t) { if (e === setTimeout) return setTimeout(t, 0); if ((e === n || !e) && setTimeout) return e = setTimeout, setTimeout(t, 0); try { return e(t, 0) } catch (i) { try { return e.call(null, t, 0) } catch (i) { return e.call(this, t, 0) } } }!(function() { try { e = typeof setTimeout == 'function' ? setTimeout : n } catch (t) { e = n } try { i = typeof clearTimeout == 'function' ? clearTimeout : s } catch (t) { i = s } }()); var h, a = [], u = !1, c = -1; function f() { u && h && (u = !1, h.length ? a = h.concat(a) : c = -1, a.length && l()) } function l() { if (!u) { var t = o(f); u = !0; for (var e = a.length; e;) { for (h = a, a = []; ++c < e;)h && h[c].run(); c = -1, e = a.length }h = null, u = !1, (function(t) { if (i === clearTimeout) return clearTimeout(t); if ((i === s || !i) && clearTimeout) return i = clearTimeout, clearTimeout(t); try { i(t) } catch (e) { try { return i.call(null, t) } catch (e) { return i.call(this, t) } } }(t)) } } function p(t, e) { this.fun = t, this.array = e } function g() {}r.nextTick = function(t) { var e = new Array(arguments.length - 1); if (arguments.length > 1) for (var i = 1; i < arguments.length; i++)e[i - 1] = arguments[i]; a.push(new p(t, e)), a.length !== 1 || u || o(l) }, p.prototype.run = function() { this.fun.apply(null, this.array) }, r.title = 'browser', r.browser = !0, r.env = {}, r.argv = [], r.version = '', r.versions = {}, r.on = g, r.addListener = g, r.once = g, r.off = g, r.removeListener = g, r.removeAllListeners = g, r.emit = g, r.prependListener = g, r.prependOnceListener = g, r.listeners = function(t) { return [] }, r.binding = function(t) { throw new Error('process.binding is not supported') }, r.cwd = function() { return '/' }, r.chdir = function(t) { throw new Error('process.chdir is not supported') }, r.umask = function() { return 0 } } }, e = {}; function i(r) { var n = e[r]; if (void 0 !== n) return n.exports; var s = e[r] = { exports: {}}; return t[r](s, s.exports, i), s.exports }i.d = (t, e) => { for (var r in e)i.o(e, r) && !i.o(t, r) && Object.defineProperty(t, r, { enumerable: !0, get: e[r] }) }, i.o = (t, e) => Object.prototype.hasOwnProperty.call(t, e); var r = {}; return (() => { 'use strict'; function t(t) { return '0123456789abcdefghijklmnopqrstuvwxyz'.charAt(t) } function e(t, e) { return t & e } function n(t, e) { return t | e } function s(t, e) { return t ^ e } function o(t, e) { return t & ~e } function h(t) { if (t == 0) return -1; var e = 0; return (65535 & t) == 0 && (t >>= 16, e += 16), (255 & t) == 0 && (t >>= 8, e += 8), (15 & t) == 0 && (t >>= 4, e += 4), (3 & t) == 0 && (t >>= 2, e += 2), (1 & t) == 0 && ++e, e } function a(t) { for (var e = 0; t != 0;)t &= t - 1, ++e; return e }i.d(r, { default: () => ot }); var u, c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; function f(t) { var e, i, r = ''; for (e = 0; e + 3 <= t.length; e += 3)i = parseInt(t.substring(e, e + 3), 16), r += c.charAt(i >> 6) + c.charAt(63 & i); for (e + 1 == t.length ? (i = parseInt(t.substring(e, e + 1), 16), r += c.charAt(i << 2)) : e + 2 == t.length && (i = parseInt(t.substring(e, e + 2), 16), r += c.charAt(i >> 2) + c.charAt((3 & i) << 4)); (3 & r.length) > 0;)r += '='; return r } function l(e) { var i, r = '', n = 0, s = 0; for (i = 0; i < e.length && e.charAt(i) != '='; ++i) { var o = c.indexOf(e.charAt(i)); o < 0 || (n == 0 ? (r += t(o >> 2), s = 3 & o, n = 1) : n == 1 ? (r += t(s << 2 | o >> 4), s = 15 & o, n = 2) : n == 2 ? (r += t(s), r += t(o >> 2), s = 3 & o, n = 3) : (r += t(s << 2 | o >> 4), r += t(15 & o), n = 0)) } return n == 1 && (r += t(s << 2)), r } var p, g = { decode: function(t) { var e; if (void 0 === p) { var i = '= \f\n\r\t \u2028\u2029'; for (p = Object.create(null), e = 0; e < 64; ++e)p['ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(e)] = e; for (p['-'] = 62, p._ = 63, e = 0; e < i.length; ++e)p[i.charAt(e)] = -1 } var r = [], n = 0, s = 0; for (e = 0; e < t.length; ++e) { var o = t.charAt(e); if (o == '=') break; if ((o = p[o]) != -1) { if (void 0 === o) throw new Error('Illegal character at offset ' + e); n |= o, ++s >= 4 ? (r[r.length] = n >> 16, r[r.length] = n >> 8 & 255, r[r.length] = 255 & n, n = 0, s = 0) : n <<= 6 } } switch (s) { case 1:throw new Error('Base64 encoding incomplete: at least 2 bits missing'); case 2:r[r.length] = n >> 10; break; case 3:r[r.length] = n >> 16, r[r.length] = n >> 8 & 255 } return r }, re: /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/, unarmor: function(t) { var e = g.re.exec(t); if (e) if (e[1])t = e[1]; else { if (!e[2]) throw new Error('RegExp out of sync'); t = e[2] } return g.decode(t) } }, d = 1e13, v = (function() { function t(t) { this.buf = [+t || 0] } return t.prototype.mulAdd = function(t, e) { var i, r, n = this.buf, s = n.length; for (i = 0; i < s; ++i)(r = n[i] * t + e) < d ? e = 0 : r -= (e = 0 | r / d) * d, n[i] = r; e > 0 && (n[i] = e) }, t.prototype.sub = function(t) { var e, i, r = this.buf, n = r.length; for (e = 0; e < n; ++e)(i = r[e] - t) < 0 ? (i += d, t = 1) : t = 0, r[e] = i; for (;r[r.length - 1] === 0;)r.pop() }, t.prototype.toString = function(t) { if ((t || 10) != 10) throw new Error('only base 10 is supported'); for (var e = this.buf, i = e[e.length - 1].toString(), r = e.length - 2; r >= 0; --r)i += (d + e[r]).toString().substring(1); return i }, t.prototype.valueOf = function() { for (var t = this.buf, e = 0, i = t.length - 1; i >= 0; --i)e = e * d + t[i]; return e }, t.prototype.simplify = function() { var t = this.buf; return t.length == 1 ? t[0] : this }, t }()), m = /^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/, y = /^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/; function b(t, e) { return t.length > e && (t = t.substring(0, e) + '…'), t } var T, S = (function() { function t(e, i) { this.hexDigits = '0123456789ABCDEF', e instanceof t ? (this.enc = e.enc, this.pos = e.pos) : (this.enc = e, this.pos = i) } return t.prototype.get = function(t) { if (void 0 === t && (t = this.pos++), t >= this.enc.length) throw new Error('Requesting byte offset '.concat(t, ' on a stream of length ').concat(this.enc.length)); return typeof this.enc == 'string' ? this.enc.charCodeAt(t) : this.enc[t] }, t.prototype.hexByte = function(t) { return this.hexDigits.charAt(t >> 4 & 15) + this.hexDigits.charAt(15 & t) }, t.prototype.hexDump = function(t, e, i) { for (var r = '', n = t; n < e; ++n) if (r += this.hexByte(this.get(n)), !0 !== i) switch (15 & n) { case 7:r += ' '; break; case 15:r += '\n'; break; default:r += ' ' } return r }, t.prototype.isASCII = function(t, e) { for (var i = t; i < e; ++i) { var r = this.get(i); if (r < 32 || r > 176) return !1 } return !0 }, t.prototype.parseStringISO = function(t, e) { for (var i = '', r = t; r < e; ++r)i += String.fromCharCode(this.get(r)); return i }, t.prototype.parseStringUTF = function(t, e) { for (var i = '', r = t; r < e;) { var n = this.get(r++); i += n < 128 ? String.fromCharCode(n) : n > 191 && n < 224 ? String.fromCharCode((31 & n) << 6 | 63 & this.get(r++)) : String.fromCharCode((15 & n) << 12 | (63 & this.get(r++)) << 6 | 63 & this.get(r++)) } return i }, t.prototype.parseStringBMP = function(t, e) { for (var i, r, n = '', s = t; s < e;)i = this.get(s++), r = this.get(s++), n += String.fromCharCode(i << 8 | r); return n }, t.prototype.parseTime = function(t, e, i) { var r = this.parseStringISO(t, e), n = (i ? m : y).exec(r); return n ? (i && (n[1] = +n[1], n[1] += +n[1] < 70 ? 2e3 : 1900), r = n[1] + '-' + n[2] + '-' + n[3] + ' ' + n[4], n[5] && (r += ':' + n[5], n[6] && (r += ':' + n[6], n[7] && (r += '.' + n[7]))), n[8] && (r += ' UTC', n[8] != 'Z' && (r += n[8], n[9] && (r += ':' + n[9]))), r) : 'Unrecognized time: ' + r }, t.prototype.parseInteger = function(t, e) { for (var i, r = this.get(t), n = r > 127, s = n ? 255 : 0, o = ''; r == s && ++t < e;)r = this.get(t); if ((i = e - t) == 0) return n ? -1 : 0; if (i > 4) { for (o = r, i <<= 3; (128 & (+o ^ s)) == 0;)o = +o << 1, --i; o = '(' + i + ' bit)\n' }n && (r -= 256); for (var h = new v(r), a = t + 1; a < e; ++a)h.mulAdd(256, this.get(a)); return o + h.toString() }, t.prototype.parseBitString = function(t, e, i) { for (var r = this.get(t), n = '(' + ((e - t - 1 << 3) - r) + ' bit)\n', s = '', o = t + 1; o < e; ++o) { for (var h = this.get(o), a = o == e - 1 ? r : 0, u = 7; u >= a; --u)s += h >> u & 1 ? '1' : '0'; if (s.length > i) return n + b(s, i) } return n + s }, t.prototype.parseOctetString = function(t, e, i) { if (this.isASCII(t, e)) return b(this.parseStringISO(t, e), i); var r = e - t, n = '(' + r + ' byte)\n'; r > (i /= 2) && (e = t + i); for (var s = t; s < e; ++s)n += this.hexByte(this.get(s)); return r > i && (n += '…'), n }, t.prototype.parseOID = function(t, e, i) { for (var r = '', n = new v(), s = 0, o = t; o < e; ++o) { var h = this.get(o); if (n.mulAdd(128, 127 & h), s += 7, !(128 & h)) { if (r === '') if ((n = n.simplify()) instanceof v)n.sub(80), r = '2.' + n.toString(); else { var a = n < 80 ? n < 40 ? 0 : 1 : 2; r = a + '.' + (n - 40 * a) } else r += '.' + n.toString(); if (r.length > i) return b(r, i); n = new v(), s = 0 } } return s > 0 && (r += '.incomplete'), r }, t }()), E = (function() { function t(t, e, i, r, n) { if (!(r instanceof w)) throw new Error('Invalid tag value.'); this.stream = t, this.header = e, this.length = i, this.tag = r, this.sub = n } return t.prototype.typeName = function() { switch (this.tag.tagClass) { case 0:switch (this.tag.tagNumber) { case 0:return 'EOC'; case 1:return 'BOOLEAN'; case 2:return 'INTEGER'; case 3:return 'BIT_STRING'; case 4:return 'OCTET_STRING'; case 5:return 'NULL'; case 6:return 'OBJECT_IDENTIFIER'; case 7:return 'ObjectDescriptor'; case 8:return 'EXTERNAL'; case 9:return 'REAL'; case 10:return 'ENUMERATED'; case 11:return 'EMBEDDED_PDV'; case 12:return 'UTF8String'; case 16:return 'SEQUENCE'; case 17:return 'SET'; case 18:return 'NumericString'; case 19:return 'PrintableString'; case 20:return 'TeletexString'; case 21:return 'VideotexString'; case 22:return 'IA5String'; case 23:return 'UTCTime'; case 24:return 'GeneralizedTime'; case 25:return 'GraphicString'; case 26:return 'VisibleString'; case 27:return 'GeneralString'; case 28:return 'UniversalString'; case 30:return 'BMPString' } return 'Universal_' + this.tag.tagNumber.toString(); case 1:return 'Application_' + this.tag.tagNumber.toString(); case 2:return '[' + this.tag.tagNumber.toString() + ']'; case 3:return 'Private_' + this.tag.tagNumber.toString() } }, t.prototype.content = function(t) { if (void 0 === this.tag) return null; void 0 === t && (t = 1 / 0); var e = this.posContent(), i = Math.abs(this.length); if (!this.tag.isUniversal()) return this.sub !== null ? '(' + this.sub.length + ' elem)' : this.stream.parseOctetString(e, e + i, t); switch (this.tag.tagNumber) { case 1:return this.stream.get(e) === 0 ? 'false' : 'true'; case 2:return this.stream.parseInteger(e, e + i); case 3:return this.sub ? '(' + this.sub.length + ' elem)' : this.stream.parseBitString(e, e + i, t); case 4:return this.sub ? '(' + this.sub.length + ' elem)' : this.stream.parseOctetString(e, e + i, t); case 6:return this.stream.parseOID(e, e + i, t); case 16:case 17:return this.sub !== null ? '(' + this.sub.length + ' elem)' : '(no elem)'; case 12:return b(this.stream.parseStringUTF(e, e + i), t); case 18:case 19:case 20:case 21:case 22:case 26:return b(this.stream.parseStringISO(e, e + i), t); case 30:return b(this.stream.parseStringBMP(e, e + i), t); case 23:case 24:return this.stream.parseTime(e, e + i, this.tag.tagNumber == 23) } return null }, t.prototype.toString = function() { return this.typeName() + '@' + this.stream.pos + '[header:' + this.header + ',length:' + this.length + ',sub:' + (this.sub === null ? 'null' : this.sub.length) + ']' }, t.prototype.toPrettyString = function(t) { void 0 === t && (t = ''); var e = t + this.typeName() + ' @' + this.stream.pos; if (this.length >= 0 && (e += '+'), e += this.length, this.tag.tagConstructed ? e += ' (constructed)' : !this.tag.isUniversal() || this.tag.tagNumber != 3 && this.tag.tagNumber != 4 || this.sub === null || (e += ' (encapsulates)'), e += '\n', this.sub !== null) { t += ' '; for (var i = 0, r = this.sub.length; i < r; ++i)e += this.sub[i].toPrettyString(t) } return e }, t.prototype.posStart = function() { return this.stream.pos }, t.prototype.posContent = function() { return this.stream.pos + this.header }, t.prototype.posEnd = function() { return this.stream.pos + this.header + Math.abs(this.length) }, t.prototype.toHexString = function() { return this.stream.hexDump(this.posStart(), this.posEnd(), !0) }, t.decodeLength = function(t) { var e = t.get(), i = 127 & e; if (i == e) return i; if (i > 6) throw new Error('Length over 48 bits not supported at position ' + (t.pos - 1)); if (i === 0) return null; e = 0; for (var r = 0; r < i; ++r)e = 256 * e + t.get(); return e }, t.prototype.getHexStringValue = function() { var t = this.toHexString(), e = 2 * this.header, i = 2 * this.length; return t.substr(e, i) }, t.decode = function(e) { var i; i = e instanceof S ? e : new S(e, 0); var r = new S(i), n = new w(i), s = t.decodeLength(i), o = i.pos, h = o - r.pos, a = null, u = function() { var e = []; if (s !== null) { for (var r = o + s; i.pos < r;)e[e.length] = t.decode(i); if (i.pos != r) throw new Error('Content size is not correct for container starting at offset ' + o) } else try { for (;;) { var n = t.decode(i); if (n.tag.isEOC()) break; e[e.length] = n }s = o - i.pos } catch (t) { throw new Error('Exception while decoding undefined length content: ' + t) } return e }; if (n.tagConstructed)a = u(); else if (n.isUniversal() && (n.tagNumber == 3 || n.tagNumber == 4)) try { if (n.tagNumber == 3 && i.get() != 0) throw new Error('BIT STRINGs with unused bits cannot encapsulate.'); a = u(); for (var c = 0; c < a.length; ++c) if (a[c].tag.isEOC()) throw new Error('EOC is not supposed to be actual content.') } catch (t) { a = null } if (a === null) { if (s === null) throw new Error("We can't skip over an invalid tag with undefined length at offset " + o); i.pos = o + Math.abs(s) } return new t(r, h, s, n, a) }, t }()), w = (function() { function t(t) { var e = t.get(); if (this.tagClass = e >> 6, this.tagConstructed = (32 & e) != 0, this.tagNumber = 31 & e, this.tagNumber == 31) { var i = new v(); do { e = t.get(), i.mulAdd(128, 127 & e) } while (128 & e);this.tagNumber = i.simplify() } } return t.prototype.isUniversal = function() { return this.tagClass === 0 }, t.prototype.isEOC = function() { return this.tagClass === 0 && this.tagNumber === 0 }, t }()), D = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997], x = (1 << 26) / D[D.length - 1], R = (function() { function i(t, e, i) { t != null && (typeof t == 'number' ? this.fromNumber(t, e, i) : e == null && typeof t != 'string' ? this.fromString(t, 256) : this.fromString(t, e)) } return i.prototype.toString = function(e) { if (this.s < 0) return '-' + this.negate().toString(e); var i; if (e == 16)i = 4; else if (e == 8)i = 3; else if (e == 2)i = 1; else if (e == 32)i = 5; else { if (e != 4) return this.toRadix(e); i = 2 } var r, n = (1 << i) - 1, s = !1, o = '', h = this.t, a = this.DB - h * this.DB % i; if (h-- > 0) for (a < this.DB && (r = this[h] >> a) > 0 && (s = !0, o = t(r)); h >= 0;)a < i ? (r = (this[h] & (1 << a) - 1) << i - a, r |= this[--h] >> (a += this.DB - i)) : (r = this[h] >> (a -= i) & n, a <= 0 && (a += this.DB, --h)), r > 0 && (s = !0), s && (o += t(r)); return s ? o : '0' }, i.prototype.negate = function() { var t = I(); return i.ZERO.subTo(this, t), t }, i.prototype.abs = function() { return this.s < 0 ? this.negate() : this }, i.prototype.compareTo = function(t) { var e = this.s - t.s; if (e != 0) return e; var i = this.t; if ((e = i - t.t) != 0) return this.s < 0 ? -e : e; for (;--i >= 0;) if ((e = this[i] - t[i]) != 0) return e; return 0 }, i.prototype.bitLength = function() { return this.t <= 0 ? 0 : this.DB * (this.t - 1) + C(this[this.t - 1] ^ this.s & this.DM) }, i.prototype.mod = function(t) { var e = I(); return this.abs().divRemTo(t, null, e), this.s < 0 && e.compareTo(i.ZERO) > 0 && t.subTo(e, e), e }, i.prototype.modPowInt = function(t, e) { var i; return i = t < 256 || e.isEven() ? new O(e) : new A(e), this.exp(t, i) }, i.prototype.clone = function() { var t = I(); return this.copyTo(t), t }, i.prototype.intValue = function() { if (this.s < 0) { if (this.t == 1) return this[0] - this.DV; if (this.t == 0) return -1 } else { if (this.t == 1) return this[0]; if (this.t == 0) return 0 } return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0] }, i.prototype.byteValue = function() { return this.t == 0 ? this.s : this[0] << 24 >> 24 }, i.prototype.shortValue = function() { return this.t == 0 ? this.s : this[0] << 16 >> 16 }, i.prototype.signum = function() { return this.s < 0 ? -1 : this.t <= 0 || this.t == 1 && this[0] <= 0 ? 0 : 1 }, i.prototype.toByteArray = function() { var t = this.t, e = []; e[0] = this.s; var i, r = this.DB - t * this.DB % 8, n = 0; if (t-- > 0) for (r < this.DB && (i = this[t] >> r) != (this.s & this.DM) >> r && (e[n++] = i | this.s << this.DB - r); t >= 0;)r < 8 ? (i = (this[t] & (1 << r) - 1) << 8 - r, i |= this[--t] >> (r += this.DB - 8)) : (i = this[t] >> (r -= 8) & 255, r <= 0 && (r += this.DB, --t)), (128 & i) != 0 && (i |= -256), n == 0 && (128 & this.s) != (128 & i) && ++n, (n > 0 || i != this.s) && (e[n++] = i); return e }, i.prototype.equals = function(t) { return this.compareTo(t) == 0 }, i.prototype.min = function(t) { return this.compareTo(t) < 0 ? this : t }, i.prototype.max = function(t) { return this.compareTo(t) > 0 ? this : t }, i.prototype.and = function(t) { var i = I(); return this.bitwiseTo(t, e, i), i }, i.prototype.or = function(t) { var e = I(); return this.bitwiseTo(t, n, e), e }, i.prototype.xor = function(t) { var e = I(); return this.bitwiseTo(t, s, e), e }, i.prototype.andNot = function(t) { var e = I(); return this.bitwiseTo(t, o, e), e }, i.prototype.not = function() { for (var t = I(), e = 0; e < this.t; ++e)t[e] = this.DM & ~this[e]; return t.t = this.t, t.s = ~this.s, t }, i.prototype.shiftLeft = function(t) { var e = I(); return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e), e }, i.prototype.shiftRight = function(t) { var e = I(); return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e), e }, i.prototype.getLowestSetBit = function() { for (var t = 0; t < this.t; ++t) if (this[t] != 0) return t * this.DB + h(this[t]); return this.s < 0 ? this.t * this.DB : -1 }, i.prototype.bitCount = function() { for (var t = 0, e = this.s & this.DM, i = 0; i < this.t; ++i)t += a(this[i] ^ e); return t }, i.prototype.testBit = function(t) { var e = Math.floor(t / this.DB); return e >= this.t ? this.s != 0 : (this[e] & 1 << t % this.DB) != 0 }, i.prototype.setBit = function(t) { return this.changeBit(t, n) }, i.prototype.clearBit = function(t) { return this.changeBit(t, o) }, i.prototype.flipBit = function(t) { return this.changeBit(t, s) }, i.prototype.add = function(t) { var e = I(); return this.addTo(t, e), e }, i.prototype.subtract = function(t) { var e = I(); return this.subTo(t, e), e }, i.prototype.multiply = function(t) { var e = I(); return this.multiplyTo(t, e), e }, i.prototype.divide = function(t) { var e = I(); return this.divRemTo(t, e, null), e }, i.prototype.remainder = function(t) { var e = I(); return this.divRemTo(t, null, e), e }, i.prototype.divideAndRemainder = function(t) { var e = I(), i = I(); return this.divRemTo(t, e, i), [e, i] }, i.prototype.modPow = function(t, e) { var i, r, n = t.bitLength(), s = H(1); if (n <= 0) return s; i = n < 18 ? 1 : n < 48 ? 3 : n < 144 ? 4 : n < 768 ? 5 : 6, r = n < 8 ? new O(e) : e.isEven() ? new V(e) : new A(e); var o = [], h = 3, a = i - 1, u = (1 << i) - 1; if (o[1] = r.convert(this), i > 1) { var c = I(); for (r.sqrTo(o[1], c); h <= u;)o[h] = I(), r.mulTo(c, o[h - 2], o[h]), h += 2 } var f, l, p = t.t - 1, g = !0, d = I(); for (n = C(t[p]) - 1; p >= 0;) { for (n >= a ? f = t[p] >> n - a & u : (f = (t[p] & (1 << n + 1) - 1) << a - n, p > 0 && (f |= t[p - 1] >> this.DB + n - a)), h = i; (1 & f) == 0;)f >>= 1, --h; if ((n -= h) < 0 && (n += this.DB, --p), g)o[f].copyTo(s), g = !1; else { for (;h > 1;)r.sqrTo(s, d), r.sqrTo(d, s), h -= 2; h > 0 ? r.sqrTo(s, d) : (l = s, s = d, d = l), r.mulTo(d, o[f], s) } for (;p >= 0 && (t[p] & 1 << n) == 0;)r.sqrTo(s, d), l = s, s = d, d = l, --n < 0 && (n = this.DB - 1, --p) } return r.revert(s) }, i.prototype.modInverse = function(t) { var e = t.isEven(); if (this.isEven() && e || t.signum() == 0) return i.ZERO; for (var r = t.clone(), n = this.clone(), s = H(1), o = H(0), h = H(0), a = H(1); r.signum() != 0;) { for (;r.isEven();)r.rShiftTo(1, r), e ? (s.isEven() && o.isEven() || (s.addTo(this, s), o.subTo(t, o)), s.rShiftTo(1, s)) : o.isEven() || o.subTo(t, o), o.rShiftTo(1, o); for (;n.isEven();)n.rShiftTo(1, n), e ? (h.isEven() && a.isEven() || (h.addTo(this, h), a.subTo(t, a)), h.rShiftTo(1, h)) : a.isEven() || a.subTo(t, a), a.rShiftTo(1, a); r.compareTo(n) >= 0 ? (r.subTo(n, r), e && s.subTo(h, s), o.subTo(a, o)) : (n.subTo(r, n), e && h.subTo(s, h), a.subTo(o, a)) } return n.compareTo(i.ONE) != 0 ? i.ZERO : a.compareTo(t) >= 0 ? a.subtract(t) : a.signum() < 0 ? (a.addTo(t, a), a.signum() < 0 ? a.add(t) : a) : a }, i.prototype.pow = function(t) { return this.exp(t, new B()) }, i.prototype.gcd = function(t) { var e = this.s < 0 ? this.negate() : this.clone(), i = t.s < 0 ? t.negate() : t.clone(); if (e.compareTo(i) < 0) { var r = e; e = i, i = r } var n = e.getLowestSetBit(), s = i.getLowestSetBit(); if (s < 0) return e; for (n < s && (s = n), s > 0 && (e.rShiftTo(s, e), i.rShiftTo(s, i)); e.signum() > 0;)(n = e.getLowestSetBit()) > 0 && e.rShiftTo(n, e), (n = i.getLowestSetBit()) > 0 && i.rShiftTo(n, i), e.compareTo(i) >= 0 ? (e.subTo(i, e), e.rShiftTo(1, e)) : (i.subTo(e, i), i.rShiftTo(1, i)); return s > 0 && i.lShiftTo(s, i), i }, i.prototype.isProbablePrime = function(t) { var e, i = this.abs(); if (i.t == 1 && i[0] <= D[D.length - 1]) { for (e = 0; e < D.length; ++e) if (i[0] == D[e]) return !0; return !1 } if (i.isEven()) return !1; for (e = 1; e < D.length;) { for (var r = D[e], n = e + 1; n < D.length && r < x;)r *= D[n++]; for (r = i.modInt(r); e < n;) if (r % D[e++] == 0) return !1 } return i.millerRabin(t) }, i.prototype.copyTo = function(t) { for (var e = this.t - 1; e >= 0; --e)t[e] = this[e]; t.t = this.t, t.s = this.s }, i.prototype.fromInt = function(t) { this.t = 1, this.s = t < 0 ? -1 : 0, t > 0 ? this[0] = t : t < -1 ? this[0] = t + this.DV : this.t = 0 }, i.prototype.fromString = function(t, e) { var r; if (e == 16)r = 4; else if (e == 8)r = 3; else if (e == 256)r = 8; else if (e == 2)r = 1; else if (e == 32)r = 5; else { if (e != 4) return void this.fromRadix(t, e); r = 2 } this.t = 0, this.s = 0; for (var n = t.length, s = !1, o = 0; --n >= 0;) { var h = r == 8 ? 255 & +t[n] : q(t, n); h < 0 ? t.charAt(n) == '-' && (s = !0) : (s = !1, o == 0 ? this[this.t++] = h : o + r > this.DB ? (this[this.t - 1] |= (h & (1 << this.DB - o) - 1) << o, this[this.t++] = h >> this.DB - o) : this[this.t - 1] |= h << o, (o += r) >= this.DB && (o -= this.DB)) }r == 8 && (128 & +t[0]) != 0 && (this.s = -1, o > 0 && (this[this.t - 1] |= (1 << this.DB - o) - 1 << o)), this.clamp(), s && i.ZERO.subTo(this, this) }, i.prototype.clamp = function() { for (var t = this.s & this.DM; this.t > 0 && this[this.t - 1] == t;)--this.t }, i.prototype.dlShiftTo = function(t, e) { var i; for (i = this.t - 1; i >= 0; --i)e[i + t] = this[i]; for (i = t - 1; i >= 0; --i)e[i] = 0; e.t = this.t + t, e.s = this.s }, i.prototype.drShiftTo = function(t, e) { for (var i = t; i < this.t; ++i)e[i - t] = this[i]; e.t = Math.max(this.t - t, 0), e.s = this.s }, i.prototype.lShiftTo = function(t, e) { for (var i = t % this.DB, r = this.DB - i, n = (1 << r) - 1, s = Math.floor(t / this.DB), o = this.s << i & this.DM, h = this.t - 1; h >= 0; --h)e[h + s + 1] = this[h] >> r | o, o = (this[h] & n) << i; for (h = s - 1; h >= 0; --h)e[h] = 0; e[s] = o, e.t = this.t + s + 1, e.s = this.s, e.clamp() }, i.prototype.rShiftTo = function(t, e) { e.s = this.s; var i = Math.floor(t / this.DB); if (i >= this.t)e.t = 0; else { var r = t % this.DB, n = this.DB - r, s = (1 << r) - 1; e[0] = this[i] >> r; for (var o = i + 1; o < this.t; ++o)e[o - i - 1] |= (this[o] & s) << n, e[o - i] = this[o] >> r; r > 0 && (e[this.t - i - 1] |= (this.s & s) << n), e.t = this.t - i, e.clamp() } }, i.prototype.subTo = function(t, e) { for (var i = 0, r = 0, n = Math.min(t.t, this.t); i < n;)r += this[i] - t[i], e[i++] = r & this.DM, r >>= this.DB; if (t.t < this.t) { for (r -= t.s; i < this.t;)r += this[i], e[i++] = r & this.DM, r >>= this.DB; r += this.s } else { for (r += this.s; i < t.t;)r -= t[i], e[i++] = r & this.DM, r >>= this.DB; r -= t.s }e.s = r < 0 ? -1 : 0, r < -1 ? e[i++] = this.DV + r : r > 0 && (e[i++] = r), e.t = i, e.clamp() }, i.prototype.multiplyTo = function(t, e) { var r = this.abs(), n = t.abs(), s = r.t; for (e.t = s + n.t; --s >= 0;)e[s] = 0; for (s = 0; s < n.t; ++s)e[s + r.t] = r.am(0, n[s], e, s, 0, r.t); e.s = 0, e.clamp(), this.s != t.s && i.ZERO.subTo(e, e) }, i.prototype.squareTo = function(t) { for (var e = this.abs(), i = t.t = 2 * e.t; --i >= 0;)t[i] = 0; for (i = 0; i < e.t - 1; ++i) { var r = e.am(i, e[i], t, 2 * i, 0, 1); (t[i + e.t] += e.am(i + 1, 2 * e[i], t, 2 * i + 1, r, e.t - i - 1)) >= e.DV && (t[i + e.t] -= e.DV, t[i + e.t + 1] = 1) }t.t > 0 && (t[t.t - 1] += e.am(i, e[i], t, 2 * i, 0, 1)), t.s = 0, t.clamp() }, i.prototype.divRemTo = function(t, e, r) { var n = t.abs(); if (!(n.t <= 0)) { var s = this.abs(); if (s.t < n.t) return e != null && e.fromInt(0), void (r != null && this.copyTo(r)); r == null && (r = I()); var o = I(), h = this.s, a = t.s, u = this.DB - C(n[n.t - 1]); u > 0 ? (n.lShiftTo(u, o), s.lShiftTo(u, r)) : (n.copyTo(o), s.copyTo(r)); var c = o.t, f = o[c - 1]; if (f != 0) { var l = f * (1 << this.F1) + (c > 1 ? o[c - 2] >> this.F2 : 0), p = this.FV / l, g = (1 << this.F1) / l, d = 1 << this.F2, v = r.t, m = v - c, y = e == null ? I() : e; for (o.dlShiftTo(m, y), r.compareTo(y) >= 0 && (r[r.t++] = 1, r.subTo(y, r)), i.ONE.dlShiftTo(c, y), y.subTo(o, o); o.t < c;)o[o.t++] = 0; for (;--m >= 0;) { var b = r[--v] == f ? this.DM : Math.floor(r[v] * p + (r[v - 1] + d) * g); if ((r[v] += o.am(0, b, r, m, 0, c)) < b) for (o.dlShiftTo(m, y), r.subTo(y, r); r[v] < --b;)r.subTo(y, r) }e != null && (r.drShiftTo(c, e), h != a && i.ZERO.subTo(e, e)), r.t = c, r.clamp(), u > 0 && r.rShiftTo(u, r), h < 0 && i.ZERO.subTo(r, r) } } }, i.prototype.invDigit = function() { if (this.t < 1) return 0; var t = this[0]; if ((1 & t) == 0) return 0; var e = 3 & t; return (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) > 0 ? this.DV - e : -e }, i.prototype.isEven = function() { return (this.t > 0 ? 1 & this[0] : this.s) == 0 }, i.prototype.exp = function(t, e) { if (t > 4294967295 || t < 1) return i.ONE; var r = I(), n = I(), s = e.convert(this), o = C(t) - 1; for (s.copyTo(r); --o >= 0;) if (e.sqrTo(r, n), (t & 1 << o) > 0)e.mulTo(n, s, r); else { var h = r; r = n, n = h } return e.revert(r) }, i.prototype.chunkSize = function(t) { return Math.floor(Math.LN2 * this.DB / Math.log(t)) }, i.prototype.toRadix = function(t) { if (t == null && (t = 10), this.signum() == 0 || t < 2 || t > 36) return '0'; var e = this.chunkSize(t), i = Math.pow(t, e), r = H(i), n = I(), s = I(), o = ''; for (this.divRemTo(r, n, s); n.signum() > 0;)o = (i + s.intValue()).toString(t).substr(1) + o, n.divRemTo(r, n, s); return s.intValue().toString(t) + o }, i.prototype.fromRadix = function(t, e) { this.fromInt(0), e == null && (e = 10); for (var r = this.chunkSize(e), n = Math.pow(e, r), s = !1, o = 0, h = 0, a = 0; a < t.length; ++a) { var u = q(t, a); u < 0 ? t.charAt(a) == '-' && this.signum() == 0 && (s = !0) : (h = e * h + u, ++o >= r && (this.dMultiply(n), this.dAddOffset(h, 0), o = 0, h = 0)) }o > 0 && (this.dMultiply(Math.pow(e, o)), this.dAddOffset(h, 0)), s && i.ZERO.subTo(this, this) }, i.prototype.fromNumber = function(t, e, r) { if (typeof e == 'number') if (t < 2) this.fromInt(1); else for (this.fromNumber(t, r), this.testBit(t - 1) || this.bitwiseTo(i.ONE.shiftLeft(t - 1), n, this), this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(e);) this.dAddOffset(2, 0), this.bitLength() > t && this.subTo(i.ONE.shiftLeft(t - 1), this); else { var s = [], o = 7 & t; s.length = 1 + (t >> 3), e.nextBytes(s), o > 0 ? s[0] &= (1 << o) - 1 : s[0] = 0, this.fromString(s, 256) } }, i.prototype.bitwiseTo = function(t, e, i) { var r, n, s = Math.min(t.t, this.t); for (r = 0; r < s; ++r)i[r] = e(this[r], t[r]); if (t.t < this.t) { for (n = t.s & this.DM, r = s; r < this.t; ++r)i[r] = e(this[r], n); i.t = this.t } else { for (n = this.s & this.DM, r = s; r < t.t; ++r)i[r] = e(n, t[r]); i.t = t.t }i.s = e(this.s, t.s), i.clamp() }, i.prototype.changeBit = function(t, e) { var r = i.ONE.shiftLeft(t); return this.bitwiseTo(r, e, r), r }, i.prototype.addTo = function(t, e) { for (var i = 0, r = 0, n = Math.min(t.t, this.t); i < n;)r += this[i] + t[i], e[i++] = r & this.DM, r >>= this.DB; if (t.t < this.t) { for (r += t.s; i < this.t;)r += this[i], e[i++] = r & this.DM, r >>= this.DB; r += this.s } else { for (r += this.s; i < t.t;)r += t[i], e[i++] = r & this.DM, r >>= this.DB; r += t.s }e.s = r < 0 ? -1 : 0, r > 0 ? e[i++] = r : r < -1 && (e[i++] = this.DV + r), e.t = i, e.clamp() }, i.prototype.dMultiply = function(t) { this[this.t] = this.am(0, t - 1, this, 0, 0, this.t), ++this.t, this.clamp() }, i.prototype.dAddOffset = function(t, e) { if (t != 0) { for (;this.t <= e;) this[this.t++] = 0; for (this[e] += t; this[e] >= this.DV;) this[e] -= this.DV, ++e >= this.t && (this[this.t++] = 0), ++this[e] } }, i.prototype.multiplyLowerTo = function(t, e, i) { var r = Math.min(this.t + t.t, e); for (i.s = 0, i.t = r; r > 0;)i[--r] = 0; for (var n = i.t - this.t; r < n; ++r)i[r + this.t] = this.am(0, t[r], i, r, 0, this.t); for (n = Math.min(t.t, e); r < n; ++r) this.am(0, t[r], i, r, 0, e - r); i.clamp() }, i.prototype.multiplyUpperTo = function(t, e, i) { --e; var r = i.t = this.t + t.t - e; for (i.s = 0; --r >= 0;)i[r] = 0; for (r = Math.max(e - this.t, 0); r < t.t; ++r)i[this.t + r - e] = this.am(e - r, t[r], i, 0, 0, this.t + r - e); i.clamp(), i.drShiftTo(1, i) }, i.prototype.modInt = function(t) { if (t <= 0) return 0; var e = this.DV % t, i = this.s < 0 ? t - 1 : 0; if (this.t > 0) if (e == 0)i = this[0] % t; else for (var r = this.t - 1; r >= 0; --r)i = (e * i + this[r]) % t; return i }, i.prototype.millerRabin = function(t) { var e = this.subtract(i.ONE), r = e.getLowestSetBit(); if (r <= 0) return !1; var n = e.shiftRight(r); (t = t + 1 >> 1) > D.length && (t = D.length); for (var s = I(), o = 0; o < t; ++o) { s.fromInt(D[Math.floor(Math.random() * D.length)]); var h = s.modPow(n, this); if (h.compareTo(i.ONE) != 0 && h.compareTo(e) != 0) { for (var a = 1; a++ < r && h.compareTo(e) != 0;) if ((h = h.modPowInt(2, this)).compareTo(i.ONE) == 0) return !1; if (h.compareTo(e) != 0) return !1 } } return !0 }, i.prototype.square = function() { var t = I(); return this.squareTo(t), t }, i.prototype.gcda = function(t, e) { var i = this.s < 0 ? this.negate() : this.clone(), r = t.s < 0 ? t.negate() : t.clone(); if (i.compareTo(r) < 0) { var n = i; i = r, r = n } var s = i.getLowestSetBit(), o = r.getLowestSetBit(); if (o < 0)e(i); else { s < o && (o = s), o > 0 && (i.rShiftTo(o, i), r.rShiftTo(o, r)); var h = function() { (s = i.getLowestSetBit()) > 0 && i.rShiftTo(s, i), (s = r.getLowestSetBit()) > 0 && r.rShiftTo(s, r), i.compareTo(r) >= 0 ? (i.subTo(r, i), i.rShiftTo(1, i)) : (r.subTo(i, r), r.rShiftTo(1, r)), i.signum() > 0 ? setTimeout(h, 0) : (o > 0 && r.lShiftTo(o, r), setTimeout(function() { e(r) }, 0)) }; setTimeout(h, 10) } }, i.prototype.fromNumberAsync = function(t, e, r, s) { if (typeof e == 'number') if (t < 2) this.fromInt(1); else { this.fromNumber(t, r), this.testBit(t - 1) || this.bitwiseTo(i.ONE.shiftLeft(t - 1), n, this), this.isEven() && this.dAddOffset(1, 0); var o = this, h = function() { o.dAddOffset(2, 0), o.bitLength() > t && o.subTo(i.ONE.shiftLeft(t - 1), o), o.isProbablePrime(e) ? setTimeout(function() { s() }, 0) : setTimeout(h, 0) }; setTimeout(h, 0) } else { var a = [], u = 7 & t; a.length = 1 + (t >> 3), e.nextBytes(a), u > 0 ? a[0] &= (1 << u) - 1 : a[0] = 0, this.fromString(a, 256) } }, i }()), B = (function() { function t() {} return t.prototype.convert = function(t) { return t }, t.prototype.revert = function(t) { return t }, t.prototype.mulTo = function(t, e, i) { t.multiplyTo(e, i) }, t.prototype.sqrTo = function(t, e) { t.squareTo(e) }, t }()), O = (function() { function t(t) { this.m = t } return t.prototype.convert = function(t) { return t.s < 0 || t.compareTo(this.m) >= 0 ? t.mod(this.m) : t }, t.prototype.revert = function(t) { return t }, t.prototype.reduce = function(t) { t.divRemTo(this.m, null, t) }, t.prototype.mulTo = function(t, e, i) { t.multiplyTo(e, i), this.reduce(i) }, t.prototype.sqrTo = function(t, e) { t.squareTo(e), this.reduce(e) }, t }()), A = (function() { function t(t) { this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t } return t.prototype.convert = function(t) { var e = I(); return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && e.compareTo(R.ZERO) > 0 && this.m.subTo(e, e), e }, t.prototype.revert = function(t) { var e = I(); return t.copyTo(e), this.reduce(e), e }, t.prototype.reduce = function(t) { for (;t.t <= this.mt2;)t[t.t++] = 0; for (var e = 0; e < this.m.t; ++e) { var i = 32767 & t[e], r = i * this.mpl + ((i * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM; for (t[i = e + this.m.t] += this.m.am(0, r, t, e, 0, this.m.t); t[i] >= t.DV;)t[i] -= t.DV, t[++i]++ }t.clamp(), t.drShiftTo(this.m.t, t), t.compareTo(this.m) >= 0 && t.subTo(this.m, t) }, t.prototype.mulTo = function(t, e, i) { t.multiplyTo(e, i), this.reduce(i) }, t.prototype.sqrTo = function(t, e) { t.squareTo(e), this.reduce(e) }, t }()), V = (function() { function t(t) { this.m = t, this.r2 = I(), this.q3 = I(), R.ONE.dlShiftTo(2 * t.t, this.r2), this.mu = this.r2.divide(t) } return t.prototype.convert = function(t) { if (t.s < 0 || t.t > 2 * this.m.t) return t.mod(this.m); if (t.compareTo(this.m) < 0) return t; var e = I(); return t.copyTo(e), this.reduce(e), e }, t.prototype.revert = function(t) { return t }, t.prototype.reduce = function(t) { for (t.drShiftTo(this.m.t - 1, this.r2), t.t > this.m.t + 1 && (t.t = this.m.t + 1, t.clamp()), this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); t.compareTo(this.r2) < 0;)t.dAddOffset(1, this.m.t + 1); for (t.subTo(this.r2, t); t.compareTo(this.m) >= 0;)t.subTo(this.m, t) }, t.prototype.mulTo = function(t, e, i) { t.multiplyTo(e, i), this.reduce(i) }, t.prototype.sqrTo = function(t, e) { t.squareTo(e), this.reduce(e) }, t }()); function I() { return new R(null) } function N(t, e) { return new R(t, e) } var P = typeof navigator != 'undefined'; P && navigator.appName == 'Microsoft Internet Explorer' ? (R.prototype.am = function(t, e, i, r, n, s) { for (var o = 32767 & e, h = e >> 15; --s >= 0;) { var a = 32767 & this[t], u = this[t++] >> 15, c = h * a + u * o; n = ((a = o * a + ((32767 & c) << 15) + i[r] + (1073741823 & n)) >>> 30) + (c >>> 15) + h * u + (n >>> 30), i[r++] = 1073741823 & a } return n }, T = 30) : P && navigator.appName != 'Netscape' ? (R.prototype.am = function(t, e, i, r, n, s) { for (;--s >= 0;) { var o = e * this[t++] + i[r] + n; n = Math.floor(o / 67108864), i[r++] = 67108863 & o } return n }, T = 26) : (R.prototype.am = function(t, e, i, r, n, s) { for (var o = 16383 & e, h = e >> 14; --s >= 0;) { var a = 16383 & this[t], u = this[t++] >> 14, c = h * a + u * o; n = ((a = o * a + ((16383 & c) << 14) + i[r] + n) >> 28) + (c >> 14) + h * u, i[r++] = 268435455 & a } return n }, T = 28), R.prototype.DB = T, R.prototype.DM = (1 << T) - 1, R.prototype.DV = 1 << T, R.prototype.FV = Math.pow(2, 52), R.prototype.F1 = 52 - T, R.prototype.F2 = 2 * T - 52; var M, L, j = []; for (M = '0'.charCodeAt(0), L = 0; L <= 9; ++L)j[M++] = L; for (M = 'a'.charCodeAt(0), L = 10; L < 36; ++L)j[M++] = L; for (M = 'A'.charCodeAt(0), L = 10; L < 36; ++L)j[M++] = L; function q(t, e) { var i = j[t.charCodeAt(e)]; return i == null ? -1 : i } function H(t) { var e = I(); return e.fromInt(t), e } function C(t) { var e, i = 1; return (e = t >>> 16) != 0 && (t = e, i += 16), (e = t >> 8) != 0 && (t = e, i += 8), (e = t >> 4) != 0 && (t = e, i += 4), (e = t >> 2) != 0 && (t = e, i += 2), (e = t >> 1) != 0 && (t = e, i += 1), i }R.ZERO = H(0), R.ONE = H(1); var F, U, K = (function() { function t() { this.i = 0, this.j = 0, this.S = [] } return t.prototype.init = function(t) { var e, i, r; for (e = 0; e < 256; ++e) this.S[e] = e; for (i = 0, e = 0; e < 256; ++e)i = i + this.S[e] + t[e % t.length] & 255, r = this.S[e], this.S[e] = this.S[i], this.S[i] = r; this.i = 0, this.j = 0 }, t.prototype.next = function() { var t; return this.i = this.i + 1 & 255, this.j = this.j + this.S[this.i] & 255, t = this.S[this.i], this.S[this.i] = this.S[this.j], this.S[this.j] = t, this.S[t + this.S[this.i] & 255] }, t }()), k = null; if (k == null) { k = [], U = 0; var _ = void 0; if (typeof window != 'undefined' && window.crypto && window.crypto.getRandomValues) { var z = new Uint32Array(256); for (window.crypto.getRandomValues(z), _ = 0; _ < z.length; ++_)k[U++] = 255 & z[_] } var Z = 0, G = function(t) { if ((Z = Z || 0) >= 256 || U >= 256)window.removeEventListener ? window.removeEventListener('mousemove', G, !1) : window.detachEvent && window.detachEvent('onmousemove', G); else try { var e = t.x + t.y; k[U++] = 255 & e, Z += 1 } catch (t) {} }; typeof window != 'undefined' && (window.addEventListener ? window.addEventListener('mousemove', G, !1) : window.attachEvent && window.attachEvent('onmousemove', G)) } function $() { if (F == null) { for (F = new K(); U < 256;) { var t = Math.floor(65536 * Math.random()); k[U++] = 255 & t } for (F.init(k), U = 0; U < k.length; ++U)k[U] = 0; U = 0 } return F.next() } var Y = (function() { function t() {} return t.prototype.nextBytes = function(t) { for (var e = 0; e < t.length; ++e)t[e] = $() }, t }()), J = (function() { function t() { this.n = null, this.e = 0, this.d = null, this.p = null, this.q = null, this.dmp1 = null, this.dmq1 = null, this.coeff = null } return t.prototype.doPublic = function(t) { return t.modPowInt(this.e, this.n) }, t.prototype.doPrivate = function(t) { if (this.p == null || this.q == null) return t.modPow(this.d, this.n); for (var e = t.mod(this.p).modPow(this.dmp1, this.p), i = t.mod(this.q).modPow(this.dmq1, this.q); e.compareTo(i) < 0;)e = e.add(this.p); return e.subtract(i).multiply(this.coeff).mod(this.p).multiply(this.q).add(i) }, t.prototype.setPublic = function(t, e) { t != null && e != null && t.length > 0 && e.length > 0 ? (this.n = N(t, 16), this.e = parseInt(e, 16)) : console.error('Invalid RSA public key') }, t.prototype.encrypt = function(t) { var e = this.n.bitLength() + 7 >> 3, i = (function(t, e) { if (e < t.length + 11) return console.error('Message too long for RSA'), null; for (var i = [], r = t.length - 1; r >= 0 && e > 0;) { var n = t.charCodeAt(r--); n < 128 ? i[--e] = n : n > 127 && n < 2048 ? (i[--e] = 63 & n | 128, i[--e] = n >> 6 | 192) : (i[--e] = 63 & n | 128, i[--e] = n >> 6 & 63 | 128, i[--e] = n >> 12 | 224) }i[--e] = 0; for (var s = new Y(), o = []; e > 2;) { for (o[0] = 0; o[0] == 0;)s.nextBytes(o); i[--e] = o[0] } return i[--e] = 2, i[--e] = 0, new R(i) }(t, e)); if (i == null) return null; var r = this.doPublic(i); if (r == null) return null; for (var n = r.toString(16), s = n.length, o = 0; o < 2 * e - s; o++)n = '0' + n; return n }, t.prototype.setPrivate = function(t, e, i) { t != null && e != null && t.length > 0 && e.length > 0 ? (this.n = N(t, 16), this.e = parseInt(e, 16), this.d = N(i, 16)) : console.error('Invalid RSA private key') }, t.prototype.setPrivateEx = function(t, e, i, r, n, s, o, h) { t != null && e != null && t.length > 0 && e.length > 0 ? (this.n = N(t, 16), this.e = parseInt(e, 16), this.d = N(i, 16), this.p = N(r, 16), this.q = N(n, 16), this.dmp1 = N(s, 16), this.dmq1 = N(o, 16), this.coeff = N(h, 16)) : console.error('Invalid RSA private key') }, t.prototype.generate = function(t, e) { var i = new Y(), r = t >> 1; this.e = parseInt(e, 16); for (var n = new R(e, 16); ;) { for (;this.p = new R(t - r, 1, i), this.p.subtract(R.ONE).gcd(n).compareTo(R.ONE) != 0 || !this.p.isProbablePrime(10););for (;this.q = new R(r, 1, i), this.q.subtract(R.ONE).gcd(n).compareTo(R.ONE) != 0 || !this.q.isProbablePrime(10););if (this.p.compareTo(this.q) <= 0) { var s = this.p; this.p = this.q, this.q = s } var o = this.p.subtract(R.ONE), h = this.q.subtract(R.ONE), a = o.multiply(h); if (a.gcd(n).compareTo(R.ONE) == 0) { this.n = this.p.multiply(this.q), this.d = n.modInverse(a), this.dmp1 = this.d.mod(o), this.dmq1 = this.d.mod(h), this.coeff = this.q.modInverse(this.p); break } } }, t.prototype.decrypt = function(t) { var e = N(t, 16), i = this.doPrivate(e); return i == null ? null : (function(t, e) { for (var i = t.toByteArray(), r = 0; r < i.length && i[r] == 0;)++r; if (i.length - r != e - 1 || i[r] != 2) return null; for (++r; i[r] != 0;) if (++r >= i.length) return null; for (var n = ''; ++r < i.length;) { var s = 255 & i[r]; s < 128 ? n += String.fromCharCode(s) : s > 191 && s < 224 ? (n += String.fromCharCode((31 & s) << 6 | 63 & i[r + 1]), ++r) : (n += String.fromCharCode((15 & s) << 12 | (63 & i[r + 1]) << 6 | 63 & i[r + 2]), r += 2) } return n }(i, this.n.bitLength() + 7 >> 3)) }, t.prototype.generateAsync = function(t, e, i) { var r = new Y(), n = t >> 1; this.e = parseInt(e, 16); var s = new R(e, 16), o = this, h = function() { var e = function() { if (o.p.compareTo(o.q) <= 0) { var t = o.p; o.p = o.q, o.q = t } var e = o.p.subtract(R.ONE), r = o.q.subtract(R.ONE), n = e.multiply(r); n.gcd(s).compareTo(R.ONE) == 0 ? (o.n = o.p.multiply(o.q), o.d = s.modInverse(n), o.dmp1 = o.d.mod(e), o.dmq1 = o.d.mod(r), o.coeff = o.q.modInverse(o.p), setTimeout(function() { i() }, 0)) : setTimeout(h, 0) }, a = function() { o.q = I(), o.q.fromNumberAsync(n, 1, r, function() { o.q.subtract(R.ONE).gcda(s, function(t) { t.compareTo(R.ONE) == 0 && o.q.isProbablePrime(10) ? setTimeout(e, 0) : setTimeout(a, 0) }) }) }, u = function() { o.p = I(), o.p.fromNumberAsync(t - n, 1, r, function() { o.p.subtract(R.ONE).gcda(s, function(t) { t.compareTo(R.ONE) == 0 && o.p.isProbablePrime(10) ? setTimeout(a, 0) : setTimeout(u, 0) }) }) }; setTimeout(u, 0) }; setTimeout(h, 0) }, t.prototype.sign = function(t, e, i) { var r = (function(t, e) { if (e < t.length + 22) return console.error('Message too long for RSA'), null; for (var i = e - t.length - 6, r = '', n = 0; n < i; n += 2)r += 'ff'; return N('0001' + r + '00' + t, 16) }((X[i] || '') + e(t).toString(), this.n.bitLength() / 4)); if (r == null) return null; var n = this.doPrivate(r); if (n == null) return null; var s = n.toString(16); return (1 & s.length) == 0 ? s : '0' + s }, t.prototype.verify = function(t, e, i) { var r = N(e, 16), n = this.doPublic(r); return n == null ? null : (function(t) { for (var e in X) if (X.hasOwnProperty(e)) { var i = X[e], r = i.length; if (t.substr(0, r) == i) return t.substr(r) } return t }(n.toString(16).replace(/^1f+00/, ''))) == i(t).toString() }, t }()), X = { md2: '3020300c06082a864886f70d020205000410', md5: '3020300c06082a864886f70d020505000410', sha1: '3021300906052b0e03021a05000414', sha224: '302d300d06096086480165030402040500041c', sha256: '3031300d060960864801650304020105000420', sha384: '3041300d060960864801650304020205000430', sha512: '3051300d060960864801650304020305000440', ripemd160: '3021300906052b2403020105000414' }, Q = {}; Q.lang = { extend: function(t, e, i) { if (!e || !t) throw new Error('YAHOO.lang.extend failed, please check that all dependencies are included.'); var r = function() {}; if (r.prototype = e.prototype, t.prototype = new r(), t.prototype.constructor = t, t.superclass = e.prototype, e.prototype.constructor == Object.prototype.constructor && (e.prototype.constructor = e), i) { var n; for (n in i)t.prototype[n] = i[n]; var s = function() {}, o = ['toString', 'valueOf']; try { /MSIE/.test(navigator.userAgent) && (s = function(t, e) { for (n = 0; n < o.length; n += 1) { var i = o[n], r = e[i]; typeof r == 'function' && r != Object.prototype[i] && (t[i] = r) } }) } catch (t) {}s(t.prototype, i) } } }; var W = {}; void 0 !== W.asn1 && W.asn1 || (W.asn1 = {}), W.asn1.ASN1Util = new function() { this.integerToByteHex = function(t) { var e = t.toString(16); return e.length % 2 == 1 && (e = '0' + e), e }, this.bigIntToMinTwosComplementsHex = function(t) { var e = t.toString(16); if (e.substr(0, 1) != '-')e.length % 2 == 1 ? e = '0' + e : e.match(/^[0-7]/) || (e = '00' + e); else { var i = e.substr(1).length; i % 2 == 1 ? i += 1 : e.match(/^[0-7]/) || (i += 2); for (var r = '', n = 0; n < i; n++)r += 'f'; e = new R(r, 16).xor(t).add(R.ONE).toString(16).replace(/^-/, '') } return e }, this.getPEMStringFromHex = function(t, e) { return hextopem(t, e) }, this.newObject = function(t) { var e = W.asn1, i = e.DERBoolean, r = e.DERInteger, n = e.DERBitString, s = e.DEROctetString, o = e.DERNull, h = e.DERObjectIdentifier, a = e.DEREnumerated, u = e.DERUTF8String, c = e.DERNumericString, f = e.DERPrintableString, l = e.DERTeletexString, p = e.DERIA5String, g = e.DERUTCTime, d = e.DERGeneralizedTime, v = e.DERSequence, m = e.DERSet, y = e.DERTaggedObject, b = e.ASN1Util.newObject, T = Object.keys(t); if (T.length != 1) throw 'key of param shall be only one.'; var S = T[0]; if (':bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:'.indexOf(':' + S + ':') == -1) throw 'undefined key: ' + S; if (S == 'bool') return new i(t[S]); if (S == 'int') return new r(t[S]); if (S == 'bitstr') return new n(t[S]); if (S == 'octstr') return new s(t[S]); if (S == 'null') return new o(t[S]); if (S == 'oid') return new h(t[S]); if (S == 'enum') return new a(t[S]); if (S == 'utf8str') return new u(t[S]); if (S == 'numstr') return new c(t[S]); if (S == 'prnstr') return new f(t[S]); if (S == 'telstr') return new l(t[S]); if (S == 'ia5str') return new p(t[S]); if (S == 'utctime') return new g(t[S]); if (S == 'gentime') return new d(t[S]); if (S == 'seq') { for (var E = t[S], w = [], D = 0; D < E.length; D++) { var x = b(E[D]); w.push(x) } return new v({ array: w }) } if (S == 'set') { for (E = t[S], w = [], D = 0; D < E.length; D++)x = b(E[D]), w.push(x); return new m({ array: w }) } if (S == 'tag') { var R = t[S]; if (Object.prototype.toString.call(R) === '[object Array]' && R.length == 3) { var B = b(R[2]); return new y({ tag: R[0], explicit: R[1], obj: B }) } var O = {}; if (void 0 !== R.explicit && (O.explicit = R.explicit), void 0 !== R.tag && (O.tag = R.tag), void 0 === R.obj) throw "obj shall be specified for 'tag'."; return O.obj = b(R.obj), new y(O) } }, this.jsonToASN1HEX = function(t) { return this.newObject(t).getEncodedHex() } }(), W.asn1.ASN1Util.oidHexToInt = function(t) { for (var e = '', i = parseInt(t.substr(0, 2), 16), r = (e = Math.floor(i / 40) + '.' + i % 40, ''), n = 2; n < t.length; n += 2) { var s = ('00000000' + parseInt(t.substr(n, 2), 16).toString(2)).slice(-8); r += s.substr(1, 7), s.substr(0, 1) == '0' && (e = e + '.' + new R(r, 2).toString(10), r = '') } return e }, W.asn1.ASN1Util.oidIntToHex = function(t) { var e = function(t) { var e = t.toString(16); return e.length == 1 && (e = '0' + e), e }, i = function(t) { var i = '', r = new R(t, 10).toString(2), n = 7 - r.length % 7; n == 7 && (n = 0); for (var s = '', o = 0; o < n; o++)s += '0'; for (r = s + r, o = 0; o < r.length - 1; o += 7) { var h = r.substr(o, 7); o != r.length - 7 && (h = '1' + h), i += e(parseInt(h, 2)) } return i }; if (!t.match(/^[0-9.]+$/)) throw 'malformed oid string: ' + t; var r = '', n = t.split('.'), s = 40 * parseInt(n[0]) + parseInt(n[1]); r += e(s), n.splice(0, 2); for (var o = 0; o < n.length; o++)r += i(n[o]); return r }, W.asn1.ASN1Object = function() { this.getLengthHexFromValue = function() { if (void 0 === this.hV || this.hV == null) throw 'this.hV is null or undefined.'; if (this.hV.length % 2 == 1) throw 'value hex must be even length: n=' + ''.length + ',v=' + this.hV; var t = this.hV.length / 2, e = t.toString(16); if (e.length % 2 == 1 && (e = '0' + e), t < 128) return e; var i = e.length / 2; if (i > 15) throw 'ASN.1 length too long to represent by 8x: n = ' + t.toString(16); return (128 + i).toString(16) + e }, this.getEncodedHex = function() { return (this.hTLV == null || this.isModified) && (this.hV = this.getFreshValueHex(), this.hL = this.getLengthHexFromValue(), this.hTLV = this.hT + this.hL + this.hV, this.isModified = !1), this.hTLV }, this.getValueHex = function() { return this.getEncodedHex(), this.hV }, this.getFreshValueHex = function() { return '' } }, W.asn1.DERAbstractString = function(t) { W.asn1.DERAbstractString.superclass.constructor.call(this), this.getString = function() { return this.s }, this.setString = function(t) { this.hTLV = null, this.isModified = !0, this.s = t, this.hV = stohex(this.s) }, this.setStringHex = function(t) { this.hTLV = null, this.isModified = !0, this.s = null, this.hV = t }, this.getFreshValueHex = function() { return this.hV }, void 0 !== t && (typeof t == 'string' ? this.setString(t) : void 0 !== t.str ? this.setString(t.str) : void 0 !== t.hex && this.setStringHex(t.hex)) }, Q.lang.extend(W.asn1.DERAbstractString, W.asn1.ASN1Object), W.asn1.DERAbstractTime = function(t) { W.asn1.DERAbstractTime.superclass.constructor.call(this), this.localDateToUTC = function(t) { return utc = t.getTime() + 6e4 * t.getTimezoneOffset(), new Date(utc) }, this.formatDate = function(t, e, i) { var r = this.zeroPadding, n = this.localDateToUTC(t), s = String(n.getFullYear()); e == 'utc' && (s = s.substr(2, 2)); var o = s + r(String(n.getMonth() + 1), 2) + r(String(n.getDate()), 2) + r(String(n.getHours()), 2) + r(String(n.getMinutes()), 2) + r(String(n.getSeconds()), 2); if (!0 === i) { var h = n.getMilliseconds(); if (h != 0) { var a = r(String(h), 3); o = o + '.' + (a = a.replace(/[0]+$/, '')) } } return o + 'Z' }, this.zeroPadding = function(t, e) { return t.length >= e ? t : new Array(e - t.length + 1).join('0') + t }, this.getString = function() { return this.s }, this.setString = function(t) { this.hTLV = null, this.isModified = !0, this.s = t, this.hV = stohex(t) }, this.setByDateValue = function(t, e, i, r, n, s) { var o = new Date(Date.UTC(t, e - 1, i, r, n, s, 0)); this.setByDate(o) }, this.getFreshValueHex = function() { return this.hV } }, Q.lang.extend(W.asn1.DERAbstractTime, W.asn1.ASN1Object), W.asn1.DERAbstractStructured = function(t) { W.asn1.DERAbstractString.superclass.constructor.call(this), this.setByASN1ObjectArray = function(t) { this.hTLV = null, this.isModified = !0, this.asn1Array = t }, this.appendASN1Object = function(t) { this.hTLV = null, this.isModified = !0, this.asn1Array.push(t) }, this.asn1Array = new Array(), void 0 !== t && void 0 !== t.array && (this.asn1Array = t.array) }, Q.lang.extend(W.asn1.DERAbstractStructured, W.asn1.ASN1Object), W.asn1.DERBoolean = function() { W.asn1.DERBoolean.superclass.constructor.call(this), this.hT = '01', this.hTLV = '0101ff' }, Q.lang.extend(W.asn1.DERBoolean, W.asn1.ASN1Object), W.asn1.DERInteger = function(t) { W.asn1.DERInteger.superclass.constructor.call(this), this.hT = '02', this.setByBigInteger = function(t) { this.hTLV = null, this.isModified = !0, this.hV = W.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t) }, this.setByInteger = function(t) { var e = new R(String(t), 10); this.setByBigInteger(e) }, this.setValueHex = function(t) { this.hV = t }, this.getFreshValueHex = function() { return this.hV }, void 0 !== t && (void 0 !== t.bigint ? this.setByBigInteger(t.bigint) : void 0 !== t.int ? this.setByInteger(t.int) : typeof t == 'number' ? this.setByInteger(t) : void 0 !== t.hex && this.setValueHex(t.hex)) }, Q.lang.extend(W.asn1.DERInteger, W.asn1.ASN1Object), W.asn1.DERBitString = function(t) { if (void 0 !== t && void 0 !== t.obj) { var e = W.asn1.ASN1Util.newObject(t.obj); t.hex = '00' + e.getEncodedHex() }W.asn1.DERBitString.superclass.constructor.call(this), this.hT = '03', this.setHexValueIncludingUnusedBits = function(t) { this.hTLV = null, this.isModified = !0, this.hV = t }, this.setUnusedBitsAndHexValue = function(t, e) { if (t < 0 || t > 7) throw 'unused bits shall be from 0 to 7: u = ' + t; var i = '0' + t; this.hTLV = null, this.isModified = !0, this.hV = i + e }, this.setByBinaryString = function(t) { var e = 8 - (t = t.replace(/0+$/, '')).length % 8; e == 8 && (e = 0); for (var i = 0; i <= e; i++)t += '0'; var r = ''; for (i = 0; i < t.length - 1; i += 8) { var n = t.substr(i, 8), s = parseInt(n, 2).toString(16); s.length == 1 && (s = '0' + s), r += s } this.hTLV = null, this.isModified = !0, this.hV = '0' + e + r }, this.setByBooleanArray = function(t) { for (var e = '', i = 0; i < t.length; i++)t[i] == 1 ? e += '1' : e += '0'; this.setByBinaryString(e) }, this.newFalseArray = function(t) { for (var e = new Array(t), i = 0; i < t; i++)e[i] = !1; return e }, this.getFreshValueHex = function() { return this.hV }, void 0 !== t && (typeof t == 'string' && t.toLowerCase().match(/^[0-9a-f]+$/) ? this.setHexValueIncludingUnusedBits(t) : void 0 !== t.hex ? this.setHexValueIncludingUnusedBits(t.hex) : void 0 !== t.bin ? this.setByBinaryString(t.bin) : void 0 !== t.array && this.setByBooleanArray(t.array)) }, Q.lang.extend(W.asn1.DERBitString, W.asn1.ASN1Object), W.asn1.DEROctetString = function(t) { if (void 0 !== t && void 0 !== t.obj) { var e = W.asn1.ASN1Util.newObject(t.obj); t.hex = e.getEncodedHex() }W.asn1.DEROctetString.superclass.constructor.call(this, t), this.hT = '04' }, Q.lang.extend(W.asn1.DEROctetString, W.asn1.DERAbstractString), W.asn1.DERNull = function() { W.asn1.DERNull.superclass.constructor.call(this), this.hT = '05', this.hTLV = '0500' }, Q.lang.extend(W.asn1.DERNull, W.asn1.ASN1Object), W.asn1.DERObjectIdentifier = function(t) { var e = function(t) { var e = t.toString(16); return e.length == 1 && (e = '0' + e), e }, i = function(t) { var i = '', r = new R(t, 10).toString(2), n = 7 - r.length % 7; n == 7 && (n = 0); for (var s = '', o = 0; o < n; o++)s += '0'; for (r = s + r, o = 0; o < r.length - 1; o += 7) { var h = r.substr(o, 7); o != r.length - 7 && (h = '1' + h), i += e(parseInt(h, 2)) } return i }; W.asn1.DERObjectIdentifier.superclass.constructor.call(this), this.hT = '06', this.setValueHex = function(t) { this.hTLV = null, this.isModified = !0, this.s = null, this.hV = t }, this.setValueOidString = function(t) { if (!t.match(/^[0-9.]+$/)) throw 'malformed oid string: ' + t; var r = '', n = t.split('.'), s = 40 * parseInt(n[0]) + parseInt(n[1]); r += e(s), n.splice(0, 2); for (var o = 0; o < n.length; o++)r += i(n[o]); this.hTLV = null, this.isModified = !0, this.s = null, this.hV = r }, this.setValueName = function(t) { var e = W.asn1.x509.OID.name2oid(t); if (e === '') throw 'DERObjectIdentifier oidName undefined: ' + t; this.setValueOidString(e) }, this.getFreshValueHex = function() { return this.hV }, void 0 !== t && (typeof t == 'string' ? t.match(/^[0-2].[0-9.]+$/) ? this.setValueOidString(t) : this.setValueName(t) : void 0 !== t.oid ? this.setValueOidString(t.oid) : void 0 !== t.hex ? this.setValueHex(t.hex) : void 0 !== t.name && this.setValueName(t.name)) }, Q.lang.extend(W.asn1.DERObjectIdentifier, W.asn1.ASN1Object), W.asn1.DEREnumerated = function(t) { W.asn1.DEREnumerated.superclass.constructor.call(this), this.hT = '0a', this.setByBigInteger = function(t) { this.hTLV = null, this.isModified = !0, this.hV = W.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t) }, this.setByInteger = function(t) { var e = new R(String(t), 10); this.setByBigInteger(e) }, this.setValueHex = function(t) { this.hV = t }, this.getFreshValueHex = function() { return this.hV }, void 0 !== t && (void 0 !== t.int ? this.setByInteger(t.int) : typeof t == 'number' ? this.setByInteger(t) : void 0 !== t.hex && this.setValueHex(t.hex)) }, Q.lang.extend(W.asn1.DEREnumerated, W.asn1.ASN1Object), W.asn1.DERUTF8String = function(t) { W.asn1.DERUTF8String.superclass.constructor.call(this, t), this.hT = '0c' }, Q.lang.extend(W.asn1.DERUTF8String, W.asn1.DERAbstractString), W.asn1.DERNumericString = function(t) { W.asn1.DERNumericString.superclass.constructor.call(this, t), this.hT = '12' }, Q.lang.extend(W.asn1.DERNumericString, W.asn1.DERAbstractString), W.asn1.DERPrintableString = function(t) { W.asn1.DERPrintableString.superclass.constructor.call(this, t), this.hT = '13' }, Q.lang.extend(W.asn1.DERPrintableString, W.asn1.DERAbstractString), W.asn1.DERTeletexString = function(t) { W.asn1.DERTeletexString.superclass.constructor.call(this, t), this.hT = '14' }, Q.lang.extend(W.asn1.DERTeletexString, W.asn1.DERAbstractString), W.asn1.DERIA5String = function(t) { W.asn1.DERIA5String.superclass.constructor.call(this, t), this.hT = '16' }, Q.lang.extend(W.asn1.DERIA5String, W.asn1.DERAbstractString), W.asn1.DERUTCTime = function(t) { W.asn1.DERUTCTime.superclass.constructor.call(this, t), this.hT = '17', this.setByDate = function(t) { this.hTLV = null, this.isModified = !0, this.date = t, this.s = this.formatDate(this.date, 'utc'), this.hV = stohex(this.s) }, this.getFreshValueHex = function() { return void 0 === this.date && void 0 === this.s && (this.date = new Date(), this.s = this.formatDate(this.date, 'utc'), this.hV = stohex(this.s)), this.hV }, void 0 !== t && (void 0 !== t.str ? this.setString(t.str) : typeof t == 'string' && t.match(/^[0-9]{12}Z$/) ? this.setString(t) : void 0 !== t.hex ? this.setStringHex(t.hex) : void 0 !== t.date && this.setByDate(t.date)) }, Q.lang.extend(W.asn1.DERUTCTime, W.asn1.DERAbstractTime), W.asn1.DERGeneralizedTime = function(t) { W.asn1.DERGeneralizedTime.superclass.constructor.call(this, t), this.hT = '18', this.withMillis = !1, this.setByDate = function(t) { this.hTLV = null, this.isModified = !0, this.date = t, this.s = this.formatDate(this.date, 'gen', this.withMillis), this.hV = stohex(this.s) }, this.getFreshValueHex = function() { return void 0 === this.date && void 0 === this.s && (this.date = new Date(), this.s = this.formatDate(this.date, 'gen', this.withMillis), this.hV = stohex(this.s)), this.hV }, void 0 !== t && (void 0 !== t.str ? this.setString(t.str) : typeof t == 'string' && t.match(/^[0-9]{14}Z$/) ? this.setString(t) : void 0 !== t.hex ? this.setStringHex(t.hex) : void 0 !== t.date && this.setByDate(t.date), !0 === t.millis && (this.withMillis = !0)) }, Q.lang.extend(W.asn1.DERGeneralizedTime, W.asn1.DERAbstractTime), W.asn1.DERSequence = function(t) { W.asn1.DERSequence.superclass.constructor.call(this, t), this.hT = '30', this.getFreshValueHex = function() { for (var t = '', e = 0; e < this.asn1Array.length; e++)t += this.asn1Array[e].getEncodedHex(); return this.hV = t, this.hV } }, Q.lang.extend(W.asn1.DERSequence, W.asn1.DERAbstractStructured), W.asn1.DERSet = function(t) { W.asn1.DERSet.superclass.constructor.call(this, t), this.hT = '31', this.sortFlag = !0, this.getFreshValueHex = function() { for (var t = new Array(), e = 0; e < this.asn1Array.length; e++) { var i = this.asn1Array[e]; t.push(i.getEncodedHex()) } return this.sortFlag == 1 && t.sort(), this.hV = t.join(''), this.hV }, void 0 !== t && void 0 !== t.sortflag && t.sortflag == 0 && (this.sortFlag = !1) }, Q.lang.extend(W.asn1.DERSet, W.asn1.DERAbstractStructured), W.asn1.DERTaggedObject = function(t) { W.asn1.DERTaggedObject.superclass.constructor.call(this), this.hT = 'a0', this.hV = '', this.isExplicit = !0, this.asn1Object = null, this.setASN1Object = function(t, e, i) { this.hT = e, this.isExplicit = t, this.asn1Object = i, this.isExplicit ? (this.hV = this.asn1Object.getEncodedHex(), this.hTLV = null, this.isModified = !0) : (this.hV = null, this.hTLV = i.getEncodedHex(), this.hTLV = this.hTLV.replace(/^../, e), this.isModified = !1) }, this.getFreshValueHex = function() { return this.hV }, void 0 !== t && (void 0 !== t.tag && (this.hT = t.tag), void 0 !== t.explicit && (this.isExplicit = t.explicit), void 0 !== t.obj && (this.asn1Object = t.obj, this.setASN1Object(this.isExplicit, this.hT, this.asn1Object))) }, Q.lang.extend(W.asn1.DERTaggedObject, W.asn1.ASN1Object); var tt, et, it = (tt = function(t, e) { return tt = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t, e) { t.__proto__ = e } || function(t, e) { for (var i in e)Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]) }, tt(t, e) }, function(t, e) { if (typeof e != 'function' && e !== null) throw new TypeError('Class extends value ' + String(e) + ' is not a constructor or null'); function i() { this.constructor = t }tt(t, e), t.prototype = e === null ? Object.create(e) : (i.prototype = e.prototype, new i()) }), rt = (function(t) { function e(i) { var r = t.call(this) || this; return i && (typeof i == 'string' ? r.parseKey(i) : (e.hasPrivateKeyProperty(i) || e.hasPublicKeyProperty(i)) && r.parsePropertiesFrom(i)), r } return it(e, t), e.prototype.parseKey = function(t) { try { var e = 0, i = 0, r = /^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/.test(t) ? (function(t) { var e; if (void 0 === u) { var i = '0123456789ABCDEF', r = ' \f\n\r\t \u2028\u2029'; for (u = {}, e = 0; e < 16; ++e)u[i.charAt(e)] = e; for (i = i.toLowerCase(), e = 10; e < 16; ++e)u[i.charAt(e)] = e; for (e = 0; e < r.length; ++e)u[r.charAt(e)] = -1 } var n = [], s = 0, o = 0; for (e = 0; e < t.length; ++e) { var h = t.charAt(e); if (h == '=') break; if ((h = u[h]) != -1) { if (void 0 === h) throw new Error('Illegal character at offset ' + e); s |= h, ++o >= 2 ? (n[n.length] = s, s = 0, o = 0) : s <<= 4 } } if (o) throw new Error('Hex encoding incomplete: 4 bits missing'); return n }(t)) : g.unarmor(t), n = E.decode(r); if (n.sub.length === 3 && (n = n.sub[2].sub[0]), n.sub.length === 9) { e = n.sub[1].getHexStringValue(), this.n = N(e, 16), i = n.sub[2].getHexStringValue(), this.e = parseInt(i, 16); var s = n.sub[3].getHexStringValue(); this.d = N(s, 16); var o = n.sub[4].getHexStringValue(); this.p = N(o, 16); var h = n.sub[5].getHexStringValue(); this.q = N(h, 16); var a = n.sub[6].getHexStringValue(); this.dmp1 = N(a, 16); var c = n.sub[7].getHexStringValue(); this.dmq1 = N(c, 16); var f = n.sub[8].getHexStringValue(); this.coeff = N(f, 16) } else { if (n.sub.length !== 2) return !1; if (n.sub[0].sub) { var l = n.sub[1].sub[0]; e = l.sub[0].getHexStringValue(), this.n = N(e, 16), i = l.sub[1].getHexStringValue(), this.e = parseInt(i, 16) } else e = n.sub[0].getHexStringValue(), this.n = N(e, 16), i = n.sub[1].getHexStringValue(), this.e = parseInt(i, 16) } return !0 } catch (t) { return !1 } }, e.prototype.getPrivateBaseKey = function() { var t = { array: [new W.asn1.DERInteger({ int: 0 }), new W.asn1.DERInteger({ bigint: this.n }), new W.asn1.DERInteger({ int: this.e }), new W.asn1.DERInteger({ bigint: this.d }), new W.asn1.DERInteger({ bigint: this.p }), new W.asn1.DERInteger({ bigint: this.q }), new W.asn1.DERInteger({ bigint: this.dmp1 }), new W.asn1.DERInteger({ bigint: this.dmq1 }), new W.asn1.DERInteger({ bigint: this.coeff })] }; return new W.asn1.DERSequence(t).getEncodedHex() }, e.prototype.getPrivateBaseKeyB64 = function() { return f(this.getPrivateBaseKey()) }, e.prototype.getPublicBaseKey = function() { var t = new W.asn1.DERSequence({ array: [new W.asn1.DERObjectIdentifier({ oid: '1.2.840.113549.1.1.1' }), new W.asn1.DERNull()] }), e = new W.asn1.DERSequence({ array: [new W.asn1.DERInteger({ bigint: this.n }), new W.asn1.DERInteger({ int: this.e })] }), i = new W.asn1.DERBitString({ hex: '00' + e.getEncodedHex() }); return new W.asn1.DERSequence({ array: [t, i] }).getEncodedHex() }, e.prototype.getPublicBaseKeyB64 = function() { return f(this.getPublicBaseKey()) }, e.wordwrap = function(t, e) { if (!t) return t; var i = '(.{1,' + (e = e || 64) + '})( +|$\n?)|(.{1,' + e + '})'; return t.match(RegExp(i, 'g')).join('\n') }, e.prototype.getPrivateKey = function() { var t = '-----BEGIN RSA PRIVATE KEY-----\n'; return (t += e.wordwrap(this.getPrivateBaseKeyB64()) + '\n') + '-----END RSA PRIVATE KEY-----' }, e.prototype.getPublicKey = function() { var t = '-----BEGIN PUBLIC KEY-----\n'; return (t += e.wordwrap(this.getPublicBaseKeyB64()) + '\n') + '-----END PUBLIC KEY-----' }, e.hasPublicKeyProperty = function(t) { return (t = t || {}).hasOwnProperty('n') && t.hasOwnProperty('e') }, e.hasPrivateKeyProperty = function(t) { return (t = t || {}).hasOwnProperty('n') && t.hasOwnProperty('e') && t.hasOwnProperty('d') && t.hasOwnProperty('p') && t.hasOwnProperty('q') && t.hasOwnProperty('dmp1') && t.hasOwnProperty('dmq1') && t.hasOwnProperty('coeff') }, e.prototype.parsePropertiesFrom = function(t) { this.n = t.n, this.e = t.e, t.hasOwnProperty('d') && (this.d = t.d, this.p = t.p, this.q = t.q, this.dmp1 = t.dmp1, this.dmq1 = t.dmq1, this.coeff = t.coeff) }, e }(J)), nt = i(155), st = void 0 !== nt ? (et = nt.env) === null || void 0 === et ? void 0 : '3.3.1' : void 0; const ot = (function() { function t(t) { void 0 === t && (t = {}), t = t || {}, this.default_key_size = t.default_key_size ? parseInt(t.default_key_size, 10) : 1024, this.default_public_exponent = t.default_public_exponent || '010001', this.log = t.log || !1, this.key = null } return t.prototype.setKey = function(t) { this.log && this.key && console.warn('A key was already set, overriding existing.'), this.key = new rt(t) }, t.prototype.setPrivateKey = function(t) { this.setKey(t) }, t.prototype.setPublicKey = function(t) { this.setKey(t) }, t.prototype.decrypt = function(t) { try { return this.getKey().decrypt(l(t)) } catch (t) { return !1 } }, t.prototype.encrypt = function(t) { try { return f(this.getKey().encrypt(t)) } catch (t) { return !1 } }, t.prototype.sign = function(t, e, i) { try { return f(this.getKey().sign(t, e, i)) } catch (t) { return !1 } }, t.prototype.verify = function(t, e, i) { try { return this.getKey().verify(t, l(e), i) } catch (t) { return !1 } }, t.prototype.getKey = function(t) { if (!this.key) { if (this.key = new rt(), t && {}.toString.call(t) === '[object Function]') return void this.key.generateAsync(this.default_key_size, this.default_public_exponent, t); this.key.generate(this.default_key_size, this.default_public_exponent) } return this.key }, t.prototype.getPrivateKey = function() { return this.getKey().getPrivateKey() }, t.prototype.getPrivateKeyB64 = function() { return this.getKey().getPrivateBaseKeyB64() }, t.prototype.getPublicKey = function() { return this.getKey().getPublicKey() }, t.prototype.getPublicKeyB64 = function() { return this.getKey().getPublicBaseKeyB64() }, t.version = st, t }()) })(), r.default })())) diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..68dd81d --- /dev/null +++ b/src/App.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/addRouters.js b/src/addRouters.js new file mode 100644 index 0000000..80d22e9 --- /dev/null +++ b/src/addRouters.js @@ -0,0 +1,89 @@ +import router from "./router"; +import { useRouterStore } from "./pinia/router"; +import { useMenuStore } from "./pinia/menu"; +import { useUserStore } from "@/pinia/user"; +import { cloneDeep } from "lodash-es"; +import pinia from "./pinia"; +import children from "@/components/children/index"; +import { MODEL } from "@/assets/js/constant"; +import asyncRouter from "@/assets/js/asyncRouter"; +import { getAsyncRouter } from "@/request/api"; +// import { getRouteTreeAll } from "@/request/system_management.js"; + +const modules = import.meta.glob("./views/**/*.vue"); // 获取到views下所有的vue文件 +let storageRouter = null; // 用来获取后台拿到的路由 + +router.beforeEach(async (to, from, next) => { + const routerStore = useRouterStore(pinia); + const menuStore = useMenuStore(pinia); + const userStore = useUserStore(pinia); + // 需要登陆 + if (to.meta.isLogin !== false) { + if (!userStore.getUserInfo.USER_ID) { + next("/login"); + return; + } + if (!storageRouter) { + // 变量里没有储存路由 + // pinia里没有储存路由,去后台获取路由 + if (routerStore.getRouters.length === 0) { + await getAsyncRouter(); + // const resData = await getRouteTreeAll(); + // storageRouter = resData.menuList; // 后台请求得到的路由数据 + storageRouter = asyncRouter; // 死路由 + routerStore.setRouters(storageRouter); // 存储路由 + routerGo(to, next); // 执行路由跳转方法 + } else { + // pinia里储存了路由 + storageRouter = routerStore.getRouters; // 拿到路由 + routerGo(to, next); // 执行路由跳转方法 + } + } else { + next(); + } + } else { + // 不需要登陆,清空储存路由 + storageRouter = null; + routerStore.$reset(); + menuStore.$reset(); + next(); + } +}); +function routerGo(to, next) { + const menuStore = useMenuStore(pinia); + storageRouter = filterAsyncRouter(cloneDeep(storageRouter)); // 过滤路由 + for (let i = 0; i < storageRouter.length; i++) { + router.addRoute("app", storageRouter[i]); // 动态添加路由 + } + router.addRoute({ path: "/:pathMatch(.*)*", redirect: "/404" }); // 将404路由添加到最后 + for (let i = 0; i < router.options.routes.length; i++) { + if (router.options.routes[i].path === "/") { + menuStore.setMenus( + router.options.routes[i].children.concat(storageRouter) + ); // 将路由数据存到一个新的pinia里,做菜单渲染 + if (!menuStore.getModel) { + menuStore.setModel(MODEL["1"]); + } + break; + } + } + next({ ...to, replace: true }); // 等待addRoute执行完毕跳转路由 +} + +function filterAsyncRouter(asyncRouterMap) { + // 遍历后台传来的路由字符串,转换为组件对象 + return asyncRouterMap.filter((route) => { + if (route.component) { + if (route.component === "children") { + route.component = children; + } else { + route.component = modules[`./views/${route.component}.vue`]; + } + } + // 如果存在children递归 + if (route.children && route.children.length) { + route.children = filterAsyncRouter(route.children); + } + return true; + }); +} diff --git a/src/assets/css/common.scss b/src/assets/css/common.scss new file mode 100644 index 0000000..5167958 --- /dev/null +++ b/src/assets/css/common.scss @@ -0,0 +1,324 @@ +// 文字超出几行隐藏,最多5行 +// 使用超出1行隐藏,如果使用了flex,则需要给父元素设置min-width: 0; +@for $i from 1 through 5 { + .line-#{$i} { + @if $i == 1 { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } @else { + display: -webkit-box !important; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + -webkit-line-clamp: $i; + -webkit-box-orient: vertical !important; + } + } +} + +// 生成1-50的margin和padding(正负) +@for $i from 1 through 50 { + .m-#{$i} { + margin: #{$i}px; + } + .mt-#{$i} { + margin-top: #{$i}px; + } + .mr-#{$i} { + margin-right: #{$i}px; + } + .mb-#{$i} { + margin-bottom: #{$i}px; + } + .ml-#{$i} { + margin-left: #{$i}px; + } + .mtb-#{$i} { + margin-top: #{$i}px; + margin-bottom: #{$i}px; + } + .mlr-#{$i} { + margin-left: #{$i}px; + margin-right: #{$i}px; + } + .p-#{$i} { + padding: #{$i}px; + } + .pt-#{$i} { + padding-top: #{$i}px; + } + .pr-#{$i} { + padding-right: #{$i}px; + } + .pb-#{$i} { + padding-bottom: #{$i}px; + } + .pl-#{$i} { + padding-left: #{$i}px; + } + .ptb-#{$i} { + padding-top: #{$i}px; + padding-bottom: #{$i}px; + } + .plr-#{$i} { + padding-left: #{$i}px; + padding-right: #{$i}px; + } + .m--#{$i} { + margin: -#{$i}px; + } + .mt--#{$i} { + margin-top: -#{$i}px; + } + .mr--#{$i} { + margin-right: -#{$i}px; + } + .mb--#{$i} { + margin-bottom: -#{$i}px; + } + .ml--#{$i} { + margin-left: -#{$i}px; + } + .mtb--#{$i} { + margin-top: -#{$i}px; + margin-bottom: -#{$i}px; + } + .mlr--#{$i} { + margin-left: -#{$i}px; + margin-right: -#{$i}px; + } + .p--#{$i} { + padding: -#{$i}px; + } + .pt--#{$i} { + padding-top: -#{$i}px; + } + .pr--#{$i} { + padding-right: -#{$i}px; + } + .pb--#{$i} { + padding-bottom: -#{$i}px; + } + .pl--#{$i} { + padding-left: -#{$i}px; + } + .ptb--#{$i} { + padding-top: -#{$i}px; + padding-bottom: -#{$i}px; + } + .plr--#{$i} { + padding-left: -#{$i}px; + padding-right: -#{$i}px; + } +} + +* { + box-sizing: border-box; + font-size: 14px; + + &:not(dd,dl,dt) { + margin: 0; + padding: 0; + } +} + +h1, h2, h3, h4, h5, h6 { + font-size: revert; +} + +#app { + background-color: #030f2f; + min-height: 100vh; + background-image: url("/src/assets/images/public/bg.jpg"); + background-repeat: no-repeat; +} + +a { + text-decoration: none; + color: var(--el-color-primary); +} + +.end { + .el-form-item__content { + justify-content: end; + } +} + +.tc { + text-align: center; +} + +.tr { + text-align: right; +} + +.tl { + text-align: left; +} + +.dn { + display: none; +} + +.text-blue { + color: #3b3bff; +} + +.text-yellow { + color: #bebe05; +} + +.text-orange { + color: #de9004; +} + +.text-red { + color: #ff0000; +} + +.text-green { + color: #0bb20c; +} + +.print_use { + display: none; +} + +img.ml-10:first-child { + margin-left: 0; +} + +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +input:-webkit-autofill:active { + -webkit-transition-delay: 99999s; + -webkit-transition: color 99999s ease-out, background-color 99999s ease-out; +} + +div::-webkit-scrollbar { + width: 4px; +} + +div::-webkit-scrollbar-thumb { + border-radius: 10px; + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + opacity: 0.2; + background-color: var(--el-border-color); +} + +div::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); + border-radius: 0; + background-color: var(--el-border-color); +} + +.viewer-zoom-in, .viewer-zoom-out, .viewer-one-to-one, .viewer-reset, .viewer-prev, .viewer-play, .viewer-next, .viewer-rotate-left, .viewer-rotate-right, .viewer-flip-horizontal, .viewer-flip-vertical, .viewer-fullscreen, .viewer-fullscreen-exit, .viewer-close { + &::before { + font-size: unset !important; + } +} + +.w-e-bar { + --w-e-toolbar-bg-color: var(--el-fill-color-blank) !important; + border: 1px solid var(--el-border-color); + border-bottom: none; + --w-e-toolbar-border-color: var(--el-border-color); + --w-e-toolbar-color: var(--el-text-color-regular) !important; + --w-e-toolbar-disabled-color: var(--el-text-color-regular) !important; + --w-e-toolbar-active-bg-color: var(--el-fill-color-light); + --w-e-toolbar-active-color: var(--el-color-check); + + .w-e-menu-tooltip-v5:before { + color: var(--el-text-color-regular) !important; + } + + .w-e-select-list ul { + li:hover, .selected { + background-color: var(--el-fill-color-light); + color: var(--el-color-check); + } + } +} + +.w-e-text-container { + --w-e-textarea-bg-color: var(--el-fill-color-blank) !important; + border: 1px solid var(--el-border-color); + --w-e-textarea-color: var(--el-text-color-regular) !important; +} + +.w-e-bar-divider { + display: none !important; +} + +.w-e-toolbar { + border-bottom: 1px dashed var(--el-border-color-darker); +} + +.w-e-bar-item:has([data-menu-key="group-video"]) { + display: none !important; +} + +.w-e-bar-item-menus-container .w-e-bar-item:has([data-menu-key="insertImage"]) { + display: none !important; +} + +.vue-auth-box_ { + background: #020f3a !important; + border: 1px solid #223765 !important; +} + +.vue-puzzle-vcode { + background-color: #0000008d !important; +} + +.vue-auth-box_ .auth-control_ .range-box { + background-color: #04205f !important; + box-shadow: none !important; +} + +.vue-auth-box_ .auth-control_ .range-box .range-slider .range-btn { + background: #3266cb !important; + box-shadow: none !important; +} + +// 打印时去掉页眉页脚 +@page { + size: auto; + margin: 3mm; +} + +.page_break{ + page-break-after: always; +} + +@media print { + .el-descriptions__label.el-descriptions__cell.is-bordered-label { + color: #000 !important; + } + .el-descriptions { + --el-text-color-primary: #000 !important; + } + + .el-divider__text { + --el-text-color-regular: #000 !important; + } + + .print_use { + border-collapse: collapse; + width: 100%; + display: table; + + td, th { + border: 1px solid var(--el-border-color); + padding: 8px; + line-height: 1.6; + text-align: center; + } + } + + .print_no_use { + display: none; + } +} diff --git a/src/assets/css/element.scss b/src/assets/css/element.scss new file mode 100644 index 0000000..3dc9ee2 --- /dev/null +++ b/src/assets/css/element.scss @@ -0,0 +1,385 @@ +:root { + --el-header-height: 69px; + --el-aside-scrollbar-height: calc(100vh - var(--el-header-height)); + --el-main-scrollbar-height: calc(100vh - var(--el-header-height) - 60px); + --el-border-color: #273868 !important; // 边框颜色 + --el-text-color-regular: #fff !important; + --el-fill-color-light: #0e1d44 !important; //hover背景色 + --el-color-check: #14affe !important; //hover、选中 文字颜色 + --el-aside-bg-color: #081e42 !important; + --el-input-bg-color: #081435 !important; + --el-fill-color-blank: #081435 !important; // 背景色 + --el-border-color-lighter: var(--el-border-color) !important; + --el-bullet-frame-bg-color: #08163b !important; +} + +.el-button:focus, .el-button:hover { + --el-button-hover-text-color: var(--el-button-text-color); + --el-button-hover-border-color: var(--el-button-border-color); + --el-button-hover-bg-color: var(--el-button-bg-color); +} + +.el-header { + --el-header-padding: 0 !important; + --el-header-height: 69px !important; +} + +.el-main { + --el-main-padding: 0 !important; +} + +.el-aside { + --el-aside-width: 250px; + background-color: var(--el-aside-bg-color); +} + +.el-card { + margin: 10px 20px; + --el-card-padding: 18px 18px 0 18px !important; + --el-card-bg-color: rgba(8, 24, 58, 0.5) !important; + --el-card-border-color: var(--el-border-color) !important; + color: var(--el-text-color-regular) !important; + position: relative; +} + +.el-popper { + --el-bg-color-overlay: var(--el-fill-color-blank) !important; + --el-border-color-light: var(--el-border-color) !important; +} + +.el-cascader-node:not(.is-disabled):focus, .el-cascader-node:not(.is-disabled):hover { + --el-cascader-node-background-hover: var(--el-fill-color-light); + color: var(--el-color-check); +} + +.el-cascader { + --el-cascader-tag-background: #214082 !important; + --el-color-info: var(--el-text-color-regular); +} + +.el-select-dropdown__item.hover, .el-select-dropdown__item:hover { + color: var(--el-color-check); +} + +.el-dropdown-menu__item { + &:not(.is-disabled):focus { + --el-dropdown-menuItem-hover-fill: var(--el-fill-color-light); + --el-dropdown-menuItem-hover-color: var(--el-color-check); + } +} + +.el-menu { + border-right: none !important; + --el-menu-bg-color: var(--el-aside-bg-color); + --el-menu-text-color: var(--el-text-color-regular); + --el-menu-hover-text-color: var(--el-text-color-regular); + --el-menu-active-color: var(--el-text-color-regular); + --el-menu-hover-bg-color: transparent; + + span { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } +} + +.el-sub-menu__title *, .el-menu-item * { + vertical-align: middle !important; +} + +.el-menu-item { + &:hover, &.is-active { + background-image: url("/src/assets/images/public/list_on.png"); + background-repeat: no-repeat; + background-size: 100% 100%; + } +} + +//.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item { +// padding-left: calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding) + 20px) !important; +//} + +.el-breadcrumb { + margin-left: 10px; + height: 30px; + line-height: 30px !important; + + .el-breadcrumb__inner { + --el-text-color-regular: #cacbce; + + a { + font-weight: normal; + --el-text-color-primary: #cacbce; + } + } + + .el-breadcrumb__separator { + --el-text-color-placeholder: #cacbce; + } +} + +.el-select, .el-cascader, .el-date-editor.el-input, .el-date-editor.el-input__wrapper, .el-input__wrapper, .el-input-number { + width: 100% !important; +} + +.el-table { + --el-table-bg-color: #071a43 !important; + --el-bg-color: #071a43 !important; + --el-table-header-bg-color: #0f2049 !important; + --el-table-border-color: var(--el-border-color) !important; + --el-table-tr-bg-color: #071a43 !important; + --el-fill-color-lighter: #111e40 !important; + --el-table-text-color: #e0e0e0 !important; + --el-table-header-text-color: var(--el-text-color-regular) !important; + --el-table-row-hover-bg-color: #0d5aa3 !important; + --el-table-current-row-bg-color: #0d5aa3 !important; + + .el-table__cell { + text-align: center !important; + } + + .el-table__empty-text { + --el-text-color-secondary: var(--el-text-color-regular) !important; + } +} + +.el-pagination { + --el-pagination-button-color: var(--el-text-color-regular) !important; + --el-pagination-button-disabled-bg-color: var(--el-fill-color-blank) !important; + --el-pagination-bg-color: var(--el-fill-color-blank) !important; +} + +.el-radio { + --el-radio-input-bg-color: #091839 !important; +} + +.el-radio__input.is-checked .el-radio__inner { + background: var(--el-radio-input-bg-color) !important; + border-color: var(--el-color-check); +} + +.el-radio__inner { + &::after { + --el-color-white: var(--el-color-check); + } +} + +.el-radio__input.is-disabled.is-checked .el-radio__inner { + --el-disabled-border-color: var(--el-color-check); + + &::after { + --el-text-color-placeholder: var(--el-color-check); + } +} + +.el-radio__input.is-disabled .el-radio__inner { + --el-disabled-bg-color: var(--el-radio-input-bg-color); + --el-disabled-border-color: var(--el-border-color); +} + +.el-checkbox { + --el-checkbox-bg-color: #091839 !important; + --el-checkbox-checked-bg-color: #091839 !important; + --el-checkbox-checked-input-border-color: var(--el-color-check) !important; +} + +.el-checkbox__input.is-disabled .el-checkbox__inner { + --el-checkbox-disabled-input-fill: var(--el-checkbox-bg-color); + --el-checkbox-disabled-border-color: var(--el-border-color); +} + +.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + --el-checkbox-disabled-checked-input-fill: var(--el-checkbox-bg-color); + --el-checkbox-disabled-checked-input-border-color: var(--el-color-check); +} + +.el-picker__popper, .el-date-picker { + --el-datepicker-border-color: var(--el-border-color) !important; +} + +.el-time-panel__btn { + --el-text-color-primary: var(--el-text-color-regular); +} + +.el-time-spinner__item:hover:not(.is-disabled):not(.is-active) { + color: var(--el-color-check); +} + +.el-button.is-plain { + --el-fill-color-blank: var(--el-fill-color-blank); +} + +.el-button.is-text:not(.is-disabled):active { + background-color: var(--el-fill-color-light) !important; +} + +.el-button.is-text:not(.is-disabled):focus, .el-button.is-text:not(.is-disabled):hover { + color: var(--el-color-check); +} + +.el-time-spinner__item.is-active:not(.is-disabled) { + --el-text-color-primary: var(--el-color-check); +} + +.el-picker-panel__icon-btn { + color: var(--el-text-color-regular); + + .el-icon { + color: var(--el-text-color-regular); + } +} + +.el-date-range-picker { + --el-datepicker-border-color: var(--el-fill-color-light) !important; + --el-datepicker-inrange-bg-color: var(--el-fill-color-light) !important; + --el-datepicker-inrange-hover-bg-color: var(--el-fill-color-light) !important; +} + +.el-date-editor .el-range-separator { + color: var(--el-text-color-regular) !important; +} + +.el-input.is-disabled .el-input__wrapper { + box-shadow: 0 0 0 1px var(--el-border-color) inset !important; +} + +.el-select__tags .el-tag--info { + background-color: #214082 !important; + --el-tag-text-color: var(--el-text-color-regular) !important; +} + +.el-tag .el-tag__close:hover { + color: var(--el-color-check) !important; + background-color: var(--el-fill-color-light) !important; +} + +.el-upload--picture-card { + --el-fill-color-lighter: var(--el-fill-color-blank) !important; + border: 1px solid var(--el-border-color) !important; +} + +.el-collapse { + --el-collapse-header-text-color: var(--el-text-color-regular) !important; + --el-collapse-content-text-color: var(--el-text-color-regular) !important; +} + +.el-tabs__item { + color: var(--el-text-color-regular) !important; + + &.is-active { + color: var(--el-color-primary) !important; + } +} + +.el-tabs__nav-wrap::after { + --el-border-color-light: var(--el-border-color); +} + +.el-divider__text { + font-size: 16px !important; + font-weight: 700 !important; +} + +.el-dialog { + background: transparent !important; + --el-dialog-margin-top: 50px !important; + + .el-dialog__header { + background-image: url("/src/assets/images/public/tctitlebg.png"); + height: 31px; + line-height: 31px; + padding-left: 30px; + background-repeat: no-repeat; + background-size: 100% 100%; + margin-right: 0 !important; + --el-dialog-padding-primary: 0 !important; + padding-bottom: 0; + + .el-dialog__title { + color: var(--el-text-color-regular); + --el-dialog-title-font-size: 14px; + } + + .el-dialog__headerbtn { + height: 31px; + top: 0; + } + } + + .el-dialog__body, .el-dialog__footer { + background-color: var(--el-bullet-frame-bg-color); + } +} + +.el-drawer { + --el-drawer-bg-color: var(--el-bullet-frame-bg-color) !important; + + .el-drawer__header { + color: var(--el-text-color-regular); + } +} + +.el-popper.is-dark { + background: var(--el-fill-color-blank) !important; + border: 1px solid var(--el-border-color) !important; + color: var(--el-text-color-regular) !important; + + .el-popper__arrow::before { + background: var(--el-fill-color-blank) !important; + border: 1px solid var(--el-border-color) !important; + } +} + +.el-message-box { + background-color: var(--el-fill-color-blank) !important; + --el-messagebox-title-color: var(--el-text-color-regular) !important; +} + +.el-divider__text { + background-color: var(--el-fill-color-blank) !important; + color: var(--el-text-color-regular) !important; +} + +.el-calendar { + --el-calendar-selected-bg-color: var(--el-fill-color-light) !important; +} + +.el-steps { + --el-text-color-primary: var(--el-text-color-regular); + + .el-step__icon { + background: var(--el-fill-color-blank); + } +} + +.el-descriptions { + --el-text-color-primary: var(--el-text-color-regular); +} + +.el-descriptions__label { + width: 200px; +} + +.el-descriptions__content { + width: auto; +} + +.el-descriptions__title { + &:before { + content: ''; + display: inline-block; + width: 4px; + height: 19px; + background-color: #04a9f5; + margin-right: 10px; + vertical-align: text-bottom; + } +} + +.el-statistic__content { + color: var(--el-text-color-regular) !important; +} + +.el-step__title{ + font-size: 14px !important;; +} diff --git a/src/assets/css/transition.scss b/src/assets/css/transition.scss new file mode 100644 index 0000000..59a12a4 --- /dev/null +++ b/src/assets/css/transition.scss @@ -0,0 +1,36 @@ +//router-view动画 +.view-leave-active { + opacity: 1; + transform: scaleY(1); + transition: all .5s; + transform-origin: center top; +} + +.view-enter-active .view-leave-active { + transform-origin: center bottom; +} + +.view-enter-from, .view-leave-active { + opacity: 0; + transform: scaleY(0); +} + +//面包屑动画 +.breadcrumb-enter-active, +.breadcrumb-leave-active { + transition: all .5s; +} + +.breadcrumb-enter, +.breadcrumb-leave-active { + opacity: 0; + transform: translateX(20px); +} + +.breadcrumb-move { + transition: all .5s; +} + +.breadcrumb-leave-active { + position: absolute; +} diff --git a/src/assets/images/public/bg.jpg b/src/assets/images/public/bg.jpg new file mode 100644 index 0000000..6561b06 Binary files /dev/null and b/src/assets/images/public/bg.jpg differ diff --git a/src/assets/images/public/bottomguang.png b/src/assets/images/public/bottomguang.png new file mode 100644 index 0000000..93e7e4a Binary files /dev/null and b/src/assets/images/public/bottomguang.png differ diff --git a/src/assets/images/public/headerbg.png b/src/assets/images/public/headerbg.png new file mode 100644 index 0000000..722ecd3 Binary files /dev/null and b/src/assets/images/public/headerbg.png differ diff --git a/src/assets/images/public/list_on.png b/src/assets/images/public/list_on.png new file mode 100644 index 0000000..91bb083 Binary files /dev/null and b/src/assets/images/public/list_on.png differ diff --git a/src/assets/images/public/loginbg.jpg b/src/assets/images/public/loginbg.jpg new file mode 100644 index 0000000..10605f4 Binary files /dev/null and b/src/assets/images/public/loginbg.jpg differ diff --git a/src/assets/images/public/map_xiasanjiao.png b/src/assets/images/public/map_xiasanjiao.png new file mode 100644 index 0000000..b8b9e81 Binary files /dev/null and b/src/assets/images/public/map_xiasanjiao.png differ diff --git a/src/assets/images/public/menu_horn1.png b/src/assets/images/public/menu_horn1.png new file mode 100644 index 0000000..1a36ab2 Binary files /dev/null and b/src/assets/images/public/menu_horn1.png differ diff --git a/src/assets/images/public/menu_horn2.png b/src/assets/images/public/menu_horn2.png new file mode 100644 index 0000000..c7d7a88 Binary files /dev/null and b/src/assets/images/public/menu_horn2.png differ diff --git a/src/assets/images/public/menu_horn3.png b/src/assets/images/public/menu_horn3.png new file mode 100644 index 0000000..ff39cb1 Binary files /dev/null and b/src/assets/images/public/menu_horn3.png differ diff --git a/src/assets/images/public/menu_horn4.png b/src/assets/images/public/menu_horn4.png new file mode 100644 index 0000000..adbb116 Binary files /dev/null and b/src/assets/images/public/menu_horn4.png differ diff --git a/src/assets/images/public/tctitlebg.png b/src/assets/images/public/tctitlebg.png new file mode 100644 index 0000000..6791713 Binary files /dev/null and b/src/assets/images/public/tctitlebg.png differ diff --git a/src/assets/images/public/tguang.png b/src/assets/images/public/tguang.png new file mode 100644 index 0000000..d02eab4 Binary files /dev/null and b/src/assets/images/public/tguang.png differ diff --git a/src/assets/images/public/topguang.png b/src/assets/images/public/topguang.png new file mode 100644 index 0000000..ca38bd9 Binary files /dev/null and b/src/assets/images/public/topguang.png differ diff --git a/src/assets/images/public/tx.png b/src/assets/images/public/tx.png new file mode 100644 index 0000000..3f55e30 Binary files /dev/null and b/src/assets/images/public/tx.png differ diff --git a/src/assets/images/public/userbg.jpg b/src/assets/images/public/userbg.jpg new file mode 100644 index 0000000..a1f93c2 Binary files /dev/null and b/src/assets/images/public/userbg.jpg differ diff --git a/src/assets/js/asyncRouter.js b/src/assets/js/asyncRouter.js new file mode 100644 index 0000000..ef57832 --- /dev/null +++ b/src/assets/js/asyncRouter.js @@ -0,0 +1,78 @@ +import { MODEL } from "@/assets/js/constant"; + +export default [ + { + path: "/enterprise_management", + redirect: "/enterprise_management/information", + meta: { title: "企业管理", model: MODEL["1"] }, + component: "children", + children: [ + { + path: "/enterprise_management/information", + redirect: "/enterprise_management/information/info", + meta: { title: "企业信息" }, + component: "children", + children: [ + { + path: "/enterprise_management/information/info", + meta: { title: "企业信息", isSubMenu: false }, + component: "children", + children: [ + { + path: "", + component: "enterprise_management/information/info", + }, + { + path: "/enterprise_management/information/info/edit", + meta: { + title: "编辑", + activeMenu: "/enterprise_management/information/info", + }, + component: "enterprise_management/information/edit", + }, + ], + }, + { + path: "/enterprise_management/information/industry_qualifications", + meta: { title: "行业资质", isSubMenu: false }, + component: "children", + children: [ + { + path: "", + component: + "enterprise_management/industry_qualifications/index", + }, + { + path: "/enterprise_management/information/industry_qualifications/add", + meta: { + title: "新增", + activeMenu: + "/enterprise_management/information/industry_qualifications", + }, + component: "enterprise_management/industry_qualifications/add", + }, + { + path: "/enterprise_management/information/industry_qualifications/update", + meta: { + title: "修改", + activeMenu: + "/enterprise_management/information/industry_qualifications", + }, + component: "enterprise_management/industry_qualifications/add", + }, + { + path: "/enterprise_management/information/industry_qualifications/view", + meta: { + title: "查看", + activeMenu: + "/enterprise_management/information/industry_qualifications", + }, + component: "enterprise_management/industry_qualifications/view", + }, + ], + }, + ], + }, + ], + }, +]; diff --git a/src/assets/js/button.js b/src/assets/js/button.js new file mode 100644 index 0000000..aa94463 --- /dev/null +++ b/src/assets/js/button.js @@ -0,0 +1,18 @@ +import { ElMessage } from "element-plus"; +import { useUserStore } from "@/pinia/user.js"; +import pinia from "@/pinia/index.js"; + +export default { + install: (app) => { + app.directive("button", { + mounted(el, { value }) { + const userStore = useUserStore(pinia); + if (value) { + if (!userStore.getPermissions.includes(value)) { + el.parentNode.removeChild(el); + } + } else ElMessage.error("参数无效,请联系管理员"); + }, + }); + }, +}; diff --git a/src/assets/js/constant.js b/src/assets/js/constant.js new file mode 100644 index 0000000..02a22f4 --- /dev/null +++ b/src/assets/js/constant.js @@ -0,0 +1,23 @@ +// 将常用的值储存成常量,防止重复使用写错 + +// 头部导航条切换的model +export const MODEL = { + 1: "prevention", + 2: "educationAndTraining", + 3: "highRisk", + 4: "monitor", + 5: "comprehensive", +}; +// 头部导航条 +export const MENU = [ + { title: "双重预防", model: MODEL["1"] }, + { title: "教育培训", model: MODEL["2"] }, + { title: "高危作业管理", model: MODEL["3"] }, + { title: "监测预警", model: MODEL["4"] }, + { title: "综合管理", model: MODEL["5"] }, +]; + +export const styleText = + '"; diff --git a/src/assets/js/data_dictionary.js b/src/assets/js/data_dictionary.js new file mode 100644 index 0000000..8471593 --- /dev/null +++ b/src/assets/js/data_dictionary.js @@ -0,0 +1,65 @@ +import { + getLearningTrainType, + getLevels, + getLevelsAndChildrenNumber, + getRegulatoryType, +} from "@/request/data_dictionary.js"; +import { ref } from "vue"; + +// 监管类型 +export const layoutFnGetRegulatoryType = async (params) => { + const resData = await getRegulatoryType(params); + return ref(JSON.parse(resData.varOList.zTreeNodes)); +}; +// 企业状态 +export const layoutFnGetEnterpriseStatus = async () => { + const resData = await getLevels({ + DICTIONARIES_ID: "4d4862f9863b4b0da67f754c49e67ea3", + }); + return ref(resData.list); +}; +// 隶属关系 +export const layoutFnGetSubordination = async () => { + const resData = await getLevels({ + DICTIONARIES_ID: "1a13f574d4c44cd2ac2034f8e3259f9b", + }); + return ref(resData.list); +}; +// 企业规模 +export const layoutFnGetEnterpriseScale = async () => { + const resData = await getLevels({ + DICTIONARIES_ID: "37b045e160c04ddba851073b4e510cc9", + }); + return ref(resData.list); +}; +// 培训行业类型 +export const layoutFnGetTrainingIndustryType = async () => { + const resData = await getLearningTrainType({ + parentId: "052369aa22d242118236cde52d0c67ea", + }); + return ref(JSON.parse(resData.zTreeNodes)); +}; +// 培训岗位类型 +export const layoutFnGetTrainingPostType = async () => { + const resData = await getLearningTrainType({ + parentId: "f6a7c4f5602f46e291d06b1390a3f820", + }); + return ref(JSON.parse(resData.zTreeNodes)); +}; +// 培训板块类型 +export const layoutFnGetTrainingPlateType = async () => { + const resData = await getLearningTrainType({ + parentId: "d538d11e4eec409ab428f5d2f3c67c24", + }); + return ref(JSON.parse(resData.zTreeNodes)); +}; +// 无法确定DICTIONARIES_ID的数据字典 +export const layoutFnGetLevels = async (DICTIONARIES_ID) => { + const resData = await getLevels({ DICTIONARIES_ID }); + return ref(resData.list); +}; +// 无法确定DICTIONARIES_ID的数据字典包括子级数量 +export const layoutFnGetLevelsAndChildrenNumber = async (DICTIONARIES_ID) => { + const resData = await getLevelsAndChildrenNumber({ DICTIONARIES_ID }); + return ref(resData.list); +}; diff --git a/src/assets/js/mitt.js b/src/assets/js/mitt.js new file mode 100644 index 0000000..e9727ed --- /dev/null +++ b/src/assets/js/mitt.js @@ -0,0 +1,2 @@ +import mitt from "mitt"; +export default mitt(); diff --git a/src/assets/js/print.js b/src/assets/js/print.js new file mode 100644 index 0000000..244fd05 --- /dev/null +++ b/src/assets/js/print.js @@ -0,0 +1,39 @@ +import { ref } from "vue"; + +const buttonRef = ref(null); +const THEAD_HEIGHT = 81.59; +const A4_HEIGHT_MM = 297; +const A4_HEIGHT_MM_TO_PX_PROPORTION = 3.78; +let A4_HEIGHT_PX = A4_HEIGHT_MM * A4_HEIGHT_MM_TO_PX_PROPORTION - THEAD_HEIGHT; +let elements = []; +const printObj = { + id: "printContent", + closeCallback() { + document.querySelector("#printContent").style.overflow = "hidden"; + }, +}; +const fnPrint = () => { + document.querySelector("#printContent").style.overflow = "visible"; + elements = document.querySelectorAll("#printContent > table > tr"); + if (!document.querySelector("#printContent > table thead")) { + A4_HEIGHT_PX = A4_HEIGHT_PX + THEAD_HEIGHT; + } + fnIsPaging(); + buttonRef.value.$el.click(); +}; +const fnIsPaging = (index = 0) => { + for (let i = index; i < elements.length; i++) { + if ( + elements[i].offsetHeight + + elements[i].offsetTop - + elements[index].offsetTop >= + A4_HEIGHT_PX + ) { + elements[i - 1].setAttribute("class", "page_break"); + fnIsPaging(i === index ? i + 1 : i); + break; + } + } +}; + +export { fnPrint, printObj, buttonRef }; diff --git a/src/assets/js/useButtonJurisdiction.js b/src/assets/js/useButtonJurisdiction.js new file mode 100644 index 0000000..5cbdefb --- /dev/null +++ b/src/assets/js/useButtonJurisdiction.js @@ -0,0 +1,16 @@ +import { post } from "@/request/axios"; + +// 按钮权限 +export const useButtonJurisdiction = async (type) => { + const keys = `${type}:add,${type}:del,${type}:edit,toExcel`; + const resData = await post("/api/head/hasButton", { + loading: false, + keys, + }); + return { + add: resData[`${type}fhadminadd`], + del: resData[`${type}fhadmindel`], + edit: resData[`${type}fhadminedit`], + excel: resData.toExcel, + }; +}; diff --git a/src/assets/js/useFormValidate.js b/src/assets/js/useFormValidate.js new file mode 100644 index 0000000..d0ed9f3 --- /dev/null +++ b/src/assets/js/useFormValidate.js @@ -0,0 +1,25 @@ +import { ElMessage } from "element-plus"; +import { getDataType } from "@/assets/js/utils.js"; + +export default function (ref, message = "请补全必填项!") { + const type = ["Function", "AsyncFunction"]; + if (!type.includes(getDataType(ref?.value?.validate))) + throw new Error("不是有效的Element-Plus Form组件ref!"); + return new Promise((resolve, reject) => { + ref.value.validate((valid) => { + if (valid) { + resolve(valid); + } else { + reject(valid); + ElMessage.warning(message); + setTimeout(() => { + const element = document.querySelectorAll(".el-form-item__error")[0]; + element.scrollIntoView({ + behavior: "smooth", + block: "center", + }); + }, 100); + } + }); + }); +} diff --git a/src/assets/js/useListData.js b/src/assets/js/useListData.js new file mode 100644 index 0000000..4f574dd --- /dev/null +++ b/src/assets/js/useListData.js @@ -0,0 +1,77 @@ +import { nextTick, ref } from "vue"; +import { getDataType } from "@/assets/js/utils.js"; + +/** + * @param api {Function} 接口函数 + * @param options {Object?: {callbackFn, otherParams, immediate, usePagination}} 配置项 + * @param options.callbackFn {Function?} 回调函数 + * @param options.otherParams {Object?} 其它接口参数 + * @param options.immediate {Boolean?} 是否立即执行接口函数(默认是) + * @param options.usePagination {Boolean?} 是否使用分页(默认是) + * @return {Object} 返回对象包含以下属性:list 表格数据,pagination 分页数据,searchForm 搜索表单数据,tableRef 表格实例,fnGetData 获取数据函数,fnResetPagination 重置分页函数 + */ + +export default function useListData(api, options = {}) { + if (getDataType(api) !== "Function") throw new Error("api必须是一个函数"); + if (options.immediate && getDataType(options.immediate) !== "Boolean") + throw new Error("options.immediate必须是一个布尔值"); + if (options.usePagination && getDataType(options.usePagination) !== "Boolean") + throw new Error("options.usePagination必须是一个布尔值"); + const immediate = options.immediate ?? true; + const usePagination = options.usePagination ?? true; + if (!immediate && options.otherParams) + throw new Error("options.otherParams只有在immediate为true时才有效"); + if ( + immediate && + options.otherParams && + getDataType(options.otherParams) !== "Object" + ) + throw new Error("options.otherParams必须是一个对象"); + if (options.callbackFn && getDataType(options.callbackFn) !== "Function") + throw new Error("options.callbackFn必须是一个函数"); + const list = ref([]); + const pagination = ref({ + currentPage: 1, + pageSize: 10, + total: 0, + }); + const searchForm = ref({}); + const tableRef = ref(null); + const fnGetData = async (otherParams = {}) => { + const resData = await api({ + ...(usePagination + ? { + currentPage: pagination.value.currentPage, + showCount: pagination.value.pageSize, + } + : {}), + ...searchForm.value, + ...(options.otherParams || {}), + ...(getDataType(otherParams) === "Object" ? otherParams : {}), + }); + list.value = resData.varList; + pagination.value.total = resData.page.totalResult; + options.callbackFn && options.callbackFn(list.value); + }; + immediate && fnGetData().then(); + const fnResetPagination = async (otherParams) => { + list.value = []; + pagination.value = { + currentPage: 1, + pageSize: 10, + total: 0, + }; + await nextTick(); + await fnGetData(otherParams); + tableRef.value && tableRef.value.clearSelection(); + }; + return { + list, + pagination, + searchForm, + tableRef, + fnGetData: async (otherParams) => await fnGetData(otherParams), + fnResetPagination: async (otherParams) => + await fnResetPagination(otherParams), + }; +} diff --git a/src/assets/js/utils.js b/src/assets/js/utils.js new file mode 100644 index 0000000..89536b2 --- /dev/null +++ b/src/assets/js/utils.js @@ -0,0 +1,320 @@ +import { ElMessage, ElMessageBox } from "element-plus"; + +/** + * @description 计算序号 + * @param {Object} pagination 分页数据对象 + * @param {number | string} pagination.currentPage 当前页 + * @param {number | string} pagination.pageSize 每页条数 + * @param {number} index 当页数据的索引值 + * @return {number} 序号 + **/ +export function serialNumber(pagination, index) { + return (pagination.currentPage - 1) * pagination.pageSize + (index + 1); +} + +/** + * @description 字符串数组转数组 + * @param {string} value 转换的字符串数组 + * @return {Array} 转换后的数组 + **/ +export function toArrayString(value) { + // eslint-disable-next-line no-eval + return value ? eval(value).map(String) : []; +} + +/** + * @description 判断文件后缀名是否符合 + * @param {string} name 文件名字 + * @param {string} suffix 文件后缀 + * @return {boolean} 是否符合 + **/ +export function interceptTheSuffix(name, suffix) { + return ( + name.substring(name.lastIndexOf("."), name.length).toLowerCase() === + suffix.toLowerCase() + ); +} + +/** + * @description 图片转base64 + * @param {string} imgUrl 图片地址 + * @return {Promise} Promise实例,then包含base64编码 + **/ +export function image2Base64(imgUrl) { + return new Promise((resolve) => { + const img = new Image(); + img.src = imgUrl; + img.crossOrigin = "Anonymous"; + img.onload = function () { + const canvas = document.createElement("canvas"); + canvas.width = img.width; + canvas.height = img.height; + const ctx = canvas.getContext("2d"); + ctx.drawImage(img, 0, 0, img.width, img.height); + const ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase(); + resolve(canvas.toDataURL("image/" + ext)); + }; + }); +} + +/** + * @description 判断图片是否可访问成功 + * @param {string} imgUrl 图片地址 + * @return {Promise} Promise实例 + **/ +export function checkImgExists(imgUrl) { + return new Promise((resolve, reject) => { + const ImgObj = new Image(); + ImgObj.src = imgUrl; + ImgObj.onload = function (res) { + resolve(res); + }; + ImgObj.onerror = function (err) { + reject(err); + }; + }); +} + +/** + * @description 获取数据类型 + * @param {any} data 数据 + * @return {string} 数据类型 + **/ +export function getDataType(data) { + return Object.prototype.toString.call(data).slice(8, -1); +} + +/** + * @description 数组去重 + * @param {Array} arr 去重的数组 + * @return {Array} 去重后的数组 + **/ +export function ArrayDeduplication(arr) { + return [...new Set(arr)]; +} + +/** + * @description 数组对象去重 + * @param {Array} arr 去重的数组 + * @param {string} name 去重的key + * @return {Array} 去重后的数组 + **/ +export function ArrayObjectDeduplication(arr, name) { + const obj = {}; + arr = arr.reduce(function (previousValue, currentValue) { + if (!obj[currentValue[name]]) { + obj[currentValue[name]] = true; + previousValue.push(currentValue); + } + return previousValue; + }, []); + return arr; +} + +/** + * @description 查找字符串中指定的值第几次出现的位置 + * @param {Array} str 查找的字符串数组 + * @param {string} char 查找的值 + * @param {number} num 第几次出现 + * @return {number} 出现的位置 + **/ +export function findCharIndex(str, char, num) { + let index = str.indexOf(char); + for (let i = 0; i < num - 1; i++) { + index = str.indexOf(char, index + 1); + } + return index; +} + +/** + * @description 生成指定两个值之间的随机数 + * @param {number} min 最小值 + * @param {number} max 最大值 + * @return {number} 随机数 + **/ +export function randoms(min, max) { + return Math.random() * (max - min + 1) + min; +} + +/** + * @description 千位分隔符 + * @param {number | string} num 转换的值 + * @return {string} 转换后的值 + **/ +export function numFormat(num) { + if (num) { + const numArr = num.toString().split("."); + const arr = numArr[0].split("").reverse(); + let res = []; + for (let i = 0; i < arr.length; i++) { + if (i % 3 === 0 && i !== 0) { + res.push(","); + } + res.push(arr[i]); + } + res.reverse(); + if (numArr[1]) { + res = res.join("").concat("." + numArr[1]); + } else { + res = res.join(""); + } + return res; + } +} + +/** + * @description 验证是否为空 + * @param {any} value 验证的值 + * @return {boolean} 是否为空 + **/ +export function isEmpty(value) { + return ( + value === undefined || + value === null || + (typeof value === "object" && Object.keys(value).length === 0) || + (typeof value === "string" && value.trim().length === 0) + ); +} + +/** + * @description 获取url参数 + * @param {string} name 获取的key + * @return {string} 获取的值 + **/ +export function getUrlParam(name) { + const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); + const r = window.location.search.substr(1).match(reg); + if (r != null) return decodeURI(r[2]); + return ""; +} + +/** + * @description 数据分页 + * @param {Array} list 分页的数组 + * @param {number | string} currentPage 当前页 + * @param {number | string} pageSize 每页条数 + * @return {Array} 分页后的数组 + **/ +export function paging(list, currentPage, pageSize) { + return list.filter((item, index) => { + return ( + index < +currentPage * +pageSize && + index >= (+currentPage - 1) * +pageSize + ); + }); +} + +/** + * @description 获取文件后缀 + * @param {string} name 文件名 + * @return {string} 文件后缀 + **/ +export function getFileSuffix(name) { + return name.substring(name.lastIndexOf(".") + 1); +} + +/** + * @description 获取文件名称 + * @param {string} name 文件地址 + * @return {string} 文件名称 + **/ +export function getFileName(name) { + return name.substring(name.lastIndexOf("/") + 1); +} + +/** + * @description 读取txt文档 + * @param {string} filePah 文档路径 + * @return {resolve,string} 读取后的内容 + **/ +export function readTxtDocument(filePah) { + return new Promise((resolve) => { + const FILE_URL = import.meta.env.VITE_FILE_URL; + const file_url = FILE_URL + filePah; + const xhr = new XMLHttpRequest(); + xhr.open("get", file_url, true); + xhr.responseType = "blob"; + xhr.onload = function (event) { + const reader = new FileReader(); + reader.readAsText(event.target.response, "GB2312"); + reader.onload = function () { + resolve(reader.result); + }; + }; + xhr.send(); + }); +} + +/** + * @description 将秒转换成时分秒 + * @param {string,number} second 需要转换的秒数 + * @return {string} 转换后的时间 + **/ +export function secondConversion(second) { + if (!second) return 0; + const h = parseInt((second / 60 / 60) % 24, 10); + const m = parseInt((second / 60) % 60, 10); + const s = parseInt(second % 60, 10); + if (h) { + return h + "小时" + m + "分钟" + s + "秒"; + } else { + if (m) { + return m + "分钟" + s + "秒"; + } else { + return s + "秒"; + } + } +} + +/** + * @description 下载附件 + * @param {string} filePah 下载路径 + **/ +export async function downloadFile(filePah) { + const FILE_URL = import.meta.env.VITE_FILE_URL; + await ElMessageBox.confirm("确定要下载此文件吗?", { type: "warning" }); + window.open(FILE_URL + filePah, "_blank"); +} + +/** + * @description 附件添加前缀 + * @param {Array} list 附件数组 + * @return {Array} 添加完的数组 + **/ +export function addingPrefixToFile(list) { + const FILE_URL = import.meta.env.VITE_FILE_URL; + for (let i = 0; i < list.length; i++) { + list[i].url = FILE_URL + list[i].FILEPATH; + list[i].name = getFileName(list[i].FILEPATH); + } + return list; +} + +/** + * @description 验证重复选择 + * @param {Array} list 验证的数组 + * @param {number} index 选择的索引 + * @param {string} key 验证的字段 + * @param {string} id 验证的值 + **/ +export function verifyDuplicateSelection(list, index, key, id) { + if (list.some((item) => item[key] === id)) { + ElMessage.warning("不能重复选择"); + } else { + list[index][key] = id; + } +} + +/** + * @description 翻译状态 + * @param {number | string} status 状态 + * @param {Array} list 翻译的数组 + * @return {string} 翻译后的状态 + **/ +export function translationStatus(status, list) { + for (let i = 0; i < list.length; i++) { + if (status === list[i].ID) { + return list[i].NAME; + } + } +} diff --git a/src/components/card/index.vue b/src/components/card/index.vue new file mode 100644 index 0000000..900e2c9 --- /dev/null +++ b/src/components/card/index.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/components/cascader/index.vue b/src/components/cascader/index.vue new file mode 100644 index 0000000..3af6624 --- /dev/null +++ b/src/components/cascader/index.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/components/children/index.vue b/src/components/children/index.vue new file mode 100644 index 0000000..215faec --- /dev/null +++ b/src/components/children/index.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/components/economic_type/index.vue b/src/components/economic_type/index.vue new file mode 100644 index 0000000..9823c41 --- /dev/null +++ b/src/components/economic_type/index.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/industry/index.vue b/src/components/industry/index.vue new file mode 100644 index 0000000..9cda732 --- /dev/null +++ b/src/components/industry/index.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/layout/breadcrumb/index.vue b/src/components/layout/breadcrumb/index.vue new file mode 100644 index 0000000..02fe6c0 --- /dev/null +++ b/src/components/layout/breadcrumb/index.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/components/layout/header/components/update_avatar.vue b/src/components/layout/header/components/update_avatar.vue new file mode 100644 index 0000000..80492c0 --- /dev/null +++ b/src/components/layout/header/components/update_avatar.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/components/layout/header/components/update_info.vue b/src/components/layout/header/components/update_info.vue new file mode 100644 index 0000000..885a7c3 --- /dev/null +++ b/src/components/layout/header/components/update_info.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/components/layout/header/index.vue b/src/components/layout/header/index.vue new file mode 100644 index 0000000..8706bb2 --- /dev/null +++ b/src/components/layout/header/index.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/src/components/layout/index.vue b/src/components/layout/index.vue new file mode 100644 index 0000000..578493a --- /dev/null +++ b/src/components/layout/index.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/components/layout/menu/index.vue b/src/components/layout/menu/index.vue new file mode 100644 index 0000000..646de49 --- /dev/null +++ b/src/components/layout/menu/index.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/components/learning_train_type/index.vue b/src/components/learning_train_type/index.vue new file mode 100644 index 0000000..f14e90d --- /dev/null +++ b/src/components/learning_train_type/index.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/components/regulatory_type/index.vue b/src/components/regulatory_type/index.vue new file mode 100644 index 0000000..6a723ce --- /dev/null +++ b/src/components/regulatory_type/index.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/table/index.vue b/src/components/table/index.vue new file mode 100644 index 0000000..8abe143 --- /dev/null +++ b/src/components/table/index.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/components/territory/index.vue b/src/components/territory/index.vue new file mode 100644 index 0000000..1e1c1d5 --- /dev/null +++ b/src/components/territory/index.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/components/upload/index.vue b/src/components/upload/index.vue new file mode 100644 index 0000000..4991667 --- /dev/null +++ b/src/components/upload/index.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/components/verification/index.vue b/src/components/verification/index.vue new file mode 100644 index 0000000..643d891 --- /dev/null +++ b/src/components/verification/index.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..f613ac0 --- /dev/null +++ b/src/main.js @@ -0,0 +1,41 @@ +import { createApp } from "vue"; +import "@/assets/css/common.scss"; +import "@/assets/css/transition.scss"; +import "@/assets/css/element.scss"; +import "dayjs/locale/zh-cn"; +import App from "./App"; +import pinia from "./pinia"; +import router from "./router"; +import "normalize.css"; +import "animate.css"; +import "viewerjs/dist/viewer.css"; +import VueViewer from "v-viewer"; +import print from "vue3-print-nb"; +import button from "@/assets/js/button"; +import "./addRouters"; +import "element-plus/es/components/loading/style/css"; +import "element-plus/es/components/message/style/css"; +import "element-plus/es/components/message-box/style/css"; +import "element-plus/es/components/notification/style/css"; +import { install } from "@icon-park/vue-next/es/all"; +import LayoutTable from "@/components/table/index.vue"; +import LayoutCard from "@/components/card/index.vue"; +import ElDialog from "element-plus/es/components/dialog/index"; + +ElDialog.props.closeOnClickModal.default = false; +ElDialog.props.closeOnPressEscape.default = false; +const app = createApp(App); +app.component("layout-table", LayoutTable); +app.component("layout-card", LayoutCard); +install(app, "icon"); +app + .use(pinia) + .use(router) + .use(VueViewer, { + defaultOptions: { + zIndex: 9999, + }, + }) + .use(print) + .use(button) + .mount("#app"); diff --git a/src/pinia/index.js b/src/pinia/index.js new file mode 100644 index 0000000..add6afe --- /dev/null +++ b/src/pinia/index.js @@ -0,0 +1,7 @@ +import { createPinia } from "pinia"; +import piniaPersistedstate from "pinia-plugin-persistedstate"; + +const pinia = createPinia(); +pinia.use(piniaPersistedstate); + +export default pinia; diff --git a/src/pinia/menu.js b/src/pinia/menu.js new file mode 100644 index 0000000..df3af3c --- /dev/null +++ b/src/pinia/menu.js @@ -0,0 +1,30 @@ +import { defineStore } from "pinia"; + +export const useMenuStore = defineStore("menuStore", { + state: () => ({ + menusAll: [], + menus: [], + model: "", + }), + getters: { + getMenus: (state) => state.menus, + getModel: (state) => state.model, + }, + actions: { + setMenus(menus) { + this.menusAll = menus; + }, + setModel(model) { + this.model = model; + this.menus = []; + for (let i = 0; i < this.menusAll.length; i++) { + if (this.menusAll[i].meta.model === model) { + this.menus.push(this.menusAll[i]); + } + } + }, + }, + persist: { + storage: window.sessionStorage, + }, +}); diff --git a/src/pinia/miscellaneous.js b/src/pinia/miscellaneous.js new file mode 100644 index 0000000..6f2799d --- /dev/null +++ b/src/pinia/miscellaneous.js @@ -0,0 +1,18 @@ +import { defineStore } from "pinia"; + +export const useMiscellaneousStore = defineStore("miscellaneousStore", { + state: () => ({ + onlineAddress: false, + }), + getters: { + getOnlineAddress: (state) => state.onlineAddress, + }, + actions: { + setOnlineAddress(onlineAddress) { + this.onlineAddress = onlineAddress; + }, + }, + persist: { + storage: window.sessionStorage, + }, +}); diff --git a/src/pinia/router.js b/src/pinia/router.js new file mode 100644 index 0000000..046d6fc --- /dev/null +++ b/src/pinia/router.js @@ -0,0 +1,18 @@ +import { defineStore } from "pinia"; + +export const useRouterStore = defineStore("routerStore", { + state: () => ({ + routers: [], + }), + getters: { + getRouters: (state) => state.routers, + }, + actions: { + setRouters(routers) { + this.routers = routers; + }, + }, + persist: { + storage: window.sessionStorage, + }, +}); diff --git a/src/pinia/user.js b/src/pinia/user.js new file mode 100644 index 0000000..17a9831 --- /dev/null +++ b/src/pinia/user.js @@ -0,0 +1,18 @@ +import { defineStore } from "pinia"; + +export const useUserStore = defineStore("userStore", { + state: () => ({ + userInfo: {}, + }), + getters: { + getUserInfo: (state) => state.userInfo, + }, + actions: { + setUserInfo(userInfo) { + this.userInfo = userInfo; + }, + }, + persist: { + storage: window.sessionStorage, + }, +}); diff --git a/src/request/api.js b/src/request/api.js new file mode 100644 index 0000000..0ca86bd --- /dev/null +++ b/src/request/api.js @@ -0,0 +1,17 @@ +import { post, upload } from "./axios"; + +export const Login = (params) => post("/admin/check", params); // 登录 +export const logout = (params) => post("/main/logout", params); // 退出登录 +export const getAsyncRouter = (params) => post("/main/index", params); // 获取动态路由 +export const getUserInfo = (params) => post("/user/goEditMyInfo", params); // 获取用户信息 +export const setUserInfo = (params) => post("/user/editUserOwn", params); // 修改用户信息 +export const getVerifyDuplicateEmail = (params) => + post("/user/hasEmail", params); // 验证邮箱重复 +export const getVerifyDeduplicationUser = (params) => + post("/user/hasUser", params); // 用户名去重 +export const setAvatar = (params) => upload("/photo/saveNew", params); // 修改头像 +export const getInfo = (params) => + post("/head/getInfo", { loading: false, ...params }); // 获取用户信息 +export const setUploadImg = (params) => upload("/imgfiles/add", params); // 上传附件 +export const setDeleteImg = (params) => post("/imgfiles/delete", params); // 删除附件 +export const getViewImg = (params) => post("/imgfiles/listImgs", params); // 查看图片 diff --git a/src/request/axios.js b/src/request/axios.js new file mode 100644 index 0000000..46eb051 --- /dev/null +++ b/src/request/axios.js @@ -0,0 +1,153 @@ +import axios from "axios"; +import { ElLoading, ElMessage } from "element-plus"; +import router from "../router"; +import QS from "qs"; + +let loading = null; + +function startLoading() { + loading = ElLoading.service({ + lock: true, + text: "加载中...", + background: "rgba(0, 0, 0, 0.5)", + }); +} + +function endLoading() { + loading && loading.close(); +} + +axios.defaults.baseURL = import.meta.env[ + import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL" +]; +axios.defaults.timeout = 1000 * 60 * 10; +// axios.defaults.withCredentials = true; +axios.interceptors.request.use( + (config) => { + if (config.method === "get" || config.method === "GET") { + if (QS.parse(config.params)?.loading !== "false") startLoading(); + } + if (config.method === "post" || config.method === "POST") { + if (QS.parse(config.data)?.loading !== "false") startLoading(); + } + return config; + }, + (error) => Promise.reject(error) +); + +axios.interceptors.response.use( + (config) => { + if (config.config.method === "get" || config.config.method === "GET") { + if (QS.parse(config.config.params)?.loading !== "false") endLoading(); + } + if (config.config.method === "post" || config.config.method === "POST") { + if (QS.parse(config.config.data)?.loading !== "false") endLoading(); + } + return config; + }, + (error) => { + console.log(error); + if (error && error.response) { + switch (error.response.status) { + case 0: + case 302: + endLoading(); + ElMessage.error("登录失效,请重新登陆"); + router.push("/login").then(); + break; + default: + error.message = `连接错误${error.response.status}`; + import.meta.env.DEV && + ElMessage.error(`连接错误${error.response.status}`); + } + } else { + error.message = "连接到服务器失败"; + endLoading(); + ElMessage.error("登录失效,请重新登陆"); + router.push("/login").then(); + } + return Promise.reject(error.message); + } +); + +export function post(url, params) { + return new Promise((resolve, reject) => { + axios + .post(url, QS.stringify(params), { + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + }) + .then((res) => { + if (res.data.result === "success") { + resolve(res.data); + } else { + ElMessage.error( + res.data.msg || + res.data.resMsg || + res.data.resultStr || + "系统开小差了" + ); + reject(res.data); + } + }) + .catch((err) => { + reject(err); + }); + }); +} + +export function get(url, params) { + return new Promise((resolve, reject) => { + axios + .get(url, { + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + params: QS.stringify(params), + }) + .then((res) => { + if (res.data.result === "success") { + resolve(res.data); + } else { + ElMessage.error( + res.data.msg || + res.data.resMsg || + res.data.resultStr || + "系统开小差了" + ); + reject(res.data); + } + }) + .catch((err) => { + reject(err); + }); + }); +} + +export function upload(url, params) { + return new Promise((resolve, reject) => { + axios + .post(url, params, { + headers: { + "Content-Type": "multipart/form-data", + }, + }) + .then((res) => { + if (res.data.result === "success") { + resolve(res.data); + } else { + ElMessage.error( + res.data.msg || + res.data.resMsg || + res.data.resultStr || + "系统开小差了" + ); + reject(res.data); + } + }) + .catch((err) => { + reject(err); + }); + }); +} diff --git a/src/request/data_dictionary.js b/src/request/data_dictionary.js new file mode 100644 index 0000000..da2470e --- /dev/null +++ b/src/request/data_dictionary.js @@ -0,0 +1,26 @@ +import { post } from "@/request/axios.js"; + +// 获取数据字典 +export const getLevels = (params) => + post("/dictionaries/getLevels", { + loading: false, + ...params, + }); +// 获取数据字典包括子级数量 +export const getLevelsAndChildrenNumber = (params) => + post("/dictionaries/getLevelsAndSCount", { + loading: false, + ...params, + }); +// 监管类型 +export const getRegulatoryType = (params) => + post("/corptype/corptypelist", { + loading: false, + ...params, + }); +// 获取在线学习培训类型 +export const getLearningTrainType = (params) => + post("/dictionaries/listDictToParId", { + loading: false, + ...params, + }); diff --git a/src/request/prevention/enterprise_management.js b/src/request/prevention/enterprise_management.js new file mode 100644 index 0000000..7e6fe3b --- /dev/null +++ b/src/request/prevention/enterprise_management.js @@ -0,0 +1,14 @@ +import { post, upload } from "@/request/axios.js"; + +export const getEnterpriseInfo = (params) => post("/corpinfo/goEdit", params); // 获取企业信息 +export const setEnterpriseInfo = (params) => upload("/corpinfo/edit", params); // 修改企业信息 +export const getIndustryQualificationsList = (params) => + post("/qualifications/list", params); // 行业资质列表 +export const setIndustryQualificationsDelete = (params) => + post("/qualifications/delete", params); // 行业资质删除 +export const getIndustryQualificationsView = (params) => + post("/qualifications/goEdit", params); // 行业资质查看 +export const setIndustryQualificationsAdd = (params) => + post("/qualifications/add", params); // 行业资质添加 +export const setIndustryQualificationsEdit = (params) => + post("/qualifications/edit", params); // 行业资质修改 diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..0a301c5 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,51 @@ +import { createRouter, createWebHashHistory } from "vue-router"; +import layout from "../components/layout/index.vue"; +// import children from "../components/children/index.vue"; + +const routes = [ + { + path: "/login", + name: "/login", + meta: { title: "登录", isLogin: false }, + component: () => import("@/views/login/index"), + }, + { + path: "/", + name: "app", + redirect: "/index", + meta: { title: "首页" }, + component: layout, + children: [ + { + path: "/index", + name: "/index", + meta: { + title: "首页", + breadcrumb: false, + isMenu: false, + isSubMenu: false, + }, + component: () => import("@/views/index/index"), + }, + ], + }, + { + path: "/404", + name: "/404", + meta: { title: "404", isBreadcrumb: false, isMenu: false }, + component: () => import("@/views/404"), + }, +]; +const router = createRouter({ + history: createWebHashHistory(import.meta.env.BASE_URL), + routes, + scrollBehavior(to, from, savedPosition) { + if (savedPosition) { + return savedPosition; + } else { + return { left: 0, top: 0 }; + } + }, +}); + +export default router; diff --git a/src/views/404.vue b/src/views/404.vue new file mode 100644 index 0000000..fc96738 --- /dev/null +++ b/src/views/404.vue @@ -0,0 +1,565 @@ + + + diff --git a/src/views/enterprise_management/industry_qualifications/add.vue b/src/views/enterprise_management/industry_qualifications/add.vue new file mode 100644 index 0000000..3986fc2 --- /dev/null +++ b/src/views/enterprise_management/industry_qualifications/add.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/views/enterprise_management/industry_qualifications/index.vue b/src/views/enterprise_management/industry_qualifications/index.vue new file mode 100644 index 0000000..5764866 --- /dev/null +++ b/src/views/enterprise_management/industry_qualifications/index.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/src/views/enterprise_management/industry_qualifications/view.vue b/src/views/enterprise_management/industry_qualifications/view.vue new file mode 100644 index 0000000..bc14d7f --- /dev/null +++ b/src/views/enterprise_management/industry_qualifications/view.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/views/enterprise_management/information/edit.vue b/src/views/enterprise_management/information/edit.vue new file mode 100644 index 0000000..2f21dc8 --- /dev/null +++ b/src/views/enterprise_management/information/edit.vue @@ -0,0 +1,721 @@ + + + + + diff --git a/src/views/enterprise_management/information/info.vue b/src/views/enterprise_management/information/info.vue new file mode 100644 index 0000000..d06ba04 --- /dev/null +++ b/src/views/enterprise_management/information/info.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/src/views/index/index.vue b/src/views/index/index.vue new file mode 100644 index 0000000..677f24b --- /dev/null +++ b/src/views/index/index.vue @@ -0,0 +1,7 @@ + + + + + diff --git a/src/views/login/index.vue b/src/views/login/index.vue new file mode 100644 index 0000000..35937c6 --- /dev/null +++ b/src/views/login/index.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..6790793 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,92 @@ +import { defineConfig, loadEnv } from "vite"; +import vue from "@vitejs/plugin-vue"; +import eslintPlugin from "vite-plugin-eslint"; +import AutoImport from "unplugin-auto-import/vite"; +import Components from "unplugin-vue-components/vite"; +import { + ElementPlusResolver, + VantResolver, +} from "unplugin-vue-components/resolvers"; +// import basicSsl from "@vitejs/plugin-basic-ssl"; +import removeConsole from "vite-plugin-remove-console"; +import EnhanceLog from "vite-plugin-enhance-log"; + +export default ({ mode }) => { + return defineConfig({ + plugins: [ + vue(), + eslintPlugin(), + removeConsole({ + includes: [ + "assert", + "clear", + "count", + "countReset", + "createTask", + "debug", + "dir", + "dirxml", + "error", + "group", + "groupCollapsed", + "groupEnd", + "info", + "log", + "profile", + "profileEnd", + "table", + "time", + "timeEnd", + "timeLog", + "timeStamp", + "trace", + "warn", + ], + }), + AutoImport({ + resolvers: [ElementPlusResolver()], + }), + Components({ + resolvers: [ElementPlusResolver(), VantResolver()], + }), + EnhanceLog({ + preTip: "🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀", + }), + // basicSsl(), + ], + server: { + // https: true, + host: true, // 本机的局域网IP,不然其他人无法通过IP访问到,0.0.0.0或true会自动获取本机的IP + port: 8099, // 端口号 + open: true, // 是否自动打开浏览器 + proxy: { + [loadEnv(mode, process.cwd()).VITE_PROXY]: { + target: loadEnv(mode, process.cwd()).VITE_BASE_URL, + changeOrigin: true, + ws: true, + rewrite: (path) => path.replace(/^\/api/, ""), + }, + }, + }, + resolve: { + alias: { + "@": "/src", // 别名,@代表src目录 + }, + extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"], // 引入文件时哪些后缀名可以不写 + }, + build: { + rollupOptions: { + // 打包多个入口文件 + // input: { + // admin: path.resolve(__dirname, "index.html"), + // 其它入口文件路径需要为src/views/*/index.html + // }, + output: { + chunkFileNames: "static/js/[name]-[hash].js", + entryFileNames: "static/js/[name]-[hash].js", + assetFileNames: "static/[ext]/name-[hash].[ext]", + }, + }, + }, + }); +};