diff --git a/cdTMP/package-lock.json b/cdTMP/package-lock.json index 4ec0881..bc405ed 100644 --- a/cdTMP/package-lock.json +++ b/cdTMP/package-lock.json @@ -10,10 +10,10 @@ "dependencies": { "@arco-design/color": "^0.4.0", "@arco-design/web-vue": "^2.56.3", - "@tanstack/vue-query": "^5.66.4", + "@tanstack/vue-query": "^5.67.2", "@tinymce/tinymce-vue": "^6.1.0", - "@vueuse/core": "^12.7.0", - "axios": "^1.7.9", + "@vueuse/core": "^12.8.2", + "axios": "^1.8.2", "dayjs": "^1.11.13", "file2md5": "^1.3.0", "lodash-es": "^4.17.21", @@ -24,35 +24,36 @@ "pinyin-match": "^1.2.6", "postcss-import": "^16.1.0", "qs": "^6.14.0", - "tinymce": "^7.7.0", + "tinymce": "^7.7.1", "vue": "^3.5.13", "vue-clipboard3": "^2.0.0", "vue-color-kit": "^1.0.6", - "vue-data-ui": "^2.6.3", + "vue-data-ui": "^2.6.15", "vue-router": "^4.5.0", "vuedraggable": "^2.24.3" }, "devDependencies": { - "@tailwindcss/postcss": "^4.0.7", - "@tailwindcss/vite": "^4.0.7", + "@tailwindcss/postcss": "^4.0.12", + "@tailwindcss/vite": "^4.0.12", "@types/lodash-es": "^4.17.12", - "@types/node": "^22.13.4", + "@types/node": "^22.13.10", "@types/nprogress": "^0.2.3", "@types/qs": "^6.9.18", "@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue-jsx": "^4.1.1", - "@vue/babel-plugin-jsx": "^1.2.5", + "@vue/babel-plugin-jsx": "^1.4.0", "browserslist": "^4.24.4", - "eslint": "^9.20.1", - "eslint-plugin-vue": "^9.32.0", + "eslint": "^9.22.0", + "eslint-plugin-vue": "^10.0.0", "less": "^4.2.2", "less-loader": "^12.2.0", "postcss": "^8.5.3", - "prettier": "^3.5.1", + "prettier": "^3.5.3", "rollup-plugin-visualizer": "^5.14.0", - "tailwindcss": "^4.0.7", - "typescript": "^5.7.3", - "vite": "^6.1.1" + "tailwindcss": "^4.0.12", + "typescript": "^5.8.2", + "vite": "^6.2.1", + "vue-eslint-parser": "^10.1.1" } }, "node_modules/@alloc/quick-lru": { @@ -166,14 +167,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.9", + "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -294,9 +295,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "license": "MIT", "engines": { @@ -378,12 +379,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.9", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.9" }, "bin": { "parser": "bin/babel-parser.js" @@ -393,13 +394,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.9", + "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -445,32 +446,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.26.9", + "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.26.9", + "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -479,9 +480,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.9", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -492,9 +493,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", "cpu": [ "ppc64" ], @@ -509,9 +510,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", "cpu": [ "arm" ], @@ -526,9 +527,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", "cpu": [ "arm64" ], @@ -543,9 +544,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", "cpu": [ "x64" ], @@ -560,9 +561,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", "cpu": [ "arm64" ], @@ -577,9 +578,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", "cpu": [ "x64" ], @@ -594,9 +595,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", "cpu": [ "arm64" ], @@ -611,9 +612,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", "cpu": [ "x64" ], @@ -628,9 +629,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", "cpu": [ "arm" ], @@ -645,9 +646,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", "cpu": [ "arm64" ], @@ -662,9 +663,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", "cpu": [ "ia32" ], @@ -679,9 +680,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", "cpu": [ "loong64" ], @@ -696,9 +697,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", "cpu": [ "mips64el" ], @@ -713,9 +714,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", "cpu": [ "ppc64" ], @@ -730,9 +731,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", "cpu": [ "riscv64" ], @@ -747,9 +748,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", "cpu": [ "s390x" ], @@ -764,9 +765,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", "cpu": [ "x64" ], @@ -781,9 +782,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", "cpu": [ "arm64" ], @@ -798,9 +799,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", "cpu": [ "x64" ], @@ -815,9 +816,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", "cpu": [ "arm64" ], @@ -832,9 +833,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", "cpu": [ "x64" ], @@ -849,9 +850,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", "cpu": [ "x64" ], @@ -866,9 +867,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", "cpu": [ "arm64" ], @@ -883,9 +884,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", "cpu": [ "ia32" ], @@ -900,9 +901,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", "cpu": [ "x64" ], @@ -942,13 +943,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "version": "0.19.2", + "resolved": "https://registry.npmmirror.com/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -956,10 +957,20 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmmirror.com/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "version": "0.12.0", + "resolved": "https://registry.npmmirror.com/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -970,9 +981,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -993,37 +1004,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmmirror.com/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", "resolved": "https://registry.npmmirror.com/globals/-/globals-14.0.0.tgz", @@ -1038,9 +1018,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.20.0", - "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.20.0.tgz", - "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", + "version": "9.22.0", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true, "license": "MIT", "engines": { @@ -1048,9 +1028,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmmirror.com/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1058,13 +1038,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "version": "0.2.7", + "resolved": "https://registry.npmmirror.com/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.10.0", + "@eslint/core": "^0.12.0", "levn": "^0.4.1" }, "engines": { @@ -1119,9 +1099,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "version": "0.4.2", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1459,44 +1439,44 @@ ] }, "node_modules/@tailwindcss/node": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/node/-/node-4.0.7.tgz", - "integrity": "sha512-dkFXufkbRB2mu3FPsW5xLAUWJyexpJA+/VtQj18k3SUiJVLdpgzBd1v1gRRcIpEJj7K5KpxBKfOXlZxT3ZZRuA==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/node/-/node-4.0.12.tgz", + "integrity": "sha512-a6J11K1Ztdln9OrGfoM75/hChYPcHYGNYimqciMrvKXRmmPaS8XZTHhdvb5a3glz4Kd4ZxE1MnuFE2c0fGGmtg==", "dev": true, "license": "MIT", "dependencies": { "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", - "tailwindcss": "4.0.7" + "tailwindcss": "4.0.12" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide/-/oxide-4.0.7.tgz", - "integrity": "sha512-yr6w5YMgjy+B+zkJiJtIYGXW+HNYOPfRPtSs+aqLnKwdEzNrGv4ZuJh9hYJ3mcA+HMq/K1rtFV+KsEr65S558g==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide/-/oxide-4.0.12.tgz", + "integrity": "sha512-DWb+myvJB9xJwelwT9GHaMc1qJj6MDXRDR0CS+T8IdkejAtu8ctJAgV4r1drQJLPeS7mNwq2UHW2GWrudTf63A==", "dev": true, "license": "MIT", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.7", - "@tailwindcss/oxide-darwin-arm64": "4.0.7", - "@tailwindcss/oxide-darwin-x64": "4.0.7", - "@tailwindcss/oxide-freebsd-x64": "4.0.7", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.7", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.7", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.7", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.7", - "@tailwindcss/oxide-linux-x64-musl": "4.0.7", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.7", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.7" + "@tailwindcss/oxide-android-arm64": "4.0.12", + "@tailwindcss/oxide-darwin-arm64": "4.0.12", + "@tailwindcss/oxide-darwin-x64": "4.0.12", + "@tailwindcss/oxide-freebsd-x64": "4.0.12", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.12", + "@tailwindcss/oxide-linux-arm64-gnu": "4.0.12", + "@tailwindcss/oxide-linux-arm64-musl": "4.0.12", + "@tailwindcss/oxide-linux-x64-gnu": "4.0.12", + "@tailwindcss/oxide-linux-x64-musl": "4.0.12", + "@tailwindcss/oxide-win32-arm64-msvc": "4.0.12", + "@tailwindcss/oxide-win32-x64-msvc": "4.0.12" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.7.tgz", - "integrity": "sha512-5iQXXcAeOHBZy8ASfHFm1k0O/9wR2E3tKh6+P+ilZZbQiMgu+qrnfpBWYPc3FPuQdWiWb73069WT5D+CAfx/tg==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.12.tgz", + "integrity": "sha512-dAXCaemu3mHLXcA5GwGlQynX8n7tTdvn5i1zAxRvZ5iC9fWLl5bGnjZnzrQqT7ttxCvRwdVf3IHUnMVdDBO/kQ==", "cpu": [ "arm64" ], @@ -1511,9 +1491,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.7.tgz", - "integrity": "sha512-7yGZtEc5IgVYylqK/2B0yVqoofk4UAbkn1ygNpIJZyrOhbymsfr8uUFCueTu2fUxmAYIfMZ8waWo2dLg/NgLgg==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.12.tgz", + "integrity": "sha512-vPNI+TpJQ7sizselDXIJdYkx9Cu6JBdtmRWujw9pVIxW8uz3O2PjgGGzL/7A0sXI8XDjSyRChrUnEW9rQygmJQ==", "cpu": [ "arm64" ], @@ -1528,9 +1508,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.7.tgz", - "integrity": "sha512-tPQDV20fBjb26yWbPqT1ZSoDChomMCiXTKn4jupMSoMCFyU7+OJvIY1ryjqBuY622dEBJ8LnCDDWsnj1lX9nNQ==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.12.tgz", + "integrity": "sha512-RL/9jM41Fdq4Efr35C5wgLx98BirnrfwuD+zgMFK6Ir68HeOSqBhW9jsEeC7Y/JcGyPd3MEoJVIU4fAb7YLg7A==", "cpu": [ "x64" ], @@ -1545,9 +1525,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.7.tgz", - "integrity": "sha512-sZqJpTyTZiknU9LLHuByg5GKTW+u3FqM7q7myequAXxKOpAFiOfXpY710FuMY+gjzSapyRbDXJlsTQtCyiTo5w==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.12.tgz", + "integrity": "sha512-7WzWiax+LguJcMEimY0Q4sBLlFXu1tYxVka3+G2M9KmU/3m84J3jAIV4KZWnockbHsbb2XgrEjtlJKVwHQCoRA==", "cpu": [ "x64" ], @@ -1562,9 +1542,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.7.tgz", - "integrity": "sha512-PBgvULgeSswjd8cbZ91gdIcIDMdc3TUHV5XemEpxlqt9M8KoydJzkuB/Dt910jYdofOIaTWRL6adG9nJICvU4A==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.12.tgz", + "integrity": "sha512-X9LRC7jjE1QlfIaBbXjY0PGeQP87lz5mEfLSVs2J1yRc9PSg1tEPS9NBqY4BU9v5toZgJgzKeaNltORyTs22TQ==", "cpu": [ "arm" ], @@ -1579,9 +1559,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.7.tgz", - "integrity": "sha512-By/a2yeh+e9b+C67F88ndSwVJl2A3tcUDb29FbedDi+DZ4Mr07Oqw9Y1DrDrtHIDhIZ3bmmiL1dkH2YxrtV+zw==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.12.tgz", + "integrity": "sha512-i24IFNq2402zfDdoWKypXz0ZNS2G4NKaA82tgBlE2OhHIE+4mg2JDb5wVfyP6R+MCm5grgXvurcIcKWvo44QiQ==", "cpu": [ "arm64" ], @@ -1596,9 +1576,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.7.tgz", - "integrity": "sha512-WHYs3cpPEJb/ccyT20NOzopYQkl7JKncNBUbb77YFlwlXMVJLLV3nrXQKhr7DmZxz2ZXqjyUwsj2rdzd9stYdw==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.12.tgz", + "integrity": "sha512-LmOdshJBfAGIBG0DdBWhI0n5LTMurnGGJCHcsm9F//ISfsHtCnnYIKgYQui5oOz1SUCkqsMGfkAzWyNKZqbGNw==", "cpu": [ "arm64" ], @@ -1613,9 +1593,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.7.tgz", - "integrity": "sha512-7bP1UyuX9kFxbOwkeIJhBZNevKYPXB6xZI37v09fqi6rqRJR8elybwjMUHm54GVP+UTtJ14ueB1K54Dy1tIO6w==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.12.tgz", + "integrity": "sha512-OSK667qZRH30ep8RiHbZDQfqkXjnzKxdn0oRwWzgCO8CoTxV+MvIkd0BWdQbYtYuM1wrakARV/Hwp0eA/qzdbw==", "cpu": [ "x64" ], @@ -1630,9 +1610,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.7.tgz", - "integrity": "sha512-gBQIV8nL/LuhARNGeroqzXymMzzW5wQzqlteVqOVoqwEfpHOP3GMird5pGFbnpY+NP0fOlsZGrxxOPQ4W/84bQ==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.12.tgz", + "integrity": "sha512-uylhWq6OWQ8krV8Jk+v0H/3AZKJW6xYMgNMyNnUbbYXWi7hIVdxRKNUB5UvrlC3RxtgsK5EAV2i1CWTRsNcAnA==", "cpu": [ "x64" ], @@ -1647,9 +1627,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.7.tgz", - "integrity": "sha512-aH530NFfx0kpQpvYMfWoeG03zGnRCMVlQG8do/5XeahYydz+6SIBxA1tl/cyITSJyWZHyVt6GVNkXeAD30v0Xg==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.12.tgz", + "integrity": "sha512-XDLnhMoXZEEOir1LK43/gHHwK84V1GlV8+pAncUAIN2wloeD+nNciI9WRIY/BeFTqES22DhTIGoilSO39xDb2g==", "cpu": [ "arm64" ], @@ -1664,9 +1644,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.7.tgz", - "integrity": "sha512-8Cva6bbJN7ZJx320k7vxGGdU0ewmpfS5A4PudyzUuofdi8MgeINuiiWiPQ0VZCda/GX88K6qp+6UpDZNVr8HMQ==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.12.tgz", + "integrity": "sha512-I/BbjCLpKDQucvtn6rFuYLst1nfFwSMYyPzkx/095RE+tuzk5+fwXuzQh7T3fIBTcbn82qH/sFka7yPGA50tLw==", "cpu": [ "x64" ], @@ -1681,31 +1661,31 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/postcss/-/postcss-4.0.7.tgz", - "integrity": "sha512-zXcKs1uGssVDlnsQ+iwrkul5GPKvsXPynGCuk/eXLx3DVhHlQKMpA6tXN2oO28x2ki1xRBTfadKiHy2taVvp7g==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/postcss/-/postcss-4.0.12.tgz", + "integrity": "sha512-r59Sdr8djCW4dL3kvc4aWU8PHdUAVM3O3te2nbYzXsWwKLlHPCuUoZAc9FafXb/YyNDZOMI7sTbKTKFmwOrMjw==", "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.0.7", - "@tailwindcss/oxide": "4.0.7", + "@tailwindcss/node": "4.0.12", + "@tailwindcss/oxide": "4.0.12", "lightningcss": "^1.29.1", "postcss": "^8.4.41", - "tailwindcss": "4.0.7" + "tailwindcss": "4.0.12" } }, "node_modules/@tailwindcss/vite": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/@tailwindcss/vite/-/vite-4.0.7.tgz", - "integrity": "sha512-GYx5sxArfIMtdZCsxfya3S/efMmf4RvfqdiLUozkhmSFBNUFnYVodatpoO/en4/BsOIGvq/RB6HwcTLn9prFnQ==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/@tailwindcss/vite/-/vite-4.0.12.tgz", + "integrity": "sha512-JM3gp601UJiryIZ9R2bSqalzcOy15RCybQ1Q+BJqDEwVyo4LkWKeqQAcrpHapWXY31OJFTuOUVBFDWMhzHm2Bg==", "dev": true, "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.0.7", - "@tailwindcss/oxide": "4.0.7", + "@tailwindcss/node": "4.0.12", + "@tailwindcss/oxide": "4.0.12", "lightningcss": "^1.29.1", - "tailwindcss": "4.0.7" + "tailwindcss": "4.0.12" }, "peerDependencies": { "vite": "^5.2.0 || ^6" @@ -1728,9 +1708,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.66.4", - "resolved": "https://registry.npmmirror.com/@tanstack/query-core/-/query-core-5.66.4.tgz", - "integrity": "sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==", + "version": "5.67.2", + "resolved": "https://registry.npmmirror.com/@tanstack/query-core/-/query-core-5.67.2.tgz", + "integrity": "sha512-+iaFJ/pt8TaApCk6LuZ0WHS/ECVfTzrxDOEL9HH9Dayyb5OVuomLzDXeSaI2GlGT/8HN7bDGiRXDts3LV+u6ww==", "license": "MIT", "funding": { "type": "github", @@ -1738,13 +1718,13 @@ } }, "node_modules/@tanstack/vue-query": { - "version": "5.66.4", - "resolved": "https://registry.npmmirror.com/@tanstack/vue-query/-/vue-query-5.66.4.tgz", - "integrity": "sha512-N0ucQkacKNLQTnr+s6vRlmYgR0D/C6oNwk3tTnxKhiIaZjSnCyfv70MNfNYuOpH9zsp76c6J4igjwGnGWPnBAA==", + "version": "5.67.2", + "resolved": "https://registry.npmmirror.com/@tanstack/vue-query/-/vue-query-5.67.2.tgz", + "integrity": "sha512-qH65s+0jsTJKCGAoDAne49taSumAD9+ySBhVPS4Nb6A1QD2BFJB+i5TH5ZODAFkrVcnpN8SwAla/mDK58CBtpg==", "license": "MIT", "dependencies": { "@tanstack/match-sorter-utils": "^8.19.4", - "@tanstack/query-core": "5.66.4", + "@tanstack/query-core": "5.67.2", "@vue/devtools-api": "^6.6.3", "vue-demi": "^0.14.10" }, @@ -1859,9 +1839,9 @@ } }, "node_modules/@types/node": { - "version": "22.13.4", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.13.4.tgz", - "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", + "version": "22.13.10", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.13.10.tgz", + "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", "dev": true, "license": "MIT", "dependencies": { @@ -1883,9 +1863,10 @@ "license": "MIT" }, "node_modules/@types/web-bluetooth": { - "version": "0.0.20", - "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", - "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==" + "version": "0.0.21", + "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" }, "node_modules/@vitejs/plugin-vue": { "version": "5.2.1", @@ -1921,29 +1902,28 @@ } }, "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.5.tgz", - "integrity": "sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==", + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz", + "integrity": "sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==", "dev": true, "license": "MIT" }, "node_modules/@vue/babel-plugin-jsx": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.5.tgz", - "integrity": "sha512-zTrNmOd4939H9KsRIGmmzn3q2zvv1mjxkYZHgqHZgDrXz5B1Q3WyGEjO2f+JrmKghvl1JIRcvo63LgM1kH5zFg==", + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz", + "integrity": "sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.6", - "@babel/types": "^7.25.6", - "@vue/babel-helper-vue-transform-on": "1.2.5", - "@vue/babel-plugin-resolve-type": "1.2.5", - "html-tags": "^3.3.1", - "svg-tags": "^1.0.0" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "@vue/babel-helper-vue-transform-on": "1.4.0", + "@vue/babel-plugin-resolve-type": "1.4.0", + "@vue/shared": "^3.5.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -1955,17 +1935,20 @@ } }, "node_modules/@vue/babel-plugin-resolve-type": { - "version": "1.2.5", - "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.5.tgz", - "integrity": "sha512-U/ibkQrf5sx0XXRnUZD1mo5F7PkpKyTbfXM3a3rC4YnUz6crHEz9Jg09jzzL6QYlXNto/9CePdOg/c87O4Nlfg==", + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.4.0.tgz", + "integrity": "sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/parser": "^7.25.6", - "@vue/compiler-sfc": "^3.5.3" + "@babel/code-frame": "^7.26.2", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/parser": "^7.26.9", + "@vue/compiler-sfc": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -2102,14 +2085,14 @@ "license": "MIT" }, "node_modules/@vueuse/core": { - "version": "12.7.0", - "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-12.7.0.tgz", - "integrity": "sha512-jtK5B7YjZXmkGNHjviyGO4s3ZtEhbzSgrbX+s5o+Lr8i2nYqNyHuPVOeTdM1/hZ5Tkxg/KktAuAVDDiHMraMVA==", + "version": "12.8.2", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-12.8.2.tgz", + "integrity": "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==", "license": "MIT", "dependencies": { - "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "12.7.0", - "@vueuse/shared": "12.7.0", + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "12.8.2", + "@vueuse/shared": "12.8.2", "vue": "^3.5.13" }, "funding": { @@ -2117,18 +2100,18 @@ } }, "node_modules/@vueuse/metadata": { - "version": "12.7.0", - "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-12.7.0.tgz", - "integrity": "sha512-4VvTH9mrjXqFN5LYa5YfqHVRI6j7R00Vy4995Rw7PQxyCL3z0Lli86iN4UemWqixxEvYfRjG+hF9wL8oLOn+3g==", + "version": "12.8.2", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-12.8.2.tgz", + "integrity": "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/@vueuse/shared": { - "version": "12.7.0", - "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-12.7.0.tgz", - "integrity": "sha512-coLlUw2HHKsm7rPN6WqHJQr18WymN4wkA/3ThFaJ4v4gWGWAQQGK+MJxLuJTBs4mojQiazlVWAKNJNpUWGRkNw==", + "version": "12.8.2", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-12.8.2.tgz", + "integrity": "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==", "license": "MIT", "dependencies": { "vue": "^3.5.13" @@ -2451,9 +2434,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.7.9", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.9.tgz", - "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.8.2.tgz", + "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -2475,7 +2458,8 @@ "version": "1.0.2", "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -2764,12 +2748,13 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -2942,9 +2927,9 @@ } }, "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "version": "0.25.0", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2955,31 +2940,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" } }, "node_modules/escalade": { @@ -2993,22 +2978,23 @@ } }, "node_modules/eslint": { - "version": "9.20.1", - "resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.20.1.tgz", - "integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==", + "version": "9.22.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.11.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.20.0", - "@eslint/plugin-kit": "^0.2.5", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.22.0", + "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -3016,7 +3002,7 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", + "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", @@ -3053,47 +3039,31 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.32.0", - "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", - "integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-10.0.0.tgz", + "integrity": "sha512-XKckedtajqwmaX6u1VnECmZ6xJt+YvlmMzBPZd+/sI3ub2lpYZyFnsyWo7c3nMOQKJQudeyk1lw/JxdgeKT64w==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "globals": "^13.24.0", "natural-compare": "^1.4.0", "nth-check": "^2.1.1", "postcss-selector-parser": "^6.0.15", "semver": "^7.6.3", - "vue-eslint-parser": "^9.4.3", "xml-name-validator": "^4.0.0" }, "engines": { - "node": "^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-vue/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "eslint": "^8.57.0 || ^9.0.0", + "vue-eslint-parser": "^10.0.0" } }, "node_modules/eslint-plugin-vue/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, "license": "ISC", "bin": { @@ -3104,16 +3074,17 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.3.0", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -3131,19 +3102,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/core": { - "version": "0.11.0", - "resolved": "https://registry.npmmirror.com/@eslint/core/-/core-0.11.0.tgz", - "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", @@ -3166,23 +3124,6 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "4.2.0", "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", @@ -3196,24 +3137,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmmirror.com/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", @@ -3236,27 +3159,42 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmmirror.com/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -3583,15 +3521,6 @@ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", "license": "MIT" }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -3634,9 +3563,9 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4420,10 +4349,11 @@ "license": "MIT" }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.8", @@ -4778,9 +4708,9 @@ } }, "node_modules/prettier": { - "version": "3.5.1", - "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.5.1.tgz", - "integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==", + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -5355,16 +5285,10 @@ "node": ">= 0.4" } }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, "node_modules/tailwindcss": { - "version": "4.0.7", - "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-4.0.7.tgz", - "integrity": "sha512-yH5bPPyapavo7L+547h3c4jcBXcrKwybQRjwdEIVAd9iXRvy/3T1CC6XSQEgZtRySjKfqvo3Cc0ZF1DTheuIdA==", + "version": "4.0.12", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-4.0.12.tgz", + "integrity": "sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==", "dev": true, "license": "MIT" }, @@ -5443,9 +5367,9 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "node_modules/tinymce": { - "version": "7.7.0", - "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-7.7.0.tgz", - "integrity": "sha512-zDFPXeje5fQIxuYzv9fE6YmjFBQmeB9SU+85ofizIHqCCkbBnDdEWhD5R8rBu9MwdjIQP3aNohgGe9D6JOhNaw==", + "version": "7.7.1", + "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-7.7.1.tgz", + "integrity": "sha512-rMetqSgZtYbj4YPOX+gYgmlhy/sIjVlI/qlrSOul/Mpn9e0aIIG/fR0qvQSVYvxFv6OzRTge++NQyTbzLJK1NA==", "license": "GPL-2.0-or-later" }, "node_modules/tslib": { @@ -5466,19 +5390,10 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.2", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -5548,14 +5463,14 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/vite": { - "version": "6.1.1", - "resolved": "https://registry.npmmirror.com/vite/-/vite-6.1.1.tgz", - "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==", + "version": "6.2.1", + "resolved": "https://registry.npmmirror.com/vite/-/vite-6.2.1.tgz", + "integrity": "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.5.2", + "esbuild": "^0.25.0", + "postcss": "^8.5.3", "rollup": "^4.30.1" }, "bin": { @@ -5658,43 +5573,58 @@ } }, "node_modules/vue-data-ui": { - "version": "2.6.3", - "resolved": "https://registry.npmmirror.com/vue-data-ui/-/vue-data-ui-2.6.3.tgz", - "integrity": "sha512-Uc/CKdGywNS56qtpxqchuXSh/rZJpsdHpxnBhSnP3baky7SbiSzW55CagH3lFmKkixdnc5TjjnVk0NMgxL/C7g==", + "version": "2.6.15", + "resolved": "https://registry.npmmirror.com/vue-data-ui/-/vue-data-ui-2.6.15.tgz", + "integrity": "sha512-Gq/hO/5XD/R9IPlTNME5JGH7S0W0nxzma4MdZUJAH2Z3EuBxRq4up/+etoUpFALtKXoJZyxal15WJjpPPBadzg==", "license": "MIT", "peerDependencies": { "vue": ">=3.3.0" } }, "node_modules/vue-eslint-parser": { - "version": "9.4.3", - "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", - "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "version": "10.1.1", + "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-10.1.1.tgz", + "integrity": "sha512-bh2Z/Au5slro9QJ3neFYLanZtb1jH+W2bKqGHXAoYD4vZgNG3KeotL7JpPv5xzY4UXUXJl7TrIsnzECH63kd3Q==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", + "debug": "^4.4.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.6.0", "lodash": "^4.17.21", - "semver": "^7.3.6" + "semver": "^7.6.3" }, "engines": { - "node": "^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "eslint": ">=6.0.0" + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.7.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, diff --git a/cdTMP/package.json b/cdTMP/package.json index c6aa715..923f225 100644 --- a/cdTMP/package.json +++ b/cdTMP/package.json @@ -13,10 +13,10 @@ "dependencies": { "@arco-design/color": "^0.4.0", "@arco-design/web-vue": "^2.56.3", - "@tanstack/vue-query": "^5.66.4", + "@tanstack/vue-query": "^5.67.2", "@tinymce/tinymce-vue": "^6.1.0", - "@vueuse/core": "^12.7.0", - "axios": "^1.7.9", + "@vueuse/core": "^12.8.2", + "axios": "^1.8.2", "dayjs": "^1.11.13", "file2md5": "^1.3.0", "lodash-es": "^4.17.21", @@ -27,34 +27,35 @@ "pinyin-match": "^1.2.6", "postcss-import": "^16.1.0", "qs": "^6.14.0", - "tinymce": "^7.7.0", + "tinymce": "^7.7.1", "vue": "^3.5.13", "vue-clipboard3": "^2.0.0", "vue-color-kit": "^1.0.6", - "vue-data-ui": "^2.6.3", + "vue-data-ui": "^2.6.15", "vue-router": "^4.5.0", "vuedraggable": "^2.24.3" }, "devDependencies": { - "@tailwindcss/postcss": "^4.0.7", - "@tailwindcss/vite": "^4.0.7", + "@tailwindcss/postcss": "^4.0.12", + "@tailwindcss/vite": "^4.0.12", "@types/lodash-es": "^4.17.12", - "@types/node": "^22.13.4", + "@types/node": "^22.13.10", "@types/nprogress": "^0.2.3", "@types/qs": "^6.9.18", "@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue-jsx": "^4.1.1", - "@vue/babel-plugin-jsx": "^1.2.5", + "@vue/babel-plugin-jsx": "^1.4.0", "browserslist": "^4.24.4", - "eslint": "^9.20.1", - "eslint-plugin-vue": "^9.32.0", + "eslint": "^9.22.0", + "eslint-plugin-vue": "^10.0.0", "less": "^4.2.2", "less-loader": "^12.2.0", "postcss": "^8.5.3", - "prettier": "^3.5.1", + "prettier": "^3.5.3", "rollup-plugin-visualizer": "^5.14.0", - "tailwindcss": "^4.0.7", - "typescript": "^5.7.3", - "vite": "^6.1.1" + "tailwindcss": "^4.0.12", + "typescript": "^5.8.2", + "vite": "^6.2.1", + "vue-eslint-parser": "^10.1.1" } } diff --git a/cdTMP/src/api/generate/seitaiGenerate.js b/cdTMP/src/api/generate/seitaiGenerate.js index db0132a..55777fd 100644 --- a/cdTMP/src/api/generate/seitaiGenerate.js +++ b/cdTMP/src/api/generate/seitaiGenerate.js @@ -8,7 +8,8 @@ export default { return request({ url: `/create/dgDocument`, method: "get", - params + params, + responseType: "blob" }) }, /** @@ -19,7 +20,8 @@ export default { return request({ url: `/create/smDocument`, method: "get", - params + params, + responseType: "blob" }) }, /** @@ -30,7 +32,8 @@ export default { return request({ url: `/create/jlDocument`, method: "get", - params + params, + responseType: "blob" }) }, /** @@ -41,7 +44,8 @@ export default { return request({ url: `/create/bgDocument`, method: "get", - params + params, + responseType: "blob" }) }, /** @@ -52,7 +56,8 @@ export default { return request({ url: `/create/hsmDocument`, method: "get", - params + params, + responseType: "blob" }) }, /** @@ -63,7 +68,8 @@ export default { return request({ url: `/create/hjlDocument`, method: "get", - params + params, + responseType: "blob" }) }, /** @@ -74,7 +80,8 @@ export default { return request({ url: `/create/wtdDocument`, method: "get", - params + params, + responseType: "blob" }) }, /** @@ -85,7 +92,7 @@ export default { return request({ url: `/create/cancel`, method: "get", - params + params, }) } } diff --git a/cdTMP/src/views/testmanage/components/PageHeader/index.vue b/cdTMP/src/views/testmanage/components/PageHeader/index.vue index c147aa0..375b32e 100644 --- a/cdTMP/src/views/testmanage/components/PageHeader/index.vue +++ b/cdTMP/src/views/testmanage/components/PageHeader/index.vue @@ -10,6 +10,8 @@ {{ props.data.name }} 所属文档片段 {{ props.data.step }} + + diff --git a/cdTMP/src/views/testmanage/projFragment/constants.ts b/cdTMP/src/views/testmanage/projFragment/constants.ts new file mode 100644 index 0000000..c69c378 --- /dev/null +++ b/cdTMP/src/views/testmanage/projFragment/constants.ts @@ -0,0 +1,939 @@ +// 该文件导出一些常量以及文档片段预制文档名称 +enum fragmentName { + NotSelect = "不使用模版(X)", + TestObject = "测评对象", + StaticEnv = "静态测试环境说明", + StaticSoft = "静态软件项", + StaticHard = "静态硬件和固件项", + DynamicEnv = "动态测试环境说明", + DynamicSoft = "动态软件项", + DynamicHard = "动态硬件和固件项", + TestData = "测评数据", + EnvDiff = "环境差异性分析", + TestLevelAndType = "测试级别和测试类型", + TestStrategy = "测试策略" +} + +export { fragmentName } + +// TestObject-测评对象模版 +export const TestObjectHTML = `

CX-3E(01/02/03)ZCL数据处理机主要用于接收星上载荷3台广域监视相机和1台精密跟踪相机的原始数据并实时处理,完成目标在轨检测、图像定位、天文定位以及目标异动识别。

+

广域图像处理机、广域精跟图像处理机主要用于接收相机的图像数据,进行图像处理并将数据处理结果转发至天文定位数据处理机。数据处理分系统的连接关系如图所示:

+

+

51数据处理分析系统连接关系图

+

图像处理机分为广域图像处理机和广域精跟图像处理机,硬件和软件均做统型设计,硬件按照最大接口包络设计,软件通过BOOT_FLAG标示,识别当前为广域处理机或者精跟处理机;其中广域图像处理机为2路2711图像输入,接收6个DSP的图像处理结果;精跟图像处理机为1路2711图像输入,1路LVDS图像输入,接收4个DSP的图像处理结果;接口管理FPGA通过BOOT_FLAG选通两路数据作为图像输入源,在接口管理FPGA内部,两路图像数据通道完全独立,独立的处理数据并通过各自独立的SRIO发送出去,接口管理FPGA交联图如下:

+

+

51接口管理FPGA外部交联图

+

接口管理FPGA主要完成以下功能:

+

1)通过EMIF接口与处理器进行数据传输;

+

2)接口管理FPGA通过2711/LVDS接口接收广域/精跟相机的图像数据,并通过SRIO转发至FPGA计算节点;FPGA提供异步串口接口,由处理器控制,实现与各个计算节点的遥控遥测数据传输;

+

3)接收DSP计算节点的IPD数据和图像处理日志,并通过LVDS接口发送至天文定位数据处理机;

+

4)控制AD采集芯片SAD0832的时序,周期性完成各个计算节点的电压采集,由处理器读取结果;

+

5)控制SPI FLASH时序,可以根据处理器指令提取相应位置的配置文件,实现对不同计算节点的原始配置文件重构,能够根据处理器指令要求,缓存新的配置文件;

+

6)模拟LSMEU03的JTAG时序,实现对LSMEU03的上注功能;

+

7)OC指令输出功能;

+

8)状态检测等功能;

` + +export const StaticEnvHTML = `

静态测试环境由1台测试计算机组成,测试计算机部署了Klocwork、Understand、Testbed等软件,对被测软件文档、源代码开展文档审查、静态分析、代码审查、代码走查等静态测试。

+

+

图5.4静态测试环境示意图

` + +export const StaticSoftHTML = `

此次软件静态测试环境使用的软件项见下表。

+

表5-5静态测评环境软件项

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

序号

+
+

软件项名称

+
+

版本

+
+

提供单位

+
+

用途

+
+

+
+

XXXX软件

+
+

VX.X

+
+

中国科学院卫星软件评测中心

+
+

被测软件

+
+

+
+

Klocwork

+
+

V2018

+
+

用于运行错误检测

+
+

+
+

Testbed

+
+

V9.4

+
+

用于静态分析

+
+

+
+

Understand

+
+

V5.0

+
+

用于静态分析、质量度量

+
+

+
+

Source Insight

+
+

V4.0

+
+

阅读代码工具

+
+

+
+

Beyond Compare

+
+

V4.4

+
+

代码对比工具

+
+

+
+

SourceCounter

+
+

V3.4.16.85

+
+

代码行统计工具

+
+

+
+

Microsoft Office

+
+

2016

+
+

文档阅读、编辑工具

+
+
+

 

` + +export const StaticHardHTML = `

此次静态测试环境使用的硬件和固件项详见下表所示。

+

56 静态测评环境硬件和固件项

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

序号

+
+

硬件或固件项名称

+
+

配置信息

+
+

设备编号

+
+

提供单位

+
+

用途

+
+

+
+

计算机

+
+

CPU:intel i7 6700

+

内存:16G

+

硬盘:500G

+

操作系统:Windows 7(64)

+
+

TY20191200277

+
+

中国科学院卫星软件评测中心

+
+

运行Klocwork、Source Insight等测试工具以及相关辅助软件,用于静态测试。

+
+
+

 

` + +export const DynamicEnvHTML = `

实物测试环境1的测试设备包括广域图像处理机、测试计算机(含2711发送板卡和LVDS接收发送板卡)、电源。广域精跟图像处理机接口管理FPGA软件运行于广域图像处理机;广域精跟地面应用软件、上注软件运行于测试计算机结合用于模拟2711相机源,发送广域图像数据;模拟天文处理机,接收处理后的IPD和日志信息;模拟星务发送上注指令,接收遥测信息。软件实物测试环境图如下图所示。

+

在广域精跟地面应用软件模拟2711相机源,发送广域图像,通过2711发送板卡给输入广域图像处理机,广域图像处理机再通过LVDS接收发送板卡接收处理后图像,并发送给广域精跟地面应用软件。在广域精跟地面应用软件向广域图像处理机发送控制指令(节点配置、软复位、串口数据等),并查看下传的遥测数据。通过上注软件进行程序上注,并接收下传测遥测信息。

+

+

图5-2图像处理机接口管理FPGA软件测试环境1示意图

` + +export const DynamicSoftHTML = `

图像处理机接口管理FPGA软件配置项实物测试环境1使用的软件项见表5‑13所示。

+

表5-7实物测试环境1软件项

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

序号

+
+

软件项名称

+
+

版本

+
+

提供单位

+
+

用途

+
+

+
+

XX系统软件

+
+

静态测评结束后版本

+
+

XX单位

+
+

被测软件

+
+
+

 

` + +export const DynamicHardHTML = `

图像处理机接口管理FPGA软件配置项测试环境1使用的硬件和固件项见下表所示。

+

表5-8实物测试环境1硬件和固件项

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

序号

+
+

硬件或固件项名称

+
+

配置信息

+
+

设备标识

+
+

检定有效期

+
+

提供单位

+
+

用途

+
+

1               

+
+

XX设备(含被测软件)

+
+

设备型号:XX

+

设备配置:XX

+

运行软件:XX、XX

+

(如果有多套应说明套数)

+
+

 

+
+

2023.08.11~2025.08.10

+
+

XX单位

+
+

XX为被测设备

+
+

2               

+
+

YY设备

+
+

设备型号:XX

+

设备配置:XX

+

运行软件:XX、XX

+

(如果有多套应说明套数)

+
+

 

+
+

检定日期:2023.08.11

+

有效期:3年

+
+

XX单位

+
+

真实陪测设备,用来与被测设备进行XX接口的数据通信

+
+

3               

+
+

ZZ综合测试设备

+
+

设备标识:XX

+

设备型号:XX

+

设备配置:XX

+

运行软件:XX、XX

+

(如果有多套应说明套数)

+
+

 

+
+

 

+
+

XX单位

+
+

模拟发送 XX接口数据

+
+

4               

+
+

示波器

+
+

设备型号:XX

+

设备配置:XX

+

(如果有多套应说明套数)

+
+

 

+
+

 

+
+

XX单位

+
+

测量定时器采样周期

+
+

5               

+
+

工控机

+
+

设备型号:XX

+

设备配置:XX

+

运行软件:XX、XX

+

(如果有多套应说明套数)

+
+

 

+
+

 

+
+

XX单位

+
+

运行 XX软件模拟 XX

+
+
+

 

` + +export const TestDataHTML = `

图像处理机接口管理FPGA软件配置项测试所需的测评数据详见下表所示。

+

表5-9测评数据

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

序号

+
+

数据描述

+
+

性质

+
+

规格

+
+

数量

+
+

密级

+
+

提供单位

+
+

1               

+
+

FLASH配置参数

+
+

真实

+
+

单位:字节

+

大小:4.2MB

+
+

1组

+
+

非密

+
+

XX单位

+
+

2               

+
+

卫星星地反馈数据

+
+

模拟

+
+

符合星地传输接口协议的数据

+
+

连续2小时

+
+

 

+
+

XX单位

+
+

3               

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

4               

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+
+
+
+

 

` + +export const EnvDiffHTML = `

测评环境中的软硬件可以有效支持测试输入输出,能够保障测试顺利有效,但XX数据采用仿真数据,XX设备采用仿真软件模拟,与真实环境有差异,具体环境差异及影响分析见下表。

+

表5-10测评环境差异影响分析表

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

序号

+
+

真实环境

+
+

测试环境

+
+

环境差异及对测评结果影响

+
+

1               

+
+

XX设备

+
+

YY设备

+
+

YY设备为与XX设备配置、功能相同的真实设备,无差异。

+
+

2               

+
+

XX设备

+
+

XX仿真设备(内含XX仿真软件)

+
+

XX仿真设备可仿真XX软件全部交联接口,测试数据格式满足XX功能测试要求,但仿真测试数据为非真实飞行数据,无法针对XX性能指标进行测试,该项指标的测试结果需要采信XX试飞结果。

+
+

3               

+
+

 

+
+

 

+
+

 

+
+
+

 

` + +export const TestLevelAndTypeHTML = `

根据《军用软件鉴定测试指南》、软件需求规格说明及其他等效文档,本次测评的测试级别为配置项测试。所选取的测试类型有文档审查、静态分析、功能测试、性能测试、接口测试、边界测试、XX等,具体详见下表。

+

表6-1测试级别和测试类型一览表

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

按照软件重要程度及软件类型必须保留的测试类型

+
+

均需要

+
+

均需要

+
+

重要及以上需要

+
+

921、海军项目需要

+
+

均需要

+
+

均需要

+
+

均需要

+
+

关键软件需要

+
+

非嵌入式软件需要

+
+

含数据处理功能需要

+
+

重要及以上需要

+
+

均需要

+
+

均需要

+
+

非嵌入式软件需要

+
+

 

+
+

软件名称

+
+

文档审查

+
+

静态分析

+
+

代码审查

+
+

逻辑测试

+
+

功能测试

+
+

性能测试

+
+

边界测试

+
+

恢复性测试

+
+

安装性测试

+
+

数据处理测试

+
+

余量测试

+
+

强度测试

+
+

接口测试

+
+

人机交互界面测试

+
+

兼容性测试

+
+

XX软件配置项测试

+
+

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

系统测试要求的测试类型

+
+

必须

+
+

 

+
+

 

+
+

 

+
+

必须

+
+

必须

+
+

必须

+
+

必须

+
+

 

+
+

 

+
+

必须

+
+

必须

+
+

必须

+
+

 

+
+

必须

+
+
+

注:表格中的“√”表示需要进行此项测试,“-”表示不进行此项测试。

+

表6-2未选取测试类型原因说明

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

序号

+
+

软件测试

+
+

测试类型

+
+

未选取原因

+
+

1     

+
+

XX软件配置项测试

+
+

安装性测试

+
+

软件为嵌入式软件,且无安装性需求,故不开展相关测试类型测试

+
+

2     

+
+

人机交互界面测试

+
+

软件为嵌入式软件,且无人机交互界面需求,故不开展相关测试类型测试

+
+

3     

+
+

数据处理测试

+
+

软件需求规模说明中无数据处理要求,且无隐含要求,故不开展相关测试类型测试。

+
+

4     

+
+

兼容性测试

+
+

软件需求规模说明中无兼容性要求,且无隐含要求,故不开展相关测试类型测试。

+
+
+

 

` diff --git a/cdTMP/src/views/testmanage/projFragment/constantsExtra.ts b/cdTMP/src/views/testmanage/projFragment/constantsExtra.ts new file mode 100644 index 0000000..4ba8dc1 --- /dev/null +++ b/cdTMP/src/views/testmanage/projFragment/constantsExtra.ts @@ -0,0 +1,297 @@ +export const TestStrategyHTML = `

依据《军用软件测试指南》以及相关国军标的要求,测试组分析了系统研制总要求、系统研制任务书、软件需求规格说明等文档,结合XXXX软件特点和研制方提供的测试环境,制定以下第三方测试策略:

+

a)文档审查内容为审查文档的测试齐套性、准确性、一致性和完整性,对于文档差距较大的软件,由测评机构提出申请,测评机构组织开展会议审查。

+

b)XXXX软件为XXXX(例:关键)软件,需对全部程序开展静态分析和代码审查。

+

c)本测试先实施配置项测试,待配置项测试发现问题闭环后再实施系统级测试;

+

d)对于配置项测试,先开展文档审查、代码审查、静态分析等静态测试,待静态测试发现问题闭环后再开展动态测试;

+

e)本次测评对于性能指标(除时间强度指标外)的验证,需采集10次数据进行验证;

+

f)测试过程中存在有争议的问题,应组织研制单位、软件测评机构、软件总体单位、软件测评总体单位(如有)等相关方确认进行确认。

+

g)软件需求中未明确余量指标要求,依据《军用软件测评实验室测评过程和技能能力要求》按照20%的余量指标要求开展余量测试;

+

h)无法采用动态测试手段验证的内容采用代码审查的方式检查逻辑实现的正确性;

+

i)若存在需要观测中间运行状态等采用动态测试手段无法直接验证的功能时,借助插桩测试手段验证。

+

针对XX功能中的XX等功能/算法,首先采用代码审查的方式,人工审查软件代码实现满足软件需求规格说明、软件设计说明等文档的要求,然后开展动态测试。在动态测试过程中,受XXX限制/影响,采取XXXX方式,模拟典型的/边界上的场景,设计相应测试用例的XXX的测试输入数据,并查看软件能够进行XX功能/算法。

+

经分析,本次第三方测试需要开展的测试类型所对应的测试内容及测试方法见下表所示。

+

表6-3测试类型及测试方法

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

测试类型

+

名称

+
+

测试类型标识

+
+

测试内容及方法描述

+
+

文档审查

+
+

DC

+
+

通过人工审查的方式,依据《军用软件开发文档通用要求》,对研制方提交的软件需求规格说明、设计文档进行审查。文档审查依据文档检查单。

+
+

静态分析

+
+

SA

+
+

利用静态分析工具辅助进行控制流分析、数据流分析、接口特性分析和表达式分析,验证软件质量度量和编码规则是否满足标准要求

+
+

代码审查

+
+

CR

+
+

按照经过评审的代码审查单,使用测试工具Klocwork和人工审查相结合的方式,对软件进行代码和设计的一致性、代码编程规范性检查。

+
+

逻辑测试

+
+

LT

+
+

测试程序代码逻辑结构设计的合理性、实现的正确性,并对代码的分支覆盖率,语句覆盖率,判定/条件覆盖率、状态机覆盖率的进行统计、分析,评估是否满足覆盖率要求,对无法覆盖的内容逐一进行分析和人工确认。

+
+

功能测试

+
+

SU

+
+

功能测试根据被测软件的功能特点,

+

用正常值的等价类输入数据值测试;

+

b)用非正常值的等价类输入数据值测试;

+

c)进行每个功能的合法边界值和非法边界值输入的测试;

+

d)用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果;

+

e)对控制流程的正确性、合理性等进行验证;

+

f)对用户接口正常和异常数据输入的测试。

+
+

接口测试

+
+

IO

+
+

对配置项接口测试主要测试配置项软件的对外接口,对子系统接口进行测试主要测试子系统的对外接口;

+

1、测试输出的数据格式是否满足通信协议的要求;

+

2、对传输发生异常的数据,软件是否有相应的容错机制。

+
+

性能测试

+
+

AC

+
+

检查被测软件是否满足需求规格说明中规定的性能指标。性能测试需要进行多次读取测量值,每次测量值均满足测试要求,则测试通过。

+

抗干扰、移动性等性能使用信号源、信道仪等设备进行辅助测试;

+

传输性能、自组网性能使用windows自带ping工具、iperf工具等软件工具进行辅助测试;

+
+

强度测试

+
+

ST

+
+

强制软件运行在不正常到发生故障的情况下(设计的极限状态到超出极限),检验软件可以运行到何种程度的测试;

+

强度测试通过长时间运行系统、加大通信力度等方式进行验证系统的抗压能力。

+
+

安全性测试

+
+

SE

+
+

进行对异常条件下软件的处理和保护能力的测试(以表明不会因为可能的单个或多个输入错误而导致的不安全状态);

+

安全性针对用户鉴权、用户登录安全、参数合法性检查、异常断电安全等情况进行测试;

+
+

人机交互界面测试

+
+

GUI

+
+

依据软件人机界面规范,验证软件人机交互界面的完整性,一致性,准确性,友好性,合理性,指导性;

+
+

余量测试

+
+

AT

+
+

余量测试主要是验证程序存储空间、程序运行空间、数据存储空间以及软件控制周期的余量是否达到需求规格说明中的要求,若无明确要求时,一般要求留有不少于20%的余量。

+
+

边界测试

+
+

BT

+
+

针对各属性值的边界值,采用边界值左侧临界点、右侧临界点、边界值以及正常值等采样点数值进行验证。测试包括对正常范围内的边界进行测试,还包括对异常边界进行测试。

+
+

恢复性测试

+
+

RE

+
+

对软件在故障或复位后是否能够恢复到正确的状态进行测试。

+

恢复性包括系统配置恢复、单通恢复、告警恢复等异常状态的恢复情况进行验证;

+
+

数据处理测试

+
+

DP

+
+

a)应对数据文件存取、数据库操作、数据采集、数据融合、数据转换、数据解析等专门数据处理功能进行测试;

+

b)应对剔除坏数据、数据滤波、数据容错等数据特殊处理功能进行测试;

+

c)应针对数据读取/写入过程中的容错、保护、超时等进行测试;

+

d)应对大数据处理算法、模型的实现正确性进行测试。

+
+

兼容性测试

+
+

JR

+
+

测试软件不同版本之间、不同软件产品之间、不同软硬件环境之间兼容程度

+

主要测试内容如下:

+

a) 当新版本软件替代旧版本软件时,对软件进行向下兼容性测试;

+

b) 当多个软件版本可以同时使用时,对软件进行相互兼容性测试;

+

c) 当两个软件产品可在同一硬件环境中替换使用时,对软件进行交错兼容性测试;

+

d) 当软件产品可能在不同的硬件设备中使用时,对软件进行适配兼容性测试;

+

e) 当软件产品可能在不同的软件环境中使用时,对软件进行环境兼容性测试;

+

f) 针对替代国外软件的国产化软件,对软件进行交错兼容性测试。

+
+

安装性测试

+
+

AZ

+
+

测试软件安装过程是否满足安装需求、是否符合安装规程。

+

主要测试内容如下:

+

a) 对软件安装到应用系统中的操作过程是否正确进行测试

+

b) 测试安装过程与产品规格说明或用户手册中所说明的安装规程是否文实一致;

+

c) 对软件卸载功能进行测试,并测试卸载后系统中的软件痕迹是否彻底清除干净;

+

d) 对适用于多种操作系统或多种系统配置的软件,应对软件在各种环境下的安装性进行测试;

+

e) 系统级测试中对应用软件的部署与撤收进行测试,包括在线升级、数据迁移、系统配置等相关。

+
+

容量测试

+
+

RL

+
+

测试软件在正常情况下所具备的最高能力。

+

主要测试内容如下:

+

a) 针对具有时间约束要求的功能,测试出正常工作条件下实际执行时间的最值范围;

+

b) 针对具有空间约束要求的功能,测试出正常工作条件下实际占用空间的最值范围;

+

c) 针对通讯接口,测试出正常工作条件下实际传输时间、传输数据量的最值范围;

+

d) 针对软件的处理能力,如处理目标数等,测试出正常工作条件下处理能力的最值范围。

+
+

互操作性测试

+
+

HZ

+
+

测试本软件与其他对同一功能或同一数据操作处理的协调性和一致。

+

主要测试内容如下:

+

a) 对同一功能通过配置可在不同软件中实现的相关软件,测试各种配置下功能的正确性;

+

b) 对因软件降级而将部分功能移交给其他软件执行的相关软件,测试功能移交的正确性;

+

c) 对可异步并发操作同一共享数据源的相关软件,测试对数据源操作的相容性和一致性;

+

d) 当同一功能(如指令条件判别、控制指令下达等)被不同软件(装备)同时进行操作时,测试操作处理的协调性和一致性。

+
+

可靠性测试

+
+

KK

+
+

从用户视角出发进行情景想定分析,建立软件的使用剖面(任务剖面/业务剖面/运行剖面/操作剖面等),在保证输入覆盖要求的情况下对软件进行定量度量,如,使用剖面的概率分布、使用特征的覆盖率等;监测软件出现的故障, 记录并统计软件的故障数据,依据故障数据对软件可靠性指标进行量化评估。

+
+

数据审查

+
+

DT

+
+

a) 针对装订参数、诸元参数、安装参数等软件依赖数据的完整性、有效性、格式规范性等进行审查;

+

b) 针对影响软件初始运行配置的数据,应对软件最大、最小、典型、默认配置下的数据的有效性进行审查;

+

c) 针对用于控制的数据,应根据控制要求对数据的精度、门限/阈值数据的合理性、数据用于控制过程的准确性等进行审查;

+

d) 针对数据的不可更改性等安全保护措施进行审查。

+
+
+

 

` diff --git a/cdTMP/src/views/testmanage/projFragment/hooks/crudOption.ts b/cdTMP/src/views/testmanage/projFragment/hooks/crudOption.ts index ef5ebcc..2e087a2 100644 --- a/cdTMP/src/views/testmanage/projFragment/hooks/crudOption.ts +++ b/cdTMP/src/views/testmanage/projFragment/hooks/crudOption.ts @@ -2,17 +2,91 @@ import { useRoute } from "vue-router" import { ref } from "vue" import { FragApi } from "@/api/system/fragment" import { IFragSearchCondition } from "@/api/system/types/fragmentTypes" +import { + fragmentName, + TestObjectHTML, + StaticEnvHTML, + StaticSoftHTML, + StaticHardHTML, + DynamicEnvHTML, + DynamicSoftHTML, + DynamicHardHTML, + TestDataHTML, + EnvDiffHTML, + TestLevelAndTypeHTML +} from "@/views/testmanage/projFragment/constants" +import { TestStrategyHTML } from "@/views/testmanage/projFragment/constantsExtra" const useCrudOption = () => { // global const route = useRoute() const crudRef = ref() + // 5.下拉框v-model的值 + const selectedValue = ref(fragmentName.NotSelect) // crud-options const crudOptions = ref({ api: FragApi.getFragList, add: { show: true, api: FragApi.add }, edit: { show: true, api: FragApi.update }, delete: { show: true, api: FragApi.delete }, + // 功能:预制文档片段数据 + beforeOpenAdd: () => { + const columnsService = crudRef.value.getColumnService() + // + switch (selectedValue.value) { + case fragmentName.NotSelect: + columnsService.get("name").setAttr("addDefaultValue", "") + columnsService.get("content").setAttr("addDefaultValue", "") + break + case fragmentName.TestObject: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestObject) + columnsService.get("content").setAttr("addDefaultValue", TestObjectHTML) + break + case fragmentName.StaticEnv: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.StaticEnv) + columnsService.get("content").setAttr("addDefaultValue", StaticEnvHTML) + break + case fragmentName.StaticSoft: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.StaticSoft) + columnsService.get("content").setAttr("addDefaultValue", StaticSoftHTML) + break + case fragmentName.StaticHard: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.StaticHard) + columnsService.get("content").setAttr("addDefaultValue", StaticHardHTML) + break + case fragmentName.DynamicEnv: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.DynamicEnv) + columnsService.get("content").setAttr("addDefaultValue", DynamicEnvHTML) + break + case fragmentName.DynamicSoft: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.DynamicSoft) + columnsService.get("content").setAttr("addDefaultValue", DynamicSoftHTML) + break + case fragmentName.DynamicHard: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.DynamicHard) + columnsService.get("content").setAttr("addDefaultValue", DynamicHardHTML) + break + case fragmentName.TestData: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestData) + columnsService.get("content").setAttr("addDefaultValue", TestDataHTML) + break + case fragmentName.EnvDiff: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.EnvDiff) + columnsService.get("content").setAttr("addDefaultValue", EnvDiffHTML) + break + case fragmentName.TestLevelAndType: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestLevelAndType) + columnsService.get("content").setAttr("addDefaultValue", TestLevelAndTypeHTML) + break + case fragmentName.TestStrategy: + columnsService.get("name").setAttr("addDefaultValue", fragmentName.TestStrategy) + columnsService.get("content").setAttr("addDefaultValue", TestStrategyHTML) + break + default: + break + } + return true + }, // 新增需要项目id parameters: { projectId: route.params.projectId as string @@ -34,11 +108,12 @@ const useCrudOption = () => { isDbClickEdit: false, searchColNumber: 2, formOption: { - isFull: true, + isFull: false, + width: "80%", layout: [ { formType: "grid", - cols: [{ span: 12, formList: [{ dataIndex: "name" }] }] + cols: [{ span: 6, formList: [{ dataIndex: "name" }] }] } ] } @@ -84,7 +159,8 @@ const useCrudOption = () => { crudRef, crudOptions, crudColumns, - route + route, + selectedValue } } diff --git a/cdTMP/src/views/testmanage/projFragment/index.vue b/cdTMP/src/views/testmanage/projFragment/index.vue index 9321f83..02c7bc8 100644 --- a/cdTMP/src/views/testmanage/projFragment/index.vue +++ b/cdTMP/src/views/testmanage/projFragment/index.vue @@ -2,7 +2,42 @@
- + + + + + +
@@ -12,6 +47,17 @@ :before-change="beforeSwitchChange(record)" > + +
@@ -27,11 +73,13 @@ import projectApi from "@/api/testmanage/project" // types - import import type { IPageHeaderProps } from "../components/PageHeader/types" import { Message } from "@arco-design/web-vue" +// 导入文档片段的配置 +import { fragmentName } from "@/views/testmanage/projFragment/constants" // hooks-import import useFetchData from "@/hooks/fetchData" import useCrudOption from "./hooks/crudOption" // 1.hook-crudOptions -const { crudRef, crudOptions, crudColumns, route } = useCrudOption() +const { crudRef, crudOptions, crudColumns, route, selectedValue } = useCrudOption() // 2.hook-获取单个项目信息 const fetchData = async () => { return projectApi.getProjectById(route.params.projectId) diff --git a/cdTMP/src/views/testmanage/projmanage/cpns/progress.vue b/cdTMP/src/views/testmanage/projmanage/cpns/progress.vue index b80eb37..9978840 100644 --- a/cdTMP/src/views/testmanage/projmanage/cpns/progress.vue +++ b/cdTMP/src/views/testmanage/projmanage/cpns/progress.vue @@ -9,7 +9,7 @@ :on-before-cancel="handleClickConfirmButton" > -
+
@@ -17,7 +17,6 @@ diff --git a/cdTMP/src/views/testmanage/projmanage/hooks/hooks.js b/cdTMP/src/views/testmanage/projmanage/hooks/hooks.js index 5765f79..2a7d304 100644 --- a/cdTMP/src/views/testmanage/projmanage/hooks/hooks.js +++ b/cdTMP/src/views/testmanage/projmanage/hooks/hooks.js @@ -4,14 +4,23 @@ export default { /** * 生成最终产品文档的进度条模块 */ - async create_entire_doc(visible, isComplete, api, record_id) { + async create_entire_doc(visible, isComplete, api, record_id, docName) { visible.value = true isComplete.value = false const st = await api({ id: record_id }).catch((err) => { isComplete.value = true visible.value = false }) + // 下面是创建后Blob并触发下载 + const blob = new Blob([st], { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }) + const url = window.URL.createObjectURL(blob) + const a = document.createElement("a") + a.href = url + a.download = `${docName}.docx` // 设置下载文件名 + a.click() + window.URL.revokeObjectURL(url) // 释放 URL 对象 + // 上面是触发下载 isComplete.value = true - Message.success(st.message) + Message.success("文档生成并下载成功!") } } diff --git a/cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts b/cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts index 986aea1..8a1d1b0 100644 --- a/cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts +++ b/cdTMP/src/views/testmanage/projmanage/hooks/useCrudInit.ts @@ -373,13 +373,13 @@ const useCrudInit = function () { { formType: "input", title: "联系电话", - maxLength: 11, + maxLength: 25, dataIndex: "entrust_contact_phone", hide: true, commonRules: [ { required: true, message: "联系电话必填" }, { - match: /^1[3456789]\d{9}$/, + match: /^(1[3-9]\d{9})|(\d{3,4}-\d{7,8}(-\d+)?)$/, message: "电话号码格式错误" } ] @@ -408,13 +408,13 @@ const useCrudInit = function () { { formType: "input", title: "联系电话", - maxLength: 11, + maxLength: 25, dataIndex: "dev_contact_phone", hide: true, commonRules: [ { required: true, message: "联系电话必填" }, { - match: /^1[3456789]\d{9}$/, + match: /^(1[3-9]\d{9})|(\d{3,4}-\d{7,8}(-\d+)?)$/, message: "电话号码格式错误" } ] @@ -448,11 +448,11 @@ const useCrudInit = function () { dataIndex: "test_contact_phone", addDefaultValue: textInfo.testUnintContactPhoneNumber, hide: true, - maxLength: 11, + maxLength: 25, commonRules: [ { required: true, message: "联系电话必填" }, { - match: /^1[3456789]\d{9}$/, + match: /^(1[3-9]\d{9})|(\d{3,4}-\d{7,8}(-\d+)?)$/, message: "电话号码格式错误" } ] diff --git a/cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts b/cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts index cd9deb5..f461f03 100644 --- a/cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts +++ b/cdTMP/src/views/testmanage/projmanage/hooks/useSeitaiModal.ts @@ -15,7 +15,7 @@ const useSeitaiModal = function () { // ~~~~~~~~测试说明生成文档~~~~~~~~ const createSeitaiShuoming = async (record: any) => { ptext.value = "测试说明" - hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createShuomingSeiTai, record.id) + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createShuomingSeiTai, record.id, ptext.value) } // ~~~~~~~~测试大纲生成文档~~~~~~~~ @@ -23,33 +23,33 @@ const useSeitaiModal = function () { // 根据一系列文档生成大纲 - 这里有进度条组件、a-modal组件 // 1.打开进度条组件 ptext.value = "测评大纲" - hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createDagangSeiTai, record.id) + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createDagangSeiTai, record.id, ptext.value) } // ~~~~~~~~记录生成文档~~~~~~~~ const createSeitaiJilu = async (record: any) => { ptext.value = "测试记录" - hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createJiluSeiTai, record.id) + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createJiluSeiTai, record.id, ptext.value) } // ~~~~~~~~报告生成文档~~~~~~~~ const createSeitaiBaogao = async (record: any) => { ptext.value = "测评报告" - hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id) + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id, ptext.value) } // ~~~~~~~~回归测试说明~~~~~~~~ const createSeitaiHsm = async (record: any) => { ptext.value = "回归测试说明" - hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHsmDocument, record.id) + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHsmDocument, record.id, ptext.value) } // ~~~~~~~~回归测试记录~~~~~~~~ const createSeitaiHjl = async (record: any) => { ptext.value = "回归测试记录" - hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id) + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id, ptext.value) } // ~~~~~~~~问题单~~~~~~~~ const createSeitaiWtd = async (record: any) => { ptext.value = "问题单" - hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createWtdDocument, record.id) + hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createWtdDocument, record.id, ptext.value) } return { diff --git a/cdTMP/visualizer.html b/cdTMP/visualizer.html index 8527c33..f03b450 100644 --- a/cdTMP/visualizer.html +++ b/cdTMP/visualizer.html @@ -8,8 +8,9 @@ Rollup Visualizer