diff --git a/package.json b/package.json index 29d945f6..e5c0ff10 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "dependencies": { "@mdi/font": "7.4.47", "@tauri-apps/api": "^1.5.4", + "ajv": "^8.13.0", "artplayer": "^5.1.1", "clipboard": "^2.0.11", "color-convert": "^2.0.1", @@ -80,42 +81,42 @@ "tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log#v1", "tauri-plugin-sql-api": "github:tauri-apps/tauri-plugin-sql#v1", "uuid": "^9.0.1", - "vue": "^3.4.25", + "vue": "^3.4.26", "vue-echarts": "^6.7.1", "vue-json-viewer": "^3.0.4", "vue-router": "^4.3.2", - "vuetify": "^3.5.17", + "vuetify": "^3.6.3", "wcag-color": "^1.1.1", "xml-js": "^1.6.11" }, "devDependencies": { "@eslint/eslintrc": "^3.0.2", - "@eslint/js": "^9.1.1", + "@eslint/js": "^9.2.0", "@tauri-apps/cli": "^1.5.12", "@types/color-convert": "^2.0.3", "@types/js-md5": "^0.7.2", - "@types/node": "^20.12.7", + "@types/node": "^20.12.8", "@types/uuid": "^9.0.8", - "@typescript-eslint/parser": "^7.7.1", + "@typescript-eslint/parser": "^7.8.0", "@vitejs/plugin-vue": "^5.0.4", "concurrently": "^8.2.2", - "eslint": "^9.1.1", + "eslint": "^9.2.0", "eslint-config-love": "^47.0.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsonc": "^2.15.1", - "eslint-plugin-n": "^17.3.1", + "eslint-plugin-n": "^17.4.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-vue": "^9.25.0", "eslint-plugin-yml": "^1.14.0", - "globals": "^15.0.0", + "globals": "^15.1.0", "husky": "^9.0.11", "jsonc-eslint-parser": "^2.4.0", "lint-staged": "^15.2.2", - "oxlint": "^0.3.1", + "oxlint": "^0.3.2", "prettier": "3.2.5", - "stylelint": "^16.4.0", + "stylelint": "^16.5.0", "stylelint-config-idiomatic-order": "^10.0.0", "stylelint-config-standard-vue": "^1.0.0", "stylelint-declaration-block-no-ignored-properties": "^2.8.0", @@ -123,9 +124,9 @@ "stylelint-order": "^6.0.4", "stylelint-prettier": "^5.0.0", "typescript": "^5.4.5", - "typescript-eslint": "^7.7.1", - "vite": "^5.2.10", - "vite-plugin-vue-devtools": "^7.1.2", + "typescript-eslint": "^7.8.0", + "vite": "^5.2.11", + "vite-plugin-vue-devtools": "^7.1.3", "vite-plugin-vuetify": "^2.0.3", "vue-eslint-parser": "^9.4.2", "yaml-eslint-parser": "^1.2.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86e09fc5..0fc22419 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@tauri-apps/api': specifier: ^1.5.4 version: 1.5.4 + ajv: + specifier: ^8.13.0 + version: 8.13.0 artplayer: specifier: ^5.1.1 version: 5.1.1 @@ -34,13 +37,13 @@ importers: version: 0.8.3 pinia: specifier: ^2.1.7 - version: 2.1.7(typescript@5.4.5)(vue@3.4.25(typescript@5.4.5)) + version: 2.1.7(typescript@5.4.5)(vue@3.4.26(typescript@5.4.5)) pinia-plugin-persistedstate: specifier: ^3.2.1 - version: 3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.25(typescript@5.4.5))) + version: 3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.26(typescript@5.4.5))) qrcode.vue: specifier: ^3.4.1 - version: 3.4.1(vue@3.4.25(typescript@5.4.5)) + version: 3.4.1(vue@3.4.26(typescript@5.4.5)) tauri-plugin-log-api: specifier: github:tauri-apps/tauri-plugin-log#v1 version: https://codeload.github.com/tauri-apps/tauri-plugin-log/tar.gz/752531f21f626c9f9f1716a28c4a37054c679657 @@ -51,20 +54,20 @@ importers: specifier: ^9.0.1 version: 9.0.1 vue: - specifier: ^3.4.25 - version: 3.4.25(typescript@5.4.5) + specifier: ^3.4.26 + version: 3.4.26(typescript@5.4.5) vue-echarts: specifier: ^6.7.1 - version: 6.7.1(@vue/runtime-core@3.4.24)(echarts@5.5.0)(vue@3.4.25(typescript@5.4.5)) + version: 6.7.1(@vue/runtime-core@3.4.25)(echarts@5.5.0)(vue@3.4.26(typescript@5.4.5)) vue-json-viewer: specifier: ^3.0.4 - version: 3.0.4(vue@3.4.25(typescript@5.4.5)) + version: 3.0.4(vue@3.4.26(typescript@5.4.5)) vue-router: specifier: ^4.3.2 - version: 4.3.2(vue@3.4.25(typescript@5.4.5)) + version: 4.3.2(vue@3.4.26(typescript@5.4.5)) vuetify: - specifier: ^3.5.17 - version: 3.5.17(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.25(typescript@5.4.5)) + specifier: ^3.6.3 + version: 3.6.3(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.26(typescript@5.4.5)) wcag-color: specifier: ^1.1.1 version: 1.1.1 @@ -76,8 +79,8 @@ importers: specifier: ^3.0.2 version: 3.0.2 '@eslint/js': - specifier: ^9.1.1 - version: 9.1.1 + specifier: ^9.2.0 + version: 9.2.0 '@tauri-apps/cli': specifier: ^1.5.12 version: 1.5.12 @@ -88,53 +91,53 @@ importers: specifier: ^0.7.2 version: 0.7.2 '@types/node': - specifier: ^20.12.7 - version: 20.12.7 + specifier: ^20.12.8 + version: 20.12.8 '@types/uuid': specifier: ^9.0.8 version: 9.0.8 '@typescript-eslint/parser': - specifier: ^7.7.1 - version: 7.7.1(eslint@9.1.1)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@9.2.0)(typescript@5.4.5) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5)) + version: 5.0.4(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5)) concurrently: specifier: ^8.2.2 version: 8.2.2 eslint: - specifier: ^9.1.1 - version: 9.1.1 + specifier: ^9.2.0 + version: 9.2.0 eslint-config-love: specifier: ^47.0.0 - version: 47.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1))(eslint-plugin-n@17.3.1(eslint@9.1.1))(eslint-plugin-promise@6.1.1(eslint@9.1.1))(eslint@9.1.1)(typescript@5.4.5) + version: 47.0.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0))(eslint-plugin-n@17.4.0(eslint@9.2.0))(eslint-plugin-promise@6.1.1(eslint@9.2.0))(eslint@9.2.0)(typescript@5.4.5) eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.1.1) + version: 9.1.0(eslint@9.2.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1) + version: 2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0) eslint-plugin-jsonc: specifier: ^2.15.1 - version: 2.15.1(eslint@9.1.1) + version: 2.15.1(eslint@9.2.0) eslint-plugin-n: - specifier: ^17.3.1 - version: 17.3.1(eslint@9.1.1) + specifier: ^17.4.0 + version: 17.4.0(eslint@9.2.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.2.5) eslint-plugin-promise: specifier: ^6.1.1 - version: 6.1.1(eslint@9.1.1) + version: 6.1.1(eslint@9.2.0) eslint-plugin-vue: specifier: ^9.25.0 - version: 9.25.0(eslint@9.1.1) + version: 9.25.0(eslint@9.2.0) eslint-plugin-yml: specifier: ^1.14.0 - version: 1.14.0(eslint@9.1.1) + version: 1.14.0(eslint@9.2.0) globals: - specifier: ^15.0.0 - version: 15.0.0 + specifier: ^15.1.0 + version: 15.1.0 husky: specifier: ^9.0.11 version: 9.0.11 @@ -145,50 +148,50 @@ importers: specifier: ^15.2.2 version: 15.2.2 oxlint: - specifier: ^0.3.1 - version: 0.3.1 + specifier: ^0.3.2 + version: 0.3.2 prettier: specifier: 3.2.5 version: 3.2.5 stylelint: - specifier: ^16.4.0 - version: 16.4.0(typescript@5.4.5) + specifier: ^16.5.0 + version: 16.5.0(typescript@5.4.5) stylelint-config-idiomatic-order: specifier: ^10.0.0 - version: 10.0.0(stylelint@16.4.0(typescript@5.4.5)) + version: 10.0.0(stylelint@16.5.0(typescript@5.4.5)) stylelint-config-standard-vue: specifier: ^1.0.0 - version: 1.0.0(postcss-html@1.6.0)(stylelint@16.4.0(typescript@5.4.5)) + version: 1.0.0(postcss-html@1.6.0)(stylelint@16.5.0(typescript@5.4.5)) stylelint-declaration-block-no-ignored-properties: specifier: ^2.8.0 - version: 2.8.0(stylelint@16.4.0(typescript@5.4.5)) + version: 2.8.0(stylelint@16.5.0(typescript@5.4.5)) stylelint-high-performance-animation: specifier: ^1.10.0 - version: 1.10.0(stylelint@16.4.0(typescript@5.4.5)) + version: 1.10.0(stylelint@16.5.0(typescript@5.4.5)) stylelint-order: specifier: ^6.0.4 - version: 6.0.4(stylelint@16.4.0(typescript@5.4.5)) + version: 6.0.4(stylelint@16.5.0(typescript@5.4.5)) stylelint-prettier: specifier: ^5.0.0 - version: 5.0.0(prettier@3.2.5)(stylelint@16.4.0(typescript@5.4.5)) + version: 5.0.0(prettier@3.2.5)(stylelint@16.5.0(typescript@5.4.5)) typescript: specifier: ^5.4.5 version: 5.4.5 typescript-eslint: - specifier: ^7.7.1 - version: 7.7.1(eslint@9.1.1)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@9.2.0)(typescript@5.4.5) vite: - specifier: ^5.2.10 - version: 5.2.10(@types/node@20.12.7) + specifier: ^5.2.11 + version: 5.2.11(@types/node@20.12.8) vite-plugin-vue-devtools: - specifier: ^7.1.2 - version: 7.1.2(rollup@4.14.3)(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5)) + specifier: ^7.1.3 + version: 7.1.3(rollup@4.14.3)(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5)) vite-plugin-vuetify: specifier: ^2.0.3 - version: 2.0.3(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5))(vuetify@3.5.17) + version: 2.0.3(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5))(vuetify@3.6.3) vue-eslint-parser: specifier: ^9.4.2 - version: 9.4.2(eslint@9.1.1) + version: 9.4.2(eslint@9.2.0) yaml-eslint-parser: specifier: ^1.2.2 version: 1.2.2 @@ -552,8 +555,8 @@ packages: resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.1.1': - resolution: {integrity: sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ==} + '@eslint/js@9.2.0': + resolution: {integrity: sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanwhocodes/config-array@0.13.0': @@ -604,43 +607,43 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxlint/darwin-arm64@0.3.1': - resolution: {integrity: sha512-Us0pinFVI72zMaz48BlApBzASRZAyIU0YCl3frbZ6PiMLu4oen/mvAloZMZ0X9rFCQQDBVCf2k8kkdIfUBrd1A==} + '@oxlint/darwin-arm64@0.3.2': + resolution: {integrity: sha512-V+/rpdISAg7AQ15ArGEud3QY5RF/QqSu1ISCm6CJZKKT/v0s8bYXHyVG5yDGYZ554MLuIxYKhOGlQztDoIpaaw==} cpu: [arm64] os: [darwin] - '@oxlint/darwin-x64@0.3.1': - resolution: {integrity: sha512-Na+9F7+UYrIhlTX8wblG/dl1G5BNWtpv2Lyp5Hj7ynaghkUXdCP+riT9xpmGYjUXCiMU1fbY08RQQLupgL7URA==} + '@oxlint/darwin-x64@0.3.2': + resolution: {integrity: sha512-Q4rgeEU1ZtpYhTF4iyRtUa3WGFMuWkZMw3RzFE1D9E6qx4rJuwBH0S53QKtqFy2DmFpK6csf2dfB6D78n7syXA==} cpu: [x64] os: [darwin] - '@oxlint/linux-arm64-gnu@0.3.1': - resolution: {integrity: sha512-0bsZ0RkuHbzAjj7Am5ePkGmPZjtVhFkbYXw5HkJIBAscWTAR2m3+QxjzBQhEyEbLvkJSig7PFGDwLIwW7+MptQ==} + '@oxlint/linux-arm64-gnu@0.3.2': + resolution: {integrity: sha512-mDrnHVpfuEeK69t/jt6WhPPsiTn9Q0Z+9wD2Wu6I7vppbu+ksRK/ULW+Y1WrTu7keDgvUpkS/3Xaj+1pLppmmg==} cpu: [arm64] os: [linux] - '@oxlint/linux-arm64-musl@0.3.1': - resolution: {integrity: sha512-d7thD4X15XqQqNCLOVVAq9SJF2unalLGn3oEu760AeonExvFJCJf274GIE2ODKGuLX8V/1rKGt6Kv3rpbRFQcw==} + '@oxlint/linux-arm64-musl@0.3.2': + resolution: {integrity: sha512-29FuLxci3oqCBe5Vt8afPQKg/q4jRaNjz/9PKgM6nOlcuKgg+QQkUcyOMCSAze+dPBGMMIfQK/fiydrp0DsN7w==} cpu: [arm64] os: [linux] - '@oxlint/linux-x64-gnu@0.3.1': - resolution: {integrity: sha512-5stWYdso6PaDrbENlrxdjUeyQlOjzCgScBFL+91fdFBCXZFu9diDIsHf88/efO3HQej5xZopUF0kr51GBTXVVQ==} + '@oxlint/linux-x64-gnu@0.3.2': + resolution: {integrity: sha512-rUZffyJKNDkSnmUGbzkIAQMl/K0jHUWrnxTPALE+0FDD30aXwQ4ivlrs/J8OB6tBWdPFSKgj5Uo3suRZ09uF/A==} cpu: [x64] os: [linux] - '@oxlint/linux-x64-musl@0.3.1': - resolution: {integrity: sha512-4Z0/iPUnhWFrc3kV7ADiSzx8Bq8hPQonhvtsEvgXS/2LXaS8hCXSSpTybVC+Wa9AhEF0J2/KMyFM2VhxjKJqDg==} + '@oxlint/linux-x64-musl@0.3.2': + resolution: {integrity: sha512-0y6E0Zk5agCAZS5pyQtXciuCnJUOY+eYtIPmhGR08s6xL8ObuMiwMyxrXzJ2tihPoZ018zoCl2kMbPDqvkROhA==} cpu: [x64] os: [linux] - '@oxlint/win32-arm64@0.3.1': - resolution: {integrity: sha512-wT5y+7ob9kd1TpVLSfhq5EIZEwE6N1OYV+KzL/ywEgLg/sB6tXjUoC03/MEkF10Xj+v7HKLBonnXIX3S//Pfqw==} + '@oxlint/win32-arm64@0.3.2': + resolution: {integrity: sha512-uMVAxkY6EXTRBandXwpcG1xhkshsw/wiKmr/sLSpbSswRvfGkfOmqi8d99ZpS90lNO+VN/vLQIyqWlKZTb3X6A==} cpu: [arm64] os: [win32] - '@oxlint/win32-x64@0.3.1': - resolution: {integrity: sha512-dJWU8YqYPARYTjpjQ4tuzqtpumuCCwSggxkja9N7whqGBCH1IswEyt5JQIbynI+vERxugz3iJtWk59kSHojHgg==} + '@oxlint/win32-x64@0.3.2': + resolution: {integrity: sha512-X/JB+/d/02v1V4yMahfQFlefUCX6L1Lt0zRB24s77gHY8WT225+TNHLv1pj4N5sfeYW4eMNMbY8Mm7mPhNltSw==} cpu: [x64] os: [win32] @@ -754,6 +757,12 @@ packages: cpu: [arm64] os: [darwin] + '@tauri-apps/cli-darwin-x64@1.5.12': + resolution: {integrity: sha512-hSz9cuHO4lYora0z2XRFEIblkStT3eJvh/iYmsFfjT3usGBt2fTPMJ4SnL1Uyu64Y59dqyRNBikuBuymAFESjA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@tauri-apps/cli-linux-arm-gnueabihf@1.5.12': resolution: {integrity: sha512-FanE15/c7nz64CcTFe7f+8b7+rFQCb3Ivju+4sxVSPkAOJXHc5no3Y/LxFt85SAOMgPTB2FMuxHUdjvLjd2D1w==} engines: {node: '>= 10'} @@ -825,8 +834,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@20.12.7': - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + '@types/node@20.12.8': + resolution: {integrity: sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} @@ -834,8 +843,8 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@typescript-eslint/eslint-plugin@7.7.1': - resolution: {integrity: sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==} + '@typescript-eslint/eslint-plugin@7.8.0': + resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -845,8 +854,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.7.1': - resolution: {integrity: sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==} + '@typescript-eslint/parser@7.8.0': + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -855,12 +864,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.7.1': - resolution: {integrity: sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==} + '@typescript-eslint/scope-manager@7.8.0': + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.7.1': - resolution: {integrity: sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==} + '@typescript-eslint/type-utils@7.8.0': + resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -869,12 +878,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.7.1': - resolution: {integrity: sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==} + '@typescript-eslint/types@7.8.0': + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.7.1': - resolution: {integrity: sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==} + '@typescript-eslint/typescript-estree@7.8.0': + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -882,14 +891,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.7.1': - resolution: {integrity: sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==} + '@typescript-eslint/utils@7.8.0': + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.7.1': - resolution: {integrity: sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==} + '@typescript-eslint/visitor-keys@7.8.0': + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} engines: {node: ^18.18.0 || >=20.0.0} '@vitejs/plugin-vue@5.0.4': @@ -915,70 +924,70 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.4.24': - resolution: {integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==} - '@vue/compiler-core@3.4.25': resolution: {integrity: sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==} - '@vue/compiler-dom@3.4.24': - resolution: {integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==} + '@vue/compiler-core@3.4.26': + resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==} '@vue/compiler-dom@3.4.25': resolution: {integrity: sha512-Ugz5DusW57+HjllAugLci19NsDK+VyjGvmbB2TXaTcSlQxwL++2PETHx/+Qv6qFwNLzSt7HKepPe4DcTE3pBWg==} - '@vue/compiler-sfc@3.4.24': - resolution: {integrity: sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA==} + '@vue/compiler-dom@3.4.26': + resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==} '@vue/compiler-sfc@3.4.25': resolution: {integrity: sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==} - '@vue/compiler-ssr@3.4.24': - resolution: {integrity: sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ==} + '@vue/compiler-sfc@3.4.26': + resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==} '@vue/compiler-ssr@3.4.25': resolution: {integrity: sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==} + '@vue/compiler-ssr@3.4.26': + resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==} + '@vue/devtools-api@6.6.1': resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - '@vue/devtools-core@7.1.2': - resolution: {integrity: sha512-yO2+xSnXkZPqSJAiWPigIwSdWQordROOg4nrLVA6ByJAzFowJmN6sAKysFtbhVg8Fb1e/DnI+1dJ4tp3zbvM7Q==} + '@vue/devtools-core@7.1.3': + resolution: {integrity: sha512-pVbWi8pf2Z/fZPioYOIgu+cv9pQG55k4D8bL31ec+Wfe+pQR0ImFDu0OhHfch1Ra8uvLLrAZTF4IKeGAkmzD4A==} - '@vue/devtools-kit@7.1.2': - resolution: {integrity: sha512-UTrcUSOhlI9eXqbPMHUWwA6NQiiPT3onzXsVk2JHGR8ZFFSkzsWTTpHyVA1woG8zvgu2HNV/wigW2k87p858zw==} + '@vue/devtools-kit@7.1.3': + resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-shared@7.1.2': - resolution: {integrity: sha512-r9cUf93VMhKSsxF2/cBbf6Lm1nRBx+r1pRuji5CiAf3JIPYPOjeEqJ13OuwP1fauYh1tyBFcCxt3eJPvHT59gg==} - - '@vue/reactivity@3.4.24': - resolution: {integrity: sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g==} + '@vue/devtools-shared@7.1.3': + resolution: {integrity: sha512-KJ3AfgjTn3tJz/XKF+BlVShNPecim3G21oHRue+YQOsooW+0s+qXvm09U09aO7yBza5SivL1QgxSrzAbiKWjhQ==} '@vue/reactivity@3.4.25': resolution: {integrity: sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==} - '@vue/runtime-core@3.4.24': - resolution: {integrity: sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g==} + '@vue/reactivity@3.4.26': + resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==} '@vue/runtime-core@3.4.25': resolution: {integrity: sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==} - '@vue/runtime-dom@3.4.25': - resolution: {integrity: sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==} + '@vue/runtime-core@3.4.26': + resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==} - '@vue/server-renderer@3.4.25': - resolution: {integrity: sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==} + '@vue/runtime-dom@3.4.26': + resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==} + + '@vue/server-renderer@3.4.26': + resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==} peerDependencies: - vue: 3.4.25 - - '@vue/shared@3.4.24': - resolution: {integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==} + vue: 3.4.26 '@vue/shared@3.4.25': resolution: {integrity: sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==} + '@vue/shared@3.4.26': + resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==} + '@vuetify/loader-shared@2.0.3': resolution: {integrity: sha512-Ss3GC7eJYkp2SF6xVzsT7FAruEmdihmn4OCk2+UocREerlXKWgOKKzTN5PN3ZVN5q05jHHrsNhTuWbhN61Bpdg==} peerDependencies: @@ -998,8 +1007,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} ansi-escapes@6.2.1: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} @@ -1429,8 +1438,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-n@17.3.1: - resolution: {integrity: sha512-25+HTtKe1F8U/M4ERmdzbz/xkm/gaY0OYC8Fcv1z/WvpLJ8Xfh9LzJ13JV5uj4QyCUD8kOPJrNjn/3y+tc57Vw==} + eslint-plugin-n@17.4.0: + resolution: {integrity: sha512-RtgGgNpYxECwE9dFr+D66RtbN0B8r/fY6ZF8EVsmK2YnZxE8/n9LNQhgnkL9z37UFZjYVmvMuC32qu7fQBsLVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -1483,8 +1492,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.1.1: - resolution: {integrity: sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg==} + eslint@9.2.0: + resolution: {integrity: sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -1641,8 +1650,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.0.0: - resolution: {integrity: sha512-m/C/yR4mjO6pXDTm9/R/SpYTAIyaUB4EOzcaaMEl7mds7Mshct9GfejiJNQGjHHbdMPey13Kpu4TMbYi9ex1pw==} + globals@15.1.0: + resolution: {integrity: sha512-926gJqg+4mkxwYKiFvoomM4J0kWESfk3qfTvRL2/oc/tK/eTDBbrfcKnSa2KtfdxB5onoL7D3A3qIHQFpd4+UA==} engines: {node: '>=18'} globalthis@1.0.3: @@ -2081,8 +2090,8 @@ packages: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} - oxlint@0.3.1: - resolution: {integrity: sha512-+bj07l2R2V0xNogo+Wr9+IsdlkBa2i7brOioOyzV6I8kwMBEEuJmt7oOmZYs/HZVAOQI19x7aBGKqw71itaNSA==} + oxlint@0.3.2: + resolution: {integrity: sha512-HMnIV7pQvGfqTTSoI5/8TiXWS/kO4bxHVuLjEg4phoPhtnSDFQuXVaRH2xneqDri1jNNUvHou5PKr0OV6Rfrzg==} engines: {node: '>=14.*'} hasBin: true @@ -2468,8 +2477,8 @@ packages: prettier: '>=3.0.0' stylelint: '>=16.0.0' - stylelint@16.4.0: - resolution: {integrity: sha512-uSx7VMuXwLuYcNSIg+0/fFNv0WinsfLAqsVVy7h7p80clKOHiGE8pfY6UjqwylTHiJrRIahTl6a8FPxGezhWoA==} + stylelint@16.5.0: + resolution: {integrity: sha512-IlCBtVrG+qTy3v+tZTk50W8BIomjY/RUuzdrDqdnlCYwVuzXtPbiGfxYqtyYAyOMcb+195zRsuHn6tgfPmFfbw==} engines: {node: '>=18.12.0'} hasBin: true @@ -2584,8 +2593,8 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript-eslint@7.7.1: - resolution: {integrity: sha512-ykEBfa3xx3odjZy6GRED4SCPrjo0rgHwstLlEgLX4EMEuv7QeIDSmfV+S6Kk+XkbsYn4BDEcPvsci1X26lRpMQ==} + typescript-eslint@7.8.0: + resolution: {integrity: sha512-sheFG+/D8N/L7gC3WT0Q8sB97Nm573Yfr+vZFzl/4nBdYcmviBPtwGSX9TJ7wpVg28ocerKVOt+k2eGmHzcgVA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2647,8 +2656,8 @@ packages: '@nuxt/kit': optional: true - vite-plugin-vue-devtools@7.1.2: - resolution: {integrity: sha512-TQm0sLGlAI9zEG6wZSzadBqzLOJ0VVUOvgRv2uqx/O1cEfH7UHuGkkGMFaeSQfbRWzD1OnOsJHsTMaUZB6m8iQ==} + vite-plugin-vue-devtools@7.1.3: + resolution: {integrity: sha512-qv8Z4yok9RYo6TEs89WnIAlmTHby/+XTim8tlSnMs3lAPcQqqcl/wGRY8gAeYrGCANngOqO+VuabW3Jb1HZtyw==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 @@ -2666,8 +2675,8 @@ packages: vue: ^3.0.0 vuetify: ^3.0.0 - vite@5.2.10: - resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} + vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2745,16 +2754,16 @@ packages: peerDependencies: vue: ^3.2.0 - vue@3.4.25: - resolution: {integrity: sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==} + vue@3.4.26: + resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - vuetify@3.5.17: - resolution: {integrity: sha512-/Veklxxyu/l63q7QQOqJZeZukIKI2sBxY7FKMDcNup2KSGMjyjT+oYXy1DOdl7wlU3c3fKGQMFHqVWb0HDsyDw==} + vuetify@3.6.3: + resolution: {integrity: sha512-OBYYJYnNeUYA7kwrv8Rag1EBFbGWAQxJpp0s98U2KQ6SPU7MzzcrvNn7t69vcDbj7mR7Dcf9/jvFapfranXZvA==} engines: {node: ^12.20 || >=14.13} peerDependencies: typescript: '>=4.7' @@ -3158,9 +3167,9 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.1.1)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.2.0)': dependencies: - eslint: 9.1.1 + eslint: 9.2.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.10.0': {} @@ -3179,7 +3188,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.1.1': {} + '@eslint/js@9.2.0': {} '@humanwhocodes/config-array@0.13.0': dependencies: @@ -3226,28 +3235,28 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@oxlint/darwin-arm64@0.3.1': + '@oxlint/darwin-arm64@0.3.2': optional: true - '@oxlint/darwin-x64@0.3.1': + '@oxlint/darwin-x64@0.3.2': optional: true - '@oxlint/linux-arm64-gnu@0.3.1': + '@oxlint/linux-arm64-gnu@0.3.2': optional: true - '@oxlint/linux-arm64-musl@0.3.1': + '@oxlint/linux-arm64-musl@0.3.2': optional: true - '@oxlint/linux-x64-gnu@0.3.1': + '@oxlint/linux-x64-gnu@0.3.2': optional: true - '@oxlint/linux-x64-musl@0.3.1': + '@oxlint/linux-x64-musl@0.3.2': optional: true - '@oxlint/win32-arm64@0.3.1': + '@oxlint/win32-arm64@0.3.2': optional: true - '@oxlint/win32-x64@0.3.1': + '@oxlint/win32-x64@0.3.2': optional: true '@pkgr/core@0.1.1': {} @@ -3317,6 +3326,9 @@ snapshots: '@tauri-apps/cli-darwin-arm64@1.5.12': optional: true + '@tauri-apps/cli-darwin-x64@1.5.12': + optional: true + '@tauri-apps/cli-linux-arm-gnueabihf@1.5.12': optional: true @@ -3344,6 +3356,7 @@ snapshots: '@tauri-apps/cli@1.5.12': optionalDependencies: '@tauri-apps/cli-darwin-arm64': 1.5.12 + '@tauri-apps/cli-darwin-x64': 1.5.12 '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.12 '@tauri-apps/cli-linux-arm64-gnu': 1.5.12 '@tauri-apps/cli-linux-arm64-musl': 1.5.12 @@ -3367,7 +3380,7 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@20.12.7': + '@types/node@20.12.8': dependencies: undici-types: 5.26.5 @@ -3375,16 +3388,16 @@ snapshots: '@types/uuid@9.0.8': {} - '@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.7.1(eslint@9.1.1)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.7.1 - '@typescript-eslint/type-utils': 7.7.1(eslint@9.1.1)(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.1(eslint@9.1.1)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/type-utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 - eslint: 9.1.1 + eslint: 9.2.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -3395,42 +3408,42 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5)': + '@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.7.1 - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 - eslint: 9.1.1 + eslint: 9.2.0 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.7.1': + '@typescript-eslint/scope-manager@7.8.0': dependencies: - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 - '@typescript-eslint/type-utils@7.7.1(eslint@9.1.1)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.8.0(eslint@9.2.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.1(eslint@9.1.1)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5) debug: 4.3.4 - eslint: 9.1.1 + eslint: 9.2.0 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.7.1': {} + '@typescript-eslint/types@7.8.0': {} - '@typescript-eslint/typescript-estree@7.7.1(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/visitor-keys': 7.7.1 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3442,29 +3455,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.7.1(eslint@9.1.1)(typescript@5.4.5)': + '@typescript-eslint/utils@7.8.0(eslint@9.2.0)(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.7.1 - '@typescript-eslint/types': 7.7.1 - '@typescript-eslint/typescript-estree': 7.7.1(typescript@5.4.5) - eslint: 9.1.1 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + eslint: 9.2.0 semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.7.1': + '@typescript-eslint/visitor-keys@7.8.0': dependencies: - '@typescript-eslint/types': 7.7.1 + '@typescript-eslint/types': 7.8.0 eslint-visitor-keys: 3.4.3 - '@vitejs/plugin-vue@5.0.4(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5))': dependencies: - vite: 5.2.10(@types/node@20.12.7) - vue: 3.4.25(typescript@5.4.5) + vite: 5.2.11(@types/node@20.12.8) + vue: 3.4.26(typescript@5.4.5) '@vue/babel-helper-vue-transform-on@1.2.2': {} @@ -3493,15 +3506,7 @@ snapshots: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 '@babel/parser': 7.24.4 - '@vue/compiler-sfc': 3.4.24 - - '@vue/compiler-core@3.4.24': - dependencies: - '@babel/parser': 7.24.4 - '@vue/shared': 3.4.24 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 + '@vue/compiler-sfc': 3.4.25 '@vue/compiler-core@3.4.25': dependencies: @@ -3511,27 +3516,23 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.24': + '@vue/compiler-core@3.4.26': dependencies: - '@vue/compiler-core': 3.4.24 - '@vue/shared': 3.4.24 + '@babel/parser': 7.24.4 + '@vue/shared': 3.4.26 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 '@vue/compiler-dom@3.4.25': dependencies: '@vue/compiler-core': 3.4.25 '@vue/shared': 3.4.25 - '@vue/compiler-sfc@3.4.24': + '@vue/compiler-dom@3.4.26': dependencies: - '@babel/parser': 7.24.4 - '@vue/compiler-core': 3.4.24 - '@vue/compiler-dom': 3.4.24 - '@vue/compiler-ssr': 3.4.24 - '@vue/shared': 3.4.24 - estree-walker: 2.0.2 - magic-string: 0.30.10 - postcss: 8.4.38 - source-map-js: 1.2.0 + '@vue/compiler-core': 3.4.26 + '@vue/shared': 3.4.26 '@vue/compiler-sfc@3.4.25': dependencies: @@ -3545,84 +3546,96 @@ snapshots: postcss: 8.4.38 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.24': + '@vue/compiler-sfc@3.4.26': dependencies: - '@vue/compiler-dom': 3.4.24 - '@vue/shared': 3.4.24 + '@babel/parser': 7.24.4 + '@vue/compiler-core': 3.4.26 + '@vue/compiler-dom': 3.4.26 + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 '@vue/compiler-ssr@3.4.25': dependencies: '@vue/compiler-dom': 3.4.25 '@vue/shared': 3.4.25 + '@vue/compiler-ssr@3.4.26': + dependencies: + '@vue/compiler-dom': 3.4.26 + '@vue/shared': 3.4.26 + '@vue/devtools-api@6.6.1': {} - '@vue/devtools-core@7.1.2(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5))': + '@vue/devtools-core@7.1.3(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5))': dependencies: - '@vue/devtools-kit': 7.1.2(vue@3.4.25(typescript@5.4.5)) - '@vue/devtools-shared': 7.1.2 + '@vue/devtools-kit': 7.1.3(vue@3.4.26(typescript@5.4.5)) + '@vue/devtools-shared': 7.1.3 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.2.10(@types/node@20.12.7)) + vite-hot-client: 0.2.3(vite@5.2.11(@types/node@20.12.8)) transitivePeerDependencies: - vite - vue - '@vue/devtools-kit@7.1.2(vue@3.4.25(typescript@5.4.5))': + '@vue/devtools-kit@7.1.3(vue@3.4.26(typescript@5.4.5))': dependencies: - '@vue/devtools-shared': 7.1.2 + '@vue/devtools-shared': 7.1.3 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - vue: 3.4.25(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) - '@vue/devtools-shared@7.1.2': + '@vue/devtools-shared@7.1.3': dependencies: rfdc: 1.3.1 - '@vue/reactivity@3.4.24': - dependencies: - '@vue/shared': 3.4.24 - optional: true - '@vue/reactivity@3.4.25': dependencies: '@vue/shared': 3.4.25 - - '@vue/runtime-core@3.4.24': - dependencies: - '@vue/reactivity': 3.4.24 - '@vue/shared': 3.4.24 optional: true + '@vue/reactivity@3.4.26': + dependencies: + '@vue/shared': 3.4.26 + '@vue/runtime-core@3.4.25': dependencies: '@vue/reactivity': 3.4.25 '@vue/shared': 3.4.25 + optional: true - '@vue/runtime-dom@3.4.25': + '@vue/runtime-core@3.4.26': dependencies: - '@vue/runtime-core': 3.4.25 - '@vue/shared': 3.4.25 + '@vue/reactivity': 3.4.26 + '@vue/shared': 3.4.26 + + '@vue/runtime-dom@3.4.26': + dependencies: + '@vue/runtime-core': 3.4.26 + '@vue/shared': 3.4.26 csstype: 3.1.3 - '@vue/server-renderer@3.4.25(vue@3.4.25(typescript@5.4.5))': + '@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5))': dependencies: - '@vue/compiler-ssr': 3.4.25 - '@vue/shared': 3.4.25 - vue: 3.4.25(typescript@5.4.5) - - '@vue/shared@3.4.24': {} + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 + vue: 3.4.26(typescript@5.4.5) '@vue/shared@3.4.25': {} - '@vuetify/loader-shared@2.0.3(vue@3.4.25(typescript@5.4.5))(vuetify@3.5.17(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.25(typescript@5.4.5)))': + '@vue/shared@3.4.26': {} + + '@vuetify/loader-shared@2.0.3(vue@3.4.26(typescript@5.4.5))(vuetify@3.6.3(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.26(typescript@5.4.5)))': dependencies: upath: 2.0.1 - vue: 3.4.25(typescript@5.4.5) - vuetify: 3.5.17(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.25(typescript@5.4.5)) + vue: 3.4.26(typescript@5.4.5) + vuetify: 3.6.3(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.26(typescript@5.4.5)) acorn-jsx@5.3.2(acorn@8.11.3): dependencies: @@ -3637,7 +3650,7 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: + ajv@8.13.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -4080,26 +4093,26 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-compat-utils@0.5.0(eslint@9.1.1): + eslint-compat-utils@0.5.0(eslint@9.2.0): dependencies: - eslint: 9.1.1 + eslint: 9.2.0 semver: 7.6.0 - eslint-config-love@47.0.0(@typescript-eslint/eslint-plugin@7.7.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1))(eslint-plugin-n@17.3.1(eslint@9.1.1))(eslint-plugin-promise@6.1.1(eslint@9.1.1))(eslint@9.1.1)(typescript@5.4.5): + eslint-config-love@47.0.0(@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0))(eslint-plugin-n@17.4.0(eslint@9.2.0))(eslint-plugin-promise@6.1.1(eslint@9.2.0))(eslint@9.2.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/eslint-plugin': 7.7.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5) - '@typescript-eslint/parser': 7.7.1(eslint@9.1.1)(typescript@5.4.5) - eslint: 9.1.1 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1) - eslint-plugin-n: 17.3.1(eslint@9.1.1) - eslint-plugin-promise: 6.1.1(eslint@9.1.1) + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + eslint: 9.2.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0) + eslint-plugin-n: 17.4.0(eslint@9.2.0) + eslint-plugin-promise: 6.1.1(eslint@9.2.0) typescript: 5.4.5 transitivePeerDependencies: - supports-color - eslint-config-prettier@9.1.0(eslint@9.1.1): + eslint-config-prettier@9.1.0(eslint@9.2.0): dependencies: - eslint: 9.1.1 + eslint: 9.2.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -4109,24 +4122,24 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.1.1): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.2.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.7.1(eslint@9.1.1)(typescript@5.4.5) - eslint: 9.1.1 + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + eslint: 9.2.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.6.0(eslint@9.1.1): + eslint-plugin-es-x@7.6.0(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) '@eslint-community/regexpp': 4.10.0 - eslint: 9.1.1 - eslint-compat-utils: 0.5.0(eslint@9.1.1) + eslint: 9.2.0 + eslint-compat-utils: 0.5.0(eslint@9.2.0) - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -4134,9 +4147,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.1.1 + eslint: 9.2.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.1.1) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@9.2.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -4147,67 +4160,67 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.7.1(eslint@9.1.1)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsonc@2.15.1(eslint@9.1.1): + eslint-plugin-jsonc@2.15.1(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) - eslint: 9.1.1 - eslint-compat-utils: 0.5.0(eslint@9.1.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + eslint: 9.2.0 + eslint-compat-utils: 0.5.0(eslint@9.2.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-n@17.3.1(eslint@9.1.1): + eslint-plugin-n@17.4.0(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) enhanced-resolve: 5.16.0 - eslint: 9.1.1 - eslint-plugin-es-x: 7.6.0(eslint@9.1.1) + eslint: 9.2.0 + eslint-plugin-es-x: 7.6.0(eslint@9.2.0) get-tsconfig: 4.7.3 - globals: 15.0.0 + globals: 15.1.0 ignore: 5.3.1 minimatch: 9.0.4 semver: 7.6.0 - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.1.1))(eslint@9.1.1)(prettier@3.2.5): + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@9.2.0))(eslint@9.2.0)(prettier@3.2.5): dependencies: - eslint: 9.1.1 + eslint: 9.2.0 prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.1.1) + eslint-config-prettier: 9.1.0(eslint@9.2.0) - eslint-plugin-promise@6.1.1(eslint@9.1.1): + eslint-plugin-promise@6.1.1(eslint@9.2.0): dependencies: - eslint: 9.1.1 + eslint: 9.2.0 - eslint-plugin-vue@9.25.0(eslint@9.1.1): + eslint-plugin-vue@9.25.0(eslint@9.2.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) - eslint: 9.1.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) + eslint: 9.2.0 globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.16 semver: 7.6.0 - vue-eslint-parser: 9.4.2(eslint@9.1.1) + vue-eslint-parser: 9.4.2(eslint@9.2.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-yml@1.14.0(eslint@9.1.1): + eslint-plugin-yml@1.14.0(eslint@9.2.0): dependencies: debug: 4.3.4 - eslint: 9.1.1 - eslint-compat-utils: 0.5.0(eslint@9.1.1) + eslint: 9.2.0 + eslint-compat-utils: 0.5.0(eslint@9.2.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.2 @@ -4228,12 +4241,12 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.1.1: + eslint@9.2.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 3.0.2 - '@eslint/js': 9.1.1 + '@eslint/js': 9.2.0 '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.2.3 @@ -4425,7 +4438,7 @@ snapshots: globals@14.0.0: {} - globals@15.0.0: {} + globals@15.1.0: {} globalthis@1.0.3: dependencies: @@ -4835,16 +4848,16 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - oxlint@0.3.1: + oxlint@0.3.2: optionalDependencies: - '@oxlint/darwin-arm64': 0.3.1 - '@oxlint/darwin-x64': 0.3.1 - '@oxlint/linux-arm64-gnu': 0.3.1 - '@oxlint/linux-arm64-musl': 0.3.1 - '@oxlint/linux-x64-gnu': 0.3.1 - '@oxlint/linux-x64-musl': 0.3.1 - '@oxlint/win32-arm64': 0.3.1 - '@oxlint/win32-x64': 0.3.1 + '@oxlint/darwin-arm64': 0.3.2 + '@oxlint/darwin-x64': 0.3.2 + '@oxlint/linux-arm64-gnu': 0.3.2 + '@oxlint/linux-arm64-musl': 0.3.2 + '@oxlint/linux-x64-gnu': 0.3.2 + '@oxlint/linux-x64-musl': 0.3.2 + '@oxlint/win32-arm64': 0.3.2 + '@oxlint/win32-x64': 0.3.2 p-limit@3.1.0: dependencies: @@ -4885,15 +4898,15 @@ snapshots: pidtree@0.6.0: {} - pinia-plugin-persistedstate@3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.25(typescript@5.4.5))): + pinia-plugin-persistedstate@3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.26(typescript@5.4.5))): dependencies: - pinia: 2.1.7(typescript@5.4.5)(vue@3.4.25(typescript@5.4.5)) + pinia: 2.1.7(typescript@5.4.5)(vue@3.4.26(typescript@5.4.5)) - pinia@2.1.7(typescript@5.4.5)(vue@3.4.25(typescript@5.4.5)): + pinia@2.1.7(typescript@5.4.5)(vue@3.4.26(typescript@5.4.5)): dependencies: '@vue/devtools-api': 6.6.1 - vue: 3.4.25(typescript@5.4.5) - vue-demi: 0.14.7(vue@3.4.25(typescript@5.4.5)) + vue: 3.4.26(typescript@5.4.5) + vue-demi: 0.14.7(vue@3.4.26(typescript@5.4.5)) optionalDependencies: typescript: 5.4.5 @@ -4943,9 +4956,9 @@ snapshots: punycode@2.3.1: {} - qrcode.vue@3.4.1(vue@3.4.25(typescript@5.4.5)): + qrcode.vue@3.4.1(vue@3.4.26(typescript@5.4.5)): dependencies: - vue: 3.4.25(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) queue-microtask@1.2.3: {} @@ -5152,63 +5165,63 @@ snapshots: strip-json-comments@3.1.1: {} - stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.4.0(typescript@5.4.5)): + stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss-html: 1.6.0 - stylelint: 16.4.0(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-config-idiomatic-order@10.0.0(stylelint@16.4.0(typescript@5.4.5)): + stylelint-config-idiomatic-order@10.0.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: - stylelint: 16.4.0(typescript@5.4.5) - stylelint-order: 6.0.4(stylelint@16.4.0(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-order: 6.0.4(stylelint@16.5.0(typescript@5.4.5)) - stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.4.0(typescript@5.4.5)): + stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss-html: 1.6.0 semver: 7.6.0 - stylelint: 16.4.0(typescript@5.4.5) - stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.4.0(typescript@5.4.5)) - stylelint-config-recommended: 14.0.0(stylelint@16.4.0(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.5.0(typescript@5.4.5)) + stylelint-config-recommended: 14.0.0(stylelint@16.5.0(typescript@5.4.5)) - stylelint-config-recommended@14.0.0(stylelint@16.4.0(typescript@5.4.5)): + stylelint-config-recommended@14.0.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: - stylelint: 16.4.0(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-config-standard-vue@1.0.0(postcss-html@1.6.0)(stylelint@16.4.0(typescript@5.4.5)): + stylelint-config-standard-vue@1.0.0(postcss-html@1.6.0)(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss-html: 1.6.0 - stylelint: 16.4.0(typescript@5.4.5) - stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.4.0(typescript@5.4.5)) - stylelint-config-recommended-vue: 1.5.0(postcss-html@1.6.0)(stylelint@16.4.0(typescript@5.4.5)) - stylelint-config-standard: 36.0.0(stylelint@16.4.0(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.5.0(typescript@5.4.5)) + stylelint-config-recommended-vue: 1.5.0(postcss-html@1.6.0)(stylelint@16.5.0(typescript@5.4.5)) + stylelint-config-standard: 36.0.0(stylelint@16.5.0(typescript@5.4.5)) - stylelint-config-standard@36.0.0(stylelint@16.4.0(typescript@5.4.5)): + stylelint-config-standard@36.0.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: - stylelint: 16.4.0(typescript@5.4.5) - stylelint-config-recommended: 14.0.0(stylelint@16.4.0(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-config-recommended: 14.0.0(stylelint@16.5.0(typescript@5.4.5)) - stylelint-declaration-block-no-ignored-properties@2.8.0(stylelint@16.4.0(typescript@5.4.5)): + stylelint-declaration-block-no-ignored-properties@2.8.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: - stylelint: 16.4.0(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-high-performance-animation@1.10.0(stylelint@16.4.0(typescript@5.4.5)): + stylelint-high-performance-animation@1.10.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss-value-parser: 4.2.0 - stylelint: 16.4.0(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-order@6.0.4(stylelint@16.4.0(typescript@5.4.5)): + stylelint-order@6.0.4(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss: 8.4.38 postcss-sorting: 8.0.2(postcss@8.4.38) - stylelint: 16.4.0(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-prettier@5.0.0(prettier@3.2.5)(stylelint@16.4.0(typescript@5.4.5)): + stylelint-prettier@5.0.0(prettier@3.2.5)(stylelint@16.5.0(typescript@5.4.5)): dependencies: prettier: 3.2.5 prettier-linter-helpers: 1.0.0 - stylelint: 16.4.0(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint@16.4.0(typescript@5.4.5): + stylelint@16.5.0(typescript@5.4.5): dependencies: '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) '@csstools/css-tokenizer': 2.2.4 @@ -5285,7 +5298,7 @@ snapshots: table@6.8.2: dependencies: - ajv: 8.12.0 + ajv: 8.13.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -5372,12 +5385,12 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@7.7.1(eslint@9.1.1)(typescript@5.4.5): + typescript-eslint@7.8.0(eslint@9.2.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/eslint-plugin': 7.7.1(@typescript-eslint/parser@7.7.1(eslint@9.1.1)(typescript@5.4.5))(eslint@9.1.1)(typescript@5.4.5) - '@typescript-eslint/parser': 7.7.1(eslint@9.1.1)(typescript@5.4.5) - '@typescript-eslint/utils': 7.7.1(eslint@9.1.1)(typescript@5.4.5) - eslint: 9.1.1 + '@typescript-eslint/eslint-plugin': 7.8.0(@typescript-eslint/parser@7.8.0(eslint@9.2.0)(typescript@5.4.5))(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5) + eslint: 9.2.0 optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -5416,11 +5429,11 @@ snapshots: uuid@9.0.1: {} - vite-hot-client@0.2.3(vite@5.2.10(@types/node@20.12.7)): + vite-hot-client@0.2.3(vite@5.2.11(@types/node@20.12.8)): dependencies: - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.8) - vite-plugin-inspect@0.8.4(rollup@4.14.3)(vite@5.2.10(@types/node@20.12.7)): + vite-plugin-inspect@0.8.4(rollup@4.14.3)(vite@5.2.11(@types/node@20.12.8)): dependencies: '@antfu/utils': 0.7.7 '@rollup/pluginutils': 5.1.0(rollup@4.14.3) @@ -5431,28 +5444,28 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.8) transitivePeerDependencies: - rollup - supports-color - vite-plugin-vue-devtools@7.1.2(rollup@4.14.3)(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5)): + vite-plugin-vue-devtools@7.1.3(rollup@4.14.3)(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5)): dependencies: - '@vue/devtools-core': 7.1.2(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5)) - '@vue/devtools-kit': 7.1.2(vue@3.4.25(typescript@5.4.5)) - '@vue/devtools-shared': 7.1.2 + '@vue/devtools-core': 7.1.3(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5)) + '@vue/devtools-kit': 7.1.3(vue@3.4.26(typescript@5.4.5)) + '@vue/devtools-shared': 7.1.3 execa: 8.0.1 sirv: 2.0.4 - vite: 5.2.10(@types/node@20.12.7) - vite-plugin-inspect: 0.8.4(rollup@4.14.3)(vite@5.2.10(@types/node@20.12.7)) - vite-plugin-vue-inspector: 5.0.1(vite@5.2.10(@types/node@20.12.7)) + vite: 5.2.11(@types/node@20.12.8) + vite-plugin-inspect: 0.8.4(rollup@4.14.3)(vite@5.2.11(@types/node@20.12.8)) + vite-plugin-vue-inspector: 5.0.1(vite@5.2.11(@types/node@20.12.8)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.0.1(vite@5.2.10(@types/node@20.12.7)): + vite-plugin-vue-inspector@5.0.1(vite@5.2.11(@types/node@20.12.8)): dependencies: '@babel/core': 7.24.4 '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.4) @@ -5460,54 +5473,54 @@ snapshots: '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.4) - '@vue/compiler-dom': 3.4.24 + '@vue/compiler-dom': 3.4.25 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.2.10(@types/node@20.12.7) + vite: 5.2.11(@types/node@20.12.8) transitivePeerDependencies: - supports-color - vite-plugin-vuetify@2.0.3(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5))(vuetify@3.5.17): + vite-plugin-vuetify@2.0.3(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5))(vuetify@3.6.3): dependencies: - '@vuetify/loader-shared': 2.0.3(vue@3.4.25(typescript@5.4.5))(vuetify@3.5.17(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.25(typescript@5.4.5))) + '@vuetify/loader-shared': 2.0.3(vue@3.4.26(typescript@5.4.5))(vuetify@3.6.3(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.26(typescript@5.4.5))) debug: 4.3.4 upath: 2.0.1 - vite: 5.2.10(@types/node@20.12.7) - vue: 3.4.25(typescript@5.4.5) - vuetify: 3.5.17(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.25(typescript@5.4.5)) + vite: 5.2.11(@types/node@20.12.8) + vue: 3.4.26(typescript@5.4.5) + vuetify: 3.6.3(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.26(typescript@5.4.5)) transitivePeerDependencies: - supports-color - vite@5.2.10(@types/node@20.12.7): + vite@5.2.11(@types/node@20.12.8): dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.14.3 optionalDependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 fsevents: 2.3.3 - vue-demi@0.13.11(vue@3.4.25(typescript@5.4.5)): + vue-demi@0.13.11(vue@3.4.26(typescript@5.4.5)): dependencies: - vue: 3.4.25(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) - vue-demi@0.14.7(vue@3.4.25(typescript@5.4.5)): + vue-demi@0.14.7(vue@3.4.26(typescript@5.4.5)): dependencies: - vue: 3.4.25(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) - vue-echarts@6.7.1(@vue/runtime-core@3.4.24)(echarts@5.5.0)(vue@3.4.25(typescript@5.4.5)): + vue-echarts@6.7.1(@vue/runtime-core@3.4.25)(echarts@5.5.0)(vue@3.4.26(typescript@5.4.5)): dependencies: echarts: 5.5.0 resize-detector: 0.3.0 - vue: 3.4.25(typescript@5.4.5) - vue-demi: 0.13.11(vue@3.4.25(typescript@5.4.5)) + vue: 3.4.26(typescript@5.4.5) + vue-demi: 0.13.11(vue@3.4.26(typescript@5.4.5)) optionalDependencies: - '@vue/runtime-core': 3.4.24 + '@vue/runtime-core': 3.4.25 - vue-eslint-parser@9.4.2(eslint@9.1.1): + vue-eslint-parser@9.4.2(eslint@9.2.0): dependencies: debug: 4.3.4 - eslint: 9.1.1 + eslint: 9.2.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -5517,32 +5530,32 @@ snapshots: transitivePeerDependencies: - supports-color - vue-json-viewer@3.0.4(vue@3.4.25(typescript@5.4.5)): + vue-json-viewer@3.0.4(vue@3.4.26(typescript@5.4.5)): dependencies: clipboard: 2.0.11 - vue: 3.4.25(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) - vue-router@4.3.2(vue@3.4.25(typescript@5.4.5)): + vue-router@4.3.2(vue@3.4.26(typescript@5.4.5)): dependencies: '@vue/devtools-api': 6.6.1 - vue: 3.4.25(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) - vue@3.4.25(typescript@5.4.5): + vue@3.4.26(typescript@5.4.5): dependencies: - '@vue/compiler-dom': 3.4.25 - '@vue/compiler-sfc': 3.4.25 - '@vue/runtime-dom': 3.4.25 - '@vue/server-renderer': 3.4.25(vue@3.4.25(typescript@5.4.5)) - '@vue/shared': 3.4.25 + '@vue/compiler-dom': 3.4.26 + '@vue/compiler-sfc': 3.4.26 + '@vue/runtime-dom': 3.4.26 + '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.4.5)) + '@vue/shared': 3.4.26 optionalDependencies: typescript: 5.4.5 - vuetify@3.5.17(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.25(typescript@5.4.5)): + vuetify@3.6.3(typescript@5.4.5)(vite-plugin-vuetify@2.0.3)(vue@3.4.26(typescript@5.4.5)): dependencies: - vue: 3.4.25(typescript@5.4.5) + vue: 3.4.26(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 - vite-plugin-vuetify: 2.0.3(vite@5.2.10(@types/node@20.12.7))(vue@3.4.25(typescript@5.4.5))(vuetify@3.5.17) + vite-plugin-vuetify: 2.0.3(vite@5.2.11(@types/node@20.12.8))(vue@3.4.26(typescript@5.4.5))(vuetify@3.6.3) wcag-color@1.1.1: {} diff --git a/src/data/app/uigf-schema.json b/src/data/app/uigf-schema.json new file mode 100644 index 00000000..3f2747af --- /dev/null +++ b/src/data/app/uigf-schema.json @@ -0,0 +1,96 @@ +{ + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "title": "UID of the export record" + }, + "lang": { + "type": "string", + "title": "language in the format of languagecode2-country/regioncode2" + }, + "export_timestamp": { + "type": "number", + "title": "Export UNIX timestamp (accurate to the second)" + }, + "export_time": { + "type": "string", + "title": "Export time", + "description": "yyyy-MM-dd HH:mm:ss" + }, + "export_app": { + "type": "string", + "title": "Name of the export application" + }, + "export_app_version": { + "type": "string", + "title": "Version of the export application" + }, + "uigf_version": { + "type": "string", + "title": "UIGF version; follow the regular expression pattern", + "pattern": "v\\d+\\.\\d+" + }, + "region_time_zone": { + "type": "number", + "title": "Region timezone offset" + } + }, + "required": ["uid", "uigf_version"], + "title": "UIGF Export Information" + }, + "list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uigf_gacha_type": { + "type": "string", + "title": "UIGF gacha type", + "description": "Used to differentiate different gacha types with the same pity calculation for items" + }, + "gacha_type": { + "type": "string", + "title": "Gacha type" + }, + "item_id": { + "type": "string", + "title": "Internal ID of the item" + }, + "count": { + "type": "string", + "title": "Count, usually 1" + }, + "time": { + "type": "string", + "title": "Time when the item was obtained" + }, + "name": { + "type": "string", + "title": "Item name" + }, + "item_type": { + "type": "string", + "title": "Item type" + }, + "rank_type": { + "type": "string", + "title": "Item rank" + }, + "id": { + "type": "string", + "title": "Internal ID of the record" + } + }, + "required": ["uigf_gacha_type", "gacha_type", "id", "item_id", "time"], + "title": "UIGF Item" + }, + "title": "Item List" + } + }, + "required": ["info", "list"], + "title": "UIGF Root Object" +} diff --git a/src/data/index.ts b/src/data/index.ts index bb2352d3..4d354b40 100644 --- a/src/data/index.ts +++ b/src/data/index.ts @@ -1,9 +1,11 @@ /** * @file src/data/index.ts * @description 数据文件入口 - * @since Beta v0.4.4 + * @since Beta v0.4.7 */ +import type { SchemaType } from "ajv/lib/types/index.js"; + // 应用数据 import achievements from "./app/achievements.json"; import achievementSeries from "./app/achievementSeries.json"; @@ -12,6 +14,7 @@ import character from "./app/character.json"; import gacha from "./app/gacha.json"; import GCG from "./app/GCG.json"; import nameCards from "./app/namecard.json"; +import uigfSchema from "./app/uigf-schema.json"; import weapon from "./app/weapon.json"; // 存档数据 import arcBirCalendar from "./archive/birth_calendar.json"; @@ -30,6 +33,7 @@ export const AppGachaData: TGApp.App.Gacha.PoolItem[] = gacha; export const AppGCGData: TGApp.App.GCG.WikiBriefInfo[] = GCG; export const AppNameCardsData: TGApp.App.NameCard.Item[] = nameCards; export const AppWeaponData: TGApp.App.Weapon.WikiBriefInfo[] = weapon; +export const AppUigfSchema: SchemaType = uigfSchema; export const ArcBirCalendar: TGApp.Archive.Birth.CalendarData = arcBirCalendar; export const ArcBirDraw: TGApp.Archive.Birth.DrawItem[] = arcBirDraw; export const ArcBirRole: TGApp.Archive.Birth.RoleItem[] = arcBirRole; diff --git a/src/pages/User/Gacha.vue b/src/pages/User/Gacha.vue index f420b5f7..5a4faee8 100644 --- a/src/pages/User/Gacha.vue +++ b/src/pages/User/Gacha.vue @@ -304,13 +304,7 @@ async function handleImportBtn(savePath?: string): Promise { return; } const check = await verifyUigfData(selectedFile); - if (!check) { - showSnackbar({ - color: "error", - text: "读取 UIGF 文件失败,请检查文件是否符合规范", - }); - return; - } + if (!check) return; const remoteData = await readUigfData(selectedFile); const res = await showConfirm({ title: "是否导入祈愿数据?", @@ -342,9 +336,9 @@ async function handleImportBtn(savePath?: string): Promise { await TGLogger.Info( `[UserGacha][handleImportBtn] 成功导入 ${remoteData.info.uid} 的 ${remoteData.list.length} 条祈愿数据`, ); - // setTimeout(() => { - // window.location.reload(); - // }, 1000); + setTimeout(() => { + window.location.reload(); + }, 1000); } // 导出按钮点击事件 diff --git a/src/utils/UIGF.ts b/src/utils/UIGF.ts index 0c6c3f96..5056bc3c 100644 --- a/src/utils/UIGF.ts +++ b/src/utils/UIGF.ts @@ -1,10 +1,15 @@ /** * @file utils/UIGF.ts * @description UIGF工具类 - * @since Beta v0.4.4 + * @since Beta v0.4.7 */ import { app, fs, path } from "@tauri-apps/api"; +import Ajv from "ajv"; +import { ErrorObject } from "ajv/lib/types/index.js"; + +import showSnackbar from "../components/func/snackbar.js"; +import { AppUigfSchema } from "../data/index.js"; import { timestampToDate } from "./toolFunc"; @@ -65,16 +70,30 @@ export function convertDataToUigf( } /** - * @description 检测是否存在 UIGF 数据 - * @description 粗略检测,不保证数据完整性 - * @since Alpha v0.2.3 + * @description 检测是否存在 UIGF 数据,采用 ajv 验证 schema + * @since Beta v0.4.7 * @param {string} path - UIGF 数据路径 * @returns {Promise} 是否存在 UIGF 数据 */ export async function verifyUigfData(path: string): Promise { const fileData: string = await fs.readTextFile(path); - const UigfData: TGApp.Plugins.UIGF.Export = JSON.parse(fileData)?.info; - return UigfData?.uigf_version !== undefined; + const ajv = new Ajv(); + const validate = ajv.compile(AppUigfSchema); + try { + const fileJson = JSON.parse(fileData); + if (!validate(fileJson)) { + const error: ErrorObject = validate.errors[0]; + showSnackbar({ + text: `${error.instancePath || error.schemaPath} ${error.message}`, + color: "error", + }); + return false; + } + return true; + } catch (e) { + showSnackbar({ text: `UIGF 数据格式错误 ${e}`, color: "error" }); + return false; + } } /**