From 1d3e9983f6145ca6c8cda97d9e6eabbd0c0b2641 Mon Sep 17 00:00:00 2001 From: "ex_zhangwenlei@exiot.cmcc" <15196725410@139.com> Date: Fri, 22 Nov 2024 16:41:14 +0800 Subject: [PATCH] fix: eslint and lint fixed --- .eslintignore | 12 - .eslintrc.cjs | 57 - eslint.config.js | 12 + package.json | 7 +- pnpm-lock.yaml | 1878 ++++++++++++++++- src/App.vue | 114 +- src/api/request.ts | 45 +- src/components/DaiysuiTable/index.vue | 115 +- src/components/HelloWorld.vue | 24 +- src/components/ImageSync/index.vue | 43 +- .../NumberSeparate/EditSeparateDialog.vue | 160 +- src/components/PlayMusic/index.vue | 178 +- src/components/StarsBackground/index.vue | 43 +- src/components/SvgIcon/index.vue | 9 +- src/components/ToTop/index.vue | 6 +- src/components/index.ts | 4 +- src/hooks/useElement.ts | 128 +- src/layout/Footer/config.ts | 2 +- src/layout/Footer/index.vue | 14 +- src/layout/Header/config.ts | 30 +- src/layout/Header/index.vue | 75 +- src/layout/index.vue | 18 +- src/locales/en.ts | 292 +-- src/locales/i18n.ts | 46 +- src/locales/zhCn.ts | 294 +-- src/main.ts | 36 +- src/router/index.ts | 227 +- src/store/data.ts | 451 ++-- src/store/globalConfig.ts | 502 ++--- src/store/index.ts | 19 +- src/store/personConfig.ts | 303 +-- src/store/prizeConfig.ts | 339 +-- src/store/system.ts | 60 +- src/types/storeType.ts | 84 +- src/utils/auth.ts | 2 +- src/utils/color.ts | 46 +- src/utils/file.ts | 32 +- src/utils/index.ts | 62 +- src/utils/store.ts | 19 +- src/views/Config/Global/FaceConfig.vue | 490 +++-- src/views/Config/Global/ImageConfig.vue | 175 +- src/views/Config/Global/MusicConfig.vue | 159 +- .../Global/components/PatternSetting.vue | 67 +- src/views/Config/Person/PersonAll.vue | 337 +-- src/views/Config/Person/PersonAlready.vue | 197 +- src/views/Config/Person/PersonConfig.vue | 4 +- src/views/Config/Prize/PrizeConfig.vue | 465 ++-- src/views/Config/Readme/index.vue | 25 +- src/views/Config/index.vue | 154 +- src/views/Demo/index.vue | 8 +- src/views/Home/PrizeList.vue | 506 +++-- src/views/Home/index.vue | 1167 +++++----- src/vite-env.d.ts | 7 +- tsconfig.json | 2 +- vite.config.ts | 260 +-- 55 files changed, 5926 insertions(+), 3885 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs create mode 100644 eslint.config.js diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 35ab30a..0000000 --- a/.eslintignore +++ /dev/null @@ -1,12 +0,0 @@ -.md -node_modules -public -package.json -*.yaml -.gitignore -.eslintrc* -.babelrc -.eslintignore -.commitlintrc* -.env* -tsconfig* \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 0fba0f6..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,57 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - node: true, - }, - extends: [ - "eslint:recommended", - "plugin:vue/vue3-essential", - "plugin:@typescript-eslint/recommended", - ], - overrides: [], - parser: "vue-eslint-parser", - parserOptions: { - ecmaVersion: "latest", - parser: "@typescript-eslint/parser", - sourceType: "module", - }, - plugins: ["vue", "@typescript-eslint"], - rules: { - "@typescript-eslint/ban-types": [ - "error", - { - extendDefaults: true, - types: { - "{}": false, - }, - }, - ], - // 关闭typescript类型为any的警告 - "@typescript-eslint/no-explicit-any": ["off"], - // 驼峰命名,但忽略index - "vue/multi-word-component-names": [ - "error", - { - ignores: ["index"], //需要忽略的组件名 - }, - ], - "no-console": "warn", - "no-debugger": "warn", - // complexity: ["warn", { max: 5 }], - // 禁止使用多个空格 - "no-multi-spaces": "error", - // 最大连续空行数 - "no-multiple-empty-lines": ["error", { max: 2, maxEOF: 1, maxBOF: 0 }], - // 代码块中去除前后空行 - "padded-blocks": ["error", "never"], - // 使用单引号,字符串中包含了一个其它引号 允许"a string containing 'single' quotes" - quotes: ["error", "single", { avoidEscape: true }], - // return之前必须空行 - "newline-before-return": "error", - //文件末尾强制换行 - "eol-last": ["error", "always"], - //禁止空格和 tab 的混合缩进 - "no-mixed-spaces-and-tabs": ["error", "smart-tabs"], - }, -}; diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..31c4ac5 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,12 @@ +import antfu from '@antfu/eslint-config' + +export default antfu( + { + ignores: ['**/node_modules', '**/public', '**/dist', '**/package.json', '**/*.yaml', '**/.gitignore', '**/.env*', '**/tsconfig*'] + }, + { + rules: { + "no-console": [1], + }, + }, +) \ No newline at end of file diff --git a/package.json b/package.json index 06241e7..165208f 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "test": "vitest", "test:ui": "vitest --ui", "preview": "vite preview", - "lint": "eslint ./src --ext .vue,.js,.ts,.jsx,.tsx --fix" + "lint": "eslint ./src", + "lint:fix": "eslint ./src --fix" }, "dependencies": { "@tweenjs/tween.js": "^23.1.2", @@ -38,6 +39,9 @@ "zod": "^3.23.8" }, "devDependencies": { + "@antfu/eslint-config": "^3.9.2", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.15.0", "@iconify-json/ep": "^1.1.15", "@iconify-json/fluent": "^1.1.58", "@tailwindcss/typography": "^0.5.13", @@ -55,6 +59,7 @@ "daisyui": "^4.12.10", "eslint": "^9.6.0", "eslint-plugin-vue": "^9.26.0", + "globals": "^15.12.0", "happy-dom": "^14.12.3", "husky": "^9.0.11", "jsdom": "^24.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83dafbb..1f89491 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,6 +75,15 @@ importers: specifier: ^3.23.8 version: 3.23.8 devDependencies: + '@antfu/eslint-config': + specifier: ^3.9.2 + version: 3.9.2(@typescript-eslint/utils@8.15.0(eslint@9.6.0)(typescript@5.5.3))(@vue/compiler-sfc@3.4.31)(eslint@9.6.0)(typescript@5.5.3)(vitest@1.6.0) + '@eslint/eslintrc': + specifier: ^3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: ^9.15.0 + version: 9.15.0 '@iconify-json/ep': specifier: ^1.1.15 version: 1.1.15 @@ -126,6 +135,9 @@ importers: eslint-plugin-vue: specifier: ^9.26.0 version: 9.26.0(eslint@9.6.0) + globals: + specifier: ^15.12.0 + version: 15.12.0 happy-dom: specifier: ^14.12.3 version: 14.12.3 @@ -207,12 +219,61 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@antfu/eslint-config@3.9.2': + resolution: {integrity: sha512-a1I1CXmtQdTL9jxcb2RzKjuYYAzjdKK3ktVpQGd/1S/aUdhKgcEEi3DRXYgnB8xdpYLqracETxEMDf9PQlmyBg==} + hasBin: true + peerDependencies: + '@eslint-react/eslint-plugin': ^1.5.8 + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^1.0.2 + eslint: ^9.10.0 + eslint-plugin-astro: ^1.2.0 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react-hooks: ^5.0.0 + eslint-plugin-react-refresh: ^0.4.4 + eslint-plugin-solid: ^0.14.3 + eslint-plugin-svelte: '>=2.35.1' + prettier-plugin-astro: ^0.13.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: '>=0.37.0' + peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true + '@antfu/install-pkg@0.1.1': resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} '@antfu/install-pkg@0.3.3': resolution: {integrity: sha512-nHHsk3NXQ6xkCfiRRC8Nfrg8pU5kkr3P3Y9s9dKqiuRmBD0Yap7fymNDjGFKeWhZQHqqbCS5CfeMy9wtExM24w==} + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} + '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} @@ -384,6 +445,22 @@ packages: resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + + '@clack/prompts@0.8.1': + resolution: {integrity: sha512-I263nEUNbX4lPTX93trl1fkIvGrGlz6nUYkqOddF0ZmjqcxUgUlXmpUIUqfapirRKJrFddvwF+qdZgg8cSqF7g==} + bundledDependencies: + - is-unicode-supported + + '@es-joy/jsdoccomment@0.48.0': + resolution: {integrity: sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==} + engines: {node: '>=16'} + + '@es-joy/jsdoccomment@0.49.0': + resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} + engines: {node: '>=16'} + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -522,32 +599,69 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.4.1': + resolution: {integrity: sha512-lb/Z/MzbTf7CaVYM9WCFNQZ4L1yi3ev2fsFPF99h31ljhSEyUoyEsKsNWiU+qD1glbYTDJdqgyaLKtyTkkqtuQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.10.0': resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/compat@1.2.3': + resolution: {integrity: sha512-wlZhwlDFxkxIZ571aH0FoK4h4Vwx7P3HJx62Gp8hTc10bfpwT2x0nULuAHmQSJBOWPgPeVf+9YtnD4j50zVHmA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true + '@eslint/config-array@0.17.0': resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.15.0': + resolution: {integrity: sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@9.6.0': resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/markdown@6.2.1': + resolution: {integrity: sha512-cKVd110hG4ICHmWhIwZJfKmmJBvbiDWyrHODJknAtudKgZtlROGoLX9UEOA0o746zC0hCY4UV4vR+aOGW9S6JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -632,6 +746,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} @@ -739,6 +857,12 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@stylistic/eslint-plugin@2.11.0': + resolution: {integrity: sha512-PNRHbydNG5EH8NK4c+izdJlxajIR6GxcUhzsYNRsn6Myep4dsZt0qFCz3rCPnkvgO5FYibDcMqgNHUT+zvjYZw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + '@tailwindcss/typography@0.5.13': resolution: {integrity: sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==} peerDependencies: @@ -771,6 +895,9 @@ packages: '@types/canvas-confetti@1.6.4': resolution: {integrity: sha512-fNyZ/Fdw/Y92X0vv7B+BD6ysHL4xVU5dJcgzgxLdGbn8O3PezZNIJpml44lKM0nsGur+o/6+NZbZeNTt00U1uA==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -789,12 +916,21 @@ packages: '@types/markdown-it@14.1.1': resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/node@20.14.9': resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/stats.js@0.17.3': resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} @@ -804,6 +940,9 @@ packages: '@types/three@0.166.0': resolution: {integrity: sha512-FHMnpcdhdbdOOIYbfkTkUVpYMW53odxbTRwd0/xJpYnTzEsjnVnondGAvHZb4z06UW0vo6WPVuvH0/9qrxKx7g==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} @@ -821,6 +960,17 @@ packages: typescript: optional: true + '@typescript-eslint/eslint-plugin@8.15.0': + resolution: {integrity: sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/parser@7.15.0': resolution: {integrity: sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -831,10 +981,24 @@ packages: typescript: optional: true + '@typescript-eslint/parser@8.15.0': + resolution: {integrity: sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/scope-manager@7.15.0': resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.15.0': + resolution: {integrity: sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@7.15.0': resolution: {integrity: sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -845,10 +1009,24 @@ packages: typescript: optional: true + '@typescript-eslint/type-utils@8.15.0': + resolution: {integrity: sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/types@7.15.0': resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.15.0': + resolution: {integrity: sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@7.15.0': resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==} engines: {node: ^18.18.0 || >=20.0.0} @@ -858,16 +1036,39 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.15.0': + resolution: {integrity: sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@7.15.0': resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@8.15.0': + resolution: {integrity: sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/visitor-keys@7.15.0': resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.15.0': + resolution: {integrity: sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-vue@5.0.5': resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -875,6 +1076,19 @@ packages: vite: ^5.0.0 vue: ^3.2.25 + '@vitest/eslint-plugin@1.1.10': + resolution: {integrity: sha512-uScH5Kz5v32vvtQYB2iodpoPg2mGASK+VKpjlc2IUgE0+16uZKqVKi2vQxjxJ6sMCQLBs4xhBFZlmZBszsmfKQ==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + '@vitest/expect@1.6.0': resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} @@ -1067,6 +1281,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + adler-32@1.3.1: resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} engines: {node: '>=0.8'} @@ -1122,6 +1341,10 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -1225,9 +1448,18 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} @@ -1261,9 +1493,15 @@ packages: caniuse-lite@1.0.30001639: resolution: {integrity: sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==} + caniuse-lite@1.0.30001683: + resolution: {integrity: sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==} + canvas-confetti@1.9.3: resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + cfb@1.2.2: resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} engines: {node: '>=0.8'} @@ -1284,6 +1522,9 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} @@ -1299,10 +1540,18 @@ packages: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} + engines: {node: '>=8'} + class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -1351,6 +1600,10 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + component-emitter@1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} @@ -1377,6 +1630,9 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} + core-js-compat@3.39.0: + resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} + cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} @@ -1446,6 +1702,14 @@ packages: supports-color: optional: true + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -1464,9 +1728,21 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -1522,6 +1798,13 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -1536,6 +1819,10 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -1578,6 +1865,9 @@ packages: electron-to-chromium@1.4.816: resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} + electron-to-chromium@1.5.64: + resolution: {integrity: sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1588,8 +1878,8 @@ packages: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} - enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} entities@1.1.2: @@ -1602,14 +1892,17 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-stack-parser-es@0.1.1: resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} @@ -1620,6 +1913,10 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -1632,12 +1929,159 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-compat-utils@0.6.3: + resolution: {integrity: sha512-9IDdksh5pUYP2ZLi7mOdROxVjLY8gY2qKxprmrJ/5Dyqud7M/IFKxF3o0VLlRhITm1pK6Fk7NiBxE39M/VlUcw==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@0.3.0: + resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} + peerDependencies: + eslint: ^9.5.0 + + eslint-flat-config-utils@0.4.0: + resolution: {integrity: sha512-kfd5kQZC+BMO0YwTol6zxjKX1zAsk8JfSAopbKjKqmENTJcew+yBejuvccAg37cvOrN0Mh+DVbeyznuNWEjt4A==} + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-json-compat-utils@0.2.1: + resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} + engines: {node: '>=12'} + peerDependencies: + '@eslint/json': '*' + eslint: '*' + jsonc-eslint-parser: ^2.4.0 + peerDependenciesMeta: + '@eslint/json': + optional: true + + eslint-merge-processors@0.1.0: + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + + eslint-plugin-antfu@2.7.0: + resolution: {integrity: sha512-gZM3jq3ouqaoHmUNszb1Zo2Ux7RckSvkGksjLWz9ipBYGSv1EwwBETN6AdiUXn+RpVHXTbEMPAPlXJazcA6+iA==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@0.2.6: + resolution: {integrity: sha512-T0bHZ1oblW1xUHUVoBKZJR2osSNNGkfZuK4iqboNwuNS/M7tdp3pmURaJtTi/XDzitxaQ02lvOdFH0mUd5QLvQ==} + peerDependencies: + eslint: '*' + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import-x@4.4.3: + resolution: {integrity: sha512-QBprHvhLsfDhP++2T1NnjsOUt6bLDX3NMHaYwAB1FD3xmYTkdFH+HS1OamGhz28jLkRyIZa6UNAzTxbHnJwz5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + eslint-plugin-jsdoc@50.5.0: + resolution: {integrity: sha512-xTkshfZrUbiSHXBwZ/9d5ulZ2OcHXxSvm/NPo494H/hadLRJwOq5PMV0EUpMqsb9V+kQo+9BAgi6Z7aJtdBp2A==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-jsonc@2.18.2: + resolution: {integrity: sha512-SDhJiSsWt3nItl/UuIv+ti4g3m4gpGkmnUJS9UWR3TrpyNsIcnJoBRD7Kof6cM4Rk3L0wrmY5Tm3z7ZPjR2uGg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-n@17.14.0: + resolution: {integrity: sha512-maxPLMEA0rPmRpoOlxEclKng4UpDe+N5BJS4t24I3UKnN109Qcivnfs37KMy84G0af3bxjog5lKctP5ObsvcTA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@3.9.1: + resolution: {integrity: sha512-9WRzf6XaAxF4Oi5t/3TqKP5zUjERhasHmLFHin2Yw6ZAp/EP/EVA2dr3BhQrrHWCm5SzTMZf0FcjDnBkO2xFkA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + astro-eslint-parser: ^1.0.2 + eslint: '>=8.0.0' + svelte: '>=3.0.0' + svelte-eslint-parser: ^0.41.1 + vue-eslint-parser: '>=9.0.0' + peerDependenciesMeta: + astro-eslint-parser: + optional: true + svelte: + optional: true + svelte-eslint-parser: + optional: true + vue-eslint-parser: + optional: true + + eslint-plugin-regexp@2.7.0: + resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-toml@0.11.1: + resolution: {integrity: sha512-Y1WuMSzfZpeMIrmlP1nUh3kT8p96mThIq4NnHrYUhg10IKQgGfBZjAWnrg9fBqguiX4iFps/x/3Hb5TxBisfdw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-unicorn@56.0.1: + resolution: {integrity: sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + eslint-plugin-vue@9.26.0: resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + eslint-plugin-vue@9.31.0: + resolution: {integrity: sha512-aYMUCgivhz1o4tLkRHj5oq9YgYPM4/EJc0M7TAKRLCUA5OYxRLAhYEVD2nLtTwLyixEFI+/QXSvKU9ESZFgqjQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-yml@1.15.0: + resolution: {integrity: sha512-leC8APYVOsKyWUlvRwVhewytK5wS70BfMqIaUplFstRfzCoVp0YoEroV4cUEvQrBj93tQ3M9LcjO/ewr6D4kjA==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-processor-vue-blocks@0.1.2: + resolution: {integrity: sha512-PfpJ4uKHnqeL/fXUnzYkOax3aIenlwewXRX8jFinA1a2yCFnLgMuiH3xvCgvHHUlV2xJWQHbCTdiJWGwb3NqpQ==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 || ^9.0.0 + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -1658,6 +2102,10 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@9.6.0: resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1667,6 +2115,10 @@ packages: resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1675,6 +2127,10 @@ packages: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -1766,6 +2222,14 @@ packages: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -1856,6 +2320,9 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -1896,6 +2363,10 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.12.0: + resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==} + engines: {node: '>=18'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -1978,6 +2449,9 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -2022,6 +2496,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} @@ -2041,6 +2519,10 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -2069,6 +2551,9 @@ packages: is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -2083,6 +2568,10 @@ packages: is-buffer@1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -2274,6 +2763,10 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + jsdom@24.1.0: resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} engines: {node: '>=18'} @@ -2283,11 +2776,20 @@ packages: canvas: optional: true + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -2309,6 +2811,10 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -2369,6 +2875,10 @@ packages: localforage@1.10.0: resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -2388,6 +2898,9 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} @@ -2421,6 +2934,42 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -2441,6 +2990,90 @@ packages: meshoptimizer@0.18.1: resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} + micromark-core-commonmark@2.0.2: + resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.0.3: + resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + + micromark@4.0.1: + resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} + micromatch@3.1.0: resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} engines: {node: '>=0.10.0'} @@ -2465,6 +3098,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2510,6 +3147,9 @@ packages: ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} @@ -2525,6 +3165,9 @@ packages: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2534,11 +3177,17 @@ packages: node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + nopt@7.2.0: resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -2619,6 +3268,10 @@ packages: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -2627,14 +3280,37 @@ packages: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@0.2.4: + resolution: {integrity: sha512-H/OUu9/zUfP89z1APcBf2X8Us0tt8dUK4lUmKqz12QNXif3DxAs1/YqjGtcutZi1zQqeNQRWr9C+EbQnnvSSFA==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + + parse-imports@2.2.1: + resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} + engines: {node: '>= 18'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} @@ -2693,10 +3369,17 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -2733,6 +3416,10 @@ packages: pkg-types@1.1.2: resolution: {integrity: sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==} + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -2867,6 +3554,14 @@ packages: read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -2875,6 +3570,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} @@ -2882,10 +3581,22 @@ packages: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} engines: {node: '>=0.10.0'} + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + repeat-element@1.1.4: resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} engines: {node: '>=0.10.0'} @@ -2905,6 +3616,9 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-url@0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated @@ -2995,9 +3709,17 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -3012,6 +3734,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + serialize-javascript@6.0.1: resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} @@ -3052,10 +3779,16 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slashes@3.0.12: + resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} engines: {node: '>=0.10.0'} @@ -3098,6 +3831,21 @@ packages: sparticles@1.3.1: resolution: {integrity: sha512-zpQZRpP/W9YCh5mmtH1gHlZSKvLSQWXXdAhPQ9j8FdjuX3RkIPxBW6vrKoaIebzvVLREGPZq61dxSxCCndFemA==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} @@ -3110,6 +3858,9 @@ packages: resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} engines: {node: '>=0.8'} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' @@ -3167,6 +3918,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -3221,6 +3976,14 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.6.2: + resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} + engines: {node: '>=12.20'} + + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + engines: {node: ^14.18.0 || >=16.0.0} + tailwindcss@3.4.4: resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} engines: {node: '>=14.0.0'} @@ -3278,6 +4041,9 @@ packages: tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinypool@0.8.4: resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} @@ -3306,6 +4072,10 @@ packages: resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} engines: {node: '>=0.10.0'} + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} @@ -3330,6 +4100,9 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -3342,6 +4115,14 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + typescript@5.5.3: resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} @@ -3366,6 +4147,18 @@ packages: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -3433,6 +4226,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3453,6 +4252,9 @@ packages: util@0.10.4: resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -3775,6 +4577,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml-eslint-parser@1.2.3: + resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} + engines: {node: ^14.17.0 || >=16.0.0} + yaml@2.3.4: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} @@ -3798,6 +4604,9 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} @@ -3811,6 +4620,53 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@antfu/eslint-config@3.9.2(@typescript-eslint/utils@8.15.0(eslint@9.6.0)(typescript@5.5.3))(@vue/compiler-sfc@3.4.31)(eslint@9.6.0)(typescript@5.5.3)(vitest@1.6.0)': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@clack/prompts': 0.8.1 + '@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.6.0) + '@eslint/markdown': 6.2.1 + '@stylistic/eslint-plugin': 2.11.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/eslint-plugin': 8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + '@vitest/eslint-plugin': 1.1.10(@typescript-eslint/utils@8.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)(vitest@1.6.0) + eslint: 9.6.0 + eslint-config-flat-gitignore: 0.3.0(eslint@9.6.0) + eslint-flat-config-utils: 0.4.0 + eslint-merge-processors: 0.1.0(eslint@9.6.0) + eslint-plugin-antfu: 2.7.0(eslint@9.6.0) + eslint-plugin-command: 0.2.6(eslint@9.6.0) + eslint-plugin-import-x: 4.4.3(eslint@9.6.0)(typescript@5.5.3) + eslint-plugin-jsdoc: 50.5.0(eslint@9.6.0) + eslint-plugin-jsonc: 2.18.2(eslint@9.6.0) + eslint-plugin-n: 17.14.0(eslint@9.6.0) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 3.9.1(eslint@9.6.0)(typescript@5.5.3)(vue-eslint-parser@9.4.3(eslint@9.6.0)) + eslint-plugin-regexp: 2.7.0(eslint@9.6.0) + eslint-plugin-toml: 0.11.1(eslint@9.6.0) + eslint-plugin-unicorn: 56.0.1(eslint@9.6.0) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0) + eslint-plugin-vue: 9.31.0(eslint@9.6.0) + eslint-plugin-yml: 1.15.0(eslint@9.6.0) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.6.0) + globals: 15.12.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 0.5.0 + parse-gitignore: 2.0.0 + picocolors: 1.1.1 + toml-eslint-parser: 0.10.0 + vue-eslint-parser: 9.4.3(eslint@9.6.0) + yaml-eslint-parser: 1.2.3 + yargs: 17.7.2 + transitivePeerDependencies: + - '@eslint/json' + - '@typescript-eslint/utils' + - '@vue/compiler-sfc' + - supports-color + - svelte + - typescript + - vitest + '@antfu/install-pkg@0.1.1': dependencies: execa: 5.1.1 @@ -3820,6 +4676,11 @@ snapshots: dependencies: '@jsdevtools/ez-spawn': 3.0.4 + '@antfu/install-pkg@0.4.1': + dependencies: + package-manager-detector: 0.2.4 + tinyexec: 0.3.1 + '@antfu/utils@0.7.10': {} '@babel/code-frame@7.24.7': @@ -4055,6 +4916,29 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@clack/core@0.3.4': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.8.1': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@es-joy/jsdoccomment@0.48.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + + '@es-joy/jsdoccomment@0.49.0': + dependencies: + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -4124,13 +5008,30 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.6.0)': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.6.0 + ignore: 5.3.1 + '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)': dependencies: eslint: 9.6.0 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.4.1(eslint@9.6.0)': + dependencies: + eslint: 9.6.0 + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/compat@1.2.3(eslint@9.6.0)': + optionalDependencies: + eslint: 9.6.0 + '@eslint/config-array@0.17.0': dependencies: '@eslint/object-schema': 2.1.4 @@ -4139,13 +5040,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.1.0': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.5 espree: 10.1.0 globals: 14.0.0 - ignore: 5.2.4 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -4153,10 +5054,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/js@9.15.0': {} + '@eslint/js@9.6.0': {} + '@eslint/markdown@6.2.1': + dependencies: + '@eslint/plugin-kit': 0.2.3 + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + transitivePeerDependencies: + - supports-color + '@eslint/object-schema@2.1.4': {} + '@eslint/plugin-kit@0.2.3': + dependencies: + levn: 0.4.1 + '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.0': {} @@ -4254,6 +5170,8 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.1.1': {} + '@polka/url@1.0.0-next.25': {} '@popperjs/core@2.11.8': {} @@ -4316,6 +5234,18 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@stylistic/eslint-plugin@2.11.0(eslint@9.6.0)(typescript@5.5.3)': + dependencies: + '@typescript-eslint/utils': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript + '@tailwindcss/typography@0.5.13(tailwindcss@3.4.4)': dependencies: lodash.castarray: 4.4.0 @@ -4352,6 +5282,10 @@ snapshots: '@types/canvas-confetti@1.6.4': {} + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 8.44.7 @@ -4376,12 +5310,20 @@ snapshots: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/mdurl@2.0.0': {} + '@types/ms@0.7.34': {} + '@types/node@20.14.9': dependencies: undici-types: 5.26.5 + '@types/normalize-package-data@2.4.4': {} + '@types/stats.js@0.17.3': {} '@types/svgo@2.6.4': @@ -4396,6 +5338,8 @@ snapshots: fflate: 0.8.2 meshoptimizer: 0.18.1 + '@types/unist@3.0.3': {} + '@types/web-bluetooth@0.0.20': {} '@types/webxr@0.5.10': {} @@ -4418,6 +5362,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/type-utils': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 8.15.0 + eslint: 9.6.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@7.15.0(eslint@9.6.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/scope-manager': 7.15.0 @@ -4431,11 +5393,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.15.0(eslint@9.6.0)(typescript@5.5.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 8.15.0 + debug: 4.3.5 + eslint: 9.6.0 + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@7.15.0': dependencies: '@typescript-eslint/types': 7.15.0 '@typescript-eslint/visitor-keys': 7.15.0 + '@typescript-eslint/scope-manager@8.15.0': + dependencies: + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 + '@typescript-eslint/type-utils@7.15.0(eslint@9.6.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3) @@ -4448,8 +5428,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.15.0(eslint@9.6.0)(typescript@5.5.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.5.3) + '@typescript-eslint/utils': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + debug: 4.3.5 + eslint: 9.6.0 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@7.15.0': {} + '@typescript-eslint/types@8.15.0': {} + '@typescript-eslint/typescript-estree@7.15.0(typescript@5.5.3)': dependencies: '@typescript-eslint/types': 7.15.0 @@ -4465,6 +5459,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.15.0(typescript@5.5.3)': + dependencies: + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/visitor-keys': 8.15.0 + debug: 4.3.5 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.2 + ts-api-utils: 1.3.0(typescript@5.5.3) + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@7.15.0(eslint@9.6.0)(typescript@5.5.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) @@ -4476,16 +5485,41 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@8.15.0(eslint@9.6.0)(typescript@5.5.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@typescript-eslint/scope-manager': 8.15.0 + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.5.3) + eslint: 9.6.0 + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@7.15.0': dependencies: '@typescript-eslint/types': 7.15.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.15.0': + dependencies: + '@typescript-eslint/types': 8.15.0 + eslint-visitor-keys: 4.2.0 + '@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1))(vue@3.4.31(typescript@5.5.3))': dependencies: vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1) vue: 3.4.31(typescript@5.5.3) + '@vitest/eslint-plugin@1.1.10(@typescript-eslint/utils@8.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3)(vitest@1.6.0)': + dependencies: + '@typescript-eslint/utils': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 + optionalDependencies: + typescript: 5.5.3 + vitest: 1.6.0(@types/node@20.14.9)(@vitest/ui@1.6.0)(happy-dom@14.12.3)(jsdom@24.1.0)(sass@1.77.6)(terser@5.31.1) + '@vitest/expect@1.6.0': dependencies: '@vitest/spy': 1.6.0 @@ -4800,21 +5834,27 @@ snapshots: abbrev@2.0.0: {} - acorn-import-assertions@1.9.0(acorn@8.12.0): + acorn-import-assertions@1.9.0(acorn@8.14.0): dependencies: - acorn: 8.12.0 + acorn: 8.14.0 optional: true acorn-jsx@5.3.2(acorn@8.12.0): dependencies: acorn: 8.12.0 + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + acorn-walk@8.3.3: dependencies: acorn: 8.12.0 acorn@8.12.0: {} + acorn@8.14.0: {} + adler-32@1.3.1: {} agent-base@7.1.1: @@ -4862,6 +5902,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + are-docs-informative@0.0.2: {} + arg@5.0.2: {} argparse@2.0.1: {} @@ -4970,8 +6012,17 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.1) + browserslist@4.24.2: + dependencies: + caniuse-lite: 1.0.30001683 + electron-to-chromium: 1.5.64 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + buffer-from@1.1.2: {} + builtin-modules@3.3.0: {} + bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 @@ -5006,8 +6057,12 @@ snapshots: caniuse-lite@1.0.30001639: {} + caniuse-lite@1.0.30001683: {} + canvas-confetti@1.9.3: {} + ccount@2.0.1: {} + cfb@1.2.2: dependencies: adler-32: 1.3.1 @@ -5042,6 +6097,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + character-entities@2.0.2: {} + check-error@1.0.3: dependencies: get-func-name: 2.0.2 @@ -5073,6 +6130,8 @@ snapshots: chrome-trace-event@1.0.3: optional: true + ci-info@4.1.0: {} + class-utils@0.3.6: dependencies: arr-union: 3.1.0 @@ -5080,6 +6139,10 @@ snapshots: isobject: 3.0.1 static-extend: 0.1.2 + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -5119,6 +6182,8 @@ snapshots: commander@7.2.0: {} + comment-parser@1.4.1: {} + component-emitter@1.3.0: {} computeds@0.0.1: {} @@ -5140,6 +6205,10 @@ snapshots: copy-descriptor@0.1.1: {} + core-js-compat@3.39.0: + dependencies: + browserslist: 4.24.2 + cors@2.8.5: dependencies: object-assign: 4.1.1 @@ -5209,6 +6278,10 @@ snapshots: dependencies: ms: 2.0.0 + debug@3.2.7: + dependencies: + ms: 2.1.2 + debug@4.3.4: dependencies: ms: 2.1.2 @@ -5217,8 +6290,16 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.7: + dependencies: + ms: 2.1.3 + decimal.js@10.4.3: {} + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + decode-uri-component@0.2.2: {} deep-eql@4.1.3: @@ -5286,6 +6367,12 @@ snapshots: delayed-stream@1.0.0: {} + dequal@2.0.3: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + didyoumean@1.2.2: {} diff-sequences@29.6.3: {} @@ -5296,6 +6383,10 @@ snapshots: dlv@1.1.3: {} + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + dom-accessibility-api@0.5.16: {} dom-serializer@0.2.2: @@ -5345,17 +6436,18 @@ snapshots: electron-to-chromium@1.4.816: {} + electron-to-chromium@1.5.64: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} emojis-list@3.0.0: {} - enhanced-resolve@5.15.0: + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - optional: true entities@1.1.2: {} @@ -5363,6 +6455,10 @@ snapshots: entities@4.5.0: {} + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + error-stack-parser-es@0.1.1: {} es-get-iterator@1.1.3: @@ -5377,8 +6473,7 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - es-module-lexer@1.4.1: - optional: true + es-module-lexer@1.5.4: {} esbuild@0.21.5: optionalDependencies: @@ -5408,12 +6503,191 @@ snapshots: escalade@3.1.2: {} + escalade@3.2.0: {} + escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} + eslint-compat-utils@0.5.1(eslint@9.6.0): + dependencies: + eslint: 9.6.0 + semver: 7.6.2 + + eslint-compat-utils@0.6.3(eslint@9.6.0): + dependencies: + eslint: 9.6.0 + semver: 7.6.2 + + eslint-config-flat-gitignore@0.3.0(eslint@9.6.0): + dependencies: + '@eslint/compat': 1.2.3(eslint@9.6.0) + eslint: 9.6.0 + find-up-simple: 1.0.0 + + eslint-flat-config-utils@0.4.0: + dependencies: + pathe: 1.1.2 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-json-compat-utils@0.2.1(eslint@9.6.0)(jsonc-eslint-parser@2.4.0): + dependencies: + eslint: 9.6.0 + esquery: 1.6.0 + jsonc-eslint-parser: 2.4.0 + + eslint-merge-processors@0.1.0(eslint@9.6.0): + dependencies: + eslint: 9.6.0 + + eslint-plugin-antfu@2.7.0(eslint@9.6.0): + dependencies: + '@antfu/utils': 0.7.10 + eslint: 9.6.0 + + eslint-plugin-command@0.2.6(eslint@9.6.0): + dependencies: + '@es-joy/jsdoccomment': 0.48.0 + eslint: 9.6.0 + + eslint-plugin-es-x@7.8.0(eslint@9.6.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.6.0) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.6.0 + eslint-compat-utils: 0.5.1(eslint@9.6.0) + + eslint-plugin-import-x@4.4.3(eslint@9.6.0)(typescript@5.5.3): + dependencies: + '@typescript-eslint/utils': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + debug: 4.3.5 + doctrine: 3.0.0 + eslint: 9.6.0 + eslint-import-resolver-node: 0.3.9 + get-tsconfig: 4.8.1 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + stable-hash: 0.0.4 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-jsdoc@50.5.0(eslint@9.6.0): + dependencies: + '@es-joy/jsdoccomment': 0.49.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint: 9.6.0 + espree: 10.1.0 + esquery: 1.6.0 + parse-imports: 2.2.1 + semver: 7.6.3 + spdx-expression-parse: 4.0.0 + synckit: 0.9.2 + transitivePeerDependencies: + - supports-color + + eslint-plugin-jsonc@2.18.2(eslint@9.6.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + eslint: 9.6.0 + eslint-compat-utils: 0.6.3(eslint@9.6.0) + eslint-json-compat-utils: 0.2.1(eslint@9.6.0)(jsonc-eslint-parser@2.4.0) + espree: 9.6.1 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.6.2 + transitivePeerDependencies: + - '@eslint/json' + + eslint-plugin-n@17.14.0(eslint@9.6.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.6.0) + enhanced-resolve: 5.17.1 + eslint: 9.6.0 + eslint-plugin-es-x: 7.8.0(eslint@9.6.0) + get-tsconfig: 4.8.1 + globals: 15.12.0 + ignore: 5.3.2 + minimatch: 9.0.5 + semver: 7.6.3 + + eslint-plugin-no-only-tests@3.3.0: {} + + eslint-plugin-perfectionist@3.9.1(eslint@9.6.0)(typescript@5.5.3)(vue-eslint-parser@9.4.3(eslint@9.6.0)): + dependencies: + '@typescript-eslint/types': 8.15.0 + '@typescript-eslint/utils': 8.15.0(eslint@9.6.0)(typescript@5.5.3) + eslint: 9.6.0 + minimatch: 9.0.5 + natural-compare-lite: 1.4.0 + optionalDependencies: + vue-eslint-parser: 9.4.3(eslint@9.6.0) + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-regexp@2.7.0(eslint@9.6.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/regexpp': 4.12.1 + comment-parser: 1.4.1 + eslint: 9.6.0 + jsdoc-type-pratt-parser: 4.1.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-toml@0.11.1(eslint@9.6.0): + dependencies: + debug: 4.3.5 + eslint: 9.6.0 + eslint-compat-utils: 0.5.1(eslint@9.6.0) + lodash: 4.17.21 + toml-eslint-parser: 0.10.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unicorn@56.0.1(eslint@9.6.0): + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + ci-info: 4.1.0 + clean-regexp: 1.0.0 + core-js-compat: 3.39.0 + eslint: 9.6.0 + esquery: 1.6.0 + globals: 15.12.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.3 + strip-indent: 3.0.0 + + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0): + dependencies: + eslint: 9.6.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.15.0(@typescript-eslint/parser@8.15.0(eslint@9.6.0)(typescript@5.5.3))(eslint@9.6.0)(typescript@5.5.3) + eslint-plugin-vue@9.26.0(eslint@9.6.0): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) @@ -5428,6 +6702,36 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-plugin-vue@9.31.0(eslint@9.6.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + eslint: 9.6.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.0 + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@9.6.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-yml@1.15.0(eslint@9.6.0): + dependencies: + debug: 4.3.5 + eslint: 9.6.0 + eslint-compat-utils: 0.5.1(eslint@9.6.0) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.3 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.6.0): + dependencies: + '@vue/compiler-sfc': 3.4.31 + eslint: 9.6.0 + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -5448,12 +6752,14 @@ snapshots: eslint-visitor-keys@4.0.0: {} + eslint-visitor-keys@4.2.0: {} + eslint@9.6.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@eslint-community/regexpp': 4.10.0 '@eslint/config-array': 0.17.0 - '@eslint/eslintrc': 3.1.0 + '@eslint/eslintrc': 3.2.0 '@eslint/js': 9.6.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 @@ -5493,6 +6799,12 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.12.0) eslint-visitor-keys: 4.0.0 + espree@10.3.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + espree@9.6.1: dependencies: acorn: 8.12.0 @@ -5503,6 +6815,10 @@ snapshots: dependencies: estraverse: 5.3.0 + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -5622,6 +6938,13 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-up-simple@1.0.0: {} + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -5699,6 +7022,10 @@ snapshots: get-stream@8.0.1: {} + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + get-value@2.0.6: {} github-markdown-css@5.6.1: {} @@ -5739,6 +7066,8 @@ snapshots: globals@14.0.0: {} + globals@15.12.0: {} + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -5815,6 +7144,8 @@ snapshots: hookable@5.5.3: {} + hosted-git-info@2.8.9: {} + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -5858,6 +7189,8 @@ snapshots: ignore@5.3.1: {} + ignore@5.3.2: {} + image-size@0.5.5: {} immediate@3.0.6: {} @@ -5871,6 +7204,8 @@ snapshots: imurmurhash@0.1.4: {} + indent-string@4.0.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -5903,6 +7238,8 @@ snapshots: get-intrinsic: 1.2.2 is-typed-array: 1.1.12 + is-arrayish@0.2.1: {} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -5918,6 +7255,10 @@ snapshots: is-buffer@1.1.6: {} + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + is-callable@1.2.7: {} is-core-module@2.13.1: @@ -6078,6 +7419,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsdoc-type-pratt-parser@4.1.0: {} + jsdom@24.1.0: dependencies: cssstyle: 4.0.1 @@ -6106,12 +7449,15 @@ snapshots: - supports-color - utf-8-validate + jsesc@0.5.0: {} + jsesc@2.5.2: {} + jsesc@3.0.2: {} + json-buffer@3.0.1: {} - json-parse-even-better-errors@2.3.1: - optional: true + json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -6123,6 +7469,13 @@ snapshots: json5@2.2.3: {} + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.12.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.2 + jsonc-parser@3.2.0: {} jsonfile@6.1.0: @@ -6184,6 +7537,10 @@ snapshots: dependencies: lie: 3.1.1 + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -6198,6 +7555,8 @@ snapshots: lodash@4.17.21: {} + longest-streak@3.1.0: {} + loupe@2.3.7: dependencies: get-func-name: 2.0.2 @@ -6235,6 +7594,110 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + markdown-table@3.0.4: {} + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdn-data@2.0.14: {} mdurl@2.0.0: {} @@ -6249,6 +7712,197 @@ snapshots: meshoptimizer@0.18.1: {} + micromark-core-commonmark@2.0.2: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-table@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.1 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.1 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.1 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.0.3: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.1: {} + + micromark@4.0.1: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.5 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + transitivePeerDependencies: + - supports-color + micromatch@3.1.0: dependencies: arr-diff: 4.0.0 @@ -6282,6 +7936,8 @@ snapshots: mimic-fn@4.0.0: {} + min-indent@1.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -6329,6 +7985,8 @@ snapshots: ms@2.1.2: {} + ms@2.1.3: {} + muggle-string@0.4.1: {} mz@2.7.0: @@ -6355,16 +8013,27 @@ snapshots: transitivePeerDependencies: - supports-color + natural-compare-lite@1.4.0: {} + natural-compare@1.4.0: {} neo-async@2.6.2: {} node-releases@2.0.14: {} + node-releases@2.0.18: {} + nopt@7.2.0: dependencies: abbrev: 2.0.0 + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -6451,6 +8120,10 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -6459,14 +8132,36 @@ snapshots: dependencies: yocto-queue: 1.0.0 + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + p-locate@5.0.0: dependencies: p-limit: 3.1.0 + p-try@2.2.0: {} + + package-manager-detector@0.2.4: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 + parse-gitignore@2.0.0: {} + + parse-imports@2.2.1: + dependencies: + es-module-lexer: 1.5.4 + slashes: 3.0.12 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.24.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + parse5@7.1.2: dependencies: entities: 4.5.0 @@ -6509,8 +8204,12 @@ snapshots: picocolors@1.0.1: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pinia-plugin-persist@1.0.0(pinia@2.1.7(typescript@5.5.3)(vue@3.4.31(typescript@5.5.3)))(vue@3.4.31(typescript@5.5.3)): @@ -6541,6 +8240,8 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 + pluralize@8.0.0: {} + posix-character-classes@0.1.1: {} postcss-import@15.1.0(postcss@8.4.39): @@ -6672,6 +8373,19 @@ snapshots: dependencies: pify: 2.3.0 + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -6682,6 +8396,10 @@ snapshots: dependencies: picomatch: 2.3.1 + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.12.1 + regenerator-runtime@0.14.0: {} regex-not@1.0.2: @@ -6689,12 +8407,23 @@ snapshots: extend-shallow: 3.0.2 safe-regex: 1.1.0 + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.12.1 + refa: 0.12.1 + + regexp-tree@0.1.27: {} + regexp.prototype.flags@1.5.1: dependencies: call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + repeat-element@1.1.4: {} repeat-string@1.6.1: {} @@ -6705,6 +8434,8 @@ snapshots: resolve-from@4.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve-url@0.2.1: {} resolve@1.22.8: @@ -6792,8 +8523,16 @@ snapshots: ajv-keywords: 3.5.2(ajv@6.12.6) optional: true + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.12.1 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scule@1.3.0: {} + semver@5.7.2: {} + semver@6.3.1: {} semver@7.5.4: @@ -6802,6 +8541,8 @@ snapshots: semver@7.6.2: {} + semver@7.6.3: {} + serialize-javascript@6.0.1: dependencies: randombytes: 2.1.0 @@ -6851,8 +8592,12 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sisteransi@1.0.5: {} + slash@3.0.0: {} + slashes@3.0.12: {} + snapdragon-node@2.1.1: dependencies: define-property: 1.0.0 @@ -6901,6 +8646,25 @@ snapshots: sparticles@1.3.1: {} + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.20 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-license-ids@3.0.20: {} + speakingurl@14.0.1: {} split-string@3.1.0: @@ -6911,6 +8675,8 @@ snapshots: dependencies: frac: 1.1.2 + stable-hash@0.0.4: {} + stable@0.1.8: {} stackback@0.0.2: {} @@ -6962,6 +8728,10 @@ snapshots: strip-final-newline@3.0.0: {} + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + strip-json-comments@3.1.1: {} strip-literal@2.1.0: @@ -7035,6 +8805,15 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.6.2: + dependencies: + tslib: 2.8.1 + + synckit@0.9.2: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.8.1 + tailwindcss@3.4.4: dependencies: '@alloc/quick-lru': 5.2.0 @@ -7062,8 +8841,7 @@ snapshots: transitivePeerDependencies: - ts-node - tapable@2.2.1: - optional: true + tapable@2.2.1: {} terser-webpack-plugin@5.3.9(webpack@5.89.0): dependencies: @@ -7104,6 +8882,8 @@ snapshots: tinycolor2@1.6.0: {} + tinyexec@0.3.1: {} + tinypool@0.8.4: {} tinyspy@2.2.0: {} @@ -7130,6 +8910,10 @@ snapshots: regex-not: 1.0.2 safe-regex: 1.1.0 + toml-eslint-parser@0.10.0: + dependencies: + eslint-visitor-keys: 3.4.3 + totalist@3.0.1: {} tough-cookie@4.1.4: @@ -7151,6 +8935,8 @@ snapshots: ts-interface-checker@0.1.13: {} + tslib@2.8.1: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -7159,6 +8945,10 @@ snapshots: type-fest@0.20.2: {} + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + typescript@5.5.3: {} uc.micro@2.1.0: {} @@ -7194,6 +8984,25 @@ snapshots: is-extendable: 0.1.1 set-value: 2.0.1 + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + universalify@0.2.0: {} universalify@2.0.1: {} @@ -7265,6 +9074,12 @@ snapshots: escalade: 3.1.2 picocolors: 1.0.1 + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -7284,6 +9099,11 @@ snapshots: dependencies: inherits: 2.0.3 + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + vary@1.1.2: {} vite-hot-client@0.2.3(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(terser@5.31.1)): @@ -7535,12 +9355,12 @@ snapshots: '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.12.0 - acorn-import-assertions: 1.9.0(acorn@8.12.0) - browserslist: 4.23.1 + acorn: 8.14.0 + acorn-import-assertions: 1.9.0(acorn@8.14.0) + browserslist: 4.24.2 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.15.0 - es-module-lexer: 1.4.1 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -7647,6 +9467,12 @@ snapshots: yallist@4.0.0: {} + yaml-eslint-parser@1.2.3: + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.3.4 + yaml@2.3.4: {} yargs-parser@21.1.1: {} @@ -7666,3 +9492,5 @@ snapshots: yocto-queue@1.0.0: {} zod@3.23.8: {} + + zwitch@2.0.4: {} diff --git a/src/App.vue b/src/App.vue index 32c8287..0ff99ae 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,84 +1,90 @@ diff --git a/src/api/request.ts b/src/api/request.ts index b75c87f..0076f64 100644 --- a/src/api/request.ts +++ b/src/api/request.ts @@ -1,61 +1,62 @@ -import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; -import type { InternalAxiosRequestConfig } from 'axios'; +import type { AxiosInstance, AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios' +import axios from 'axios' + class Request { - private instance: AxiosInstance; + private instance: AxiosInstance constructor(config: AxiosRequestConfig) { this.instance = axios.create({ baseURL: '/api', timeout: 10000, ...config, - }); + }) // 添加请求拦截器 this.instance.interceptors.request.use( (config: InternalAxiosRequestConfig) => { // 在发送请求之前做些什么 - console.log('请求拦截器被触发'); + console.log('请求拦截器被触发') - return config; + return config }, (error: any) => { // 对请求错误做些什么 - console.error('请求拦截器发生错误:', error); + console.error('请求拦截器发生错误:', error) - return Promise.reject(error); - } - ); + return Promise.reject(error) + }, + ) // 添加响应拦截器 this.instance.interceptors.response.use( (response: AxiosResponse) => { // 对响应数据做些什么 - console.log('响应拦截器被触发'); - const reponseData = response.data; + console.log('响应拦截器被触发') + const responseData = response.data - return reponseData; + return responseData }, (error: any) => { // 对响应错误做些什么 - console.error('响应拦截器发生错误:', error); + console.error('响应拦截器发生错误:', error) - return Promise.reject(error); - } - ); + return Promise.reject(error) + }, + ) } public async request(config: AxiosRequestConfig): Promise { - const response: AxiosResponse = await this.instance.request(config); + const response: AxiosResponse = await this.instance.request(config) - return response.data; + return response.data } } // 函数 function request(config: AxiosRequestConfig): Promise { - const instance = new Request(config); + const instance = new Request(config) - return instance.request(config); + return instance.request(config) } -export default request; +export default request diff --git a/src/components/DaiysuiTable/index.vue b/src/components/DaiysuiTable/index.vue index 8d6f3ba..30c0fa6 100644 --- a/src/components/DaiysuiTable/index.vue +++ b/src/components/DaiysuiTable/index.vue @@ -1,69 +1,78 @@ diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue index 88bf204..338255e 100644 --- a/src/components/HelloWorld.vue +++ b/src/components/HelloWorld.vue @@ -1,17 +1,19 @@ diff --git a/src/components/ImageSync/index.vue b/src/components/ImageSync/index.vue index 00e982d..6dd2ae0 100644 --- a/src/components/ImageSync/index.vue +++ b/src/components/ImageSync/index.vue @@ -1,41 +1,40 @@ diff --git a/src/components/PlayMusic/index.vue b/src/components/PlayMusic/index.vue index c12a3c3..b85d020 100644 --- a/src/components/PlayMusic/index.vue +++ b/src/components/PlayMusic/index.vue @@ -1,119 +1,127 @@ diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue index ddca7f8..028e6a3 100644 --- a/src/components/SvgIcon/index.vue +++ b/src/components/SvgIcon/index.vue @@ -1,5 +1,6 @@ + + diff --git a/src/layout/index.vue b/src/layout/index.vue index f1c2593..acd521c 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -1,16 +1,16 @@ @@ -19,16 +19,16 @@ const scrollToTop=()=>{ - +
- - +
+ diff --git a/src/locales/en.ts b/src/locales/en.ts index 67e7a15..c585461 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -1,149 +1,149 @@ export default { - button: { - enterLottery: 'Enter Lottery', - start:'Start', - selectLucky:'Draw the Lucky', - continue: 'Continue', - confirm: 'Confirm', - cancel: 'Cancel', - setting: 'Setting', - delete: 'Delete', - allDelete: 'Delete All', - downloadTemplate: 'Download Template', - importData: 'Import Data', - resetData: 'Reset Data', - exportResult: 'Export Result', - add: 'Add', - resetDefault: 'Reset Default', - resetAllData: 'Reset All Data', - clearPattern: 'Clear Pattern', - DefaultPattern: 'Default Pattern', - upload: 'Upload', - reset: 'Reset', - play: 'Play', - setLayout:'Set Layout', - close:'Close' - }, - sidebar:{ - personConfiguration:'Person Configuration', - personList:'Person List', - winnerList:'Winner List', - prizeConfiguration:'Prize Configuration', - globalSetting:'Global Configuration', - viewSetting:'View Setting', - imagesManagement:'Images Management', - musicManagement:'Music Management', - operatingInstructions:'Operating Instructions' - }, - viewTitle:{ - personManagement:'Person Management', - winnerManagement:'Winner Management', - prizeManagement:'Prize Management', - globalSetting:'Global Setting', - operatingInstructions:'Operating Instructions' - }, - table:{ - // person configuration - number:'Number', - name:'Name', - prizeName:'Name', - department:'Department', - identity:'Identity', - isLucky:'Is Lucky', - operation:'Operation', - setLuckyNumber:'Set Lucky Number', - luckyPeopleNumber:'Lucky People Number', + button: { + enterLottery: 'Enter Lottery', + start: 'Start', + selectLucky: 'Draw the Lucky', + continue: 'Continue', + confirm: 'Confirm', + cancel: 'Cancel', + setting: 'Setting', + delete: 'Delete', + allDelete: 'Delete All', + downloadTemplate: 'Download Template', + importData: 'Import Data', + resetData: 'Reset Data', + exportResult: 'Export Result', + add: 'Add', + resetDefault: 'Reset Default', + resetAllData: 'Reset All Data', + clearPattern: 'Clear Pattern', + DefaultPattern: 'Default Pattern', + upload: 'Upload', + reset: 'Reset', + play: 'Play', + setLayout: 'Set Layout', + close: 'Close', + noInfoAndImport: 'No Info and import it', + useDefault: 'Use Default Data', + }, + sidebar: { + personConfiguration: 'Person Configuration', + personList: 'Person List', + winnerList: 'Winner List', + prizeConfiguration: 'Prize Configuration', + globalSetting: 'Global Configuration', + viewSetting: 'View Setting', + imagesManagement: 'Images Management', + musicManagement: 'Music Management', + operatingInstructions: 'Operating Instructions', + }, + viewTitle: { + personManagement: 'Person Management', + winnerManagement: 'Winner Management', + prizeManagement: 'Prize Management', + globalSetting: 'Global Setting', + operatingInstructions: 'Operating Instructions', + }, + table: { + // person configuration + number: 'Number', + name: 'Name', + prizeName: 'Name', + department: 'Department', + identity: 'Identity', + isLucky: 'Is Lucky', + operation: 'Operation', + setLuckyNumber: 'Set Lucky Number', + luckyPeopleNumber: 'Lucky People Number', - detail:'Detail', - noneData:'No Data', - // prize configuration - fullParticipation:'FullParticipation', - numberParticipants:'NumberParticipants', - isDone:'is Done', - image:'Image', - onceNumber:'Once Number', - time:'Time', - // view setting - title:'Main Title', - columnNumber:'Column Number', - theme:'Theme', - language:'Language', - cardColor:'Card Color', - winnerColor:'Winner Color', - textColor:'Text Color', - cardWidth:'Card Width', - cardHeight:'Card Height', - textSize:'Text Size', - highlightColor:'HighLight Color', - patternSetting:'Pattern Setting', - alwaysDisplay:'Always Display Prize List', - selectPicture:'Select a Picture' - }, - dialog:{ - titleTip:'Tip!', - titleTemporary:'Add Temporary Activity', - dialogPCWeb:'Please use a PC browser to access for optimal display performance', - dialogDelAllPerson:'This operation will delete all personnel list data. Do you want to continue?', - dialogResetWinner:'This operation will clear the winning information of personnel. Do you want to continue?', - dialogResetAllData:'This operation will reset all data. Do you want to continue?', - dialogSingleDrawLimit:'Only 10 characters can be extracted in a single draw', - dialogLatestBrowser:'Please use the latest version of Chrome or Edge browser', - tipResetPrize:'Performing operations may reset data, please proceed with caution', - }, - tooltip:{ - settingConfiguration:'Setting/Configuration', - nextSong:'Right Click to Next Song', - noSongPlay:'No Song to Play', - prizeList:'Prize List', - addActivity:'Add Activity', - downloadTemplateTip:'After downloading the file, please fill in the data in Excel and save it in xlsx format', - uploadExcelTip:'Upload the modified Excel file', - leftClick:'Left Click to Slice', - toHome:'to Home', - resetLayout:'This item is time-consuming and performance intensive', - defaultLayout:'The default pattern setting is valid for 17 columns, please set the number of other columns yourself', - doneCount:'Number of winners', - edit:'Edit', - delete:'Delete' - }, - error:{ - require:'required field', - requireNumber:'please enter a number', - minNumber1:'the minimum is 1', - maxNumber100:'the maximum is 100', - uploadSuccess:'Upload Success', - uploadFail:'Upload Failed', - notImage:'Not Image', - personIsAllDone:'All Person Is Done', - personNotEnough:'Person Is Not Enough', - noInfoAndImport:'No Info and import it', - useDefault:'Use Default Data', - completeInformation:'Please provide complete information' - }, - placeHolder:{ - enterTitle:'Enter Title', - name:'Name', - winnerCount:'Lucky Person Count', - }, - data:{ - yes:'Yes', - no:'No', - number:'Number', - isWin:'isWin', - department:'Department', - name:'Name', - identity:'Identity', - prizeName:'Prize Name', - prizeTime:'Prize Time', - operation:'Operation', - delete:'Delete', - removePerson:'Remove the Person', - defaultTitle:'The Prelude to the Six Ministries of the Ming Dynasty Cabinet', - xlsxName:'personListTemplate-en.xlsx', - readmeName:'readme-en.md' - }, - footer:{ - 'self-reflection':'Turn inward and examine yourself when you encounter difficulties in life.', - 'thiefEasy':'Thief difficult mountain thief easily, breaking heart.' - } + detail: 'Detail', + noneData: 'No Data', + // prize configuration + fullParticipation: 'FullParticipation', + numberParticipants: 'NumberParticipants', + isDone: 'is Done', + image: 'Image', + onceNumber: 'Once Number', + time: 'Time', + // view setting + title: 'Main Title', + columnNumber: 'Column Number', + theme: 'Theme', + language: 'Language', + cardColor: 'Card Color', + winnerColor: 'Winner Color', + textColor: 'Text Color', + cardWidth: 'Card Width', + cardHeight: 'Card Height', + textSize: 'Text Size', + highlightColor: 'HighLight Color', + patternSetting: 'Pattern Setting', + alwaysDisplay: 'Always Display Prize List', + selectPicture: 'Select a Picture', + }, + dialog: { + titleTip: 'Tip!', + titleTemporary: 'Add Temporary Activity', + dialogPCWeb: 'Please use a PC browser to access for optimal display performance', + dialogDelAllPerson: 'This operation will delete all personnel list data. Do you want to continue?', + dialogResetWinner: 'This operation will clear the winning information of personnel. Do you want to continue?', + dialogResetAllData: 'This operation will reset all data. Do you want to continue?', + dialogSingleDrawLimit: 'Only 10 characters can be extracted in a single draw', + dialogLatestBrowser: 'Please use the latest version of Chrome or Edge browser', + tipResetPrize: 'Performing operations may reset data, please proceed with caution', + }, + tooltip: { + settingConfiguration: 'Setting/Configuration', + nextSong: 'Right Click to Next Song', + noSongPlay: 'No Song to Play', + prizeList: 'Prize List', + addActivity: 'Add Activity', + downloadTemplateTip: 'After downloading the file, please fill in the data in Excel and save it in xlsx format', + uploadExcelTip: 'Upload the modified Excel file', + leftClick: 'Left Click to Slice', + toHome: 'to Home', + resetLayout: 'This item is time-consuming and performance intensive', + defaultLayout: 'The default pattern setting is valid for 17 columns, please set the number of other columns yourself', + doneCount: 'Number of winners', + edit: 'Edit', + delete: 'Delete', + }, + error: { + require: 'required field', + requireNumber: 'please enter a number', + minNumber1: 'the minimum is 1', + maxNumber100: 'the maximum is 100', + uploadSuccess: 'Upload Success', + uploadFail: 'Upload Failed', + notImage: 'Not Image', + personIsAllDone: 'All Person Is Done', + personNotEnough: 'Person Is Not Enough', + completeInformation: 'Please provide complete information', + }, + placeHolder: { + enterTitle: 'Enter Title', + name: 'Name', + winnerCount: 'Lucky Person Count', + }, + data: { + yes: 'Yes', + no: 'No', + number: 'Number', + isWin: 'isWin', + department: 'Department', + name: 'Name', + identity: 'Identity', + prizeName: 'Prize Name', + prizeTime: 'Prize Time', + operation: 'Operation', + delete: 'Delete', + removePerson: 'Remove the Person', + defaultTitle: 'The Prelude to the Six Ministries of the Ming Dynasty Cabinet', + xlsxName: 'personListTemplate-en.xlsx', + readmeName: 'readme-en.md', + }, + footer: { + 'self-reflection': 'Turn inward and examine yourself when you encounter difficulties in life.', + 'thiefEasy': 'Thief difficult mountain thief easily, breaking heart.', + }, } diff --git a/src/locales/i18n.ts b/src/locales/i18n.ts index 7659795..4a31aad 100644 --- a/src/locales/i18n.ts +++ b/src/locales/i18n.ts @@ -1,32 +1,32 @@ // i18n配置 -import { createI18n } from "vue-i18n"; -import zhCn from "./zhCn"; -import en from "./en"; -export type Language='en'|'zhCn' +import { createI18n } from 'vue-i18n' +import en from './en' +import zhCn from './zhCn' -export const languageList=[ - { - key:'zhCn', - name:'中文', - flag:'zh-cn' - }, - { - key:'en', - name:'English', - flag:'en-us' - } +export type Language = 'en' | 'zhCn' + +export const languageList = [ + { + key: 'zhCn', + name: '中文', + flag: 'zh-cn', + }, + { + key: 'en', + name: 'English', + flag: 'en-us', + }, ] -export const browserLanguage=navigator.language.toLowerCase().indexOf('zh')>=0?'zhCn':'en'; -const globalConfig=JSON.parse(localStorage.getItem('globalConfig')||'{}').globalConfig||{} +export const browserLanguage = navigator.language.toLowerCase().includes('zh') ? 'zhCn' : 'en' +const globalConfig = JSON.parse(localStorage.getItem('globalConfig') || '{}').globalConfig || {} // 创建i18n const i18n = createI18n({ - locale: globalConfig.language||browserLanguage, - globalInjection: true, // 全局注入,可以直接使用$t - legacy:false, + locale: globalConfig.language || browserLanguage, + legacy: false, messages: { zhCn, - en - } + en, + }, }) -export default i18n; +export default i18n diff --git a/src/locales/zhCn.ts b/src/locales/zhCn.ts index e5006ca..d6da00a 100644 --- a/src/locales/zhCn.ts +++ b/src/locales/zhCn.ts @@ -1,150 +1,150 @@ export default { - button: { - enterLottery: '进入抽奖', - start:'开始', - selectLucky:'抽取幸运儿', - continue: '继续', - confirm: '确认', - cancel: '取消', - setting: '设置', - delete: '删除', - allDelete: '删除全部', - downloadTemplate: '下载模板', - importData: '导入数据', - resetData: '重置数据', - exportResult: '导出结果', - add: '添加', - resetDefault: '重置为默认', - resetAllData: '重置所有数据', - clearPattern: '清除图案', - DefaultPattern: '默认图案', - upload: '上传', - reset: '重置', - play: '播放', - setLayout:'重设布局', - close:'关闭', - noInfoAndImport:'暂无人员信息,前往导入', - useDefault:'使用默认数据' - }, - sidebar:{ - personConfiguration:'人员配置', - personList:'人员列表', - winnerList:'中奖人员', - prizeConfiguration:'奖品配置', - globalSetting:'全局配置', - viewSetting:'界面设置', - imagesManagement:'图片管理', - musicManagement:'音乐管理', - operatingInstructions:'操作说明' - }, - viewTitle:{ - personManagement:'人员管理', - winnerManagement:'已中奖人员管理', - prizeManagement:'奖项配置', - globalSetting:'全局配置', - operatingInstructions:'操作说明' - }, - table:{ - // person configuration - number:'编号', - name:'姓名', - prizeName:'名称', - department:'部门', - identity:'身份', - isLucky:'是否中奖', - operation:'操作', - setLuckyNumber:'设置中奖人数', - luckyPeopleNumber:'中奖人数', + button: { + enterLottery: '进入抽奖', + start: '开始', + selectLucky: '抽取幸运儿', + continue: '继续', + confirm: '确认', + cancel: '取消', + setting: '设置', + delete: '删除', + allDelete: '删除全部', + downloadTemplate: '下载模板', + importData: '导入数据', + resetData: '重置数据', + exportResult: '导出结果', + add: '添加', + resetDefault: '重置为默认', + resetAllData: '重置所有数据', + clearPattern: '清除图案', + DefaultPattern: '默认图案', + upload: '上传', + reset: '重置', + play: '播放', + setLayout: '重设布局', + close: '关闭', + noInfoAndImport: '暂无人员信息,前往导入', + useDefault: '使用默认数据', + }, + sidebar: { + personConfiguration: '人员配置', + personList: '人员列表', + winnerList: '中奖人员', + prizeConfiguration: '奖品配置', + globalSetting: '全局配置', + viewSetting: '界面设置', + imagesManagement: '图片管理', + musicManagement: '音乐管理', + operatingInstructions: '操作说明', + }, + viewTitle: { + personManagement: '人员管理', + winnerManagement: '已中奖人员管理', + prizeManagement: '奖项配置', + globalSetting: '全局配置', + operatingInstructions: '操作说明', + }, + table: { + // person configuration + number: '编号', + name: '姓名', + prizeName: '名称', + department: '部门', + identity: '身份', + isLucky: '是否中奖', + operation: '操作', + setLuckyNumber: '设置中奖人数', + luckyPeopleNumber: '中奖人数', - detail:'详细信息', - noneData:'暂无数据', - // prize configuration - fullParticipation:'全员参加', - numberParticipants:'抽奖人数', - isDone:'已抽取', - image:'图片', - onceNumber:'单次抽取个数', - time:'时间', - // view setting - title:'主标题', - columnNumber:'列数', - theme:'主题', - language:'语言', - cardColor:'卡片颜色', - winnerColor:'中奖卡片颜色', - textColor:'文字颜色', - cardWidth:'卡片宽度', - cardHeight:'卡片高度', - textSize:'文字大小', - highlightColor:'高亮颜色', - patternSetting:'图案设置', - alwaysDisplay:'常显奖项列表', - selectPicture:'选择一张图片' - }, - dialog:{ - titleTip:'提示!', - titleTemporary:'增加临时抽奖', - dialogPCWeb:'请使用PC进行访问以获得最佳显示效果', - dialogDelAllPerson:'该操作会删除所有人员数据,是否继续?', - dialogResetWinner:'该操作会清空人员中奖信息,是否继续?', - dialogResetAllData:'该操作会重置所有数据,是否继续?', - dialogSingleDrawLimit:'单次抽取只能抽取10位', - dialogLatestBrowser:'请使用最新版Chrome或者Edge浏览器', - tipResetPrize:'进行操作可能会重置数据,请谨慎操作', - }, - tooltip:{ - settingConfiguration:'设置/配置', - nextSong:'右键点击下一首', - noSongPlay:'没有音乐可以播放', - prizeList:'奖项列表', - addActivity:'添加抽奖', - downloadTemplateTip:'下载文件后,请在excel中填写数据,并保存为xlsx格式', - uploadExcelTip:'上传修改好的excel文件', - leftClick:'左键切割', - toHome:'主页', - resetLayout:'该项比较耗费时间和性能', - defaultLayout:'默认图案设置针对17列时有效,其他列数请自行设置', - doneCount:'已抽取', - edit:'编辑', - delete:'删除' - }, - error:{ - require:'必填项', - requireNumber:'请输入数字', - minNumber1:'最小为1', - maxNumber100:'最大为100', - uploadSuccess:'上传成功', - uploadFail:'上传失败', - notImage:'不是图片', - personIsAllDone:'抽奖抽完了', - personNotEnough:'抽奖人数不足', - startDraw:'现在抽取{count}{leftover}人', - completeInformation:'请填写完整信息' - }, - placeHolder:{ - enterTitle:'输入标题', - name:'名称', - winnerCount:'中奖人数', - }, - data:{ - yes:'是', - no:'否', - number:'编号', - isWin:'是否中奖', - department:'部门', - name:'姓名', - identity:'身份', - prizeName:'获奖', - prizeTime:'获奖时间', - operation:'操作', - delete:'删除', - removePerson:'移入未中奖名单', - defaultTitle:'大明内阁六部御前奏对', - xlsxName:'人口登记表-zhCn.xlsx', - readmeName:'readme-zhCn.md' - }, - footer:{ - 'self-reflection':'行有不得,反求诸己', - 'thiefEasy':'破山中贼易,破心中贼难' - } + detail: '详细信息', + noneData: '暂无数据', + // prize configuration + fullParticipation: '全员参加', + numberParticipants: '抽奖人数', + isDone: '已抽取', + image: '图片', + onceNumber: '单次抽取个数', + time: '时间', + // view setting + title: '主标题', + columnNumber: '列数', + theme: '主题', + language: '语言', + cardColor: '卡片颜色', + winnerColor: '中奖卡片颜色', + textColor: '文字颜色', + cardWidth: '卡片宽度', + cardHeight: '卡片高度', + textSize: '文字大小', + highlightColor: '高亮颜色', + patternSetting: '图案设置', + alwaysDisplay: '常显奖项列表', + selectPicture: '选择一张图片', + }, + dialog: { + titleTip: '提示!', + titleTemporary: '增加临时抽奖', + dialogPCWeb: '请使用PC进行访问以获得最佳显示效果', + dialogDelAllPerson: '该操作会删除所有人员数据,是否继续?', + dialogResetWinner: '该操作会清空人员中奖信息,是否继续?', + dialogResetAllData: '该操作会重置所有数据,是否继续?', + dialogSingleDrawLimit: '单次抽取只能抽取10位', + dialogLatestBrowser: '请使用最新版Chrome或者Edge浏览器', + tipResetPrize: '进行操作可能会重置数据,请谨慎操作', + }, + tooltip: { + settingConfiguration: '设置/配置', + nextSong: '右键点击下一首', + noSongPlay: '没有音乐可以播放', + prizeList: '奖项列表', + addActivity: '添加抽奖', + downloadTemplateTip: '下载文件后,请在excel中填写数据,并保存为xlsx格式', + uploadExcelTip: '上传修改好的excel文件', + leftClick: '左键切割', + toHome: '主页', + resetLayout: '该项比较耗费时间和性能', + defaultLayout: '默认图案设置针对17列时有效,其他列数请自行设置', + doneCount: '已抽取', + edit: '编辑', + delete: '删除', + }, + error: { + require: '必填项', + requireNumber: '请输入数字', + minNumber1: '最小为1', + maxNumber100: '最大为100', + uploadSuccess: '上传成功', + uploadFail: '上传失败', + notImage: '不是图片', + personIsAllDone: '抽奖抽完了', + personNotEnough: '抽奖人数不足', + startDraw: '现在抽取{count}{leftover}人', + completeInformation: '请填写完整信息', + }, + placeHolder: { + enterTitle: '输入标题', + name: '名称', + winnerCount: '中奖人数', + }, + data: { + yes: '是', + no: '否', + number: '编号', + isWin: '是否中奖', + department: '部门', + name: '姓名', + identity: '身份', + prizeName: '获奖', + prizeTime: '获奖时间', + operation: '操作', + delete: '删除', + removePerson: '移入未中奖名单', + defaultTitle: '大明内阁六部御前奏对', + xlsxName: '人口登记表-zhCn.xlsx', + readmeName: 'readme-zhCn.md', + }, + footer: { + 'self-reflection': '行有不得,反求诸己', + 'thiefEasy': '破山中贼易,破心中贼难', + }, } diff --git a/src/main.ts b/src/main.ts index 5550e90..b90b4ea 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,25 +1,25 @@ -import { createApp } from 'vue'; -import './style.css'; +import svgIcon from '@/components/SvgIcon/index.vue' +import i18n from '@/locales/i18n' +import * as THREE from 'three' +import { createApp } from 'vue' +import VueDOMPurifyHTML from 'vue-dompurify-html' +import App from './App.vue' +import './style.css' import './style/markdown.css' import './style/style.scss' -import * as THREE from 'three'; -import App from './App.vue'; -import VueDOMPurifyHTML from 'vue-dompurify-html' -import i18n from '@/locales/i18n' - -const app = createApp(App); // 全局svg组件 -import 'virtual:svg-icons-register'; -import svgIcon from '@/components/SvgIcon/index.vue'; +import 'virtual:svg-icons-register' // svg全局组件// 路由 -import router from '@/router'; +import router from '@/router' // pinia -import { createPinia } from 'pinia'; +import { createPinia } from 'pinia' // pinia持久化 -import piniaPluginPersist from 'pinia-plugin-persist'; -const pinia = createPinia(); -pinia.use(piniaPluginPersist); +import piniaPluginPersist from 'pinia-plugin-persist' -app.config.globalProperties.$THREE = THREE; //挂载到原型 -app.component('svg-icon', svgIcon); -app.use(router).use(VueDOMPurifyHTML).use(pinia).use(i18n).mount('#app'); +const app = createApp(App) +const pinia = createPinia() +pinia.use(piniaPluginPersist) + +app.config.globalProperties.$THREE = THREE // 挂载到原型 +app.component('svg-icon', svgIcon) +app.use(router).use(VueDOMPurifyHTML).use(pinia).use(i18n).mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts index 8f742d8..7df6e6b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,116 +1,117 @@ -import { createRouter, createWebHistory } from 'vue-router'; -import Layout from '@/layout/index.vue'; -import Home from '@/views/Home/index.vue'; +import Layout from '@/layout/index.vue' import i18n from '@/locales/i18n' -export const configRoutes={ - path: '/log-lottery/config', - name: 'Config', - component: () => import('@/views/Config/index.vue'), - children: [ +import Home from '@/views/Home/index.vue' +import { createRouter, createWebHistory } from 'vue-router' + +export const configRoutes = { + path: '/log-lottery/config', + name: 'Config', + component: () => import('@/views/Config/index.vue'), + children: [ + { + path: '', + redirect: '/log-lottery/config/person', + }, + { + path: '/log-lottery/config/person', + name: 'PersonConfig', + component: () => import('@/views/Config/Person/PersonConfig.vue'), + meta: { + title: i18n.global.t('sidebar.personConfiguration'), + icon: 'person', + }, + children: [ { - path: '', - redirect: '/log-lottery/config/person', - }, - { - path: '/log-lottery/config/person', - name: 'PersonConfig', - component: () => import('@/views/Config/Person/PersonConfig.vue'), - meta: { - title: i18n.global.t('sidebar.personConfiguration'), - icon: 'person', + path: '', + redirect: '/log-lottery/config/person/all', }, - children:[ - { - path:'', - redirect: '/log-lottery/config/person/all', - }, - { - path:'/log-lottery/config/person/all', - name:'AllPersonConfig', - component:()=>import('@/views/Config/Person/PersonAll.vue'), - meta:{ - title:i18n.global.t('sidebar.personList'), - icon:'all' - } - }, - { - path:'/log-lottery/config/person/already', - name:'AlreadyPerson', - component:()=>import('@/views/Config/Person/PersonAlready.vue'), - meta:{ - title:i18n.global.t('sidebar.winnerList'), - icon:'already' - } - }, - // { - // path:'other', - // name:'OtherPersonConfig', - // component:()=>import('@/views/Config/Person/OtherPersonConfig.vue'), - // meta:{ - // title:'其他配置', - // icon:'other' - // } - // } - ] - }, - { - path: '/log-lottery/config/prize', - name: 'PrizeConfig', - component: () => import('@/views/Config/Prize/PrizeConfig.vue'), - meta:{ - title: i18n.global.t('sidebar.prizeConfiguration'), - icon: 'prize' - } - }, - { - path:'/log-lottery/config/global', - name:'GlobalConfig', - redirect: '/log-lottery/config/global/all', - meta:{ - title:i18n.global.t('sidebar.globalSetting'), - icon:'global' + { + path: '/log-lottery/config/person/all', + name: 'AllPersonConfig', + component: () => import('@/views/Config/Person/PersonAll.vue'), + meta: { + title: i18n.global.t('sidebar.personList'), + icon: 'all', + }, }, - children:[ - { - path:'/log-lottery/config/global/face', - name:'FaceConfig', - component:()=>import('@/views/Config/Global/FaceConfig.vue'), - meta:{ - title:i18n.global.t('sidebar.viewSetting'), - icon:'face' - } - }, - { - path:'/log-lottery/config/global/image', - name:'ImageConfig', - component:()=>import('@/views/Config/Global/ImageConfig.vue'), - meta:{ - title:i18n.global.t('sidebar.imagesManagement'), - icon:'image' - } - }, - { - path:'/log-lottery/config/global/music', - name:'MusicConfig', - component:()=>import('@/views/Config/Global/MusicConfig.vue'), - meta:{ - title:i18n.global.t('sidebar.musicManagement'), - icon:'music' - } - } - ] + { + path: '/log-lottery/config/person/already', + name: 'AlreadyPerson', + component: () => import('@/views/Config/Person/PersonAlready.vue'), + meta: { + title: i18n.global.t('sidebar.winnerList'), + icon: 'already', + }, + }, + // { + // path:'other', + // name:'OtherPersonConfig', + // component:()=>import('@/views/Config/Person/OtherPersonConfig.vue'), + // meta:{ + // title:'其他配置', + // icon:'other' + // } + // } + ], + }, + { + path: '/log-lottery/config/prize', + name: 'PrizeConfig', + component: () => import('@/views/Config/Prize/PrizeConfig.vue'), + meta: { + title: i18n.global.t('sidebar.prizeConfiguration'), + icon: 'prize', }, - { - path: '/log-lottery/config/readme', - name: 'Readme', - component: () => import('@/views/Config/Readme/index.vue'), - meta:{ - title: i18n.global.t('sidebar.operatingInstructions') , - icon: 'readme' - } + }, + { + path: '/log-lottery/config/global', + name: 'GlobalConfig', + redirect: '/log-lottery/config/global/all', + meta: { + title: i18n.global.t('sidebar.globalSetting'), + icon: 'global', }, - ] - } + children: [ + { + path: '/log-lottery/config/global/face', + name: 'FaceConfig', + component: () => import('@/views/Config/Global/FaceConfig.vue'), + meta: { + title: i18n.global.t('sidebar.viewSetting'), + icon: 'face', + }, + }, + { + path: '/log-lottery/config/global/image', + name: 'ImageConfig', + component: () => import('@/views/Config/Global/ImageConfig.vue'), + meta: { + title: i18n.global.t('sidebar.imagesManagement'), + icon: 'image', + }, + }, + { + path: '/log-lottery/config/global/music', + name: 'MusicConfig', + component: () => import('@/views/Config/Global/MusicConfig.vue'), + meta: { + title: i18n.global.t('sidebar.musicManagement'), + icon: 'music', + }, + }, + ], + }, + { + path: '/log-lottery/config/readme', + name: 'Readme', + component: () => import('@/views/Config/Readme/index.vue'), + meta: { + title: i18n.global.t('sidebar.operatingInstructions'), + icon: 'readme', + }, + }, + ], +} const routes = [ { path: '/log-lottery', @@ -123,18 +124,18 @@ const routes = [ component: Home, }, { - path:'/log-lottery/demo', - name:'Demo', - component:()=>import('@/views/Demo/index.vue') + path: '/log-lottery/demo', + name: 'Demo', + component: () => import('@/views/Demo/index.vue'), }, configRoutes, ], }, -]; +] const router = createRouter({ history: createWebHistory(), routes, -}); +}) -export default router; +export default router diff --git a/src/store/data.ts b/src/store/data.ts index 1e0310c..0ef5de1 100644 --- a/src/store/data.ts +++ b/src/store/data.ts @@ -1,241 +1,278 @@ -import { IPrizeConfig, IPersonConfig } from '@/types/storeType'; +import type { IPersonConfig, IPrizeConfig } from '@/types/storeType' + export const defaultPersonList = [ - { uid: 'U100156001', name: '朱厚熜', department: '皇室', identity: '万岁爷', x: 1, y: 1, id: 0, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156002', name: '朱载垕', department: '皇室', identity: '裕王', x: 2, y: 1, id: 1, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156003', name: '朱翊钧 ', department: '皇室', identity: '裕王世子', x: 3, y: 1, id: 2, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156004', name: '严嵩', department: '内阁', identity: '首辅', x: 4, y: 1, id: 3, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156005', name: '徐阶', department: '内阁', identity: '次辅、户部尚书', x: 5, y: 1, id: 4, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156006', name: '张居正', department: '内阁', identity: '阁臣、兵部侍郞', x: 6, y: 1, id: 5, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156007', name: '高拱', department: '内阁', identity: '阁臣、户部侍郞', x: 7, y: 1, id: 6, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156008', name: '严世蕃', department: '内阁', identity: '吏部侍郞', x: 8, y: 1, id: 7, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156009', name: '胡宗宪', department: '大臣', identity: '浙直总督', x: 9, y: 1, id: 8, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156010', name: '戚继光', department: '大臣', identity: '都督佥事', x: 10, y: 1, id: 9, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156011', name: '高瀚文', department: '大臣', identity: '杭州知府', x: 11, y: 1, id: 10, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156012', name: '赵贞吉', department: '大臣', identity: '江苏巡抚', x: 12, y: 1, id: 11, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156013', name: '海瑞', department: '大臣', identity: '淳安知县', x: 13, y: 1, id: 12, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156014', name: '何茂才', department: '大臣', identity: '浙江布政使兼按察使', x: 14, y: 1, id: 13, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156015', name: '郑泌昌', department: '大臣', identity: '浙江巡抚', x: 15, y: 1, id: 14, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156016', name: '王用汲', department: '大臣', identity: '建德知县', x: 16, y: 1, id: 15, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156017', name: '谭纶', department: '大臣', identity: '浙直总督府参军', x: 17, y: 1, id: 16, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156018', name: '朱七', department: '大臣', identity: '北镇抚司', x: 1, y: 2, id: 17, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156019', name: '罗龙文', department: '大臣', identity: '通政使司通政使', x: 2, y: 2, id: 18, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156020', name: '马宁远', department: '大臣', identity: '杭州知府', x: 3, y: 2, id: 19, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156021', name: '田有禄 ', department: '大臣', identity: '淳安县丞', x: 4, y: 2, id: 20, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156022', name: '周云逸', department: '大臣', identity: '钦天监监正', x: 5, y: 2, id: 21, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156023', name: '蒋千户', department: '大臣', identity: '浙江按察使司', x: 6, y: 2, id: 22, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156024', name: '徐千户', department: '大臣', identity: '浙江按察使司', x: 7, y: 2, id: 23, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156025', name: '王牢头 ', department: '大臣', identity: '牢头', x: 8, y: 2, id: 24, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156026', name: '赵班头', department: '大臣', identity: '班头', x: 9, y: 2, id: 25, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156027', name: '吕芳', department: '太监', identity: '掌印太监', x: 10, y: 2, id: 26, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156028', name: '杨金水', department: '太监', identity: '织造局', x: 11, y: 2, id: 27, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156029', name: '陈洪', department: '太监', identity: '首席秉笔太监', x: 12, y: 2, id: 28, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156030', name: '黄锦', department: '太监', identity: '秉笔太监', x: 13, y: 2, id: 29, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156031', name: '李玄', department: '太监', identity: '新安江河道监管', x: 14, y: 2, id: 30, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156032', name: '冯保', department: '太监', identity: '世子大伴', x: 15, y: 2, id: 31, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156033', name: '李时珍', department: '江湖', identity: '名医', x: 16, y: 2, id: 32, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156034', name: '沈一石 ', department: '江湖', identity: '商人', x: 17, y: 2, id: 33, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156035', name: '井上十四郎', department: '江湖', identity: '倭寇', x: 1, y: 3, id: 34, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, { uid: 'U100156036', name: '芸娘', department: '江湖', x: 2, y: 3, id: 35, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }] + { uid: 'U100156001', name: '朱厚熜', department: '皇室', identity: '万岁爷', x: 1, y: 1, id: 0, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156002', name: '朱载垕', department: '皇室', identity: '裕王', x: 2, y: 1, id: 1, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156003', name: '朱翊钧 ', department: '皇室', identity: '裕王世子', x: 3, y: 1, id: 2, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156004', name: '严嵩', department: '内阁', identity: '首辅', x: 4, y: 1, id: 3, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156005', name: '徐阶', department: '内阁', identity: '次辅、户部尚书', x: 5, y: 1, id: 4, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156006', name: '张居正', department: '内阁', identity: '阁臣、兵部侍郞', x: 6, y: 1, id: 5, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156007', name: '高拱', department: '内阁', identity: '阁臣、户部侍郞', x: 7, y: 1, id: 6, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156008', name: '严世蕃', department: '内阁', identity: '吏部侍郞', x: 8, y: 1, id: 7, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156009', name: '胡宗宪', department: '大臣', identity: '浙直总督', x: 9, y: 1, id: 8, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156010', name: '戚继光', department: '大臣', identity: '都督佥事', x: 10, y: 1, id: 9, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156011', name: '高瀚文', department: '大臣', identity: '杭州知府', x: 11, y: 1, id: 10, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156012', name: '赵贞吉', department: '大臣', identity: '江苏巡抚', x: 12, y: 1, id: 11, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156013', name: '海瑞', department: '大臣', identity: '淳安知县', x: 13, y: 1, id: 12, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156014', name: '何茂才', department: '大臣', identity: '浙江布政使兼按察使', x: 14, y: 1, id: 13, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156015', name: '郑泌昌', department: '大臣', identity: '浙江巡抚', x: 15, y: 1, id: 14, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156016', name: '王用汲', department: '大臣', identity: '建德知县', x: 16, y: 1, id: 15, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156017', name: '谭纶', department: '大臣', identity: '浙直总督府参军', x: 17, y: 1, id: 16, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156018', name: '朱七', department: '大臣', identity: '北镇抚司', x: 1, y: 2, id: 17, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156019', name: '罗龙文', department: '大臣', identity: '通政使司通政使', x: 2, y: 2, id: 18, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156020', name: '马宁远', department: '大臣', identity: '杭州知府', x: 3, y: 2, id: 19, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156021', name: '田有禄 ', department: '大臣', identity: '淳安县丞', x: 4, y: 2, id: 20, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156022', name: '周云逸', department: '大臣', identity: '钦天监监正', x: 5, y: 2, id: 21, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156023', name: '蒋千户', department: '大臣', identity: '浙江按察使司', x: 6, y: 2, id: 22, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156024', name: '徐千户', department: '大臣', identity: '浙江按察使司', x: 7, y: 2, id: 23, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156025', name: '王牢头 ', department: '大臣', identity: '牢头', x: 8, y: 2, id: 24, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156026', name: '赵班头', department: '大臣', identity: '班头', x: 9, y: 2, id: 25, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156027', name: '吕芳', department: '太监', identity: '掌印太监', x: 10, y: 2, id: 26, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156028', name: '杨金水', department: '太监', identity: '织造局', x: 11, y: 2, id: 27, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156029', name: '陈洪', department: '太监', identity: '首席秉笔太监', x: 12, y: 2, id: 28, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156030', name: '黄锦', department: '太监', identity: '秉笔太监', x: 13, y: 2, id: 29, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156031', name: '李玄', department: '太监', identity: '新安江河道监管', x: 14, y: 2, id: 30, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156032', name: '冯保', department: '太监', identity: '世子大伴', x: 15, y: 2, id: 31, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156033', name: '李时珍', department: '江湖', identity: '名医', x: 16, y: 2, id: 32, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156034', name: '沈一石 ', department: '江湖', identity: '商人', x: 17, y: 2, id: 33, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156035', name: '井上十四郎', department: '江湖', identity: '倭寇', x: 1, y: 3, id: 34, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + { uid: 'U100156036', name: '芸娘', department: '江湖', x: 2, y: 3, id: 35, isWin: false, createTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', updateTime: 'Tue Jan 09 2024 23:20:07 GMT+0800 (China Standard Time)', prizeName: [], prizeTime: [], prizeId: [] }, + ] export const defaultMusicList = [ - { - id: 'Geoff Knorr - China (The Industrial Era).ogg' + new Date().getTime().toString(), - name: 'Geoff Knorr - China (The Industrial Era).ogg', - url: 'https://1kw20.fun/resource/audio/Geoff Knorr - China (The Industrial Era).ogg' - }, - { - id: 'Geoff Knorr&Phill Boucher - China (The Atomic Era).ogg' + new Date().getTime().toString(), - name: 'Geoff Knorr&Phill Boucher - China (The Atomic Era).ogg', - url: 'https://1kw20.fun/resource/audio/Geoff Knorr&Phill Boucher - China (The Atomic Era).ogg' - }, - { - id: 'Radetzky March.mp3' + new Date().getTime().toString(), - name: 'Radetzky March.mp3', - url: 'https://1kw20.fun/resource/audio/Radetzky March.mp3' - }, - { - id: 'Shanghai.mp3' + new Date().getTime().toString(), - name: 'Shanghai.mp3', - url: 'https://1kw20.fun/resource/audio/Shanghai.mp3' - }, - { - id: 'Waltz No.2.mp3' + new Date().getTime().toString(), - name: 'Waltz No.2.mp3', - url: 'https://1kw20.fun/resource/audio/Waltz No.2.mp3' - }, - { - id: 'WildChinaTheme.mp3' + new Date().getTime().toString(), - name: 'WildChinaTheme.mp3', - url: 'https://1kw20.fun/resource/audio/WildChinaTheme.mp3' - }, - { - id: '边程&房东的猫 - 美好事物-再遇少年.ogg' + new Date().getTime().toString(), - name: '边程&房东的猫 - 美好事物-再遇少年.ogg', - url: 'https://1kw20.fun/resource/audio/边程&房东的猫 - 美好事物-再遇少年.ogg' - }, - { - id: '大乔小乔 - 相见难别亦难.ogg' + new Date().getTime().toString(), - name: '大乔小乔 - 相见难别亦难.ogg', - url: 'https://1kw20.fun/resource/audio/大乔小乔 - 相见难别亦难.ogg' - }, - { - id: '你要跳舞吗-新裤子.mp3' + new Date().getTime().toString(), - name: '你要跳舞吗-新裤子.mp3', - url: 'https://1kw20.fun/resource/audio/你要跳舞吗-新裤子.mp3' - }, - { - id: '生命-声音玩具.mp3' + new Date().getTime().toString(), - name: '生命-声音玩具.mp3', - url: 'https://1kw20.fun/resource/audio/生命-声音玩具.mp3' - }, - { - id: '与非门 - Happy New Year.ogg' + new Date().getTime().toString(), - name: '与非门 - Happy New Year.ogg', - url: 'https://1kw20.fun/resource/audio/与非门 - Happy New Year.ogg' - }, + { + id: `Geoff Knorr - China (The Industrial Era).ogg${new Date().getTime().toString()}`, + name: 'Geoff Knorr - China (The Industrial Era).ogg', + url: 'https://1kw20.fun/resource/audio/Geoff Knorr - China (The Industrial Era).ogg', + }, + { + id: `Geoff Knorr&Phill Boucher - China (The Atomic Era).ogg${new Date().getTime().toString()}`, + name: 'Geoff Knorr&Phill Boucher - China (The Atomic Era).ogg', + url: 'https://1kw20.fun/resource/audio/Geoff Knorr&Phill Boucher - China (The Atomic Era).ogg', + }, + { + id: `Radetzky March.mp3${new Date().getTime().toString()}`, + name: 'Radetzky March.mp3', + url: 'https://1kw20.fun/resource/audio/Radetzky March.mp3', + }, + { + id: `Shanghai.mp3${new Date().getTime().toString()}`, + name: 'Shanghai.mp3', + url: 'https://1kw20.fun/resource/audio/Shanghai.mp3', + }, + { + id: `Waltz No.2.mp3${new Date().getTime().toString()}`, + name: 'Waltz No.2.mp3', + url: 'https://1kw20.fun/resource/audio/Waltz No.2.mp3', + }, + { + id: `WildChinaTheme.mp3${new Date().getTime().toString()}`, + name: 'WildChinaTheme.mp3', + url: 'https://1kw20.fun/resource/audio/WildChinaTheme.mp3', + }, + { + id: `边程&房东的猫 - 美好事物-再遇少年.ogg${new Date().getTime().toString()}`, + name: '边程&房东的猫 - 美好事物-再遇少年.ogg', + url: 'https://1kw20.fun/resource/audio/边程&房东的猫 - 美好事物-再遇少年.ogg', + }, + { + id: `大乔小乔 - 相见难别亦难.ogg${new Date().getTime().toString()}`, + name: '大乔小乔 - 相见难别亦难.ogg', + url: 'https://1kw20.fun/resource/audio/大乔小乔 - 相见难别亦难.ogg', + }, + { + id: `你要跳舞吗-新裤子.mp3${new Date().getTime().toString()}`, + name: '你要跳舞吗-新裤子.mp3', + url: 'https://1kw20.fun/resource/audio/你要跳舞吗-新裤子.mp3', + }, + { + id: `生命-声音玩具.mp3${new Date().getTime().toString()}`, + name: '生命-声音玩具.mp3', + url: 'https://1kw20.fun/resource/audio/生命-声音玩具.mp3', + }, + { + id: `与非门 - Happy New Year.ogg${new Date().getTime().toString()}`, + name: '与非门 - Happy New Year.ogg', + url: 'https://1kw20.fun/resource/audio/与非门 - Happy New Year.ogg', + }, ] export const defaultPrizeList = [ - { - id: '001', - name: '三等奖', - sort: 1, - isAll: false, - count: 3, - isUsedCount: 0, - picture: { - id: '2', - name: '三等奖', - url: 'https://1kw20.fun/resource/image/image3.png' - }, - separateCount: { - enable: true, - countList: [] - }, - desc: '三等奖', - isShow: true, - isUsed: false, - frequency: 1, - }, - { - id: '002', - name: '二等奖', - sort: 2, - isAll: false, - count: 2, - isUsedCount: 0, - picture: { - id: '1', - name: '二等奖', - url: 'https://1kw20.fun/resource/image/image2.png' - }, - separateCount: { - enable: false, - countList: [] - }, - desc: '二等奖', - isShow: true, - isUsed: false, - frequency: 1, - }, - { - id: '003', - name: '一等奖', - sort: 3, - isAll: false, - count: 1, - isUsedCount: 0, - picture: { - id: '0', - name: '一等奖', - url: 'https://1kw20.fun/resource/image/image1.png' - }, - separateCount: { - enable: false, - countList: [] - }, - desc: '一等奖', - isShow: true, - isUsed: false, - frequency: 1, - }, - { - id: '004', - name: '超级大奖', - sort: 4, - isAll: false, - count: 1, - isUsedCount: 0, - picture: { - id: '3', - name: '超级奖', - url: 'https://1kw20.fun/resource/image/image4.png' - }, - separateCount: { - enable: false, - countList: [] - }, - desc: '超级大奖', - isShow: true, - isUsed: false, - frequency: 1, - }, - { - id: '005', - name: '特别奖', - sort: 5, - isAll: false, - count: 1, - isUsedCount: 0, - picture: { - id: '4', - name: '特别奖', - url: 'https://1kw20.fun/resource/image/image5.png' - }, - separateCount: { - enable: false, - countList: [] - }, - desc: '特别奖', - isShow: true, - isUsed: false, - frequency: 1, - } -] -export const defaultCurrentPrize = { + { id: '001', name: '三等奖', sort: 1, isAll: false, - count: 12, + count: 3, isUsedCount: 0, picture: { - id: '2', - name: '三等奖', - url: 'https://1kw20.fun/resource/image/image3.png' + id: '2', + name: '三等奖', + url: 'https://1kw20.fun/resource/image/image3.png', }, separateCount: { - enable: true, - countList: [] + enable: true, + countList: [], }, desc: '三等奖', isShow: true, isUsed: false, frequency: 1, -} -export const defaultTemporaryPrize = { - id: '', - name: '', - sort: 0, + }, + { + id: '002', + name: '二等奖', + sort: 2, + isAll: false, + count: 2, + isUsedCount: 0, + picture: { + id: '1', + name: '二等奖', + url: 'https://1kw20.fun/resource/image/image2.png', + }, + separateCount: { + enable: false, + countList: [], + }, + desc: '二等奖', + isShow: true, + isUsed: false, + frequency: 1, + }, + { + id: '003', + name: '一等奖', + sort: 3, isAll: false, count: 1, isUsedCount: 0, picture: { - id: '-1', - name: '', - url: '' + id: '0', + name: '一等奖', + url: 'https://1kw20.fun/resource/image/image1.png', }, separateCount: { - enable: true, - countList: [] + enable: false, + countList: [], }, - desc: '', - isShow: false, + desc: '一等奖', + isShow: true, isUsed: false, frequency: 1, + }, + { + id: '004', + name: '超级大奖', + sort: 4, + isAll: false, + count: 1, + isUsedCount: 0, + picture: { + id: '3', + name: '超级奖', + url: 'https://1kw20.fun/resource/image/image4.png', + }, + separateCount: { + enable: false, + countList: [], + }, + desc: '超级大奖', + isShow: true, + isUsed: false, + frequency: 1, + }, + { + id: '005', + name: '特别奖', + sort: 5, + isAll: false, + count: 1, + isUsedCount: 0, + picture: { + id: '4', + name: '特别奖', + url: 'https://1kw20.fun/resource/image/image5.png', + }, + separateCount: { + enable: false, + countList: [], + }, + desc: '特别奖', + isShow: true, + isUsed: false, + frequency: 1, + }, +] +export const defaultCurrentPrize = { + id: '001', + name: '三等奖', + sort: 1, + isAll: false, + count: 12, + isUsedCount: 0, + picture: { + id: '2', + name: '三等奖', + url: 'https://1kw20.fun/resource/image/image3.png', + }, + separateCount: { + enable: true, + countList: [], + }, + desc: '三等奖', + isShow: true, + isUsed: false, + frequency: 1, +} +export const defaultTemporaryPrize = { + id: '', + name: '', + sort: 0, + isAll: false, + count: 1, + isUsedCount: 0, + picture: { + id: '-1', + name: '', + url: '', + }, + separateCount: { + enable: true, + countList: [], + }, + desc: '', + isShow: false, + isUsed: false, + frequency: 1, } export const defaultImageList = [ - { - id: '0', - name: '一等奖', - url: 'https://1kw20.fun/resource/image/image1.png' - }, - { - id: '1', - name: '二等奖', - url: 'https://1kw20.fun/resource/image/image2.png' - }, - { - id: '2', - name: '三等奖', - url: 'https://1kw20.fun/resource/image/image3.png' - }, - { - id: '3', - name: '超级奖', - url: 'https://1kw20.fun/resource/image/image4.png' - }, - { - id: '4', - name: '特别奖', - url: 'https://1kw20.fun/resource/image/image5.png' - } + { + id: '0', + name: '一等奖', + url: 'https://1kw20.fun/resource/image/image1.png', + }, + { + id: '1', + name: '二等奖', + url: 'https://1kw20.fun/resource/image/image2.png', + }, + { + id: '2', + name: '三等奖', + url: 'https://1kw20.fun/resource/image/image3.png', + }, + { + id: '3', + name: '超级奖', + url: 'https://1kw20.fun/resource/image/image4.png', + }, + { + id: '4', + name: '特别奖', + url: 'https://1kw20.fun/resource/image/image5.png', + }, ] export const defaultPatternList = [21, 38, 55, 54, 53, 70, 87, 88, 89, 23, 40, 57, 74, 91, 92, 93, 76, 59, 42, 25, 24, 27, 28, 29, 46, 63, 62, 61, 78, 95, 96, 97, 20, 19, 31, 48, 65, 66, 67, 84, 101, 100, 99, 32, 33] diff --git a/src/store/globalConfig.ts b/src/store/globalConfig.ts index b6bcfe2..aecddcf 100644 --- a/src/store/globalConfig.ts +++ b/src/store/globalConfig.ts @@ -1,260 +1,260 @@ -import { defineStore } from 'pinia'; -import { defaultMusicList, defaultImageList, defaultPatternList } from './data' -import { IMusic, IImage } from '@/types/storeType'; -import i18n,{browserLanguage} from '@/locales/i18n' +import type { IImage, IMusic } from '@/types/storeType' +import i18n, { browserLanguage } from '@/locales/i18n' +import { defineStore } from 'pinia' +import { defaultImageList, defaultMusicList, defaultPatternList } from './data' // import { IPrizeConfig } from '@/types/storeType'; export const useGlobalConfig = defineStore('global', { - state() { - return { - globalConfig: { - rowCount: 17, - isSHowPrizeList: true, - topTitle: i18n.global.t('data.defaultTitle'), - language:browserLanguage, - theme: { - name: 'dracula', - detail: { primary: '#0f5fd3' }, - cardColor: '#ff79c6', - cardWidth: 140, - cardHeight: 200, - textColor: '#ffffff', - luckyCardColor: '#ECB1AC', - textSize: 30, - patternColor: '#1b66c9', - patternList: defaultPatternList as number[], - }, - musicList: defaultMusicList as IMusic[], - imageList: defaultImageList as IImage[], - }, - currentMusic: { - item: defaultMusicList[0], - paused: true, - }, - }; + state() { + return { + globalConfig: { + rowCount: 17, + isSHowPrizeList: true, + topTitle: i18n.global.t('data.defaultTitle'), + language: browserLanguage, + theme: { + name: 'dracula', + detail: { primary: '#0f5fd3' }, + cardColor: '#ff79c6', + cardWidth: 140, + cardHeight: 200, + textColor: '#ffffff', + luckyCardColor: '#ECB1AC', + textSize: 30, + patternColor: '#1b66c9', + patternList: defaultPatternList as number[], + }, + musicList: defaultMusicList as IMusic[], + imageList: defaultImageList as IImage[], + }, + currentMusic: { + item: defaultMusicList[0], + paused: true, + }, + } + }, + getters: { + // 获取全部配置 + getGlobalConfig(state) { + return state.globalConfig }, - getters: { - // 获取全部配置 - getGlobalConfig(state) { - return state.globalConfig; - }, - // 获取标题 - getTopTitle(state) { - return state.globalConfig.topTitle; - }, - // 获取行数 - getRowCount(state) { - return state.globalConfig.rowCount; - }, - // 获取主题 - getTheme(state) { - return state.globalConfig.theme; - }, - // 获取卡片颜色 - getCardColor(state) { - return state.globalConfig.theme.cardColor; - }, - // 获取中奖颜色 - getLuckyColor(state) { - return state.globalConfig.theme.luckyCardColor; - }, - // 获取文字颜色 - getTextColor(state) { - return state.globalConfig.theme.textColor; - }, - // 获取卡片宽高 - getCardSize(state) { - return { - width: state.globalConfig.theme.cardWidth, - height: state.globalConfig.theme.cardHeight - } - }, - // 获取文字大小 - getTextSize(state) { - return state.globalConfig.theme.textSize; - }, - // 获取图案颜色 - getPatterColor(state) { - return state.globalConfig.theme.patternColor; - }, - // 获取图案列表 - getPatternList(state) { - return state.globalConfig.theme.patternList; - }, - // 获取音乐列表 - getMusicList(state) { - return state.globalConfig.musicList; - }, - // 获取当前音乐 - getCurrentMusic(state) { - return state.currentMusic; - }, - // 获取图片列表 - getImageList(state) { - return state.globalConfig.imageList; - }, - // 获取是否显示奖品列表 - getIsShowPrizeList(state) { - return state.globalConfig.isSHowPrizeList; - }, - // 获取当前语言 - getLanguage(state) { - return state.globalConfig.language; + // 获取标题 + getTopTitle(state) { + return state.globalConfig.topTitle + }, + // 获取行数 + getRowCount(state) { + return state.globalConfig.rowCount + }, + // 获取主题 + getTheme(state) { + return state.globalConfig.theme + }, + // 获取卡片颜色 + getCardColor(state) { + return state.globalConfig.theme.cardColor + }, + // 获取中奖颜色 + getLuckyColor(state) { + return state.globalConfig.theme.luckyCardColor + }, + // 获取文字颜色 + getTextColor(state) { + return state.globalConfig.theme.textColor + }, + // 获取卡片宽高 + getCardSize(state) { + return { + width: state.globalConfig.theme.cardWidth, + height: state.globalConfig.theme.cardHeight, + } + }, + // 获取文字大小 + getTextSize(state) { + return state.globalConfig.theme.textSize + }, + // 获取图案颜色 + getPatterColor(state) { + return state.globalConfig.theme.patternColor + }, + // 获取图案列表 + getPatternList(state) { + return state.globalConfig.theme.patternList + }, + // 获取音乐列表 + getMusicList(state) { + return state.globalConfig.musicList + }, + // 获取当前音乐 + getCurrentMusic(state) { + return state.currentMusic + }, + // 获取图片列表 + getImageList(state) { + return state.globalConfig.imageList + }, + // 获取是否显示奖品列表 + getIsShowPrizeList(state) { + return state.globalConfig.isSHowPrizeList + }, + // 获取当前语言 + getLanguage(state) { + return state.globalConfig.language + }, + }, + actions: { + // 设置rowCount + setRowCount(rowCount: number) { + this.globalConfig.rowCount = rowCount + }, + // 设置标题 + setTopTitle(topTitle: string) { + this.globalConfig.topTitle = topTitle + }, + // 设置主题 + setTheme(theme: any) { + const { name, detail } = theme + this.globalConfig.theme.name = name + this.globalConfig.theme.detail = detail + }, + // 设置卡片颜色 + setCardColor(cardColor: string) { + this.globalConfig.theme.cardColor = cardColor + }, + // 设置中奖颜色 + setLuckyCardColor(luckyCardColor: string) { + this.globalConfig.theme.luckyCardColor = luckyCardColor + }, + // 设置文字颜色 + setTextColor(textColor: string) { + this.globalConfig.theme.textColor = textColor + }, + // 设置卡片宽高 + setCardSize(cardSize: { width: number, height: number }) { + this.globalConfig.theme.cardWidth = cardSize.width + this.globalConfig.theme.cardHeight = cardSize.height + }, + // 设置文字大小 + setTextSize(textSize: number) { + this.globalConfig.theme.textSize = textSize + }, + // 设置图案颜色 + setPatterColor(patterColor: string) { + this.globalConfig.theme.patternColor = patterColor + }, + // 设置图案列表 + setPatternList(patternList: number[]) { + this.globalConfig.theme.patternList = patternList + }, + // 重置图案列表 + resetPatternList() { + this.globalConfig.theme.patternList = defaultPatternList + }, + // 添加音乐 + addMusic(music: IMusic) { + // 验证音乐是否已存在,看name字段 + for (let i = 0; i < this.globalConfig.musicList.length; i++) { + if (this.globalConfig.musicList[i].name === music.name) { + return } + } + this.globalConfig.musicList.push(music) }, - actions: { - // 设置rowCount - setRowCount(rowCount: number) { - this.globalConfig.rowCount = rowCount; - }, - // 设置标题 - setTopTitle(topTitle: string) { - this.globalConfig.topTitle = topTitle; - }, - // 设置主题 - setTheme(theme: any) { - const { name, detail } = theme; - this.globalConfig.theme.name = name; - this.globalConfig.theme.detail = detail; - }, - // 设置卡片颜色 - setCardColor(cardColor: string) { - this.globalConfig.theme.cardColor = cardColor; - }, - // 设置中奖颜色 - setLuckyCardColor(luckyCardColor: string) { - this.globalConfig.theme.luckyCardColor = luckyCardColor; - }, - // 设置文字颜色 - setTextColor(textColor: string) { - this.globalConfig.theme.textColor = textColor; - }, - // 设置卡片宽高 - setCardSize(cardSize: { width: number, height: number }) { - this.globalConfig.theme.cardWidth = cardSize.width; - this.globalConfig.theme.cardHeight = cardSize.height; - }, - // 设置文字大小 - setTextSize(textSize: number) { - this.globalConfig.theme.textSize = textSize; - }, - // 设置图案颜色 - setPatterColor(patterColor: string) { - this.globalConfig.theme.patternColor = patterColor; - }, - // 设置图案列表 - setPatternList(patternList: number[]) { - this.globalConfig.theme.patternList = patternList; - }, - // 重置图案列表 - resetPatternList() { - this.globalConfig.theme.patternList = defaultPatternList; - }, - // 添加音乐 - addMusic(music: IMusic) { - // 验证音乐是否已存在,看name字段 - for (let i = 0; i < this.globalConfig.musicList.length; i++) { - if (this.globalConfig.musicList[i].name === music.name) { - return; - } - } - this.globalConfig.musicList.push(music); - }, - // 删除音乐 - removeMusic(musicId: string) { - for (let i = 0; i < this.globalConfig.musicList.length; i++) { - if (this.globalConfig.musicList[i].id === musicId) { - this.globalConfig.musicList.splice(i, 1); - break; - } - } - }, - // 设置当前播放音乐 - setCurrentMusic(musicItem: IMusic, paused: boolean = true) { - this.currentMusic = { - item: musicItem, - paused: paused, - } - }, - // 重置音乐列表 - resetMusicList() { - this.globalConfig.musicList = defaultMusicList as IMusic[]; - }, - // 清空音乐列表 - clearMusicList() { - this.globalConfig.musicList = [] as IMusic[]; - }, - // 添加图片 - addImage(image: IImage) { - for (let i = 0; i < this.globalConfig.imageList.length; i++) { - if (this.globalConfig.imageList[i].name === image.name) { - return; - } - } - this.globalConfig.imageList.push(image); - }, - // 删除图片 - removeImage(imageId: string) { - for (let i = 0; i < this.globalConfig.imageList.length; i++) { - if (this.globalConfig.imageList[i].id === imageId) { - this.globalConfig.imageList.splice(i, 1); - break; - } - } - }, - // 重置图片列表 - resetImageList() { - this.globalConfig.imageList = defaultImageList as IImage[]; - }, - // 清空图片列表 - clearImageList() { - this.globalConfig.imageList = [] as IImage[] - }, - // 设置是否显示奖品列表 - setIsShowPrizeList(isShowPrizeList: boolean) { - this.globalConfig.isSHowPrizeList = isShowPrizeList; - }, - // 设置 - setLanguage(language: string) { - this.globalConfig.language = language; - i18n.global.locale.value=language - }, - // 重置所有配置 - reset() { - this.globalConfig = { - rowCount: 17, - isSHowPrizeList: true, - topTitle: i18n.global.t('data.defaultTitle'), - language: browserLanguage, - theme: { - name: 'dracula', - detail: { primary: '#0f5fd3' }, - cardColor: '#ff79c6', - cardWidth: 140, - cardHeight: 200, - textColor: '#ffffff', - luckyCardColor: '#ECB1AC', - textSize: 30, - patternColor: '#1b66c9', - patternList: defaultPatternList as number[], - }, - musicList: defaultMusicList as IMusic[], - imageList: defaultImageList as IImage[], - }, - this.currentMusic = { - item: defaultMusicList[0], - paused: true, - } + // 删除音乐 + removeMusic(musicId: string) { + for (let i = 0; i < this.globalConfig.musicList.length; i++) { + if (this.globalConfig.musicList[i].id === musicId) { + this.globalConfig.musicList.splice(i, 1) + break } + } }, - persist: { - enabled: true, - strategies: [ - { - // 如果要存储在localStorage中 - storage: localStorage, - key: 'globalConfig', - paths: ['globalConfig'], - }, - ], + // 设置当前播放音乐 + setCurrentMusic(musicItem: IMusic, paused: boolean = true) { + this.currentMusic = { + item: musicItem, + paused, + } }, + // 重置音乐列表 + resetMusicList() { + this.globalConfig.musicList = defaultMusicList as IMusic[] + }, + // 清空音乐列表 + clearMusicList() { + this.globalConfig.musicList = [] as IMusic[] + }, + // 添加图片 + addImage(image: IImage) { + for (let i = 0; i < this.globalConfig.imageList.length; i++) { + if (this.globalConfig.imageList[i].name === image.name) { + return + } + } + this.globalConfig.imageList.push(image) + }, + // 删除图片 + removeImage(imageId: string) { + for (let i = 0; i < this.globalConfig.imageList.length; i++) { + if (this.globalConfig.imageList[i].id === imageId) { + this.globalConfig.imageList.splice(i, 1) + break + } + } + }, + // 重置图片列表 + resetImageList() { + this.globalConfig.imageList = defaultImageList as IImage[] + }, + // 清空图片列表 + clearImageList() { + this.globalConfig.imageList = [] as IImage[] + }, + // 设置是否显示奖品列表 + setIsShowPrizeList(isShowPrizeList: boolean) { + this.globalConfig.isSHowPrizeList = isShowPrizeList + }, + // 设置 + setLanguage(language: string) { + this.globalConfig.language = language + i18n.global.locale.value = language + }, + // 重置所有配置 + reset() { + this.globalConfig = { + rowCount: 17, + isSHowPrizeList: true, + topTitle: i18n.global.t('data.defaultTitle'), + language: browserLanguage, + theme: { + name: 'dracula', + detail: { primary: '#0f5fd3' }, + cardColor: '#ff79c6', + cardWidth: 140, + cardHeight: 200, + textColor: '#ffffff', + luckyCardColor: '#ECB1AC', + textSize: 30, + patternColor: '#1b66c9', + patternList: defaultPatternList as number[], + }, + musicList: defaultMusicList as IMusic[], + imageList: defaultImageList as IImage[], + } + this.currentMusic = { + item: defaultMusicList[0], + paused: true, + } + }, + }, + persist: { + enabled: true, + strategies: [ + { + // 如果要存储在localStorage中 + storage: localStorage, + key: 'globalConfig', + paths: ['globalConfig'], + }, + ], + }, }) diff --git a/src/store/index.ts b/src/store/index.ts index 532b46d..5c4d226 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -1,12 +1,13 @@ -import {usePersonConfig} from './personConfig'; -import { usePrizeConfig } from './prizeConfig'; -import {useGlobalConfig} from './globalConfig'; -import {useSystem} from './system'; +import { useGlobalConfig } from './globalConfig' +import { usePersonConfig } from './personConfig' +import { usePrizeConfig } from './prizeConfig' +import { useSystem } from './system' + export default function useStore() { return { - personConfig:usePersonConfig(), - prizeConfig:usePrizeConfig(), - globalConfig:useGlobalConfig(), - system:useSystem(), - }; + personConfig: usePersonConfig(), + prizeConfig: usePrizeConfig(), + globalConfig: useGlobalConfig(), + system: useSystem(), + } } diff --git a/src/store/personConfig.ts b/src/store/personConfig.ts index 7029d2f..06df7d1 100644 --- a/src/store/personConfig.ts +++ b/src/store/personConfig.ts @@ -1,158 +1,159 @@ -import { defineStore } from 'pinia'; -import { IPersonConfig } from '@/types/storeType'; -import { IPrizeConfig } from '@/types/storeType'; -import { defaultPersonList } from './data' -import { usePrizeConfig } from './prizeConfig'; +import type { IPersonConfig, IPrizeConfig } from '@/types/storeType' + import dayjs from 'dayjs' +import { defineStore } from 'pinia' +import { defaultPersonList } from './data' +import { usePrizeConfig } from './prizeConfig' + export const usePersonConfig = defineStore('person', { - state() { - return { - personConfig: { - allPersonList: [] as IPersonConfig[], - alreadyPersonList: [] as IPersonConfig[], - } - }; + state() { + return { + personConfig: { + allPersonList: [] as IPersonConfig[], + alreadyPersonList: [] as IPersonConfig[], + }, + } + }, + getters: { + // 获取全部配置 + getPersonConfig(state) { + return state.personConfig }, - getters: { - // 获取全部配置 - getPersonConfig(state) { - return state.personConfig; - }, - // 获取全部人员名单 - getAllPersonList(state) { - return state.personConfig.allPersonList.filter((item: IPersonConfig) => { - return item - }); - }, - // 获取未获此奖的人员名单 - getNotThisPrizePersonList(state: any) { - const currentPrize = usePrizeConfig().prizeConfig.currentPrize; - const data = state.personConfig.allPersonList.filter((item: IPersonConfig) => { - return !item.prizeId.includes(currentPrize.id as string); - }); - - return data - }, - // 获取已中奖人员名单 - getAlreadyPersonList(state) { - return state.personConfig.allPersonList.filter((item: IPersonConfig) => { - return item.isWin === true; - }); - }, - // 获取中奖人员详情 - getAlreadyPersonDetail(state) { - return state.personConfig.alreadyPersonList - }, - // 获取未中奖人员名单 - getNotPersonList(state) { - return state.personConfig.allPersonList.filter((item: IPersonConfig) => { - return item.isWin === false; - }); - }, + // 获取全部人员名单 + getAllPersonList(state) { + return state.personConfig.allPersonList.filter((item: IPersonConfig) => { + return item + }) }, - actions: { - // 添加未中奖人员 - addNotPersonList(personList: IPersonConfig[]) { - if (personList.length <= 0) { - return - } - personList.forEach((item: IPersonConfig) => { - this.personConfig.allPersonList.push(item); - }); - }, - // 添加已中奖人员 - addAlreadyPersonList(personList: IPersonConfig[], prize: IPrizeConfig | null) { - if (personList.length <= 0) { - return - } - personList.forEach((person: IPersonConfig) => { - this.personConfig.allPersonList.map((item: IPersonConfig) => { - if (item.id === person.id && prize != null) { - item.isWin = true - // person.isWin = true - item.prizeName.push(prize.name) - // person.prizeName += prize.name - item.prizeTime.push(dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')) - // person.prizeTime = new Date().toString() - item.prizeId.push(prize.id as string) - } + // 获取未获此奖的人员名单 + getNotThisPrizePersonList(state: any) { + const currentPrize = usePrizeConfig().prizeConfig.currentPrize + const data = state.personConfig.allPersonList.filter((item: IPersonConfig) => { + return !item.prizeId.includes(currentPrize.id as string) + }) - return item - }); - this.personConfig.alreadyPersonList.push(person); - }); - }, - // 从已中奖移动到未中奖 - moveAlreadyToNot(person: IPersonConfig) { - if (person.id == undefined || person.id == null) { - return - } - const alreadyPersonListLength = this.personConfig.alreadyPersonList.length - for (let i = 0; i < this.personConfig.allPersonList.length; i++) { - if (person.id === this.personConfig.allPersonList[i].id) { - this.personConfig.allPersonList[i].isWin = false - this.personConfig.allPersonList[i].prizeName = [] - this.personConfig.allPersonList[i].prizeTime = [] - this.personConfig.allPersonList[i].prizeId = [] - - break - } - } - for (let i = 0; i < alreadyPersonListLength; i++) { - this.personConfig.alreadyPersonList = this.personConfig.alreadyPersonList.filter((item: IPersonConfig) => - item.id !== person.id - ) - } - }, - // 删除指定人员 - deletePerson(person: IPersonConfig) { - if (person.id != undefined || person.id != null) { - this.personConfig.allPersonList = this.personConfig.allPersonList.filter((item: IPersonConfig) => item.id !== person.id); - this.personConfig.alreadyPersonList = this.personConfig.alreadyPersonList.filter((item: IPersonConfig) => item.id !== person.id); - } - }, - // 删除所有人员 - deleteAllPerson() { - this.personConfig.allPersonList = []; - this.personConfig.alreadyPersonList = []; - }, - - // 删除所有人员 - resetPerson() { - this.personConfig.allPersonList = []; - this.personConfig.alreadyPersonList = []; - }, - // 重置已中奖人员 - resetAlreadyPerson() { - // 把已中奖人员合并到未中奖人员,要验证是否已存在 - this.personConfig.allPersonList.forEach((item: IPersonConfig) => { - item.isWin = false; - item.prizeName = []; - item.prizeTime = []; - item.prizeId = [] - }); - this.personConfig.alreadyPersonList = []; - }, - setDefaultPersonList() { - this.personConfig.allPersonList = defaultPersonList; - this.personConfig.alreadyPersonList = []; - }, - // 重置所有配置 - reset() { - this.personConfig = { - allPersonList: [] as IPersonConfig[], - alreadyPersonList: [] as IPersonConfig[], - } - }, + return data }, - persist: { - enabled: true, - strategies: [ - { - // 如果要存储在localStorage中 - storage: localStorage, - key: 'personConfig', - }, - ], + // 获取已中奖人员名单 + getAlreadyPersonList(state) { + return state.personConfig.allPersonList.filter((item: IPersonConfig) => { + return item.isWin === true + }) }, -}); + // 获取中奖人员详情 + getAlreadyPersonDetail(state) { + return state.personConfig.alreadyPersonList + }, + // 获取未中奖人员名单 + getNotPersonList(state) { + return state.personConfig.allPersonList.filter((item: IPersonConfig) => { + return item.isWin === false + }) + }, + }, + actions: { + // 添加未中奖人员 + addNotPersonList(personList: IPersonConfig[]) { + if (personList.length <= 0) { + return + } + personList.forEach((item: IPersonConfig) => { + this.personConfig.allPersonList.push(item) + }) + }, + // 添加已中奖人员 + addAlreadyPersonList(personList: IPersonConfig[], prize: IPrizeConfig | null) { + if (personList.length <= 0) { + return + } + personList.forEach((person: IPersonConfig) => { + this.personConfig.allPersonList.map((item: IPersonConfig) => { + if (item.id === person.id && prize != null) { + item.isWin = true + // person.isWin = true + item.prizeName.push(prize.name) + // person.prizeName += prize.name + item.prizeTime.push(dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')) + // person.prizeTime = new Date().toString() + item.prizeId.push(prize.id as string) + } + + return item + }) + this.personConfig.alreadyPersonList.push(person) + }) + }, + // 从已中奖移动到未中奖 + moveAlreadyToNot(person: IPersonConfig) { + if (person.id === undefined || person.id == null) { + return + } + const alreadyPersonListLength = this.personConfig.alreadyPersonList.length + for (let i = 0; i < this.personConfig.allPersonList.length; i++) { + if (person.id === this.personConfig.allPersonList[i].id) { + this.personConfig.allPersonList[i].isWin = false + this.personConfig.allPersonList[i].prizeName = [] + this.personConfig.allPersonList[i].prizeTime = [] + this.personConfig.allPersonList[i].prizeId = [] + + break + } + } + for (let i = 0; i < alreadyPersonListLength; i++) { + this.personConfig.alreadyPersonList = this.personConfig.alreadyPersonList.filter((item: IPersonConfig) => + item.id !== person.id, + ) + } + }, + // 删除指定人员 + deletePerson(person: IPersonConfig) { + if (person.id !== undefined || person.id != null) { + this.personConfig.allPersonList = this.personConfig.allPersonList.filter((item: IPersonConfig) => item.id !== person.id) + this.personConfig.alreadyPersonList = this.personConfig.alreadyPersonList.filter((item: IPersonConfig) => item.id !== person.id) + } + }, + // 删除所有人员 + deleteAllPerson() { + this.personConfig.allPersonList = [] + this.personConfig.alreadyPersonList = [] + }, + + // 删除所有人员 + resetPerson() { + this.personConfig.allPersonList = [] + this.personConfig.alreadyPersonList = [] + }, + // 重置已中奖人员 + resetAlreadyPerson() { + // 把已中奖人员合并到未中奖人员,要验证是否已存在 + this.personConfig.allPersonList.forEach((item: IPersonConfig) => { + item.isWin = false + item.prizeName = [] + item.prizeTime = [] + item.prizeId = [] + }) + this.personConfig.alreadyPersonList = [] + }, + setDefaultPersonList() { + this.personConfig.allPersonList = defaultPersonList + this.personConfig.alreadyPersonList = [] + }, + // 重置所有配置 + reset() { + this.personConfig = { + allPersonList: [] as IPersonConfig[], + alreadyPersonList: [] as IPersonConfig[], + } + }, + }, + persist: { + enabled: true, + strategies: [ + { + // 如果要存储在localStorage中 + storage: localStorage, + key: 'personConfig', + }, + ], + }, +}) diff --git a/src/store/prizeConfig.ts b/src/store/prizeConfig.ts index f434a55..0732894 100644 --- a/src/store/prizeConfig.ts +++ b/src/store/prizeConfig.ts @@ -1,176 +1,177 @@ -import { defineStore } from 'pinia'; -import { IPrizeConfig } from '@/types/storeType'; -import { defaultPrizeList, defaultCurrentPrize } from './data'; +import type { IPrizeConfig } from '@/types/storeType' +import { defineStore } from 'pinia' +import { defaultCurrentPrize, defaultPrizeList } from './data' + export const usePrizeConfig = defineStore('prize', { - state() { - return { - prizeConfig: { - prizeList: defaultPrizeList, - currentPrize: defaultCurrentPrize, - temporaryPrize: { - id: '', - name: '', - sort: 0, - isAll: false, - count: 1, - isUsedCount: 0, - picture: { - id: '-1', - name: '', - url: '' - }, - separateCount: { - enable: true, - countList: [] - }, - desc: '', - isShow: false, - isUsed: false, - frequency: 1, - } as IPrizeConfig - } - }; + state() { + return { + prizeConfig: { + prizeList: defaultPrizeList, + currentPrize: defaultCurrentPrize, + temporaryPrize: { + id: '', + name: '', + sort: 0, + isAll: false, + count: 1, + isUsedCount: 0, + picture: { + id: '-1', + name: '', + url: '', + }, + separateCount: { + enable: true, + countList: [], + }, + desc: '', + isShow: false, + isUsed: false, + frequency: 1, + } as IPrizeConfig, + }, + } + }, + getters: { + // 获取全部配置 + getPrizeConfigAll(state) { + return state.prizeConfig }, - getters: { - // 获取全部配置 - getPrizeConfigAll(state) { - return state.prizeConfig; - }, - // 获取奖品列表 - getPrizeConfig(state) { - return state.prizeConfig.prizeList; - }, - // 根据id获取配置 - getPrizeConfigById(state) { - return (id: number | string) => { - return state.prizeConfig.prizeList.find(item => item.id === id); - } - }, - // 获取当前奖项 - getCurrentPrize(state) { - return state.prizeConfig.currentPrize; - }, - // 获取临时的奖项 - getTemporaryPrize(state) { - return state.prizeConfig.temporaryPrize; - }, - + // 获取奖品列表 + getPrizeConfig(state) { + return state.prizeConfig.prizeList + }, + // 根据id获取配置 + getPrizeConfigById(state) { + return (id: number | string) => { + return state.prizeConfig.prizeList.find(item => item.id === id) + } + }, + // 获取当前奖项 + getCurrentPrize(state) { + return state.prizeConfig.currentPrize + }, + // 获取临时的奖项 + getTemporaryPrize(state) { + return state.prizeConfig.temporaryPrize }, - actions: { - // 设置奖项 - setPrizeConfig(prizeList: IPrizeConfig[]) { - this.prizeConfig.prizeList = prizeList; - }, - // 添加奖项 - addPrizeConfig(prizeConfigItem: IPrizeConfig) { - this.prizeConfig.prizeList.push(prizeConfigItem); - }, - // 删除奖项 - deletePrizeConfig(prizeConfigItemId: number | string) { - this.prizeConfig.prizeList = this.prizeConfig.prizeList.filter(item => item.id !== prizeConfigItemId); - }, - // 更新奖项数据 - updatePrizeConfig(prizeConfigItem: IPrizeConfig) { - const prizeListLength = this.prizeConfig.prizeList.length; - if (prizeConfigItem.isUsed && prizeListLength) { - for (let i = 0; i < prizeListLength; i++) { - if (!this.prizeConfig.prizeList[i].isUsed) { - this.setCurrentPrize(this.prizeConfig.prizeList[i]); - break; - } - } - } - else { - return - } - this.resetTemporaryPrize() - }, - // 删除全部奖项 - deleteAllPrizeConfig() { - this.prizeConfig.prizeList = [] as IPrizeConfig[]; - }, - // 设置当前奖项 - setCurrentPrize(prizeConfigItem: IPrizeConfig) { - this.prizeConfig.currentPrize = prizeConfigItem - }, - // 设置临时奖项 - setTemporaryPrize(prizeItem: IPrizeConfig) { - if (prizeItem.isShow == false) { - for (let i = 0; i < this.prizeConfig.prizeList.length; i++) { - if (this.prizeConfig.prizeList[i].isUsed == false) { - this.setCurrentPrize(this.prizeConfig.prizeList[i]); - break - } - } - this.resetTemporaryPrize() - - return - } - - this.prizeConfig.temporaryPrize = prizeItem - }, - // 重置临时奖项 - resetTemporaryPrize() { - this.prizeConfig.temporaryPrize = { - id: '', - name: '', - sort: 0, - isAll: false, - count: 1, - isUsedCount: 0, - picture: { - id: '-1', - name: '', - url: '' - }, - separateCount: { - enable: true, - countList: [] - }, - desc: '', - isShow: false, - isUsed: false, - frequency: 1, - } as IPrizeConfig; - }, - // 重置所有配置 - resetDefault() { - this.prizeConfig = { - prizeList: defaultPrizeList, - currentPrize: defaultCurrentPrize, - temporaryPrize: { - id: '', - name: '', - sort: 0, - isAll: false, - count: 1, - isUsedCount: 0, - picture: { - id: '-1', - name: '', - url: '' - }, - separateCount: { - enable: true, - countList: [] - }, - desc: '', - isShow: false, - isUsed: false, - frequency: 1, - } as IPrizeConfig - } + }, + actions: { + // 设置奖项 + setPrizeConfig(prizeList: IPrizeConfig[]) { + this.prizeConfig.prizeList = prizeList + }, + // 添加奖项 + addPrizeConfig(prizeConfigItem: IPrizeConfig) { + this.prizeConfig.prizeList.push(prizeConfigItem) + }, + // 删除奖项 + deletePrizeConfig(prizeConfigItemId: number | string) { + this.prizeConfig.prizeList = this.prizeConfig.prizeList.filter(item => item.id !== prizeConfigItemId) + }, + // 更新奖项数据 + updatePrizeConfig(prizeConfigItem: IPrizeConfig) { + const prizeListLength = this.prizeConfig.prizeList.length + if (prizeConfigItem.isUsed && prizeListLength) { + for (let i = 0; i < prizeListLength; i++) { + if (!this.prizeConfig.prizeList[i].isUsed) { + this.setCurrentPrize(this.prizeConfig.prizeList[i]) + break + } } + } + else { + return + } + this.resetTemporaryPrize() }, - persist: { - enabled: true, - strategies: [ - { - // 如果要存储在localStorage中 - storage: localStorage, - key: 'prizeConfig', - }, - ], + // 删除全部奖项 + deleteAllPrizeConfig() { + this.prizeConfig.prizeList = [] as IPrizeConfig[] }, -}); + // 设置当前奖项 + setCurrentPrize(prizeConfigItem: IPrizeConfig) { + this.prizeConfig.currentPrize = prizeConfigItem + }, + // 设置临时奖项 + setTemporaryPrize(prizeItem: IPrizeConfig) { + if (prizeItem.isShow === false) { + for (let i = 0; i < this.prizeConfig.prizeList.length; i++) { + if (this.prizeConfig.prizeList[i].isUsed === false) { + this.setCurrentPrize(this.prizeConfig.prizeList[i]) + + break + } + } + this.resetTemporaryPrize() + + return + } + + this.prizeConfig.temporaryPrize = prizeItem + }, + // 重置临时奖项 + resetTemporaryPrize() { + this.prizeConfig.temporaryPrize = { + id: '', + name: '', + sort: 0, + isAll: false, + count: 1, + isUsedCount: 0, + picture: { + id: '-1', + name: '', + url: '', + }, + separateCount: { + enable: true, + countList: [], + }, + desc: '', + isShow: false, + isUsed: false, + frequency: 1, + } as IPrizeConfig + }, + // 重置所有配置 + resetDefault() { + this.prizeConfig = { + prizeList: defaultPrizeList, + currentPrize: defaultCurrentPrize, + temporaryPrize: { + id: '', + name: '', + sort: 0, + isAll: false, + count: 1, + isUsedCount: 0, + picture: { + id: '-1', + name: '', + url: '', + }, + separateCount: { + enable: true, + countList: [], + }, + desc: '', + isShow: false, + isUsed: false, + frequency: 1, + } as IPrizeConfig, + } + }, + }, + persist: { + enabled: true, + strategies: [ + { + // 如果要存储在localStorage中 + storage: localStorage, + key: 'prizeConfig', + }, + ], + }, +}) diff --git a/src/store/system.ts b/src/store/system.ts index d13ba88..771d98f 100644 --- a/src/store/system.ts +++ b/src/store/system.ts @@ -1,37 +1,37 @@ -import { defineStore } from 'pinia'; +import { defineStore } from 'pinia' // import { IPrizeConfig } from '@/types/storeType'; export const useSystem = defineStore('system', { - state() { - return { - isMobile:false, - isChrome:true - }; + state() { + return { + isMobile: false, + isChrome: true, + } + }, + getters: { + getIsMobile(state) { + return state.isMobile }, - getters: { - getIsMobile(state) { - return state.isMobile; - }, - getIsChrome(state) { - return state.isChrome; - }, + getIsChrome(state) { + return state.isChrome }, - actions: { - setIsMobile(isMobile: boolean) { - this.isMobile = isMobile; - }, - setIsChrome(isChrome: boolean) { - this.isChrome = isChrome; - }, + }, + actions: { + setIsMobile(isMobile: boolean) { + this.isMobile = isMobile }, - persist: { - enabled: true, - strategies: [ - { - // 如果要存储在localStorage中 - // storage: localStorage, - // key: 'globalConfig', - // paths: ['globalConfig'], - }, - ], + setIsChrome(isChrome: boolean) { + this.isChrome = isChrome }, + }, + persist: { + enabled: true, + strategies: [ + { + // 如果要存储在localStorage中 + // storage: localStorage, + // key: 'globalConfig', + // paths: ['globalConfig'], + }, + ], + }, }) diff --git a/src/types/storeType.ts b/src/types/storeType.ts index 9ab7682..fc9e781 100644 --- a/src/types/storeType.ts +++ b/src/types/storeType.ts @@ -1,52 +1,52 @@ export interface IPersonConfig { - id: number; - uid: string; - name: string; - department: string; - identity: string; - isWin: boolean; - x: number; - y: number - createTime: string; - updateTime: string; - prizeName: string[]; - prizeId: string[]; - prizeTime: string[]; + id: number + uid: string + name: string + department: string + identity: string + isWin: boolean + x: number + y: number + createTime: string + updateTime: string + prizeName: string[] + prizeId: string[] + prizeTime: string[] } -export type Separate = { - id: string, - count: number, - isUsedCount: number, +export interface Separate { + id: string + count: number + isUsedCount: number } export interface IPrizeConfig { - id: number | string; - name: string; - sort: number; - isAll: boolean; - count: number; - isUsedCount: number, - picture: { - id: string | number, - name: string, - url: string - }; - separateCount: { - enable: boolean, - countList: Separate[], - }; - desc: string; - isShow: boolean; - isUsed: boolean, - frequency: number; + id: number | string + name: string + sort: number + isAll: boolean + count: number + isUsedCount: number + picture: { + id: string | number + name: string + url: string + } + separateCount: { + enable: boolean + countList: Separate[] + } + desc: string + isShow: boolean + isUsed: boolean + frequency: number } export interface IMusic { - id: string, - name: string, - url: string, + id: string + name: string + url: string } export interface IImage { - id: string, - name: string, - url: string, + id: string + name: string + url: string } diff --git a/src/utils/auth.ts b/src/utils/auth.ts index 4162234..17034bf 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -1,3 +1,3 @@ export function getToken() { - return window.localStorage.getItem('userToken'); + return window.localStorage.getItem('userToken') } diff --git a/src/utils/color.ts b/src/utils/color.ts index 0fa9767..f8fb388 100644 --- a/src/utils/color.ts +++ b/src/utils/color.ts @@ -1,41 +1,41 @@ // 判断颜色是否rgb或者rgba export function isRgbOrRgba(color: string) { - return color.indexOf('rgb') > -1 || color.indexOf('rgba') > -1; + return color.includes('rgb') || color.includes('rgba') } // 判断是否hex形式 export function isHex(color: string) { - return color.indexOf('#') > -1; + return color.includes('#') } // 把hex颜色转成rgb数值类型 export function hexToRgba(hex: string) { - const r = parseInt(hex.slice(1, 3), 16); - const g = parseInt(hex.slice(3, 5), 16); - const b = parseInt(hex.slice(5, 7), 16); - -return {r,g,b} + const r = Number.parseInt(hex.slice(1, 3), 16) + const g = Number.parseInt(hex.slice(3, 5), 16) + const b = Number.parseInt(hex.slice(5, 7), 16) + + return { r, g, b } } // 把rgb数组转化成r g b 数值 export function rgbToRgba(rgb: string) { - const rgbArr = rgb.split('(')[1].split(')')[0].split(','); - -return {r:rgbArr[0],g:rgbArr[1],b:rgbArr[2]} + const rgbArr = rgb.split('(')[1].split(')')[0].split(',') + + return { r: rgbArr[0], g: rgbArr[1], b: rgbArr[2] } } // 组成rgb颜色添加透明度 export function rgba(color: string, opacity: number) { - opacity = opacity || 1; - let rgbaStr='' - // 判断是否是hex颜色 - if (isHex(color)) { - const {r,g,b} = hexToRgba(color); - rgbaStr = `rgba(${r},${g},${b},${opacity})` - } - else{ - const {r,g,b} = rgbToRgba(color) - rgbaStr = `rgba(${r},${g},${b},${opacity})` - } - -return rgbaStr + opacity = opacity || 1 + let rgbaStr = '' + // 判断是否是hex颜色 + if (isHex(color)) { + const { r, g, b } = hexToRgba(color) + rgbaStr = `rgba(${r},${g},${b},${opacity})` + } + else { + const { r, g, b } = rgbToRgba(color) + rgbaStr = `rgba(${r},${g},${b},${opacity})` + } + + return rgbaStr } diff --git a/src/utils/file.ts b/src/utils/file.ts index 2084926..5cc7aa5 100644 --- a/src/utils/file.ts +++ b/src/utils/file.ts @@ -1,19 +1,19 @@ -export const readFileBinary = (file: any): Promise => { - return new Promise(resolve => { - const reader = new FileReader() - reader.readAsBinaryString(file) - reader.onload = (ev: any) => { - resolve(ev.target.result) - } - }) +export function readFileBinary(file: any): Promise { + return new Promise((resolve) => { + const reader = new FileReader() + reader.readAsBinaryString(file) + reader.onload = (ev: any) => { + resolve(ev.target.result) + } + }) } -export const readFileData = (file: any): Promise<{dataUrl:string,fileName:string}> => { - return new Promise(resolve => { - const reader = new FileReader() - reader.readAsDataURL(file) - reader.onload = (ev: any) => { - resolve({dataUrl:ev.target.result,fileName:file.name}) - } - }) +export function readFileData(file: any): Promise<{ dataUrl: string, fileName: string }> { + return new Promise((resolve) => { + const reader = new FileReader() + reader.readAsDataURL(file) + reader.onload = (ev: any) => { + resolve({ dataUrl: ev.target.result, fileName: file.name }) + } + }) } diff --git a/src/utils/index.ts b/src/utils/index.ts index 2d5eca9..08e7678 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,41 +1,41 @@ -import dayjs from 'dayjs'; +import dayjs from 'dayjs' // 筛选人员数据 -export const filterData = (tableData: any[], localRowCount: number, startIndex = 0) => { - const dataLength = tableData.length - let j = 0; - for (let i = 0; i < dataLength; i++) { - if (i % localRowCount === 0) { - j++; - } - tableData[i].x = i % localRowCount + 1; - tableData[i].y = j; - tableData[i].id = i; - // 是否中奖 +export function filterData(tableData: any[], localRowCount: number) { + const dataLength = tableData.length + let j = 0 + for (let i = 0; i < dataLength; i++) { + if (i % localRowCount === 0) { + j++ } + tableData[i].x = i % localRowCount + 1 + tableData[i].y = j + tableData[i].id = i + // 是否中奖 + } - return tableData + return tableData } -export const addOtherInfo = (personList: any[]) => { - const len = personList.length; - for (let i = 0; i < len; i++) { - personList[i].id = i - personList[i].createTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'); - personList[i].updateTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'); - personList[i].prizeName = [] as string[]; - personList[i].prizeTime = [] as string[]; - personList[i].prizeId = []; - personList[i].isWin = false - } +export function addOtherInfo(personList: any[]) { + const len = personList.length + for (let i = 0; i < len; i++) { + personList[i].id = i + personList[i].createTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss') + personList[i].updateTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss') + personList[i].prizeName = [] as string[] + personList[i].prizeTime = [] as string[] + personList[i].prizeId = [] + personList[i].isWin = false + } - return personList + return personList } -export const selectCard = (cardIndexArr: number[], tableLength: number, personId: number): number => { - const cardIndex = Math.round(Math.random() * (tableLength - 1)); - if (cardIndexArr.includes(cardIndex)) { - return selectCard(cardIndexArr, tableLength, personId) - } +export function selectCard(cardIndexArr: number[], tableLength: number, personId: number): number { + const cardIndex = Math.round(Math.random() * (tableLength - 1)) + if (cardIndexArr.includes(cardIndex)) { + return selectCard(cardIndexArr, tableLength, personId) + } - return cardIndex + return cardIndex } diff --git a/src/utils/store.ts b/src/utils/store.ts index adee905..6d2efdc 100644 --- a/src/utils/store.ts +++ b/src/utils/store.ts @@ -1,11 +1,10 @@ // 提取有哪些字段 -export const extractFields = (data: any) => { - const item=data[0]; - // 排除id x y,其他都加入数组 - const keys = Object.keys(item).filter(key => key!== 'id' && key!== 'x' && key!== 'y'); - if(keys.length>0){ - // 返回数组key value - return keys.map(key => ({label:key,value:true})); - } -}; - +export function extractFields(data: any) { + const item = data[0] + // 排除id x y,其他都加入数组 + const keys = Object.keys(item).filter(key => key !== 'id' && key !== 'x' && key !== 'y') + if (keys.length > 0) { + // 返回数组key value + return keys.map(key => ({ label: key, value: true })) + } +} diff --git a/src/views/Config/Global/FaceConfig.vue b/src/views/Config/Global/FaceConfig.vue index e20336f..7db5777 100644 --- a/src/views/Config/Global/FaceConfig.vue +++ b/src/views/Config/Global/FaceConfig.vue @@ -1,27 +1,30 @@ diff --git a/src/views/Config/Global/ImageConfig.vue b/src/views/Config/Global/ImageConfig.vue index 4674e17..8e8a221 100644 --- a/src/views/Config/Global/ImageConfig.vue +++ b/src/views/Config/Global/ImageConfig.vue @@ -1,111 +1,118 @@ diff --git a/src/views/Config/Global/MusicConfig.vue b/src/views/Config/Global/MusicConfig.vue index 8084b4c..441f0b6 100644 --- a/src/views/Config/Global/MusicConfig.vue +++ b/src/views/Config/Global/MusicConfig.vue @@ -1,102 +1,113 @@ diff --git a/src/views/Config/Global/components/PatternSetting.vue b/src/views/Config/Global/components/PatternSetting.vue index 338a85a..b1a614c 100644 --- a/src/views/Config/Global/components/PatternSetting.vue +++ b/src/views/Config/Global/components/PatternSetting.vue @@ -1,45 +1,46 @@ diff --git a/src/views/Config/Person/PersonAlready.vue b/src/views/Config/Person/PersonAlready.vue index 94bf2ec..e523426 100644 --- a/src/views/Config/Person/PersonAlready.vue +++ b/src/views/Config/Person/PersonAlready.vue @@ -1,11 +1,14 @@ diff --git a/src/views/Config/Person/PersonConfig.vue b/src/views/Config/Person/PersonConfig.vue index 62b9dda..8d0241b 100644 --- a/src/views/Config/Person/PersonConfig.vue +++ b/src/views/Config/Person/PersonConfig.vue @@ -1,11 +1,9 @@ diff --git a/src/views/Config/Readme/index.vue b/src/views/Config/Readme/index.vue index 5d17a32..0265930 100644 --- a/src/views/Config/Readme/index.vue +++ b/src/views/Config/Readme/index.vue @@ -1,26 +1,27 @@ diff --git a/src/views/Demo/index.vue b/src/views/Demo/index.vue index 0b1c04e..5e05a68 100644 --- a/src/views/Demo/index.vue +++ b/src/views/Demo/index.vue @@ -2,9 +2,11 @@ +} + diff --git a/src/views/Home/index.vue b/src/views/Home/index.vue index 876423d..ee32dd0 100644 --- a/src/views/Home/index.vue +++ b/src/views/Home/index.vue @@ -1,30 +1,26 @@