王家程 hai 11 meses
pai
achega
bd3863bf10
Modificáronse 8 ficheiros con 202 adicións e 132 borrados
  1. 1 0
      .husky/_/.gitignore
  2. 1 1
      .husky/commit-msg
  3. 0 1
      .husky/pre-commit
  4. 5 0
      .npmrc
  5. 73 3
      README.md
  6. 3 5
      main.ts
  7. 5 3
      package.json
  8. 114 119
      pnpm-lock.yaml

+ 1 - 0
.husky/_/.gitignore

@@ -0,0 +1 @@
+*

+ 1 - 1
.husky/commit-msg

@@ -1,4 +1,4 @@
 #!/usr/bin/env sh
 . "$(dirname -- "$0")/_/husky.sh"
 
-npx --no-install commitlint --edit 
+npx --no-install commitlint --edit 

+ 0 - 1
.husky/pre-commit

@@ -1,5 +1,4 @@
 #!/usr/bin/env sh
-
 . "$(dirname -- "$0")/_/husky.sh"
 
 echo '----commit 检查开始----'

+ 5 - 0
.npmrc

@@ -0,0 +1,5 @@
+registry = https://registry.npmjs.org
+
+strict-peer-dependencies=false
+auto-install-peers=true
+shamefully-hoist=true

+ 73 - 3
README.md

@@ -2,9 +2,79 @@
  * @Author: wjc
  * @Date: 2024-05-27 17:21:43
  * @LastEditors: wjc
- * @LastEditTime: 2024-05-27 17:22:59
- * @Description: 
+ * @LastEditTime: 2024-05-28 16:26:15
+ * @Description:
 -->
+
 ## huiguanjia-app
 
-hbuilderx 创建模板工程 + 第三方依赖支持
+hbuilderx 创建模板工程 + 第三方依赖支持
+
+### husky 配置
+
+安装 husky
+
+> nodejs >= 18
+
+```bash
+pnpm add husky@8.0.3 -D
+```
+
+配置 package.json
+
+配置该脚本后,install 后会自动执行该命令
+
+```json
+script : { "prepare": "husky install" }
+```
+
+添加 git 钩子
+
+```bash
+npx husky add .husky/pre-commit "pnpm pre-commit"
+```
+
+安装 lint-staged
+
+用于只检查暂存区的文件
+
+```bash
+pnpm add lint-staged -D
+```
+
+配置 lint-staged
+
+```json
+  "lint-staged": {
+    "*.{vue,js,ts,jsx,tsx}": [
+      "pnpm format",
+      "pnpm lint"
+    ],
+    "*.{css,scss,vue,html}": [
+      "pnpm format",
+      "pnpm lint:style"
+    ]
+  }
+```
+
+安装 eslint 和配置
+
+配置 lint 脚本命令
+
+添加 husky commit 钩子
+
+```bash
+npx husky add .husky/pre-commit "npm run lint"
+```
+
+安装和配置 commitlint
+
+添加 husky commit type校验 钩子
+
+```bash
+npx husky add .husky/commit-msg "npx --no-install commitlint --edit $HUSKY_GIT_PARAMS"
+```
+
+问题1: husky 不生效?
+
+> 找到项目的.git 文件,查看是否有hooks目录及文件,没有的话,手动安装husky;如有hooks目录,尝试删除该目录后卸载husky后重新安装,重新设置husky钩子函数

+ 3 - 5
main.ts

@@ -2,22 +2,20 @@
  * @Author: wjc
  * @Date: 2024-05-27 11:49:45
  * @LastEditors: wjc
- * @LastEditTime: 2024-05-28 11:27:30
- * @Description: 
+ * @LastEditTime: 2024-05-28 16:11:28
+ * @Description:
  */
 import { createSSRApp } from 'vue'
 import uView from 'uview-ui'
 
 import App from './App.vue'
 
-var d = 1;
-
 export function createApp() {
   const app = createSSRApp(App)
 
   app.use(uView)
 
   return {
-    app
+    app,
   }
 }

+ 5 - 3
package.json

@@ -25,9 +25,11 @@
     "eslint-config-standard": "^17.1.0",
     "eslint-import-resolver-typescript": "^3.6.1",
     "eslint-plugin-import": "^2.29.1",
+    "eslint-plugin-n": "^17.7.0",
     "eslint-plugin-prettier": "^5.1.3",
+    "eslint-plugin-promise": "^6.2.0",
     "eslint-plugin-vue": "^9.26.0",
-    "husky": "^8.0.3",
+    "husky": "8.0.3",
     "lint-staged": "^15.2.5",
     "postcss": "^8.4.38",
     "postcss-html": "^1.7.0",
@@ -48,11 +50,11 @@
     "vue": "^3.4.27"
   },
   "lint-staged": {
-    "**/*.{vue,js,ts,jsx,tsx}": [
+    "*.{vue,js,ts,jsx,tsx}": [
       "pnpm format",
       "pnpm lint"
     ],
-    "**/*.{css,scss,vue,html}": [
+    "*.{css,scss,vue,html}": [
       "pnpm format",
       "pnpm lint:style"
     ]

+ 114 - 119
pnpm-lock.yaml

@@ -1,4 +1,4 @@
-lockfileVersion: 5.4
+lockfileVersion: 5.3
 
 specifiers:
   '@commitlint/cli': ^19.3.0
@@ -11,9 +11,11 @@ specifiers:
   eslint-config-standard: ^17.1.0
   eslint-import-resolver-typescript: ^3.6.1
   eslint-plugin-import: ^2.29.1
+  eslint-plugin-n: ^17.7.0
   eslint-plugin-prettier: ^5.1.3
+  eslint-plugin-promise: ^6.2.0
   eslint-plugin-vue: ^9.26.0
-  husky: ^8.0.3
+  husky: 8.0.3
   lint-staged: ^15.2.5
   postcss: ^8.4.38
   postcss-html: ^1.7.0
@@ -38,15 +40,17 @@ dependencies:
 devDependencies:
   '@commitlint/cli': 19.3.0_typescript@5.4.5
   '@commitlint/config-conventional': 19.2.2
-  '@typescript-eslint/eslint-plugin': 7.10.0_q5knmhzsdunw7mq4jkyrojkpea
-  '@typescript-eslint/parser': 7.10.0_te743w6atip6hhlha3uq43n2xe
+  '@typescript-eslint/eslint-plugin': 7.10.0_8754d61f321d1b6fb21c4ab117254f20
+  '@typescript-eslint/parser': 7.10.0_eslint@8.57.0+typescript@5.4.5
   commitlint: 19.3.0_typescript@5.4.5
   eslint: 8.57.0
   eslint-config-prettier: 9.1.0_eslint@8.57.0
-  eslint-config-standard: 17.1.0_jrbq5spb6ym3vlo5mnlvtmgpyy
-  eslint-import-resolver-typescript: 3.6.1_6ndoppmvxs7y23xzo445xvejbm
-  eslint-plugin-import: 2.29.1_okz4fzlljwregdtoa4s5p53fmy
-  eslint-plugin-prettier: 5.1.3_udeglvt2rvqfn252kbszwwr7nu
+  eslint-config-standard: 17.1.0_1eef44158e301fe54d2546202f5dfe6e
+  eslint-import-resolver-typescript: 3.6.1_4c430ec9e1f619baaddd635759b0cfc6
+  eslint-plugin-import: 2.29.1_eslint@8.57.0
+  eslint-plugin-n: 17.7.0_eslint@8.57.0
+  eslint-plugin-prettier: 5.1.3_a0c865d67a8d6056ebba50659b5a3f6d
+  eslint-plugin-promise: 6.2.0_eslint@8.57.0
   eslint-plugin-vue: 9.26.0_eslint@8.57.0
   husky: 8.0.3
   lint-staged: 15.2.5
@@ -56,12 +60,12 @@ devDependencies:
   prettier: 3.2.5
   stylelint: 16.6.0_typescript@5.4.5
   stylelint-config-prettier: 9.0.5_stylelint@16.6.0
-  stylelint-config-standard-scss: 13.1.0_dlfrvn7dlay6wk4wmepidnklpu
-  stylelint-config-standard-vue: 1.0.0_nwu2gmmtw46t2hka3baezeqg5a
+  stylelint-config-standard-scss: 13.1.0_postcss@8.4.38+stylelint@16.6.0
+  stylelint-config-standard-vue: 1.0.0_6da9a33193b73d3d1d40d8404c9206e8
   stylelint-order: 6.0.4_stylelint@16.6.0
   stylelint-scss: 6.3.0_stylelint@16.6.0
   typescript: 5.4.5
-  typescript-eslint: 7.11.0_te743w6atip6hhlha3uq43n2xe
+  typescript-eslint: 7.11.0_eslint@8.57.0+typescript@5.4.5
   vue-eslint-parser: 9.4.2_eslint@8.57.0
 
 packages:
@@ -196,7 +200,7 @@ packages:
       '@commitlint/types': 19.0.3
       chalk: 5.3.0
       cosmiconfig: 9.0.0_typescript@5.4.5
-      cosmiconfig-typescript-loader: 5.0.0_xhz6evq5o7hc4prz3ydhma3ree
+      cosmiconfig-typescript-loader: 5.0.0_b9f3e2561d77ce2e3e39de0676037121
       lodash.isplainobject: 4.0.6
       lodash.merge: 4.6.2
       lodash.uniq: 4.5.0
@@ -273,7 +277,7 @@ packages:
       chalk: 5.3.0
     dev: true
 
-  /@csstools/css-parser-algorithms/2.6.3_yd6v5gcgquj6gckkguvqtxveja:
+  /@csstools/css-parser-algorithms/2.6.3_@csstools+css-tokenizer@2.3.1:
     resolution: {integrity: sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==}
     engines: {node: ^14 || ^16 || >=18}
     peerDependencies:
@@ -287,18 +291,18 @@ packages:
     engines: {node: ^14 || ^16 || >=18}
     dev: true
 
-  /@csstools/media-query-list-parser/2.1.11_stmod5e3pyj66s67bgdnbekcny:
+  /@csstools/media-query-list-parser/2.1.11_94d8e1f49b7e13ef4bdf0986d091426e:
     resolution: {integrity: sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==}
     engines: {node: ^14 || ^16 || >=18}
     peerDependencies:
       '@csstools/css-parser-algorithms': ^2.6.3
       '@csstools/css-tokenizer': ^2.3.1
     dependencies:
-      '@csstools/css-parser-algorithms': 2.6.3_yd6v5gcgquj6gckkguvqtxveja
+      '@csstools/css-parser-algorithms': 2.6.3_@csstools+css-tokenizer@2.3.1
       '@csstools/css-tokenizer': 2.3.1
     dev: true
 
-  /@csstools/selector-specificity/3.1.1_jbx4mus4njtel3ypyfykqgp6rq:
+  /@csstools/selector-specificity/3.1.1_postcss-selector-parser@6.1.0:
     resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==}
     engines: {node: ^14 || ^16 || >=18}
     peerDependencies:
@@ -414,7 +418,7 @@ packages:
       undici-types: 5.26.5
     dev: true
 
-  /@typescript-eslint/eslint-plugin/7.10.0_q5knmhzsdunw7mq4jkyrojkpea:
+  /@typescript-eslint/eslint-plugin/7.10.0_8754d61f321d1b6fb21c4ab117254f20:
     resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -426,10 +430,10 @@ packages:
         optional: true
     dependencies:
       '@eslint-community/regexpp': 4.10.0
-      '@typescript-eslint/parser': 7.10.0_te743w6atip6hhlha3uq43n2xe
+      '@typescript-eslint/parser': 7.10.0_eslint@8.57.0+typescript@5.4.5
       '@typescript-eslint/scope-manager': 7.10.0
-      '@typescript-eslint/type-utils': 7.10.0_te743w6atip6hhlha3uq43n2xe
-      '@typescript-eslint/utils': 7.10.0_te743w6atip6hhlha3uq43n2xe
+      '@typescript-eslint/type-utils': 7.10.0_eslint@8.57.0+typescript@5.4.5
+      '@typescript-eslint/utils': 7.10.0_eslint@8.57.0+typescript@5.4.5
       '@typescript-eslint/visitor-keys': 7.10.0
       eslint: 8.57.0
       graphemer: 1.4.0
@@ -441,7 +445,7 @@ packages:
       - supports-color
     dev: true
 
-  /@typescript-eslint/eslint-plugin/7.11.0_e7lu4xmewfzux7ipllk635e7bi:
+  /@typescript-eslint/eslint-plugin/7.11.0_27d74e5d84b1734bfd0f5ad5edf49f0a:
     resolution: {integrity: sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -453,10 +457,10 @@ packages:
         optional: true
     dependencies:
       '@eslint-community/regexpp': 4.10.0
-      '@typescript-eslint/parser': 7.11.0_te743w6atip6hhlha3uq43n2xe
+      '@typescript-eslint/parser': 7.11.0_eslint@8.57.0+typescript@5.4.5
       '@typescript-eslint/scope-manager': 7.11.0
-      '@typescript-eslint/type-utils': 7.11.0_te743w6atip6hhlha3uq43n2xe
-      '@typescript-eslint/utils': 7.11.0_te743w6atip6hhlha3uq43n2xe
+      '@typescript-eslint/type-utils': 7.11.0_eslint@8.57.0+typescript@5.4.5
+      '@typescript-eslint/utils': 7.11.0_eslint@8.57.0+typescript@5.4.5
       '@typescript-eslint/visitor-keys': 7.11.0
       eslint: 8.57.0
       graphemer: 1.4.0
@@ -468,7 +472,7 @@ packages:
       - supports-color
     dev: true
 
-  /@typescript-eslint/parser/7.10.0_te743w6atip6hhlha3uq43n2xe:
+  /@typescript-eslint/parser/7.10.0_eslint@8.57.0+typescript@5.4.5:
     resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -489,7 +493,7 @@ packages:
       - supports-color
     dev: true
 
-  /@typescript-eslint/parser/7.11.0_te743w6atip6hhlha3uq43n2xe:
+  /@typescript-eslint/parser/7.11.0_eslint@8.57.0+typescript@5.4.5:
     resolution: {integrity: sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -526,7 +530,7 @@ packages:
       '@typescript-eslint/visitor-keys': 7.11.0
     dev: true
 
-  /@typescript-eslint/type-utils/7.10.0_te743w6atip6hhlha3uq43n2xe:
+  /@typescript-eslint/type-utils/7.10.0_eslint@8.57.0+typescript@5.4.5:
     resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -537,7 +541,7 @@ packages:
         optional: true
     dependencies:
       '@typescript-eslint/typescript-estree': 7.10.0_typescript@5.4.5
-      '@typescript-eslint/utils': 7.10.0_te743w6atip6hhlha3uq43n2xe
+      '@typescript-eslint/utils': 7.10.0_eslint@8.57.0+typescript@5.4.5
       debug: 4.3.4
       eslint: 8.57.0
       ts-api-utils: 1.3.0_typescript@5.4.5
@@ -546,7 +550,7 @@ packages:
       - supports-color
     dev: true
 
-  /@typescript-eslint/type-utils/7.11.0_te743w6atip6hhlha3uq43n2xe:
+  /@typescript-eslint/type-utils/7.11.0_eslint@8.57.0+typescript@5.4.5:
     resolution: {integrity: sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -557,7 +561,7 @@ packages:
         optional: true
     dependencies:
       '@typescript-eslint/typescript-estree': 7.11.0_typescript@5.4.5
-      '@typescript-eslint/utils': 7.11.0_te743w6atip6hhlha3uq43n2xe
+      '@typescript-eslint/utils': 7.11.0_eslint@8.57.0+typescript@5.4.5
       debug: 4.3.4
       eslint: 8.57.0
       ts-api-utils: 1.3.0_typescript@5.4.5
@@ -620,7 +624,7 @@ packages:
       - supports-color
     dev: true
 
-  /@typescript-eslint/utils/7.10.0_te743w6atip6hhlha3uq43n2xe:
+  /@typescript-eslint/utils/7.10.0_eslint@8.57.0+typescript@5.4.5:
     resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -636,7 +640,7 @@ packages:
       - typescript
     dev: true
 
-  /@typescript-eslint/utils/7.11.0_te743w6atip6hhlha3uq43n2xe:
+  /@typescript-eslint/utils/7.11.0_eslint@8.57.0+typescript@5.4.5:
     resolution: {integrity: sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -1080,13 +1084,13 @@ packages:
     engines: {node: '>=16'}
     hasBin: true
     dependencies:
-      JSONStream: 1.3.5
       is-text-path: 2.0.0
+      JSONStream: 1.3.5
       meow: 12.1.1
       split2: 4.2.0
     dev: true
 
-  /cosmiconfig-typescript-loader/5.0.0_xhz6evq5o7hc4prz3ydhma3ree:
+  /cosmiconfig-typescript-loader/5.0.0_b9f3e2561d77ce2e3e39de0676037121:
     resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==}
     engines: {node: '>=v16'}
     peerDependencies:
@@ -1181,11 +1185,6 @@ packages:
 
   /debug/3.2.7:
     resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
-    peerDependencies:
-      supports-color: '*'
-    peerDependenciesMeta:
-      supports-color:
-        optional: true
     dependencies:
       ms: 2.1.2
     dev: true
@@ -1420,6 +1419,16 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
+  /eslint-compat-utils/0.5.0_eslint@8.57.0:
+    resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==}
+    engines: {node: '>=12'}
+    peerDependencies:
+      eslint: '>=6.0.0'
+    dependencies:
+      eslint: 8.57.0
+      semver: 7.6.2
+    dev: true
+
   /eslint-config-prettier/9.1.0_eslint@8.57.0:
     resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
     hasBin: true
@@ -1429,7 +1438,7 @@ packages:
       eslint: 8.57.0
     dev: true
 
-  /eslint-config-standard/17.1.0_jrbq5spb6ym3vlo5mnlvtmgpyy:
+  /eslint-config-standard/17.1.0_1eef44158e301fe54d2546202f5dfe6e:
     resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==}
     engines: {node: '>=12.0.0'}
     peerDependencies:
@@ -1439,7 +1448,9 @@ packages:
       eslint-plugin-promise: ^6.0.0
     dependencies:
       eslint: 8.57.0
-      eslint-plugin-import: 2.29.1_okz4fzlljwregdtoa4s5p53fmy
+      eslint-plugin-import: 2.29.1_eslint@8.57.0
+      eslint-plugin-n: 17.7.0_eslint@8.57.0
+      eslint-plugin-promise: 6.2.0_eslint@8.57.0
     dev: true
 
   /eslint-import-resolver-node/0.3.9:
@@ -1448,11 +1459,9 @@ packages:
       debug: 3.2.7
       is-core-module: 2.13.1
       resolve: 1.22.8
-    transitivePeerDependencies:
-      - supports-color
     dev: true
 
-  /eslint-import-resolver-typescript/3.6.1_6ndoppmvxs7y23xzo445xvejbm:
+  /eslint-import-resolver-typescript/3.6.1_4c430ec9e1f619baaddd635759b0cfc6:
     resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -1462,89 +1471,47 @@ packages:
       debug: 4.3.4
       enhanced-resolve: 5.16.1
       eslint: 8.57.0
-      eslint-module-utils: 2.8.1_okz4fzlljwregdtoa4s5p53fmy
-      eslint-plugin-import: 2.29.1_okz4fzlljwregdtoa4s5p53fmy
+      eslint-module-utils: 2.8.1_eslint@8.57.0
+      eslint-plugin-import: 2.29.1_eslint@8.57.0
       fast-glob: 3.3.2
       get-tsconfig: 4.7.5
       is-core-module: 2.13.1
       is-glob: 4.0.3
     transitivePeerDependencies:
-      - '@typescript-eslint/parser'
-      - eslint-import-resolver-node
-      - eslint-import-resolver-webpack
       - supports-color
     dev: true
 
-  /eslint-module-utils/2.8.1_okz4fzlljwregdtoa4s5p53fmy:
+  /eslint-module-utils/2.8.1_eslint@8.57.0:
     resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
     engines: {node: '>=4'}
     peerDependencies:
-      '@typescript-eslint/parser': '*'
       eslint: '*'
-      eslint-import-resolver-node: '*'
-      eslint-import-resolver-typescript: '*'
-      eslint-import-resolver-webpack: '*'
     peerDependenciesMeta:
-      '@typescript-eslint/parser':
-        optional: true
       eslint:
         optional: true
-      eslint-import-resolver-node:
-        optional: true
-      eslint-import-resolver-typescript:
-        optional: true
-      eslint-import-resolver-webpack:
-        optional: true
     dependencies:
-      '@typescript-eslint/parser': 7.10.0_te743w6atip6hhlha3uq43n2xe
       debug: 3.2.7
       eslint: 8.57.0
-      eslint-import-resolver-typescript: 3.6.1_6ndoppmvxs7y23xzo445xvejbm
-    transitivePeerDependencies:
-      - supports-color
     dev: true
 
-  /eslint-module-utils/2.8.1_svuc4z4joveiktwc6lqdggoeu4:
-    resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==}
-    engines: {node: '>=4'}
+  /eslint-plugin-es-x/7.6.0_eslint@8.57.0:
+    resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==}
+    engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
-      '@typescript-eslint/parser': '*'
-      eslint: '*'
-      eslint-import-resolver-node: '*'
-      eslint-import-resolver-typescript: '*'
-      eslint-import-resolver-webpack: '*'
-    peerDependenciesMeta:
-      '@typescript-eslint/parser':
-        optional: true
-      eslint:
-        optional: true
-      eslint-import-resolver-node:
-        optional: true
-      eslint-import-resolver-typescript:
-        optional: true
-      eslint-import-resolver-webpack:
-        optional: true
+      eslint: '>=8'
     dependencies:
-      '@typescript-eslint/parser': 7.10.0_te743w6atip6hhlha3uq43n2xe
-      debug: 3.2.7
+      '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0
+      '@eslint-community/regexpp': 4.10.0
       eslint: 8.57.0
-      eslint-import-resolver-node: 0.3.9
-      eslint-import-resolver-typescript: 3.6.1_6ndoppmvxs7y23xzo445xvejbm
-    transitivePeerDependencies:
-      - supports-color
+      eslint-compat-utils: 0.5.0_eslint@8.57.0
     dev: true
 
-  /eslint-plugin-import/2.29.1_okz4fzlljwregdtoa4s5p53fmy:
+  /eslint-plugin-import/2.29.1_eslint@8.57.0:
     resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
     engines: {node: '>=4'}
     peerDependencies:
-      '@typescript-eslint/parser': '*'
       eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
-    peerDependenciesMeta:
-      '@typescript-eslint/parser':
-        optional: true
     dependencies:
-      '@typescript-eslint/parser': 7.10.0_te743w6atip6hhlha3uq43n2xe
       array-includes: 3.1.8
       array.prototype.findlastindex: 1.2.5
       array.prototype.flat: 1.3.2
@@ -1553,7 +1520,7 @@ packages:
       doctrine: 2.1.0
       eslint: 8.57.0
       eslint-import-resolver-node: 0.3.9
-      eslint-module-utils: 2.8.1_svuc4z4joveiktwc6lqdggoeu4
+      eslint-module-utils: 2.8.1_eslint@8.57.0
       hasown: 2.0.2
       is-core-module: 2.13.1
       is-glob: 4.0.3
@@ -1563,13 +1530,26 @@ packages:
       object.values: 1.2.0
       semver: 6.3.1
       tsconfig-paths: 3.15.0
-    transitivePeerDependencies:
-      - eslint-import-resolver-typescript
-      - eslint-import-resolver-webpack
-      - supports-color
     dev: true
 
-  /eslint-plugin-prettier/5.1.3_udeglvt2rvqfn252kbszwwr7nu:
+  /eslint-plugin-n/17.7.0_eslint@8.57.0:
+    resolution: {integrity: sha512-4Jg4ZKVE4VjHig2caBqPHYNW5na84RVufUuipFLJbgM/G57O6FdpUKJbHakCDJb/yjQuyqVzYWRtU3HNYaZUwg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: '>=8.23.0'
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.0
+      enhanced-resolve: 5.16.1
+      eslint: 8.57.0
+      eslint-plugin-es-x: 7.6.0_eslint@8.57.0
+      get-tsconfig: 4.7.5
+      globals: 15.3.0
+      ignore: 5.3.1
+      minimatch: 9.0.4
+      semver: 7.6.2
+    dev: true
+
+  /eslint-plugin-prettier/5.1.3_a0c865d67a8d6056ebba50659b5a3f6d:
     resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
@@ -1590,6 +1570,15 @@ packages:
       synckit: 0.8.8
     dev: true
 
+  /eslint-plugin-promise/6.2.0_eslint@8.57.0:
+    resolution: {integrity: sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
+    dependencies:
+      eslint: 8.57.0
+    dev: true
+
   /eslint-plugin-vue/9.26.0_eslint@8.57.0:
     resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==}
     engines: {node: ^14.17.0 || >=16.0.0}
@@ -1957,6 +1946,11 @@ packages:
       type-fest: 0.20.2
     dev: true
 
+  /globals/15.3.0:
+    resolution: {integrity: sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==}
+    engines: {node: '>=18'}
+    dev: true
+
   /globalthis/1.0.4:
     resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
     engines: {node: '>= 0.4'}
@@ -3129,7 +3123,7 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
-  /stylelint-config-html/1.1.0_nwu2gmmtw46t2hka3baezeqg5a:
+  /stylelint-config-html/1.1.0_6da9a33193b73d3d1d40d8404c9206e8:
     resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==}
     engines: {node: ^12 || >=14}
     peerDependencies:
@@ -3150,7 +3144,7 @@ packages:
       stylelint: 16.6.0_typescript@5.4.5
     dev: true
 
-  /stylelint-config-recommended-scss/14.0.0_dlfrvn7dlay6wk4wmepidnklpu:
+  /stylelint-config-recommended-scss/14.0.0_postcss@8.4.38+stylelint@16.6.0:
     resolution: {integrity: sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==}
     engines: {node: '>=18.12.0'}
     peerDependencies:
@@ -3167,7 +3161,7 @@ packages:
       stylelint-scss: 6.3.0_stylelint@16.6.0
     dev: true
 
-  /stylelint-config-recommended-vue/1.5.0_nwu2gmmtw46t2hka3baezeqg5a:
+  /stylelint-config-recommended-vue/1.5.0_6da9a33193b73d3d1d40d8404c9206e8:
     resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==}
     engines: {node: ^12 || >=14}
     peerDependencies:
@@ -3177,7 +3171,7 @@ packages:
       postcss-html: 1.7.0
       semver: 7.6.2
       stylelint: 16.6.0_typescript@5.4.5
-      stylelint-config-html: 1.1.0_nwu2gmmtw46t2hka3baezeqg5a
+      stylelint-config-html: 1.1.0_6da9a33193b73d3d1d40d8404c9206e8
       stylelint-config-recommended: 14.0.0_stylelint@16.6.0
     dev: true
 
@@ -3190,7 +3184,7 @@ packages:
       stylelint: 16.6.0_typescript@5.4.5
     dev: true
 
-  /stylelint-config-standard-scss/13.1.0_dlfrvn7dlay6wk4wmepidnklpu:
+  /stylelint-config-standard-scss/13.1.0_postcss@8.4.38+stylelint@16.6.0:
     resolution: {integrity: sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA==}
     engines: {node: '>=18.12.0'}
     peerDependencies:
@@ -3202,11 +3196,11 @@ packages:
     dependencies:
       postcss: 8.4.38
       stylelint: 16.6.0_typescript@5.4.5
-      stylelint-config-recommended-scss: 14.0.0_dlfrvn7dlay6wk4wmepidnklpu
+      stylelint-config-recommended-scss: 14.0.0_postcss@8.4.38+stylelint@16.6.0
       stylelint-config-standard: 36.0.0_stylelint@16.6.0
     dev: true
 
-  /stylelint-config-standard-vue/1.0.0_nwu2gmmtw46t2hka3baezeqg5a:
+  /stylelint-config-standard-vue/1.0.0_6da9a33193b73d3d1d40d8404c9206e8:
     resolution: {integrity: sha512-wAzU7p6DSlo04pWfCbOcaMq09Nojt0FEsbdxhCBTdC7IguD9ZVl7FP/bvyA0HAHjZGC4JkW7m6WiQaoVMDSuFw==}
     engines: {node: ^12 || >=14}
     peerDependencies:
@@ -3215,8 +3209,8 @@ packages:
     dependencies:
       postcss-html: 1.7.0
       stylelint: 16.6.0_typescript@5.4.5
-      stylelint-config-html: 1.1.0_nwu2gmmtw46t2hka3baezeqg5a
-      stylelint-config-recommended-vue: 1.5.0_nwu2gmmtw46t2hka3baezeqg5a
+      stylelint-config-html: 1.1.0_6da9a33193b73d3d1d40d8404c9206e8
+      stylelint-config-recommended-vue: 1.5.0_6da9a33193b73d3d1d40d8404c9206e8
       stylelint-config-standard: 36.0.0_stylelint@16.6.0
     dev: true
 
@@ -3259,10 +3253,10 @@ packages:
     engines: {node: '>=18.12.0'}
     hasBin: true
     dependencies:
-      '@csstools/css-parser-algorithms': 2.6.3_yd6v5gcgquj6gckkguvqtxveja
+      '@csstools/css-parser-algorithms': 2.6.3_@csstools+css-tokenizer@2.3.1
       '@csstools/css-tokenizer': 2.3.1
-      '@csstools/media-query-list-parser': 2.1.11_stmod5e3pyj66s67bgdnbekcny
-      '@csstools/selector-specificity': 3.1.1_jbx4mus4njtel3ypyfykqgp6rq
+      '@csstools/media-query-list-parser': 2.1.11_94d8e1f49b7e13ef4bdf0986d091426e
+      '@csstools/selector-specificity': 3.1.1_postcss-selector-parser@6.1.0
       '@dual-bundle/import-meta-resolve': 4.1.0
       balanced-match: 2.0.0
       colord: 2.9.3
@@ -3461,7 +3455,7 @@ packages:
       possible-typed-array-names: 1.0.0
     dev: true
 
-  /typescript-eslint/7.11.0_te743w6atip6hhlha3uq43n2xe:
+  /typescript-eslint/7.11.0_eslint@8.57.0+typescript@5.4.5:
     resolution: {integrity: sha512-ZKe3yHF/IS/kCUE4CGE3UgtK+Q7yRk1e9kwEI0rqm9XxMTd9P1eHe0LVVtrZ3oFuIQ2unJ9Xn0vTsLApzJ3aPw==}
     engines: {node: ^18.18.0 || >=20.0.0}
     peerDependencies:
@@ -3471,9 +3465,9 @@ packages:
       typescript:
         optional: true
     dependencies:
-      '@typescript-eslint/eslint-plugin': 7.11.0_e7lu4xmewfzux7ipllk635e7bi
-      '@typescript-eslint/parser': 7.11.0_te743w6atip6hhlha3uq43n2xe
-      '@typescript-eslint/utils': 7.11.0_te743w6atip6hhlha3uq43n2xe
+      '@typescript-eslint/eslint-plugin': 7.11.0_27d74e5d84b1734bfd0f5ad5edf49f0a
+      '@typescript-eslint/parser': 7.11.0_eslint@8.57.0+typescript@5.4.5
+      '@typescript-eslint/utils': 7.11.0_eslint@8.57.0+typescript@5.4.5
       eslint: 8.57.0
       typescript: 5.4.5
     transitivePeerDependencies:
@@ -3484,6 +3478,7 @@ packages:
     resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
     engines: {node: '>=14.17'}
     hasBin: true
+    dev: true
 
   /unbox-primitive/1.0.2:
     resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}