From 5baf48afac98185bfde6bd20f4c8ba28f15f43c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B5=A9=E6=AC=A2?= <5720080+WongHoFoon@user.noreply.gitee.com> Date: Mon, 9 Sep 2024 16:50:11 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 30 + .vscode/extensions.json | 3 + index.html | 13 + jsconfig.json | 8 + package-lock.json | 1495 +++++++++++++++++++++++++++++++++++++++ package.json | 22 + public/DevStar.png | Bin 0 -> 69506 bytes public/favicon.ico | Bin 0 -> 4286 bytes src/About.vue | 1 + src/App.vue | 57 ++ src/Customize.vue | 1 + src/Ide-templates.vue | 1 + src/Recommend-apps.vue | 1 + src/assets/base.css | 86 +++ src/assets/logo.svg | 1 + src/assets/main.css | 35 + src/main.js | 9 + src/router/index.ts | 1 + studio | 1 + vite.config.js | 17 + 20 files changed, 1782 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/DevStar.png create mode 100644 public/favicon.ico create mode 100644 src/About.vue create mode 100644 src/App.vue create mode 100644 src/Customize.vue create mode 100644 src/Ide-templates.vue create mode 100644 src/Recommend-apps.vue create mode 100644 src/assets/base.css create mode 100644 src/assets/logo.svg create mode 100644 src/assets/main.css create mode 100644 src/main.js create mode 100644 src/router/index.ts create mode 160000 studio create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ee54e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..2592365 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + DevStar + + +
+ + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..5a1f2d2 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..bc9f939 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1495 @@ +{ + "name": "vue-base", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vue-base", + "version": "0.0.0", + "dependencies": { + "axios": "^1.7.2", + "element-plus": "^2.7.5", + "vue": "^3.4.21", + "vue-router": "^4.4.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.4", + "sass": "^1.77.8", + "vite": "^5.2.8" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.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/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "dependencies": { + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" + }, + "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/@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/rollup-android-arm-eabi": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz", + "integrity": "sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz", + "integrity": "sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz", + "integrity": "sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz", + "integrity": "sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz", + "integrity": "sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz", + "integrity": "sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz", + "integrity": "sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz", + "integrity": "sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz", + "integrity": "sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz", + "integrity": "sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz", + "integrity": "sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz", + "integrity": "sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz", + "integrity": "sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz", + "integrity": "sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz", + "integrity": "sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz", + "integrity": "sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "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/lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==" + }, + "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/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/@vitejs/plugin-vue": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", + "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.24.tgz", + "integrity": "sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/shared": "3.4.24", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.24.tgz", + "integrity": "sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==", + "dependencies": { + "@vue/compiler-core": "3.4.24", + "@vue/shared": "3.4.24" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.24.tgz", + "integrity": "sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA==", + "dependencies": { + "@babel/parser": "^7.24.4", + "@vue/compiler-core": "3.4.24", + "@vue/compiler-dom": "3.4.24", + "@vue/compiler-ssr": "3.4.24", + "@vue/shared": "3.4.24", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.24.tgz", + "integrity": "sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.24", + "@vue/shared": "3.4.24" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" + }, + "node_modules/@vue/reactivity": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.24.tgz", + "integrity": "sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g==", + "dependencies": { + "@vue/shared": "3.4.24" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.24.tgz", + "integrity": "sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g==", + "dependencies": { + "@vue/reactivity": "3.4.24", + "@vue/shared": "3.4.24" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.24.tgz", + "integrity": "sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ==", + "dependencies": { + "@vue/runtime-core": "3.4.24", + "@vue/shared": "3.4.24", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.24.tgz", + "integrity": "sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow==", + "dependencies": { + "@vue/compiler-ssr": "3.4.24", + "@vue/shared": "3.4.24" + }, + "peerDependencies": { + "vue": "3.4.24" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.24.tgz", + "integrity": "sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==" + }, + "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.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "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.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", + "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "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/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/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/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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/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.11", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + }, + "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/element-plus": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.7.5.tgz", + "integrity": "sha512-e4oqhfRGBpdblgsjEBK+tA2+fg1H1KZ2Qinty1SaJl0X49FrMLK0lpXQNheWyBqI4V/pyjVOF9sRjz2hfyoctw==", + "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/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/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "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/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/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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/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/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/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-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-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/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/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "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/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/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/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-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/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/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "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.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "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/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/rollup": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.4.tgz", + "integrity": "sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.16.4", + "@rollup/rollup-android-arm64": "4.16.4", + "@rollup/rollup-darwin-arm64": "4.16.4", + "@rollup/rollup-darwin-x64": "4.16.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.16.4", + "@rollup/rollup-linux-arm-musleabihf": "4.16.4", + "@rollup/rollup-linux-arm64-gnu": "4.16.4", + "@rollup/rollup-linux-arm64-musl": "4.16.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.16.4", + "@rollup/rollup-linux-riscv64-gnu": "4.16.4", + "@rollup/rollup-linux-s390x-gnu": "4.16.4", + "@rollup/rollup-linux-x64-gnu": "4.16.4", + "@rollup/rollup-linux-x64-musl": "4.16.4", + "@rollup/rollup-win32-arm64-msvc": "4.16.4", + "@rollup/rollup-win32-ia32-msvc": "4.16.4", + "@rollup/rollup-win32-x64-msvc": "4.16.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "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/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/vite": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", + "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "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/vue": { + "version": "3.4.24", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.24.tgz", + "integrity": "sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg==", + "dependencies": { + "@vue/compiler-dom": "3.4.24", + "@vue/compiler-sfc": "3.4.24", + "@vue/runtime-dom": "3.4.24", + "@vue/server-renderer": "3.4.24", + "@vue/shared": "3.4.24" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.0.tgz", + "integrity": "sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a3921f4 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "vue-base", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.7.2", + "element-plus": "^2.7.5", + "vue": "^3.4.21", + "vue-router": "^4.4.0" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^5.0.4", + "sass": "^1.77.8", + "vite": "^5.2.8" + } +} diff --git a/public/DevStar.png b/public/DevStar.png new file mode 100644 index 0000000000000000000000000000000000000000..f98894ce8f78f4aa7e2dafd14088939801b5101e GIT binary patch literal 69506 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

V5&GMgeQR^tPSJIq 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 literal 0 HcmV?d00001 diff --git a/src/About.vue b/src/About.vue new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/About.vue @@ -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..0f8ae8f --- /dev/null +++ b/src/App.vue @@ -0,0 +1,57 @@ + + + + \ No newline at end of file diff --git a/src/Customize.vue b/src/Customize.vue new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/Customize.vue @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Ide-templates.vue b/src/Ide-templates.vue new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/Ide-templates.vue @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Recommend-apps.vue b/src/Recommend-apps.vue new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/Recommend-apps.vue @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/base.css b/src/assets/base.css new file mode 100644 index 0000000..8816868 --- /dev/null +++ b/src/assets/base.css @@ -0,0 +1,86 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: + color 0.5s, + background-color 0.5s; + line-height: 1.6; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/src/assets/main.css b/src/assets/main.css new file mode 100644 index 0000000..36fb845 --- /dev/null +++ b/src/assets/main.css @@ -0,0 +1,35 @@ +@import './base.css'; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; + padding: 3px; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..fa2c707 --- /dev/null +++ b/src/main.js @@ -0,0 +1,9 @@ +import { createApp } from 'vue' +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +import App from './App.vue' +import router from './router' +const app = createApp(App) +app.use(router) +app.use(ElementPlus) +app.mount('#app') \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/studio b/studio new file mode 160000 index 0000000..0b69e3a --- /dev/null +++ b/studio @@ -0,0 +1 @@ +Subproject commit 0b69e3a5d5a72adad49696006ae4460cdbb4680e diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..7243c77 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,17 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +}) + -- Gitee From 4ce82ed162298561afc15637d33d2342e0f90f06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B5=A9=E6=AC=A2?= <5720080+WongHoFoon@user.noreply.gitee.com> Date: Tue, 10 Sep 2024 10:51:16 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- env.d.ts | 1 + jsconfig.json | 8 - package-lock.json | 1017 +++++++++++++++++++++--------- package.json | 27 +- src/About.vue | 1 - src/Customize.vue | 1 - src/Ide-templates.vue | 1 - src/Recommend-apps.vue | 1 - src/component/About.vue | 14 + src/component/Customize.vue | 149 +++++ src/component/Ide-templates.vue | 14 + src/component/My-templates.vue | 82 +++ src/component/Recommend-apps.vue | 14 + src/router/index.ts | 26 +- tsconfig.app.json | 14 + tsconfig.json | 11 + tsconfig.node.json | 19 + vite.config.js => vite.config.ts | 1 - 18 files changed, 1090 insertions(+), 311 deletions(-) create mode 100644 env.d.ts delete mode 100644 jsconfig.json delete mode 100644 src/About.vue delete mode 100644 src/Customize.vue delete mode 100644 src/Ide-templates.vue delete mode 100644 src/Recommend-apps.vue create mode 100644 src/component/About.vue create mode 100644 src/component/Customize.vue create mode 100644 src/component/Ide-templates.vue create mode 100644 src/component/My-templates.vue create mode 100644 src/component/Recommend-apps.vue create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json rename vite.config.js => vite.config.ts (99%) diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 5a1f2d2..0000000 --- a/jsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "paths": { - "@/*": ["./src/*"] - } - }, - "exclude": ["node_modules", "dist"] -} diff --git a/package-lock.json b/package-lock.json index bc9f939..290581c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,28 +1,52 @@ { - "name": "vue-base", + "name": "vue-project", "version": "0.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "vue-base", + "name": "vue-project", "version": "0.0.0", "dependencies": { - "axios": "^1.7.2", - "element-plus": "^2.7.5", - "vue": "^3.4.21", - "vue-router": "^4.4.0" + "axios": "^1.7.7", + "element-plus": "^2.8.2", + "vue": "^3.4.29", + "vue-router": "^4.3.3" }, "devDependencies": { - "@vitejs/plugin-vue": "^5.0.4", - "sass": "^1.77.8", - "vite": "^5.2.8" + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.14.5", + "@vitejs/plugin-vue": "^5.0.5", + "@vue/tsconfig": "^0.5.1", + "npm-run-all2": "^6.2.0", + "typescript": "~5.4.0", + "vite": "^5.3.1", + "vue-tsc": "^2.0.21" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "dependencies": { + "@babel/types": "^7.25.6" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -30,6 +54,19 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "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", @@ -47,9 +84,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -63,9 +100,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -79,9 +116,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -95,9 +132,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -111,9 +148,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -127,9 +164,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -143,9 +180,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -159,9 +196,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -175,9 +212,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -191,9 +228,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -207,9 +244,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -223,9 +260,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -239,9 +276,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -255,9 +292,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -271,9 +308,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -287,9 +324,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -303,9 +340,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -319,9 +356,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -335,9 +372,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -351,9 +388,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -367,9 +404,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -383,9 +420,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -399,9 +436,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -415,31 +452,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", - "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", "dependencies": { - "@floating-ui/utils": "^0.2.0" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", - "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", - "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" }, "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==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@popperjs/core": { "name": "@sxzz/popperjs-es", @@ -452,9 +489,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.4.tgz", - "integrity": "sha512-GkhjAaQ8oUTOKE4g4gsZ0u8K/IHU1+2WQSgS1TwTcYvL+sjbaQjNHFXbOJ6kgqGHIO1DfUhI/Sphi9GkRT9K+Q==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz", + "integrity": "sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==", "cpu": [ "arm" ], @@ -465,9 +502,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.4.tgz", - "integrity": "sha512-Bvm6D+NPbGMQOcxvS1zUl8H7DWlywSXsphAeOnVeiZLQ+0J6Is8T7SrjGTH29KtYkiY9vld8ZnpV3G2EPbom+w==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz", + "integrity": "sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==", "cpu": [ "arm64" ], @@ -478,9 +515,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.4.tgz", - "integrity": "sha512-i5d64MlnYBO9EkCOGe5vPR/EeDwjnKOGGdd7zKFhU5y8haKhQZTN2DgVtpODDMxUr4t2K90wTUJg7ilgND6bXw==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz", + "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==", "cpu": [ "arm64" ], @@ -491,9 +528,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.4.tgz", - "integrity": "sha512-WZupV1+CdUYehaZqjaFTClJI72fjJEgTXdf4NbW69I9XyvdmztUExBtcI2yIIU6hJtYvtwS6pkTkHJz+k08mAQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz", + "integrity": "sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==", "cpu": [ "x64" ], @@ -504,9 +541,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.4.tgz", - "integrity": "sha512-ADm/xt86JUnmAfA9mBqFcRp//RVRt1ohGOYF6yL+IFCYqOBNwy5lbEK05xTsEoJq+/tJzg8ICUtS82WinJRuIw==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz", + "integrity": "sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==", "cpu": [ "arm" ], @@ -517,9 +554,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.4.tgz", - "integrity": "sha512-tJfJaXPiFAG+Jn3cutp7mCs1ePltuAgRqdDZrzb1aeE3TktWWJ+g7xK9SNlaSUFw6IU4QgOxAY4rA+wZUT5Wfg==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz", + "integrity": "sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==", "cpu": [ "arm" ], @@ -530,9 +567,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.4.tgz", - "integrity": "sha512-7dy1BzQkgYlUTapDTvK997cgi0Orh5Iu7JlZVBy1MBURk7/HSbHkzRnXZa19ozy+wwD8/SlpJnOOckuNZtJR9w==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz", + "integrity": "sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==", "cpu": [ "arm64" ], @@ -543,9 +580,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.4.tgz", - "integrity": "sha512-zsFwdUw5XLD1gQe0aoU2HVceI6NEW7q7m05wA46eUAyrkeNYExObfRFQcvA6zw8lfRc5BHtan3tBpo+kqEOxmg==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz", + "integrity": "sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==", "cpu": [ "arm64" ], @@ -556,9 +593,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.4.tgz", - "integrity": "sha512-p8C3NnxXooRdNrdv6dBmRTddEapfESEUflpICDNKXpHvTjRRq1J82CbU5G3XfebIZyI3B0s074JHMWD36qOW6w==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz", + "integrity": "sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==", "cpu": [ "ppc64" ], @@ -569,9 +606,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.4.tgz", - "integrity": "sha512-Lh/8ckoar4s4Id2foY7jNgitTOUQczwMWNYi+Mjt0eQ9LKhr6sK477REqQkmy8YHY3Ca3A2JJVdXnfb3Rrwkng==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz", + "integrity": "sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==", "cpu": [ "riscv64" ], @@ -582,9 +619,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.4.tgz", - "integrity": "sha512-1xwwn9ZCQYuqGmulGsTZoKrrn0z2fAur2ujE60QgyDpHmBbXbxLaQiEvzJWDrscRq43c8DnuHx3QorhMTZgisQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz", + "integrity": "sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==", "cpu": [ "s390x" ], @@ -595,9 +632,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.4.tgz", - "integrity": "sha512-LuOGGKAJ7dfRtxVnO1i3qWc6N9sh0Em/8aZ3CezixSTM+E9Oq3OvTsvC4sm6wWjzpsIlOCnZjdluINKESflJLA==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz", + "integrity": "sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==", "cpu": [ "x64" ], @@ -608,9 +645,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.16.4.tgz", - "integrity": "sha512-ch86i7KkJKkLybDP2AtySFTRi5fM3KXp0PnHocHuJMdZwu7BuyIKi35BE9guMlmTpwwBTB3ljHj9IQXnTCD0vA==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz", + "integrity": "sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==", "cpu": [ "x64" ], @@ -621,9 +658,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.4.tgz", - "integrity": "sha512-Ma4PwyLfOWZWayfEsNQzTDBVW8PZ6TUUN1uFTBQbF2Chv/+sjenE86lpiEwj2FiviSmSZ4Ap4MaAfl1ciF4aSA==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz", + "integrity": "sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==", "cpu": [ "arm64" ], @@ -634,9 +671,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.4.tgz", - "integrity": "sha512-9m/ZDrQsdo/c06uOlP3W9G2ENRVzgzbSXmXHT4hwVaDQhYcRpi9bgBT0FTG9OhESxwK0WjQxYOSfv40cU+T69w==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz", + "integrity": "sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==", "cpu": [ "ia32" ], @@ -647,9 +684,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.4.tgz", - "integrity": "sha512-YunpoOAyGLDseanENHmbFvQSfVL5BxW3k7hhy0eN4rb3gS/ct75dVD0EXOWIqFT/nE8XYW6LP6vz6ctKRi0k9A==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz", + "integrity": "sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==", "cpu": [ "x64" ], @@ -659,6 +696,12 @@ "win32" ] }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true + }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -666,9 +709,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==" + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==" }, "node_modules/@types/lodash-es": { "version": "4.17.12", @@ -678,15 +721,24 @@ "@types/lodash": "*" } }, + "node_modules/@types/node": { + "version": "20.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", + "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, "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/@vitejs/plugin-vue": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", - "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz", + "integrity": "sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==", "dev": true, "engines": { "node": "^18.0.0 || >=20.0.0" @@ -696,50 +748,86 @@ "vue": "^3.2.25" } }, + "node_modules/@volar/language-core": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.4.tgz", + "integrity": "sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.4.4" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.4.tgz", + "integrity": "sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==", + "dev": true + }, + "node_modules/@volar/typescript": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.4.tgz", + "integrity": "sha512-QQMQRVj0fVHJ3XdRKiS1LclhG0VBXdFYlyuHRQF/xLk2PuJuHNWP26MDZNvEVCvnyUQuUQhIAfylwY5TGPgc6w==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.4", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, "node_modules/@vue/compiler-core": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.24.tgz", - "integrity": "sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.3.tgz", + "integrity": "sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==", "dependencies": { - "@babel/parser": "^7.24.4", - "@vue/shared": "3.4.24", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.3", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.24.tgz", - "integrity": "sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.3.tgz", + "integrity": "sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==", "dependencies": { - "@vue/compiler-core": "3.4.24", - "@vue/shared": "3.4.24" + "@vue/compiler-core": "3.5.3", + "@vue/shared": "3.5.3" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.24.tgz", - "integrity": "sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.3.tgz", + "integrity": "sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==", "dependencies": { - "@babel/parser": "^7.24.4", - "@vue/compiler-core": "3.4.24", - "@vue/compiler-dom": "3.4.24", - "@vue/compiler-ssr": "3.4.24", - "@vue/shared": "3.4.24", + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.3", + "@vue/compiler-dom": "3.5.3", + "@vue/compiler-ssr": "3.5.3", + "@vue/shared": "3.5.3", "estree-walker": "^2.0.2", - "magic-string": "^0.30.10", - "postcss": "^8.4.38", + "magic-string": "^0.30.11", + "postcss": "^8.4.44", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.24.tgz", - "integrity": "sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.3.tgz", + "integrity": "sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==", "dependencies": { - "@vue/compiler-dom": "3.4.24", - "@vue/shared": "3.4.24" + "@vue/compiler-dom": "3.5.3", + "@vue/shared": "3.5.3" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" } }, "node_modules/@vue/devtools-api": { @@ -747,49 +835,80 @@ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" }, + "node_modules/@vue/language-core": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", + "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.4.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@vue/reactivity": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.24.tgz", - "integrity": "sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.3.tgz", + "integrity": "sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==", "dependencies": { - "@vue/shared": "3.4.24" + "@vue/shared": "3.5.3" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.24.tgz", - "integrity": "sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.3.tgz", + "integrity": "sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==", "dependencies": { - "@vue/reactivity": "3.4.24", - "@vue/shared": "3.4.24" + "@vue/reactivity": "3.5.3", + "@vue/shared": "3.5.3" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.24.tgz", - "integrity": "sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.3.tgz", + "integrity": "sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==", "dependencies": { - "@vue/runtime-core": "3.4.24", - "@vue/shared": "3.4.24", + "@vue/reactivity": "3.5.3", + "@vue/runtime-core": "3.5.3", + "@vue/shared": "3.5.3", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.24.tgz", - "integrity": "sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.3.tgz", + "integrity": "sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==", "dependencies": { - "@vue/compiler-ssr": "3.4.24", - "@vue/shared": "3.4.24" + "@vue/compiler-ssr": "3.5.3", + "@vue/shared": "3.5.3" }, "peerDependencies": { - "vue": "3.4.24" + "vue": "3.5.3" } }, "node_modules/@vue/shared": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.24.tgz", - "integrity": "sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==" + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.3.tgz", + "integrity": "sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz", + "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==", + "dev": true }, "node_modules/@vueuse/core": { "version": "9.13.0", @@ -806,9 +925,9 @@ } }, "node_modules/@vueuse/core/node_modules/vue-demi": { - "version": "0.14.8", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", - "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "hasInstallScript": true, "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", @@ -850,9 +969,9 @@ } }, "node_modules/@vueuse/shared/node_modules/vue-demi": { - "version": "0.14.8", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz", - "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==", + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "hasInstallScript": true, "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", @@ -874,11 +993,25 @@ } } }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/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, + "optional": true, + "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -898,20 +1031,28 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dependencies": { "follow-redirects": "^1.15.6", "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.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" }, @@ -919,11 +1060,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -936,6 +1088,8 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -966,15 +1120,41 @@ "node": ">= 0.8" } }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/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/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.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true }, "node_modules/delayed-stream": { "version": "1.0.0", @@ -985,9 +1165,9 @@ } }, "node_modules/element-plus": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.7.5.tgz", - "integrity": "sha512-e4oqhfRGBpdblgsjEBK+tA2+fg1H1KZ2Qinty1SaJl0X49FrMLK0lpXQNheWyBqI4V/pyjVOF9sRjz2hfyoctw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.8.2.tgz", + "integrity": "sha512-pqoQlaUmzUFCjjTHyxGO7Cd0CizsQpIaad1ozV9PCaYjh2T4MIMnjfifqiYs2lWoZ/8GVwrRG1WTCfnZEjwfcg==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", @@ -1021,9 +1201,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -1033,29 +1213,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escape-html": { @@ -1073,6 +1253,8 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1081,9 +1263,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -1131,6 +1313,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1138,17 +1322,30 @@ "node": ">= 6" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, "node_modules/immutable": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1161,6 +1358,8 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -1170,6 +1369,8 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -1182,10 +1383,27 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.12.0" } }, + "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/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -1207,11 +1425,11 @@ } }, "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/memoize-one": { @@ -1219,6 +1437,15 @@ "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1238,6 +1465,27 @@ "node": ">= 0.6" } }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -1260,6 +1508,8 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -1269,16 +1519,67 @@ "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-run-all2": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.2.2.tgz", + "integrity": "sha512-Q+alQAGIW7ZhKcxLt8GcSi3h3ryheD6xnmXahkMRVM5LYmajcUrSITm8h+OPC9RYWMV2GR0Q1ntTUCfxaNoOJw==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "cross-spawn": "^7.0.3", + "memorystream": "^0.3.1", + "minimatch": "^9.0.0", + "pidtree": "^0.6.0", + "read-package-json-fast": "^3.0.2", + "shell-quote": "^1.7.3" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "npm-run-all2": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": "^14.18.0 || ^16.13.0 || >=18.0.0", + "npm": ">= 8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-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/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8.6" }, @@ -1286,10 +1587,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.45", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", "funding": [ { "type": "opencollective", @@ -1306,7 +1619,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -1318,11 +1631,26 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -1331,9 +1659,9 @@ } }, "node_modules/rollup": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.16.4.tgz", - "integrity": "sha512-kuaTJSUbz+Wsb2ATGvEknkI12XV40vIiHmLuFlejoo7HtDok/O5eDDD0UpCVY5bBX5U5RYo8wWP83H7ZsqVEnA==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.2.tgz", + "integrity": "sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1346,22 +1674,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.16.4", - "@rollup/rollup-android-arm64": "4.16.4", - "@rollup/rollup-darwin-arm64": "4.16.4", - "@rollup/rollup-darwin-x64": "4.16.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.16.4", - "@rollup/rollup-linux-arm-musleabihf": "4.16.4", - "@rollup/rollup-linux-arm64-gnu": "4.16.4", - "@rollup/rollup-linux-arm64-musl": "4.16.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.16.4", - "@rollup/rollup-linux-riscv64-gnu": "4.16.4", - "@rollup/rollup-linux-s390x-gnu": "4.16.4", - "@rollup/rollup-linux-x64-gnu": "4.16.4", - "@rollup/rollup-linux-x64-musl": "4.16.4", - "@rollup/rollup-win32-arm64-msvc": "4.16.4", - "@rollup/rollup-win32-ia32-msvc": "4.16.4", - "@rollup/rollup-win32-x64-msvc": "4.16.4", + "@rollup/rollup-android-arm-eabi": "4.21.2", + "@rollup/rollup-android-arm64": "4.21.2", + "@rollup/rollup-darwin-arm64": "4.21.2", + "@rollup/rollup-darwin-x64": "4.21.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.2", + "@rollup/rollup-linux-arm-musleabihf": "4.21.2", + "@rollup/rollup-linux-arm64-gnu": "4.21.2", + "@rollup/rollup-linux-arm64-musl": "4.21.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2", + "@rollup/rollup-linux-riscv64-gnu": "4.21.2", + "@rollup/rollup-linux-s390x-gnu": "4.21.2", + "@rollup/rollup-linux-x64-gnu": "4.21.2", + "@rollup/rollup-linux-x64-musl": "4.21.2", + "@rollup/rollup-win32-arm64-msvc": "4.21.2", + "@rollup/rollup-win32-ia32-msvc": "4.21.2", + "@rollup/rollup-win32-x64-msvc": "4.21.2", "fsevents": "~2.3.2" } }, @@ -1370,6 +1698,8 @@ "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -1382,6 +1712,48 @@ "node": ">=14.0.0" } }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -1390,11 +1762,21 @@ "node": ">=0.10.0" } }, + "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==", + "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, + "optional": true, + "peer": true, "dependencies": { "is-number": "^7.0.0" }, @@ -1402,15 +1784,34 @@ "node": ">=8.0" } }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, "node_modules/vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.3.tgz", + "integrity": "sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==", "dev": true, "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -1429,6 +1830,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -1446,6 +1848,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -1457,16 +1862,22 @@ } } }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, "node_modules/vue": { - "version": "3.4.24", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.24.tgz", - "integrity": "sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.3.tgz", + "integrity": "sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==", "dependencies": { - "@vue/compiler-dom": "3.4.24", - "@vue/compiler-sfc": "3.4.24", - "@vue/runtime-dom": "3.4.24", - "@vue/server-renderer": "3.4.24", - "@vue/shared": "3.4.24" + "@vue/compiler-dom": "3.5.3", + "@vue/compiler-sfc": "3.5.3", + "@vue/runtime-dom": "3.5.3", + "@vue/server-renderer": "3.5.3", + "@vue/shared": "3.5.3" }, "peerDependencies": { "typescript": "*" @@ -1490,6 +1901,38 @@ "peerDependencies": { "vue": "^3.2.0" } + }, + "node_modules/vue-tsc": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz", + "integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==", + "dev": true, + "dependencies": { + "@volar/typescript": "~2.4.1", + "@vue/language-core": "2.1.6", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "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" + } } } } diff --git a/package.json b/package.json index a3921f4..7bf6a56 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,29 @@ { - "name": "vue-base", + "name": "vue-project", "version": "0.0.0", "private": true, "type": "module", "scripts": { "dev": "vite", - "build": "vite build", - "preview": "vite preview" + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --build --force" }, "dependencies": { - "axios": "^1.7.2", - "element-plus": "^2.7.5", - "vue": "^3.4.21", - "vue-router": "^4.4.0" + "axios": "^1.7.7", + "element-plus": "^2.8.2", + "vue": "^3.4.29", + "vue-router": "^4.3.3" }, "devDependencies": { - "@vitejs/plugin-vue": "^5.0.4", - "sass": "^1.77.8", - "vite": "^5.2.8" + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.14.5", + "@vitejs/plugin-vue": "^5.0.5", + "@vue/tsconfig": "^0.5.1", + "npm-run-all2": "^6.2.0", + "typescript": "~5.4.0", + "vite": "^5.3.1", + "vue-tsc": "^2.0.21" } } diff --git a/src/About.vue b/src/About.vue deleted file mode 100644 index 5f28270..0000000 --- a/src/About.vue +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Customize.vue b/src/Customize.vue deleted file mode 100644 index 5f28270..0000000 --- a/src/Customize.vue +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Ide-templates.vue b/src/Ide-templates.vue deleted file mode 100644 index 5f28270..0000000 --- a/src/Ide-templates.vue +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Recommend-apps.vue b/src/Recommend-apps.vue deleted file mode 100644 index 5f28270..0000000 --- a/src/Recommend-apps.vue +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/component/About.vue b/src/component/About.vue new file mode 100644 index 0000000..af52d7c --- /dev/null +++ b/src/component/About.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/component/Customize.vue b/src/component/Customize.vue new file mode 100644 index 0000000..bac0d89 --- /dev/null +++ b/src/component/Customize.vue @@ -0,0 +1,149 @@ + + + + + + \ No newline at end of file diff --git a/src/component/Ide-templates.vue b/src/component/Ide-templates.vue new file mode 100644 index 0000000..5fc96a3 --- /dev/null +++ b/src/component/Ide-templates.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/component/My-templates.vue b/src/component/My-templates.vue new file mode 100644 index 0000000..33a04cb --- /dev/null +++ b/src/component/My-templates.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/src/component/Recommend-apps.vue b/src/component/Recommend-apps.vue new file mode 100644 index 0000000..01ba2b4 --- /dev/null +++ b/src/component/Recommend-apps.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts index 5f28270..660477c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1 +1,25 @@ - \ No newline at end of file +import { createRouter,createWebHashHistory} from "vue-router"; +import About from '@/component/About.vue' +import Customize from '@/component/Customize.vue' +import My_templates from '@/component/My-templates.vue' +const router = createRouter({ + history:createWebHashHistory(), + routes:[ + { + path:'/', + component:About + }, + { + path:'/customize', + component:Customize + }, + { + path:'/my-templates', + component:My_templates + } + ] +} +); + +export default router; + diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..087c843 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "lib": ["ES2015","DOM"], + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..66b5e57 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..f094063 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,19 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*" + ], + "compilerOptions": { + "composite": true, + "noEmit": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/vite.config.js b/vite.config.ts similarity index 99% rename from vite.config.js rename to vite.config.ts index 7243c77..5c45e1d 100644 --- a/vite.config.js +++ b/vite.config.ts @@ -14,4 +14,3 @@ export default defineConfig({ } } }) - -- Gitee From 5eef8f1f548f3d6190b20777221d95b07fc6b339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B5=A9=E6=AC=A2?= <5720080+WongHoFoon@user.noreply.gitee.com> Date: Tue, 10 Sep 2024 16:21:09 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 31 +++----------- src/component/Ide-templates.vue | 71 +++++++++++++++++++++++++++++---- src/component/My-templates.vue | 2 +- src/router/index.ts | 5 +++ 4 files changed, 75 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index d05c0c0..d16224f 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,19 @@ -# DevStar Studio Desktop - +# DevStar Studio Desktop(前端) #### 介绍 定制自己的DevStar Studio Desktop #### 软件架构 软件架构说明 +本页面为DevStar Studio前端模块(demo),目前主要有一个页面和若干组件页面 #### 安装教程 -1. xxxx -2. xxxx -3. xxxx +1. 准备一个vue3的环境 +2. 克隆工程项目,并且在项目目录下运行 npm install +3. 运行 npm run dev #### 使用说明 -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +目前只有主页、定制功能,定制开发环境的产物是一个*.ps1(Windows Powershell脚本),如果您的电脑已经安装好了vscode、docker desktop以及vscode的devcontainer扩展,那么运行这个脚本即可自动配置您需要开发环境容器镜像,并同时打开vscode连接至容器 \ No newline at end of file diff --git a/src/component/Ide-templates.vue b/src/component/Ide-templates.vue index 5fc96a3..d6da06e 100644 --- a/src/component/Ide-templates.vue +++ b/src/component/Ide-templates.vue @@ -1,14 +1,69 @@  - + \ No newline at end of file +/* 可以在这里添加样式 */ + diff --git a/src/component/My-templates.vue b/src/component/My-templates.vue index 33a04cb..2f89bd2 100644 --- a/src/component/My-templates.vue +++ b/src/component/My-templates.vue @@ -53,7 +53,7 @@ async function downloadFile(name: string, description: string) { const url = window.URL.createObjectURL(new Blob([response.data])); const link = document.createElement('a'); link.href = url; - link.setAttribute('download', `${name}.txt`); // 设置下载文件名 + link.setAttribute('download', `${name}.ps1`); // 设置下载文件名 document.body.appendChild(link); link.click(); document.body.removeChild(link); diff --git a/src/router/index.ts b/src/router/index.ts index 660477c..9bbf956 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -2,6 +2,7 @@ import About from '@/component/About.vue' import Customize from '@/component/Customize.vue' import My_templates from '@/component/My-templates.vue' +import Ide_templates from'@/component/Ide-templates.vue' const router = createRouter({ history:createWebHashHistory(), routes:[ @@ -16,6 +17,10 @@ const router = createRouter({ { path:'/my-templates', component:My_templates + }, + { + path:'/ide-templates', + component:Ide_templates } ] } -- Gitee From 39e825f231002f32e5a93f411e90309a17887441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B5=A9=E6=AC=A2?= <5720080+WongHoFoon@user.noreply.gitee.com> Date: Wed, 9 Oct 2024 03:03:45 +0800 Subject: [PATCH 4/5] 1009 --- package-lock.json | 13 ++ package.json | 1 + src/App.vue | 72 ++++++-- src/component/Customize.vue | 295 ++++++++++++++++++-------------- src/component/Ide-templates.vue | 119 ++++++++----- src/component/Login.vue | 114 ++++++++++++ src/component/My-templates.vue | 6 +- src/router/index.ts | 52 ++++-- 8 files changed, 474 insertions(+), 198 deletions(-) create mode 100644 src/component/Login.vue diff --git a/package-lock.json b/package-lock.json index 290581c..e93cd6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "axios": "^1.7.7", "element-plus": "^2.8.2", + "uuid": "^10.0.0", "vue": "^3.4.29", "vue-router": "^4.3.3" }, @@ -1803,6 +1804,18 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vite": { "version": "5.4.3", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.3.tgz", diff --git a/package.json b/package.json index 7bf6a56..722e571 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "dependencies": { "axios": "^1.7.7", "element-plus": "^2.8.2", + "uuid": "^10.0.0", "vue": "^3.4.29", "vue-router": "^4.3.3" }, diff --git a/src/App.vue b/src/App.vue index 0f8ae8f..489a51e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,6 +4,17 @@ +
+ + +
@@ -15,24 +26,17 @@ - + - - - - - - + @@ -46,7 +50,55 @@ - \ No newline at end of file +}); + +// 监听树节点的变化,保存选中的项到 localStorage +watch([softwareTreeRef.value, pluginTreeRef.value], saveCheckedKeysToLocalStorage); + + + diff --git a/src/component/Ide-templates.vue b/src/component/Ide-templates.vue index d6da06e..fab434d 100644 --- a/src/component/Ide-templates.vue +++ b/src/component/Ide-templates.vue @@ -1,32 +1,34 @@  - diff --git a/src/component/Login.vue b/src/component/Login.vue new file mode 100644 index 0000000..7b3c628 --- /dev/null +++ b/src/component/Login.vue @@ -0,0 +1,114 @@ + + + + + + + \ No newline at end of file diff --git a/src/component/My-templates.vue b/src/component/My-templates.vue index 2f89bd2..d6e00bd 100644 --- a/src/component/My-templates.vue +++ b/src/component/My-templates.vue @@ -16,7 +16,7 @@ 下载

{{ ides.description }} -

删除

+

删除

@@ -62,10 +62,10 @@ async function downloadFile(name: string, description: string) { } } -async function deleteTemplate(ideId: number) { +async function deleteTemplate(ideId:number , ideName: string) { try { const response = await axios.post(`http://localhost:3000/api/delete-template`, { - ideId + ideName }); if (response.status === 200) { // 检查是否删除成功 diff --git a/src/router/index.ts b/src/router/index.ts index 9bbf956..1866ecd 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,30 +1,46 @@ -import { createRouter,createWebHashHistory} from "vue-router"; -import About from '@/component/About.vue' -import Customize from '@/component/Customize.vue' -import My_templates from '@/component/My-templates.vue' -import Ide_templates from'@/component/Ide-templates.vue' +import { createRouter, createWebHistory } from "vue-router"; +import About from '@/component/About.vue'; +import Customize from '@/component/Customize.vue'; +import My_templates from '@/component/My-templates.vue'; +import Ide_templates from '@/component/Ide-templates.vue'; +import Login from '@/component/Login.vue'; + const router = createRouter({ - history:createWebHashHistory(), - routes:[ + history: createWebHistory(), // 改为历史模式 + routes: [ + { + path: '/', + component: About + }, { - path:'/', - component:About + path: '/customize', + component: Customize }, { - path:'/customize', - component:Customize + path: '/my-templates', + component: My_templates }, { - path:'/my-templates', - component:My_templates + path: '/ide-templates', + component: Ide_templates }, { - path:'/ide-templates', - component:Ide_templates + path: '/login', + component: Login } ] -} -); +}); -export default router; +router.beforeEach((to, from, next) => { + const isAuthenticated = !!localStorage.getItem('authToken'); + + if (!isAuthenticated && to.path !== '/login') { + next('/login'); + } else if (isAuthenticated && to.path === '/login') { + next('/'); + } else { + next(); + } +}); +export default router; -- Gitee From bd06f9366b9a4814c5ba8ca54c01a08e8b5aa632 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B5=A9=E6=AC=A2?= <5720080+WongHoFoon@user.noreply.gitee.com> Date: Wed, 16 Oct 2024 00:01:29 +0800 Subject: [PATCH 5/5] 1015 --- src/component/Customize.vue | 41 ++++++++++++++++++++++++++++++--- src/component/Ide-templates.vue | 2 +- src/component/Login.vue | 2 +- src/component/My-templates.vue | 24 ++++++++++++++----- 4 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/component/Customize.vue b/src/component/Customize.vue index 20ddfa7..0757ea9 100644 --- a/src/component/Customize.vue +++ b/src/component/Customize.vue @@ -72,6 +72,7 @@ const selectedSoftwares = ref([]); const selectedPlugins = ref([]); const softwareTreeRef = ref>(); const pluginTreeRef = ref>(); +const authToken = localStorage.getItem('authToken'); const route = useRoute(); // 获取或生成 UUID @@ -118,7 +119,7 @@ const restoreCheckedKeysFromLocalStorage = () => { const fetchPluginData = async () => { try { - const response = await axios.get('http://localhost:3000/api/plugin-data'); + const response = await axios.get(`${window.location.protocol}//${window.location.hostname}:3000/api/plugin-data`); Plugins.value = response.data; } catch (error) { console.error('Failed to fetch plugin data:', error); @@ -127,7 +128,7 @@ const fetchPluginData = async () => { const fetchSoftwareData = async () => { try { - const response = await axios.get('http://localhost:3000/api/software-data'); + const response = await axios.get(`${window.location.protocol}//${window.location.hostname}:3000/api/software-data`); Softwares.value = response.data; } catch (error) { console.error('Failed to fetch software data:', error); @@ -136,7 +137,8 @@ const fetchSoftwareData = async () => { const fetchEnvironmentData = async (name: string) => { try { - const response = await axios.get(`http://localhost:3000/api/environment?name=${name}`); + const response = await axios.get(`${window.location.protocol}//${window.location.hostname}:3000/api/environment?name=${name}`); + const { Softwares: fetchedSoftwares, Plugins: fetchedPlugins } = response.data; // 更新选中的软件和插件 @@ -156,6 +158,39 @@ const fetchEnvironmentData = async (name: string) => { console.error('Failed to fetch environment data:', error); } }; +const createTemplate = async () => { + if (!ideName.value.trim()) { + ElMessage.error('IDE名称不能为空'); + return; + } + + if (!ideDescription.value.trim()) { + ElMessage.error('IDE描述不能为空'); + return; + } + + const Softwares = softwareTreeRef.value?.getCheckedKeys(false) || []; + const Plugins = pluginTreeRef.value?.getCheckedKeys(false) || []; + + try { + await axios.post( + `${window.location.protocol}//${window.location.hostname}:3000/api/create-template`, + { + ideName: ideName.value, + ideDescription: ideDescription.value, + softwares: Softwares, + plugins: Plugins, + }, + { + headers: { 'Authorization': `Token ${authToken}` } // 将token正确地放在headers中 + } + ); + ElMessage.success('开发环境生成成功!'); + } catch (error) { + console.error('Error creating template:', error); + ElMessage.error('生成开发环境失败!'); + } +}; onMounted(() => { fetchPluginData(); diff --git a/src/component/Ide-templates.vue b/src/component/Ide-templates.vue index fab434d..b93b5e6 100644 --- a/src/component/Ide-templates.vue +++ b/src/component/Ide-templates.vue @@ -32,7 +32,7 @@ const ideList = ref([]); const fetchIDEsData = async () => { try { - const response = await axios.get('http://localhost:3000/api/ide-data'); + const response = await axios.get(`${window.location.protocol}//${window.location.hostname}:3000/api/ide-data`); ideList.value = response.data; } catch (error) { console.error('Failed to fetch ide data:', error); diff --git a/src/component/Login.vue b/src/component/Login.vue index 7b3c628..059831d 100644 --- a/src/component/Login.vue +++ b/src/component/Login.vue @@ -65,7 +65,7 @@ const onSubmit = async () => { await loginFormRef.value.validate(); // 发送登录请求 - const response = await axios.post('http://localhost:3000/login', { + const response = await axios.post(`${window.location.protocol}//${window.location.hostname}:3000/login`, { username: loginForm.value.username, password: loginForm.value.password, }); diff --git a/src/component/My-templates.vue b/src/component/My-templates.vue index d6e00bd..a8a90cc 100644 --- a/src/component/My-templates.vue +++ b/src/component/My-templates.vue @@ -28,10 +28,14 @@ import { ref, onMounted } from 'vue'; import axios from 'axios'; const ideList = ref([]); // IDE 列表 +const authToken = localStorage.getItem('authToken'); const fetchIDEsData = async () => { try { - const response = await axios.get('http://localhost:3000/api/my-ide-data'); + const response = await axios.get(`${window.location.protocol}//${window.location.hostname}:3000/api/my-ide-data`,{ + headers: { + 'Authorization': `token ${authToken}` // 将token添加到Authorization头部 + }}); ideList.value = response.data; } catch (error) { console.error('Failed to fetch ide data:', error); @@ -45,10 +49,14 @@ onMounted(() => { async function downloadFile(name: string, description: string) { try { - const response = await axios.get(`http://localhost:3000/download`, { + const response = await axios.get(`${window.location.protocol}//${window.location.hostname}:3000/download`, { params: { name, description }, - responseType: 'blob', - }); + responseType: 'blob', + headers: { + 'Authorization': `Bearer ${authToken}`, // 在请求头中加入token + } + } + ); const url = window.URL.createObjectURL(new Blob([response.data])); const link = document.createElement('a'); @@ -64,9 +72,13 @@ async function downloadFile(name: string, description: string) { async function deleteTemplate(ideId:number , ideName: string) { try { - const response = await axios.post(`http://localhost:3000/api/delete-template`, { + const response = await axios.post(`${window.location.protocol}//${window.location.hostname}:3000/api/delete-template`, { ideName - }); + }, + { + headers: { + 'Authorization': `token ${authToken}` // 将token添加到Authorization头部 + }}); if (response.status === 200) { // 检查是否删除成功 ideList.value = ideList.value.filter(ide => ide.id !== ideId); // 从列表中移除删除的项 -- Gitee