diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index c582dc71..3f13a2ac 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -43,8 +43,8 @@ jobs: run: | echo "${{ secrets.ENV_FILE }}" > .env - - name: Lint project - run: pnpm lint + - name: Lint and check type + run: pnpm lint && pnpm typecheck - name: Build Taro weapp run: pnpm build:weapp diff --git a/package.json b/package.json index 7199b014..9cb0542a 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "author": "ZJUTJH", "scripts": { "lint": "eslint", + "typecheck": "vue-tsc --noEmit", "dev:weapp": "npm run build:weapp -- --watch", "build:weapp": "taro build --type weapp" }, @@ -16,37 +17,40 @@ "@babel/runtime": "^7.24.4", "@tarojs/components": "4.0.6", "@tarojs/helper": "4.0.6", + "@tarojs/plugin-framework-vue3": "4.0.6", "@tarojs/plugin-platform-weapp": "4.0.6", "@tarojs/runtime": "4.0.6", "@tarojs/shared": "4.0.6", "@tarojs/taro": "4.0.6", - "@tarojs/plugin-framework-vue3": "4.0.6", + "@vueuse/core": "^11.2.0", "dayjs": "^1.11.4", "lodash-es": "^4.17.21", - "vue": "^3.0.0", - "vuex": "^4.0.0", - "vuex-persistedstate": "^4.1.0" + "pinia": "^2.2.4", + "pinia-plugin-persistedstate": "^4.1.1", + "vue": "^3.0.0" }, "devDependencies": { "@babel/core": "^7.24.4", "@babel/plugin-proposal-class-properties": "7.14.5", + "@stylistic/eslint-plugin": "^2.9.0", "@tarojs/cli": "4.0.6", "@tarojs/vite-runner": "4.0.6", - "@stylistic/eslint-plugin": "^2.9.0", - "@vue/eslint-config-typescript": "^14.0.0", - "babel-preset-taro": "4.0.6", - "terser": "^5.30.4", - "vite": "^4.2.0", + "@types/lodash-es": "^4.17.12", "@vitejs/plugin-vue": "^5.0.4", "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue/eslint-config-typescript": "^14.0.0", + "babel-preset-taro": "4.0.6", "eslint": "^9.12.0", - "stylelint": "^14.4.0", "eslint-import-resolver-typescript": "^3.6.3", "eslint-plugin-import": "^2.31.0", "eslint-plugin-vue": "^9.28.0", "globals": "^15.11.0", + "postcss": "^8.4.38", "sass": "^1.75.0", + "stylelint": "^14.4.0", + "terser": "^5.30.4", "typescript": "^5.4.5", - "postcss": "^8.4.38" + "vite": "^4.2.0", + "vue-tsc": "^2.1.10" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 759e2e34..0ca28005 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,21 +32,24 @@ importers: '@tarojs/taro': specifier: 4.0.6 version: 4.0.6(@tarojs/components@4.0.6(@tarojs/helper@4.0.6)(@tarojs/shared@4.0.6)(html-webpack-plugin@5.5.0(webpack@5.69.0(@swc/core@1.3.96)))(postcss@8.4.47)(rollup@3.29.5)(vue@3.5.11(typescript@5.6.3))(webpack-chain@6.5.1)(webpack-dev-server@4.7.4(webpack@5.69.0(@swc/core@1.3.96)))(webpack@5.69.0(@swc/core@1.3.96)))(@tarojs/helper@4.0.6)(@tarojs/shared@4.0.6)(html-webpack-plugin@5.5.0(webpack@5.69.0(@swc/core@1.3.96)))(postcss@8.4.47)(rollup@3.29.5)(vue@3.5.11(typescript@5.6.3))(webpack-chain@6.5.1)(webpack-dev-server@4.7.4(webpack@5.69.0(@swc/core@1.3.96)))(webpack@5.69.0(@swc/core@1.3.96)) + '@vueuse/core': + specifier: ^11.2.0 + version: 11.2.0(vue@3.5.11(typescript@5.6.3)) dayjs: specifier: ^1.11.4 version: 1.11.13 lodash-es: specifier: ^4.17.21 version: 4.17.21 + pinia: + specifier: ^2.2.4 + version: 2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)) + pinia-plugin-persistedstate: + specifier: ^4.1.1 + version: 4.1.1(pinia@2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)))(rollup@3.29.5)(webpack-sources@3.2.3) vue: specifier: ^3.0.0 version: 3.5.11(typescript@5.6.3) - vuex: - specifier: ^4.0.0 - version: 4.1.0(vue@3.5.11(typescript@5.6.3)) - vuex-persistedstate: - specifier: ^4.1.0 - version: 4.1.0(vuex@4.1.0(vue@3.5.11(typescript@5.6.3))) devDependencies: '@babel/core': specifier: ^7.24.4 @@ -56,13 +59,16 @@ importers: version: 7.14.5(@babel/core@7.25.7) '@stylistic/eslint-plugin': specifier: ^2.9.0 - version: 2.9.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + version: 2.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) '@tarojs/cli': specifier: 4.0.6 version: 4.0.6 '@tarojs/vite-runner': specifier: 4.0.6 - version: 4.0.6(@tarojs/runtime@4.0.6)(jiti@1.21.6)(postcss@8.4.47)(rollup@3.29.5)(terser@5.34.1)(typescript@5.6.3)(vite@4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1)) + version: 4.0.6(@tarojs/runtime@4.0.6)(jiti@2.3.3)(postcss@8.4.47)(rollup@3.29.5)(terser@5.34.1)(typescript@5.6.3)(vite@4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1)) + '@types/lodash-es': + specifier: ^4.17.12 + version: 4.17.12 '@vitejs/plugin-vue': specifier: ^5.0.4 version: 5.1.4(vite@4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1))(vue@3.5.11(typescript@5.6.3)) @@ -71,22 +77,22 @@ importers: version: 3.1.0(vite@4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1))(vue@3.5.11(typescript@5.6.3)) '@vue/eslint-config-typescript': specifier: ^14.0.0 - version: 14.0.0(eslint-plugin-vue@9.28.0(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + version: 14.0.0(eslint-plugin-vue@9.28.0(eslint@9.12.0(jiti@2.3.3)))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) babel-preset-taro: specifier: 4.0.6 version: 4.0.6(@babel/core@7.25.7)(@babel/plugin-transform-typescript@7.25.7(@babel/core@7.25.7))(@babel/preset-react@7.25.7(@babel/core@7.25.7))(@vue/babel-plugin-jsx@1.2.5(@babel/core@7.25.7))(metro-react-native-babel-preset@0.72.4(@babel/core@7.25.7)) eslint: specifier: ^9.12.0 - version: 9.12.0(jiti@1.21.6) + version: 9.12.0(jiti@2.3.3) eslint-import-resolver-typescript: specifier: ^3.6.3 - version: 3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)) + version: 3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.3.3)) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)) + version: 2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.3.3)) eslint-plugin-vue: specifier: ^9.28.0 - version: 9.28.0(eslint@9.12.0(jiti@1.21.6)) + version: 9.28.0(eslint@9.12.0(jiti@2.3.3)) globals: specifier: ^15.11.0 version: 15.11.0 @@ -108,6 +114,9 @@ importers: vite: specifier: ^4.2.0 version: 4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1) + vue-tsc: + specifier: ^2.1.10 + version: 2.1.10(typescript@5.6.3) packages: @@ -834,6 +843,10 @@ packages: resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} + '@babel/standalone@7.25.9': + resolution: {integrity: sha512-j37QF9mpPAneLBp9xX9FU8O9mWbuKvGbjDvjWtg4vu++08210X7FQNq+3df7MkeI1g56XFWsEqyN0byzuSe3dA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.7': resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} @@ -1265,6 +1278,14 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@nuxt/kit@3.13.2': + resolution: {integrity: sha512-KvRw21zU//wdz25IeE1E5m/aFSzhJloBRAQtv+evcFeZvuroIxpIQuUqhbzuwznaUwpiWbmwlcsp5uOWmi4vwA==} + engines: {node: ^14.18.0 || >=16.10.0} + + '@nuxt/schema@3.13.2': + resolution: {integrity: sha512-CCZgpm+MkqtOMDEgF9SWgGPBXlQ01hV/6+2reDEpJuqFPGzV8HYKPBcIFvn7/z5ahtgutHLzjP71Na+hYcqSpw==} + engines: {node: ^14.18.0 || >=16.10.0} + '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} @@ -1429,6 +1450,10 @@ packages: resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} engines: {node: '>=4'} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@stencil/core@2.22.3': resolution: {integrity: sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==} engines: {node: '>=12.10.0', npm: '>=6.0.0'} @@ -1886,6 +1911,9 @@ packages: '@types/keyv@3.1.4': resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + '@types/lodash.debounce@4.0.9': resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} @@ -1947,6 +1975,9 @@ packages: '@types/sockjs@0.3.36': resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + '@types/ws@8.5.12': resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} @@ -2028,6 +2059,15 @@ packages: vite: ^5.0.0 vue: ^3.2.25 + '@volar/language-core@2.4.10': + resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==} + + '@volar/source-map@2.4.10': + resolution: {integrity: sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==} + + '@volar/typescript@2.4.10': + resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==} + '@vue/babel-helper-vue-transform-on@1.2.5': resolution: {integrity: sha512-lOz4t39ZdmU4DJAa2hwPYmKc8EsuGa2U0L9KaZaOJUt0UwQNjNA3AZTq6uEivhOKhhG1Wvy96SvYBoFmCg3uuw==} @@ -2056,6 +2096,9 @@ packages: '@vue/compiler-ssr@3.5.11': resolution: {integrity: sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA==} + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} @@ -2070,6 +2113,14 @@ packages: typescript: optional: true + '@vue/language-core@2.1.10': + resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@vue/reactivity@3.5.11': resolution: {integrity: sha512-Nqo5VZEn8MJWlCce8XoyVqHZbd5P2NH+yuAaFzuNSR96I+y1cnuUiq7xfSG+kyvLSiWmaHTKP1r3OZY4mMD50w==} @@ -2087,6 +2138,15 @@ packages: '@vue/shared@3.5.11': resolution: {integrity: sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ==} + '@vueuse/core@11.2.0': + resolution: {integrity: sha512-JIUwRcOqOWzcdu1dGlfW04kaJhW3EXnnjJJfLTtddJanymTL7lF1C0+dVVZ/siLfc73mWn+cGP1PE1PKPruRSA==} + + '@vueuse/metadata@11.2.0': + resolution: {integrity: sha512-L0ZmtRmNx+ZW95DmrgD6vn484gSpVeRbgpWevFKXwqqQxW9hnSi2Ppuh2BzMjnbv4aJRiIw8tQatXT9uOB23dQ==} + + '@vueuse/shared@11.2.0': + resolution: {integrity: sha512-VxFjie0EanOudYSgMErxXfq6fo8vhr5ICI+BuE3I9FnX7ePllEsVrRQ7O6Q1TLgApeLuPKcHQxAXpP+KnlrJsg==} + '@webassemblyjs/ast@1.11.1': resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} @@ -2193,6 +2253,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + alien-signals@0.2.1: + resolution: {integrity: sha512-FlEQrDJe9r2RI4cDlnK2zYqJezvx1uJaWEuwxsnlFqnPwvJbgitNBRumWrLDv8lA+7cCikpMxfJD2TTHiaTklA==} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -2454,6 +2517,14 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + c12@1.11.2: + resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==} + peerDependencies: + magicast: ^0.3.4 + peerDependenciesMeta: + magicast: + optional: true + cacheable-request@2.1.4: resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==} @@ -2513,10 +2584,17 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -2600,6 +2678,9 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + compatx@0.1.8: + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -2611,6 +2692,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -2622,6 +2706,10 @@ packages: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -2713,6 +2801,9 @@ packages: dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -2793,14 +2884,13 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deep-pick-omit@1.2.1: + resolution: {integrity: sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==} + deepmerge@1.5.2: resolution: {integrity: sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==} engines: {node: '>=0.10.0'} - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -2823,6 +2913,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + del@6.1.1: resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} engines: {node: '>=10'} @@ -2839,6 +2932,9 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -3017,6 +3113,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -3133,6 +3233,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3152,6 +3255,10 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + express@4.21.1: resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} engines: {node: '>= 0.10.0'} @@ -3328,6 +3435,10 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -3388,6 +3499,10 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -3395,6 +3510,10 @@ packages: get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + git-clone@0.1.0: resolution: {integrity: sha512-zs9rlfa7HyaJAKG9o+V7C6qfMzyc+tb1IIXdUFcOBcR1U7siKy/uPdauLlrH1mc0vOgUwIv4BF+QxPiiTYz3Rw==} @@ -3450,6 +3569,10 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + globjoin@0.1.4: resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} @@ -3533,6 +3656,9 @@ packages: hls.js@1.5.16: resolution: {integrity: sha512-+wAWr4aeRq9ODN8/Vgz0Cee1Cw6Ysr7vyEkZJCwOJYNwlld7CNmhKE+dLwfpUO2UuotYLGF0of6UFiN6zA7mig==} + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -3609,6 +3735,10 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -3822,6 +3952,10 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -3880,12 +4014,19 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + jiti@2.3.3: + resolution: {integrity: sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==} + hasBin: true + joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -3944,6 +4085,13 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.1.0: + resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + known-css-properties@0.26.0: resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==} @@ -4046,6 +4194,10 @@ packages: resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} engines: {node: '>= 12.13.0'} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -4202,6 +4354,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -4227,10 +4383,22 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + minipass@6.0.2: resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -4240,6 +4408,13 @@ packages: engines: {node: '>=10'} hasBin: true + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} @@ -4250,6 +4425,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + multicast-dns-service-types@1.1.0: resolution: {integrity: sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==} @@ -4292,6 +4470,9 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -4330,9 +4511,18 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nypm@0.3.12: + resolution: {integrity: sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4368,6 +4558,9 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -4383,6 +4576,10 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -4489,6 +4686,9 @@ packages: pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -4501,6 +4701,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -4515,9 +4719,19 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} @@ -4541,6 +4755,29 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + pinia-plugin-persistedstate@4.1.1: + resolution: {integrity: sha512-fUiUsbfBetGUZzX28z+ImAZw7FDXzwRrk+fN+ljF5OhQMhsSYfYeUzI9FLLtpjekYbfFHWvJiECkLI60RIuiPA==} + peerDependencies: + '@pinia/nuxt': '>=0.5.0' + pinia: '>=2.0.0' + peerDependenciesMeta: + '@pinia/nuxt': + optional: true + pinia: + optional: true + + pinia@2.2.4: + resolution: {integrity: sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + pinkie-promise@2.0.1: resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} engines: {node: '>=0.10.0'} @@ -4553,6 +4790,9 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + portfinder@1.0.32: resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} engines: {node: '>= 0.12.0'} @@ -4727,6 +4967,9 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -4918,6 +5161,9 @@ packages: resolution: {integrity: sha512-lvxTwCKDLgzmRWhGwJ834ggtnEhs0G9FxSJRWte+NwlshVvBcQ/kOHHkpAGDpCxIMNGz/Utl0yd/MWyQAOBhqg==} hasBin: true + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + seek-bzip@1.0.6: resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} hasBin: true @@ -4983,10 +5229,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shvl@2.0.3: - resolution: {integrity: sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw==} - deprecated: older versions vulnerable to prototype pollution - side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -5002,6 +5244,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -5070,6 +5316,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} engines: {node: '>=0.10.0'} @@ -5121,6 +5370,10 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -5133,6 +5386,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + strip-outer@1.0.1: resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} engines: {node: '>=0.10.0'} @@ -5200,6 +5456,10 @@ packages: resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} engines: {node: '>= 0.8.0'} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -5351,6 +5611,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -5362,6 +5625,12 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.3.1: + resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} + undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -5381,6 +5650,13 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unimport@3.13.1: + resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -5393,6 +5669,19 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin@1.14.1: + resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} + engines: {node: '>=14.0.0'} + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true + + untyped@1.5.1: + resolution: {integrity: sha512-reBOnkJBFfBZ8pCKaeHgfZLcehXtM6UTxc+vqs1JvCps0c4amLNp3fhdGBZwYp+VLyoY9n3X5KOP7lCyWBUX9A==} + hasBin: true + update-browserslist-db@1.1.1: resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true @@ -5478,6 +5767,20 @@ packages: terser: optional: true + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue-eslint-parser@9.4.3: resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} engines: {node: ^14.17.0 || >=16.0.0} @@ -5496,6 +5799,12 @@ packages: vue: optional: true + vue-tsc@2.1.10: + resolution: {integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + vue@3.5.11: resolution: {integrity: sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg==} peerDependencies: @@ -5504,17 +5813,6 @@ packages: typescript: optional: true - vuex-persistedstate@4.1.0: - resolution: {integrity: sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - peerDependencies: - vuex: ^3.0 || ^4.0.0-rc - - vuex@4.1.0: - resolution: {integrity: sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==} - peerDependencies: - vue: ^3.2.0 - watchpack@2.4.2: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} @@ -5555,6 +5853,9 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + webpack@5.69.0: resolution: {integrity: sha512-E5Fqu89Gu8fR6vejRqu26h8ld/k6/dCVbeGUcuZjc+goQHDfCPU9rER71JmdtBYGmci7Ec2aFEATQ2IVXKy2wg==} engines: {node: '>=10.13.0'} @@ -6624,6 +6925,8 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/standalone@7.25.9': {} + '@babel/template@7.25.7': dependencies: '@babel/code-frame': 7.25.7 @@ -6809,9 +7112,9 @@ snapshots: eslint: 8.41.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@2.3.3))': dependencies: - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.3.3) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.1': {} @@ -6938,6 +7241,53 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@nuxt/kit@3.13.2(rollup@3.29.5)(webpack-sources@3.2.3)': + dependencies: + '@nuxt/schema': 3.13.2(rollup@3.29.5)(webpack-sources@3.2.3) + c12: 1.11.2 + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + globby: 14.0.2 + hash-sum: 2.0.0 + ignore: 5.3.2 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + mlly: 1.7.2 + pathe: 1.1.2 + pkg-types: 1.2.1 + scule: 1.3.0 + semver: 7.6.3 + ufo: 1.5.4 + unctx: 2.3.1(webpack-sources@3.2.3) + unimport: 3.13.1(rollup@3.29.5)(webpack-sources@3.2.3) + untyped: 1.5.1 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + - webpack-sources + + '@nuxt/schema@3.13.2(rollup@3.29.5)(webpack-sources@3.2.3)': + dependencies: + compatx: 0.1.8 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.2.1 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unimport: 3.13.1(rollup@3.29.5)(webpack-sources@3.2.3) + untyped: 1.5.1 + transitivePeerDependencies: + - rollup + - supports-color + - webpack-sources + '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -7059,12 +7409,14 @@ snapshots: '@sindresorhus/is@0.7.0': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@stencil/core@2.22.3': {} - '@stylistic/eslint-plugin@2.9.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + '@stylistic/eslint-plugin@2.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - eslint: 9.12.0(jiti@1.21.6) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.12.0(jiti@2.3.3) eslint-visitor-keys: 4.1.0 espree: 10.2.0 estraverse: 5.3.0 @@ -7423,7 +7775,7 @@ snapshots: webpack-chain: 6.5.1 webpack-dev-server: 4.7.4(webpack@5.69.0(@swc/core@1.3.96)) - '@tarojs/vite-runner@4.0.6(@tarojs/runtime@4.0.6)(jiti@1.21.6)(postcss@8.4.47)(rollup@3.29.5)(terser@5.34.1)(typescript@5.6.3)(vite@4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1))': + '@tarojs/vite-runner@4.0.6(@tarojs/runtime@4.0.6)(jiti@2.3.3)(postcss@8.4.47)(rollup@3.29.5)(terser@5.34.1)(typescript@5.6.3)(vite@4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1))': dependencies: '@ampproject/remapping': 2.3.0 '@babel/core': 7.25.7 @@ -7452,7 +7804,7 @@ snapshots: postcss-css-variables: 0.19.0(postcss@8.4.47) postcss-html-transform: 4.0.6(postcss@8.4.47) postcss-import: 16.1.0(postcss@8.4.47) - postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.47) + postcss-load-config: 5.1.0(jiti@2.3.3)(postcss@8.4.47) postcss-modules: 6.0.0(postcss@8.4.47) postcss-plugin-constparse: 4.0.6(postcss@8.4.47) postcss-pxtransform: 4.0.6(postcss@8.4.47) @@ -7565,6 +7917,10 @@ snapshots: dependencies: '@types/node': 22.7.5 + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.10 + '@types/lodash.debounce@4.0.9': dependencies: '@types/lodash': 4.17.10 @@ -7638,20 +7994,22 @@ snapshots: '@types/node': 22.7.5 optional: true + '@types/web-bluetooth@0.0.20': {} + '@types/ws@8.5.12': dependencies: '@types/node': 22.7.5 optional: true - '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.8.1 - '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.8.1 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.3.3) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -7661,14 +8019,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/types': 8.8.1 '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.8.1 debug: 4.3.7 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.3.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -7679,10 +8037,10 @@ snapshots: '@typescript-eslint/types': 8.8.1 '@typescript-eslint/visitor-keys': 8.8.1 - '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -7708,13 +8066,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3)) '@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/types': 8.8.1 '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.3.3) transitivePeerDependencies: - supports-color - typescript @@ -7753,6 +8111,18 @@ snapshots: vite: 4.5.5(@types/node@22.7.5)(less@4.2.0)(lightningcss@1.27.0)(sass@1.79.5)(stylus@0.55.0)(terser@5.34.1) vue: 3.5.11(typescript@5.6.3) + '@volar/language-core@2.4.10': + dependencies: + '@volar/source-map': 2.4.10 + + '@volar/source-map@2.4.10': {} + + '@volar/typescript@2.4.10': + dependencies: + '@volar/language-core': 2.4.10 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + '@vue/babel-helper-vue-transform-on@1.2.5': {} '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.25.7)': @@ -7813,21 +8183,39 @@ snapshots: '@vue/compiler-dom': 3.5.11 '@vue/shared': 3.5.11 + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + '@vue/devtools-api@6.6.4': {} - '@vue/eslint-config-typescript@14.0.0(eslint-plugin-vue@9.28.0(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + '@vue/eslint-config-typescript@14.0.0(eslint-plugin-vue@9.28.0(eslint@9.12.0(jiti@2.3.3)))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3)': dependencies: - '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - eslint: 9.12.0(jiti@1.21.6) - eslint-plugin-vue: 9.28.0(eslint@9.12.0(jiti@1.21.6)) - typescript-eslint: 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - vue-eslint-parser: 9.4.3(eslint@9.12.0(jiti@1.21.6)) + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.12.0(jiti@2.3.3) + eslint-plugin-vue: 9.28.0(eslint@9.12.0(jiti@2.3.3)) + typescript-eslint: 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + vue-eslint-parser: 9.4.3(eslint@9.12.0(jiti@2.3.3)) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color + '@vue/language-core@2.1.10(typescript@5.6.3)': + dependencies: + '@volar/language-core': 2.4.10 + '@vue/compiler-dom': 3.5.11 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.11 + alien-signals: 0.2.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.6.3 + '@vue/reactivity@3.5.11': dependencies: '@vue/shared': 3.5.11 @@ -7852,6 +8240,25 @@ snapshots: '@vue/shared@3.5.11': {} + '@vueuse/core@11.2.0(vue@3.5.11(typescript@5.6.3))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 11.2.0 + '@vueuse/shared': 11.2.0(vue@3.5.11(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@11.2.0': {} + + '@vueuse/shared@11.2.0(vue@3.5.11(typescript@5.6.3))': + dependencies: + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@webassemblyjs/ast@1.11.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.1 @@ -7989,6 +8396,8 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + alien-signals@0.2.1: {} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -8311,6 +8720,21 @@ snapshots: bytes@3.1.2: optional: true + c12@1.11.2: + dependencies: + chokidar: 3.6.0 + confbox: 0.1.8 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.2 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.1 + rc9: 2.1.2 + cacheable-request@2.1.4: dependencies: clone-response: 1.0.2 @@ -8403,8 +8827,14 @@ snapshots: dependencies: readdirp: 4.0.2 + chownr@2.0.0: {} + chrome-trace-event@1.0.4: {} + citty@0.1.6: + dependencies: + consola: 3.2.3 + classnames@2.5.1: {} clean-css@4.2.4: @@ -8486,6 +8916,8 @@ snapshots: commander@8.3.0: optional: true + compatx@0.1.8: {} + compressible@2.0.18: dependencies: mime-db: 1.53.0 @@ -8506,6 +8938,8 @@ snapshots: concat-map@0.0.1: {} + confbox@0.1.8: {} + config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -8516,6 +8950,8 @@ snapshots: connect-history-api-fallback@2.0.0: {} + consola@3.2.3: {} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 @@ -8619,6 +9055,8 @@ snapshots: dayjs@1.11.13: {} + de-indent@1.0.2: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -8702,11 +9140,11 @@ snapshots: deep-is@0.1.4: {} + deep-pick-omit@1.2.1: {} + deepmerge@1.5.2: optional: true - deepmerge@4.3.1: {} - default-gateway@6.0.3: dependencies: execa: 5.1.1 @@ -8733,6 +9171,8 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + defu@6.1.4: {} + del@6.1.1: dependencies: globby: 11.1.0 @@ -8753,6 +9193,8 @@ snapshots: depd@2.0.0: optional: true + destr@2.0.3: {} + destroy@1.2.0: optional: true @@ -9030,6 +9472,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 @@ -9038,37 +9482,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.3.3)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 9.12.0(jiti@1.21.6) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)) + eslint: 9.12.0(jiti@2.3.3) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.3.3)) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.3.3)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.3.3)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - eslint: 9.12.0(jiti@1.21.6) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + eslint: 9.12.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@9.12.0(jiti@2.3.3)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.3.3)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -9077,9 +9521,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.3.3) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@1.21.6)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.12.0(jiti@2.3.3)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -9091,22 +9535,22 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-vue@9.28.0(eslint@9.12.0(jiti@1.21.6)): + eslint-plugin-vue@9.28.0(eslint@9.12.0(jiti@2.3.3)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) - eslint: 9.12.0(jiti@1.21.6) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3)) + eslint: 9.12.0(jiti@2.3.3) globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.6.3 - vue-eslint-parser: 9.4.3(eslint@9.12.0(jiti@1.21.6)) + vue-eslint-parser: 9.4.3(eslint@9.12.0(jiti@2.3.3)) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -9174,9 +9618,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.12.0(jiti@1.21.6): + eslint@9.12.0(jiti@2.3.3): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3)) '@eslint-community/regexpp': 4.11.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.6.0 @@ -9212,7 +9656,7 @@ snapshots: optionator: 0.9.4 text-table: 0.2.0 optionalDependencies: - jiti: 1.21.6 + jiti: 2.3.3 transitivePeerDependencies: - supports-color @@ -9242,6 +9686,10 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + esutils@2.0.3: {} etag@1.8.1: @@ -9265,6 +9713,18 @@ snapshots: strip-final-newline: 2.0.0 optional: true + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + express@4.21.1: dependencies: accepts: 1.3.8 @@ -9479,6 +9939,10 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + fs-monkey@1.0.6: optional: true @@ -9536,6 +10000,8 @@ snapshots: get-stream@6.0.1: optional: true + get-stream@8.0.1: {} + get-symbol-description@1.0.2: dependencies: call-bind: 1.0.7 @@ -9546,6 +10012,17 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + giget@1.2.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.12 + ohash: 1.1.4 + pathe: 1.1.2 + tar: 6.2.1 + git-clone@0.1.0: {} glob-parent@5.1.2: @@ -9609,6 +10086,15 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + globjoin@0.1.4: {} globs@0.1.4: @@ -9704,6 +10190,8 @@ snapshots: hls.js@1.5.16: {} + hookable@5.5.3: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -9816,6 +10304,8 @@ snapshots: human-signals@2.1.0: optional: true + human-signals@5.0.0: {} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -10004,6 +10494,8 @@ snapshots: is-stream@2.0.1: optional: true + is-stream@3.0.0: {} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 @@ -10058,8 +10550,9 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jiti@1.21.6: - optional: true + jiti@1.21.6: {} + + jiti@2.3.3: {} joi@17.13.3: dependencies: @@ -10071,6 +10564,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.0: {} + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -10121,6 +10616,10 @@ snapshots: kind-of@6.0.3: {} + klona@2.0.6: {} + + knitwork@1.1.0: {} + known-css-properties@0.26.0: {} known-css-properties@0.34.0: {} @@ -10203,6 +10702,11 @@ snapshots: loader-utils@3.3.1: {} + local-pkg@0.5.0: + dependencies: + mlly: 1.7.2 + pkg-types: 1.2.1 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -10379,6 +10883,8 @@ snapshots: mimic-fn@2.1.0: {} + mimic-fn@4.0.0: {} + mimic-response@1.0.1: {} min-indent@1.0.1: {} @@ -10402,15 +10908,34 @@ snapshots: minimist@1.2.8: {} + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + minipass@6.0.2: {} + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + mkdirp@0.5.6: dependencies: minimist: 1.2.8 optional: true - mkdirp@1.0.4: - optional: true + mkdirp@1.0.4: {} + + mlly@1.7.2: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + + mri@1.2.0: {} mrmime@2.0.0: {} @@ -10419,6 +10944,8 @@ snapshots: ms@2.1.3: {} + muggle-string@0.4.1: {} + multicast-dns-service-types@1.1.0: optional: true @@ -10463,6 +10990,8 @@ snapshots: node-addon-api@7.1.1: {} + node-fetch-native@1.6.4: {} + node-forge@1.3.1: optional: true @@ -10504,10 +11033,23 @@ snapshots: path-key: 3.1.1 optional: true + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + nth-check@2.1.1: dependencies: boolbase: 1.0.0 + nypm@0.3.12: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + object-assign@4.1.1: {} object-inspect@1.13.2: {} @@ -10549,6 +11091,8 @@ snapshots: obuf@1.1.2: optional: true + ohash@1.1.4: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -10565,6 +11109,10 @@ snapshots: dependencies: mimic-fn: 2.1.0 + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -10688,12 +11236,16 @@ snapshots: tslib: 2.7.0 optional: true + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: {} path-scurry@1.11.1: @@ -10706,8 +11258,14 @@ snapshots: path-type@4.0.0: {} + path-type@5.0.0: {} + + pathe@1.1.2: {} + pend@1.2.0: {} + perfect-debounce@1.0.0: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -10721,6 +11279,28 @@ snapshots: pify@4.0.1: optional: true + pinia-plugin-persistedstate@4.1.1(pinia@2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)))(rollup@3.29.5)(webpack-sources@3.2.3): + dependencies: + '@nuxt/kit': 3.13.2(rollup@3.29.5)(webpack-sources@3.2.3) + deep-pick-omit: 1.2.1 + defu: 6.1.4 + destr: 2.0.3 + optionalDependencies: + pinia: 2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)) + transitivePeerDependencies: + - magicast + - rollup + - supports-color + - webpack-sources + + pinia@2.2.4(typescript@5.6.3)(vue@3.5.11(typescript@5.6.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.11(typescript@5.6.3) + vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.3)) + optionalDependencies: + typescript: 5.6.3 + pinkie-promise@2.0.1: dependencies: pinkie: 2.0.4 @@ -10729,6 +11309,12 @@ snapshots: pirates@4.0.6: {} + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.2 + pathe: 1.1.2 + portfinder@1.0.32: dependencies: async: 2.6.4 @@ -10758,12 +11344,12 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.8 - postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.47): + postcss-load-config@5.1.0(jiti@2.3.3)(postcss@8.4.47): dependencies: lilconfig: 3.1.2 yaml: 2.5.1 optionalDependencies: - jiti: 1.21.6 + jiti: 2.3.3 postcss: 8.4.47 postcss-media-query-parser@0.2.3: {} @@ -10896,6 +11482,11 @@ snapshots: unpipe: 1.0.0 optional: true + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.3 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -11126,6 +11717,8 @@ snapshots: sass: 1.79.5 tslib: 1.14.1 + scule@1.3.0: {} + seek-bzip@1.0.6: dependencies: commander: 2.20.3 @@ -11223,8 +11816,6 @@ snapshots: shebang-regex@3.0.0: {} - shvl@2.0.3: {} - side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -11238,6 +11829,8 @@ snapshots: slash@3.0.0: {} + slash@5.1.0: {} + slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -11326,6 +11919,8 @@ snapshots: statuses@2.0.1: optional: true + std-env@3.7.0: {} + strict-uri-encode@1.1.0: {} string-hash@1.1.3: {} @@ -11386,6 +11981,8 @@ snapshots: strip-final-newline@2.0.0: optional: true + strip-final-newline@3.0.0: {} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 @@ -11394,6 +11991,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + strip-outer@1.0.1: dependencies: escape-string-regexp: 1.0.5 @@ -11551,6 +12152,15 @@ snapshots: to-buffer: 1.1.1 xtend: 4.0.2 + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + terser-webpack-plugin@5.3.10(@swc/core@1.3.96)(webpack@5.69.0(@swc/core@1.3.96)): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -11682,11 +12292,11 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3): + typescript-eslint@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -11695,6 +12305,8 @@ snapshots: typescript@5.6.3: {} + ufo@1.5.4: {} + uglify-js@3.19.3: {} unbox-primitive@1.0.2: @@ -11709,6 +12321,17 @@ snapshots: buffer: 5.7.1 through: 2.3.8 + uncrypto@0.1.3: {} + + unctx@2.3.1(webpack-sources@3.2.3): + dependencies: + acorn: 8.12.1 + estree-walker: 3.0.3 + magic-string: 0.30.11 + unplugin: 1.14.1(webpack-sources@3.2.3) + transitivePeerDependencies: + - webpack-sources + undici-types@6.19.8: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -11722,6 +12345,27 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.1.0: {} + + unimport@3.13.1(rollup@3.29.5)(webpack-sources@3.2.3): + dependencies: + '@rollup/pluginutils': 5.1.2(rollup@3.29.5) + acorn: 8.12.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + mlly: 1.7.2 + pathe: 1.1.2 + pkg-types: 1.2.1 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.14.1(webpack-sources@3.2.3) + transitivePeerDependencies: + - rollup + - webpack-sources + universalify@0.1.2: {} universalify@2.0.1: {} @@ -11729,6 +12373,25 @@ snapshots: unpipe@1.0.0: optional: true + unplugin@1.14.1(webpack-sources@3.2.3): + dependencies: + acorn: 8.12.1 + webpack-virtual-modules: 0.6.2 + optionalDependencies: + webpack-sources: 3.2.3 + + untyped@1.5.1: + dependencies: + '@babel/core': 7.25.7 + '@babel/standalone': 7.25.9 + '@babel/types': 7.25.7 + defu: 6.1.4 + jiti: 2.3.3 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: browserslist: 4.24.0 @@ -11794,10 +12457,16 @@ snapshots: stylus: 0.55.0 terser: 5.34.1 - vue-eslint-parser@9.4.3(eslint@9.12.0(jiti@1.21.6)): + vscode-uri@3.0.8: {} + + vue-demi@0.14.10(vue@3.5.11(typescript@5.6.3)): + dependencies: + vue: 3.5.11(typescript@5.6.3) + + vue-eslint-parser@9.4.3(eslint@9.12.0(jiti@2.3.3)): dependencies: debug: 4.3.7 - eslint: 9.12.0(jiti@1.21.6) + eslint: 9.12.0(jiti@2.3.3) eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -11816,6 +12485,13 @@ snapshots: optionalDependencies: vue: 3.5.11(typescript@5.6.3) + vue-tsc@2.1.10(typescript@5.6.3): + dependencies: + '@volar/typescript': 2.4.10 + '@vue/language-core': 2.1.10(typescript@5.6.3) + semver: 7.6.3 + typescript: 5.6.3 + vue@3.5.11(typescript@5.6.3): dependencies: '@vue/compiler-dom': 3.5.11 @@ -11826,17 +12502,6 @@ snapshots: optionalDependencies: typescript: 5.6.3 - vuex-persistedstate@4.1.0(vuex@4.1.0(vue@3.5.11(typescript@5.6.3))): - dependencies: - deepmerge: 4.3.1 - shvl: 2.0.3 - vuex: 4.1.0(vue@3.5.11(typescript@5.6.3)) - - vuex@4.1.0(vue@3.5.11(typescript@5.6.3)): - dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.11(typescript@5.6.3) - watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 @@ -11915,6 +12580,8 @@ snapshots: webpack-sources@3.2.3: {} + webpack-virtual-modules@0.6.2: {} + webpack@5.69.0(@swc/core@1.3.96): dependencies: '@types/eslint-scope': 3.7.7 diff --git a/src/app.config.ts b/src/app.config.ts index cd4aea3e..12f8bcaa 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -18,7 +18,6 @@ export default defineAppConfig({ "pages/connect/faq/index", "pages/theme/index", "pages/freeroom/index", - "pages/canteenflow/index", "pages/announcement/index", "pages/electricity/index", "pages/electricity/record/index", diff --git a/src/app.ts b/src/app.ts index 55908fc1..2a30b73d 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,6 +1,6 @@ import { createApp } from "vue"; -import store from "./store/index"; -import { LoginByTaro, SystemService } from "./services"; +import { createPinia } from "pinia"; +import piniaPluginPersistedstate from "pinia-plugin-persistedstate"; import customParseFormat from "dayjs/plugin/customParseFormat"; import relativeTime from "dayjs/plugin/relativeTime"; import dayjs from "dayjs"; @@ -13,12 +13,11 @@ dayjs.extend(customParseFormat); dayjs.extend(utc); dayjs.extend(relativeTime); -const App = createApp({ - mounted() { - SystemService.getGeneralInfo(); - SystemService.getAppList(); - LoginByTaro(); - } -}).use(store); +const pinia = createPinia(); +pinia.use(piniaPluginPersistedstate); + +const App = createApp({}); + +App.use(pinia); export default App; diff --git a/src/components/AppList/AppListItem/index.vue b/src/components/AppList/AppListItem/index.vue index c36726d7..62183fb9 100644 --- a/src/components/AppList/AppListItem/index.vue +++ b/src/components/AppList/AppListItem/index.vue @@ -10,24 +10,25 @@ diff --git a/src/components/AppList/index.vue b/src/components/AppList/index.vue index a84a6b5b..a196ceff 100644 --- a/src/components/AppList/index.vue +++ b/src/components/AppList/index.vue @@ -1,13 +1,13 @@ diff --git a/src/components/Button/index.vue b/src/components/Button/index.vue index b8a8589f..7a6169e1 100644 --- a/src/components/Button/index.vue +++ b/src/components/Button/index.vue @@ -1,5 +1,5 @@ diff --git a/src/components/ElectricityQuickView/index.vue b/src/components/ElectricityQuickView/index.vue index 5209062a..26b87286 100644 --- a/src/components/ElectricityQuickView/index.vue +++ b/src/components/ElectricityQuickView/index.vue @@ -12,7 +12,7 @@ 寝室剩余电费 - {{ balanceData?.data.soc || 0 }} + {{ balance }} @@ -28,36 +28,23 @@ import { QuickView } from "@/components"; import Taro from "@tarojs/taro"; import "./index.scss"; import { computed } from "vue"; -import { YxyService } from "@/services"; -import store, { serviceStore } from "@/store"; import Card from "../Card/index.vue"; import dayjs from "dayjs"; -import { useRequest } from "@/hooks"; +import useElectricityBalanceStore from "@/store/service/balance"; +import { storeToRefs } from "pinia"; + +const { loading, balance, error, updateTime } = storeToRefs(useElectricityBalanceStore()); function nav2electricity() { Taro.navigateTo({ url: "/pages/electricity/index" }); } -const { data: balanceData, loading, error } = useRequest( - YxyService.queryBalance, { - onSuccess: (res) => { - if (res.data.data?.soc) { - store.commit("setBalance", res.data.data.soc); - } else throw new Error(); - } - } -); - const isUrgent = computed(() => { - if (balanceData.value) - return balanceData.value.data.soc < 20; - else - return false; + return balance.value < 20; }); const updateTimeString = computed(() => { - const time = serviceStore.electricity.updateTime.balance; - return time && !error.value ? dayjs(time).fromNow() : "更新失败"; + return updateTime.value && !error.value ? dayjs(updateTime.value).fromNow() : "更新失败"; }); diff --git a/src/components/ExamQuickView/index.vue b/src/components/ExamQuickView/index.vue index d5c483ea..10ffdc86 100644 --- a/src/components/ExamQuickView/index.vue +++ b/src/components/ExamQuickView/index.vue @@ -11,13 +11,13 @@ 近期考试 ({{ updateTimeString }}) 未查询到近日考试信息 { - if (updateTime.value !== undefined) return dayjs(updateTime.value).fromNow(); - else return "更新失败!"; -}); +const examStore = useExamStore(); /** - * 筛选近期考试 - * - * 未来3日 + * 筛选出未来 3 日的考试 */ -const filteredExamItems = computed(() => { - let list: Exam[] = []; - const exam = ZFService.getExamInfo(selectTerm.value)?.data; - try { - list = exam.filter(item => { - if (item.examTime === "未放开不可查") return 0; - const { date, start } = getExamTime(item.examTime); - // 距离考试的剩余时间(ms),为正表示考试为开始,为负表示考试结束 - const resDay = timeUtils.getDayInterval( - new Date(date + " " + start + ":00") - ); - return (resDay <= 3 && resDay >= 0 && examState(item.examTime) !== "after"); - }); - } catch (e) { - console.error(e); - } - return list.sort((a, b) => { +const filteredExams = computed(() => { + const examsInTerm = examStore.queryByTermSync()?.exams || []; + const filtered = examsInTerm.filter(item => { + if (item.examTime === "未放开不可查") return 0; + const { date, start } = getExamTime(item.examTime); + // 距离考试的剩余时间(ms),为正表示考试为开始,为负表示考试结束 + const resDay = timeUtils.getDayInterval( + new Date(date + " " + start + ":00") + ); + return (resDay <= 3 && resDay >= 0 && examState(item.examTime) !== "after"); + }); + return filtered.sort((a, b) => { const { date: dateA, start: timeA } = getExamTime(a.examTime); const { date: dateB, start: timeB } = getExamTime(b.examTime); return dayjs(`${dateA}-${timeA}`) < dayjs(`${dateB}-${timeB}`) ? 1 : -1; }); }); -const updateTime = computed(() => { - let updata: Date | null = null; - try { - updata = ZFService.getExamInfo(selectTerm.value)?.updateTime; - if (updata === null) return undefined; - else return updata; - } catch { - return undefined; - } +const updateTimeString = computed(() => { + const updateTime = examStore.queryByTermSync()?.updateTime; + if (examStore.error || !updateTime) return "更新失败"; + return dayjs(updateTime).fromNow(); }); function nav2Exam() { @@ -169,8 +146,4 @@ function examState(examTimeString: string) { else return "after"; } -onMounted(() => { - ZFService.updateExamInfo(selectTerm.value); -}); - diff --git a/src/components/FixedQuickView/InformationQuickView/index.vue b/src/components/FixedQuickView/InformationQuickView/index.vue index 6967cbd5..35fd16c8 100644 --- a/src/components/FixedQuickView/InformationQuickView/index.vue +++ b/src/components/FixedQuickView/InformationQuickView/index.vue @@ -5,8 +5,8 @@ 公告栏 - - {{ currentPost.content.slice(0, 60) }} + + {{ latestPost.content.slice(0, 60) }} 暂时公告信息 @@ -15,13 +15,15 @@ diff --git a/src/components/Home/edit-panel/index.vue b/src/components/Home/edit-panel/index.vue index a89c524c..c0018d12 100644 --- a/src/components/Home/edit-panel/index.vue +++ b/src/components/Home/edit-panel/index.vue @@ -2,38 +2,31 @@ import { computed, onBeforeUpdate, ref, watch } from "vue"; import styles from "./index.module.scss"; -import store, { serviceStore } from "@/store"; import { HomeCardName, homeCards } from "@/constants/homeCards"; import { PopView, WBadge, WButton } from "@/components"; -import { checkBind } from "@/utils"; +import useHomeCardStore from "@/store/service/homecard"; +import useBinding from "@/hooks/useBinding"; + +const homeCardStore = useHomeCardStore(); +const { canAccess } = useBinding(); /** 依赖于绑定状态的卡片名字列表 */ +// TODO: 移动到 useHomeCardStore 中 const validList = computed(() => { // 先根据绑定状态筛选出名字列表 - const valid = (Object.entries(homeCards) as Array<[HomeCardName, any]>) - .filter(item => checkBind[`${item[1].require}`].value) - .map(item => item[0]); + const validNames = Object.values(homeCards) + .filter(item => canAccess(item.require)) + .map(item => item.name); // 删除缓存中已选,但是未绑定的卡片 - const selectedInStore = [...serviceStore.homecard.selected]; - selectedInStore.forEach(item => { - const toDelete = valid.find(validItem => item === validItem); + homeCardStore.namesOfSelected.forEach(item => { + const toDelete = validNames.find(name => item === name); if (toDelete === undefined) { - store.commit("removeHomeCardItem", item); + homeCardStore.remove(item); } }); - return valid; -}); - -const selectedList = computed(() => { - if (serviceStore.homecard.selected.length === 0 && serviceStore.homecard.initialization) { - store.commit("addHomeCardItem", "lessons-table-quick-view"); - serviceStore.homecard.initialization = false; - } - - const list = serviceStore.homecard.selected; - return list.filter(item => homeCards[item]).map(item => homeCards[item]); + return validNames; }); const props = defineProps<{ @@ -55,7 +48,7 @@ watch(show, () => { /** 未选择的卡片名字列表,使用差集运算得到 */ const unselectedList = computed(() => { const list = [...validList.value]; - serviceStore.homecard.selected.forEach((name => { + homeCardStore.namesOfSelected.forEach((name => { const toDelete = list.findIndex(item => item === name); list.splice(toDelete, 1); })); @@ -63,11 +56,11 @@ const unselectedList = computed(() => { }); const handleAddItem = (value: HomeCardName) => { - store.commit("addHomeCardItem", value); + homeCardStore.add(value); }; const handleRemoveItem = (value: HomeCardName) => { - store.commit("removeHomeCardItem", value); + homeCardStore.remove(value); }; const handleClose = () => { @@ -85,7 +78,7 @@ const handleClose = () => { - - + + @@ -22,7 +21,7 @@ 还没有绑定任何服务,请到我的页面绑定 @@ -38,25 +37,15 @@ /> - + - + 激活 - + - {{ registerTips }} + {{ generalInfoStore.info.registerTips }} @@ -65,75 +54,38 @@ diff --git a/src/components/NavBar/index.vue b/src/components/NavBar/index.vue index 0b30cb5c..53d564c6 100644 --- a/src/components/NavBar/index.vue +++ b/src/components/NavBar/index.vue @@ -9,7 +9,7 @@ 首页 - + @@ -22,7 +22,7 @@ 功能 - + @@ -35,7 +35,7 @@ 我的 - + @@ -55,11 +55,16 @@ import AppList from "../AppList/index.vue"; import PopView from "../PopView/index.vue"; import BottomPanel from "../BottomPanel/index.vue"; import { WBadge } from ".."; -import { serviceStore } from "@/store"; import Taro from "@tarojs/taro"; import "./index.scss"; import { computed, ref, toRefs } from "vue"; -import { checkNotification } from "@/utils"; +import useNewFeatureStore from "@/store/service/newFeature"; +import useThemeStore from "@/store/service/theme"; +import useUserStore from "@/store/service/user"; + +const themeStore = useThemeStore(); +const userStore = useUserStore(); +const newFeatureStore = useNewFeatureStore(); const emit = defineEmits(["plusClick", "onChange"]); const showPop = ref(false); @@ -68,19 +73,10 @@ const props = defineProps<{ pageName: string }>(); -const notificationActive = computed(() => { - const store = serviceStore.notification.state; - return { - home: checkNotification("home", store), - applist: checkNotification("applist", store), - my: checkNotification("my", store) - }; -}); -// 主题过渡方案 -const themeMode = computed(() => serviceStore.theme.themeMode); -const homeClass = computed(() => themeMode.value === "walk" ? "icon-a-15th-home1" : "icon-home"); -const applyClass = computed(() => themeMode.value === "walk" ? "icon-a-15th-apply1" : "icon-applist"); -const personClass = computed(() => themeMode.value === "walk" ? "icon-a-15th-person1" : "icon-user"); +// FIXME: 主题过渡方案 +const homeClass = computed(() => themeStore.current?.name === "walk" ? "icon-a-15th-home1" : "icon-home"); +const applyClass = computed(() => themeStore.current?.name === "walk" ? "icon-a-15th-apply1" : "icon-applist"); +const personClass = computed(() => themeStore.current?.name === "walk" ? "icon-a-15th-person1" : "icon-user"); const { pageName } = toRefs(props); @@ -95,7 +91,7 @@ const nav = (val: string) => { }; const plusClick = () => { - if (!serviceStore.user.isActive) { + if (!userStore.isActive) { Taro.showToast({ icon: "none", title: "激活账号以使用功能" diff --git a/src/components/Questionnaire/index.scss b/src/components/Questionnaire/index.scss index 43a26353..b2448e89 100644 --- a/src/components/Questionnaire/index.scss +++ b/src/components/Questionnaire/index.scss @@ -29,10 +29,11 @@ max-height: 500px; margin-top: 0.5rem; border-top: 2Px solid var(--wjh-color-border); - transition: all 0.3s; + transition: max-height 0.3s; } .questionnaire-title { + flex: 1; font-size: 1.3rem; display: flex; align-items: center; @@ -64,4 +65,4 @@ line-height: 200%; } -} +} \ No newline at end of file diff --git a/src/components/Questionnaire/index.vue b/src/components/Questionnaire/index.vue index fe229345..3342cb60 100644 --- a/src/components/Questionnaire/index.vue +++ b/src/components/Questionnaire/index.vue @@ -5,12 +5,12 @@ icon-name="questionnaire" > - + 调查问卷 - - @@ -30,6 +30,8 @@ diff --git a/src/pages/electricity/index.vue b/src/pages/electricity/index.vue index 50b597c2..969882ec 100644 --- a/src/pages/electricity/index.vue +++ b/src/pages/electricity/index.vue @@ -3,7 +3,7 @@ - + @@ -12,9 +12,9 @@ - {{ roomInfo.roomName }} + {{ room.name }} - 房间号 {{ roomInfo.roomCode }} + 房间号 {{ room.code }} @@ -25,7 +25,7 @@ 剩余总电量 - {{ balance }} + {{ balance.toFixed(2) }} @@ -82,64 +82,23 @@ import { WList, WListItem } from "@/components"; -import { useRequest } from "@/hooks"; -import { YxyService } from "@/services"; import { computed } from "vue"; -import store, { serviceStore } from "@/store"; import Taro from "@tarojs/taro"; +import useElectricityBalanceStore from "@/store/service/balance"; +import { storeToRefs } from "pinia"; +import { useRequestNext } from "@/hooks"; +import { YxyService } from "@/services"; +import ElectricityCoverImage from "@/assets/photos/electricity.svg"; +import { Image as TaroImage } from "@tarojs/components"; -const roomInfo = computed(() => ({ - roomName: serviceStore.electricity.roomName, - roomCode: serviceStore.electricity.roomCode -})); - -const balance = computed(() => serviceStore.electricity.balance); - -const todayConsumption = computed(() => (serviceStore.electricity.todayConsumption)); - -useRequest(YxyService.queryBalance, { - onBefore: () => { - Taro.showLoading({ title: "正在加载" }); - }, - onSuccess: (response) => { - if (response.data.code === 1) { - store.commit("setElectricityStore", { - roomName: response.data.data.display_room_name, - roomCode: response.data.data.room_code, - balance: response.data.data.soc - }); - } else { - throw new Error(response.data.msg || response.errMsg); - } - Taro.hideLoading(); - }, - onError: (error) => { - if (error instanceof Error) - return error.message; - else return `查询电费余额失败\r\n${error.errMsg}`; - } -}); - -const { - loading: consumptionLoading -} = useRequest(YxyService.queryConsumption, { - onSuccess: (response) => { - if (response.data.code === 1) { - store.commit("setConsumption", response.data.data[0].used); - } else { - throw new Error(response.data.msg); - } - }, - onError: (error) => { - if (error instanceof Error) - return error.message; +const { room, balance } = storeToRefs(useElectricityBalanceStore()); +const { loading: consumptionLoading, data: consumption } = useRequestNext( + YxyService.queryConsumption, { + initialData: [] } -}); - -const isUrgent = computed(() => { - if (balance.value) return balance.value < 20; - else return false; -}); +); +const todayConsumption = computed(() => consumption.value[0]?.used); +const isUrgent = computed(() => balance.value < 20); function nav2Record() { Taro.navigateTo({ diff --git a/src/pages/electricity/record/index.vue b/src/pages/electricity/record/index.vue index dc3bf310..457eb24f 100644 --- a/src/pages/electricity/record/index.vue +++ b/src/pages/electricity/record/index.vue @@ -21,7 +21,7 @@ 正在加载中... - - + + 点击订阅 @@ -31,44 +31,47 @@ import { Card, ThemeConfig, TitleBar, WButton } from "@/components"; import { YxyService } from "@/services"; import Taro from "@tarojs/taro"; -import { debounce } from "@/utils"; import styles from "./index.module.scss"; +import { RequestError } from "@/utils"; +import { useRequestNext } from "@/hooks"; /** - * 订阅 - * 包含两步 + * 订阅包含两步 * 1. 向微信请求订阅 * 2. 给服务器发请求 */ -const subscribe = async () => { - const tmpId = import.meta.env.VITE_ELECTRICITY_SUBSCRIBE_TEMPLATE_ID; +async function subscribeImpl() { + const tmplId = import.meta.env.VITE_ELECTRICITY_SUBSCRIBE_TEMPLATE_ID; - Taro.requestSubscribeMessage({ - tmplIds: [tmpId], // 微信小程序的模板 id - entityIds: [], // 支付宝小程序的模板 id,这里为了类型正确,声明一个空数组,实际消费不到 - success: async res => { - if (res[tmpId] === "accept") { - try { - const res = await YxyService.queryElectricitySubscription(); - if (res.data.code === 1) { - Taro.showToast({ - title: "订阅成功", - icon: "none" - }); - } else { - throw new Error(res.data.msg); - } - } catch (e) { - Taro.showToast({ - title: e?.message || "订阅失败", - icon: "none" - }); - } - } + try { + // @ts-expect-error 少了个 entityIds,这是支付宝小程序的模板 id,实际消费不到 + const wxResponse = await Taro.requestSubscribeMessage({ tmplIds: [tmplId] }); + if (wxResponse[tmplId] === "accept") { + await YxyService.queryElectricitySubscription(); + Taro.showToast({ title: "订阅成功", icon: "none" }); } - }); + } catch (e) { + console.error(e); + if (e instanceof RequestError) throw e; + if (e.errMsg) throw new Error(e.errMsg); + } }; -const handleClickSubscribe = debounce(subscribe, 1000); +const { loading, run: subscribe } = useRequestNext(subscribeImpl, { + manual: true, + initialData: undefined, + onError: (e) => { + if (e instanceof RequestError) { + Taro.showToast({ title: `订阅异常: ${e.message}`, icon: "none" }); + } else if (e instanceof Error) { + Taro.showToast({ title: `客户端异常: ${e.message}`, icon: "none" }); + } + } +}); + +function handleTapSubscribe() { + if (loading.value) return; + subscribe(); +} diff --git a/src/pages/exam/index.vue b/src/pages/exam/index.vue index 914eff92..fa476660 100644 --- a/src/pages/exam/index.vue +++ b/src/pages/exam/index.vue @@ -3,7 +3,7 @@ - + @@ -14,11 +14,11 @@ - + 无记录 - + @@ -118,8 +118,7 @@ diff --git a/src/pages/freeroom/index.vue b/src/pages/freeroom/index.vue index c65155c1..884b4399 100644 --- a/src/pages/freeroom/index.vue +++ b/src/pages/freeroom/index.vue @@ -3,9 +3,10 @@ - + - + diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 68529c5e..14990f6c 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -4,7 +4,7 @@ { pageName.value = key; }; -const newVersion = updateInfo.version; -if (newVersion && systemStore.version !== newVersion) { - store.commit("setVersion", newVersion); - showUpdateInfo.value = true; -} - diff --git a/src/pages/information/index.vue b/src/pages/information/index.vue index 9250c264..5fb28640 100644 --- a/src/pages/information/index.vue +++ b/src/pages/information/index.vue @@ -12,7 +12,7 @@ {{ information.content.replace(/\\n/g, '\n') }} - Card Image - Card Image - Card Image diff --git a/src/pages/schoolcard/index.vue b/src/pages/schoolcard/index.vue index 62e74833..fedfb668 100644 --- a/src/pages/schoolcard/index.vue +++ b/src/pages/schoolcard/index.vue @@ -3,9 +3,9 @@ - + - ¥ {{ balance }} + ¥ {{ cardBalanceStore.balance }} @@ -69,74 +69,57 @@ diff --git a/src/pages/setting/changePassword/index.scss b/src/pages/setting/changePassword/index.scss index ccf364f4..1f6ab8d7 100644 --- a/src/pages/setting/changePassword/index.scss +++ b/src/pages/setting/changePassword/index.scss @@ -14,3 +14,8 @@ border-radius: 0.2rem; } } + +.warning-text { + color: var(--wjh-color-red-600); + font-size: 0.875rem; +} \ No newline at end of file diff --git a/src/pages/setting/changePassword/index.vue b/src/pages/setting/changePassword/index.vue index a477c800..dd44e624 100644 --- a/src/pages/setting/changePassword/index.vue +++ b/src/pages/setting/changePassword/index.vue @@ -6,20 +6,33 @@ 身份证号码 - + 学号 - + 新密码 - + 确认新密码 - + + + {{ warningText }} + diff --git a/src/pages/suit/myapplication/PreviewCard/index.module.scss b/src/pages/suit/myapplication/PreviewCard/index.module.scss index 67cb64aa..0b62d461 100644 --- a/src/pages/suit/myapplication/PreviewCard/index.module.scss +++ b/src/pages/suit/myapplication/PreviewCard/index.module.scss @@ -41,7 +41,6 @@ } .body { - border-bottom: 2Px solid var(--wjh-color-border); .flex-container{ padding: 50px 0; diff --git a/src/pages/suit/myapplication/PreviewCard/index.vue b/src/pages/suit/myapplication/PreviewCard/index.vue index 55bcfc78..13019b56 100644 --- a/src/pages/suit/myapplication/PreviewCard/index.vue +++ b/src/pages/suit/myapplication/PreviewCard/index.vue @@ -58,7 +58,7 @@ :key="`${source.id}-${item}`" :class="styles['img-wrapper']" > - @@ -115,7 +115,7 @@ :key="`${source.id}-${item}`" :class="styles['img-wrapper']" > - - import { SuitApplyRecord } from "@/types/Suit"; import { computed, ref, toRefs } from "vue"; -import { useRequest } from "@/hooks"; +import { Image as TaroImage } from "@tarojs/components"; import { SuitService } from "@/services"; import { WButton } from "@/components"; import Modal from "./Modal/index.vue"; import Taro from "@tarojs/taro"; import dayjs from "dayjs"; import styles from "./index.module.scss"; +import { RequestError } from "@/utils"; const props = defineProps<{ source: SuitApplyRecord; @@ -225,25 +226,10 @@ const imageList = computed(() => [ source.value?.img || "https://api.cnpatrickstar.com/img/b57036a9-c17c-41af-9e5d-893af1aa7d9a.jpg" ].filter(item => !!item) as string[]); const { source } = toRefs(props); -const emit = defineEmits(["isDelete"]); -const { run } = useRequest( - SuitService.deleteRecords, { - defaultParams: { - borrow_id: source.value.id - }, - loadingDelay: 60, - manual: true, - onSuccess: (res) => { - if (res.data.code === 1) { - emit("isDelete", "true"); - } else throw new Error(res.data.msg); - }, - onError: (e: Error) => { - return `加载申请信息失败\r\n${e.message || "网络错误"}`; - } - } -); +const emit = defineEmits<{ + cancel: [] +}>(); const isOverTime = computed(() => { const agotime = dayjs().subtract(7, "day"); @@ -265,9 +251,15 @@ const onCancel = () => { isShowConfirm.value = false; }; -const onConfirm = () => { +async function handleConfirm() { isShowConfirm.value = false; - run(); + try { + await SuitService.deleteRecords({ borrow_id: source.value.id }); + emit("cancel"); + } catch (e) { + if (e instanceof RequestError) + Taro.showToast({ title: `取消申请失败: ${e.message}`, icon: "none" }); + } }; const handleLoadFinish = ({ detail: { height, width } }) => { diff --git a/src/pages/suit/myapplication/index.vue b/src/pages/suit/myapplication/index.vue index a724abd7..0ce1e178 100644 --- a/src/pages/suit/myapplication/index.vue +++ b/src/pages/suit/myapplication/index.vue @@ -1,12 +1,12 @@