shuishen
2025-10-15 2fee66bc6651e1460ea1dbfb7affff2afa066add
Merge branch 'master' of http://139.196.74.78:10010/r/drone/drone-app
10 files modified
2 files added
1 files deleted
1402 ■■■■■ changed files
pnpm-lock.yaml 702 ●●●● patch | view | raw | blame | history
src/api/work/index.js 62 ●●●●● patch | view | raw | blame | history
src/components/WebViewPlus.vue 13 ●●●●● patch | view | raw | blame | history
src/pages.json 11 ●●●● patch | view | raw | blame | history
src/pages/droneConsole/index.vue 45 ●●●●● patch | view | raw | blame | history
src/pages/inspectionTask/DroneConsole/DroneConsole.vue 30 ●●●●● patch | view | raw | blame | history
src/pages/inspectionTask/TaskDetails/TaskDetails.vue 7 ●●●● patch | view | raw | blame | history
src/pages/inspectionTask/index.vue 43 ●●●●● patch | view | raw | blame | history
src/pages/login/index.vue 4 ●●●● patch | view | raw | blame | history
src/pages/work/index.vue 267 ●●●● patch | view | raw | blame | history
src/subPackages/taskDetail/execution/index.vue 37 ●●●●● patch | view | raw | blame | history
src/subPackages/workDetail/index.vue 156 ●●●●● patch | view | raw | blame | history
src/utils/common/index.js 25 ●●●●● patch | view | raw | blame | history
pnpm-lock.yaml
@@ -10,7 +10,7 @@
dependencies:
  '@dcloudio/uni-app':
    specifier: 3.0.0-4070520250711001
    version: 3.0.0-4070520250711001(@dcloudio/types@3.4.21)(postcss@8.5.6)(vue@3.4.21)
    version: 3.0.0-4070520250711001(@dcloudio/types@3.4.22)(postcss@8.5.6)(vue@3.4.21)
  '@dcloudio/uni-app-harmony':
    specifier: 3.0.0-4070520250711001
    version: 3.0.0-4070520250711001(postcss@8.5.6)(vite@5.2.8)(vue@3.4.21)
@@ -28,7 +28,7 @@
    version: 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
  '@dcloudio/uni-mp-baidu':
    specifier: 3.0.0-4070520250711001
    version: 3.0.0-4070520250711001(@dcloudio/types@3.4.21)(postcss@8.5.6)(vue@3.4.21)
    version: 3.0.0-4070520250711001(@dcloudio/types@3.4.22)(postcss@8.5.6)(vue@3.4.21)
  '@dcloudio/uni-mp-harmony':
    specifier: 3.0.0-4070520250711001
    version: 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
@@ -73,7 +73,7 @@
    version: 1.9.4
  pinia:
    specifier: 2.2.4
    version: 2.2.4(typescript@5.9.2)(vue@3.4.21)
    version: 2.2.4(typescript@5.9.3)(vue@3.4.21)
  pinia-plugin-persistedstate:
    specifier: 4.1.3
    version: 4.1.3(pinia@2.2.4)
@@ -82,7 +82,7 @@
    version: 3.5.41
  vue:
    specifier: 3.4.21
    version: 3.4.21(typescript@5.9.2)
    version: 3.4.21(typescript@5.9.3)
  vue-i18n:
    specifier: 9.1.9
    version: 9.1.9(vue@3.4.21)
@@ -93,7 +93,7 @@
devDependencies:
  '@antfu/eslint-config':
    specifier: 5.0.0
    version: 5.0.0(@unocss/eslint-plugin@66.3.3)(@vue/compiler-sfc@3.5.22)(eslint@9.32.0)(typescript@5.9.2)
    version: 5.0.0(@unocss/eslint-plugin@66.3.3)(@vue/compiler-sfc@3.5.22)(eslint@9.32.0)(typescript@5.9.3)
  '@dcloudio/uni-automator':
    specifier: 3.0.0-4070520250711001
    version: 3.0.0-4070520250711001(jest-environment-node@27.5.1)(jest@27.0.4)(postcss@8.5.6)(vue@3.4.21)
@@ -123,7 +123,7 @@
    version: 4.38.0
  '@unocss/eslint-plugin':
    specifier: ^66.3.3
    version: 66.3.3(eslint@9.32.0)(typescript@5.9.2)
    version: 66.3.3(eslint@9.32.0)(typescript@5.9.3)
  '@unocss/preset-icons':
    specifier: ^66.3.3
    version: 66.3.3
@@ -162,7 +162,7 @@
    version: 2.13.1
  stylelint:
    specifier: ^16.23.0
    version: 16.23.0(typescript@5.9.2)
    version: 16.23.0(typescript@5.9.3)
  stylelint-config-recess-order:
    specifier: ^6.1.0
    version: 6.1.0(stylelint@16.23.0)
@@ -209,7 +209,7 @@
      '@jridgewell/gen-mapping': 0.3.13
      '@jridgewell/trace-mapping': 0.3.31
  /@antfu/eslint-config@5.0.0(@unocss/eslint-plugin@66.3.3)(@vue/compiler-sfc@3.5.22)(eslint@9.32.0)(typescript@5.9.2):
  /@antfu/eslint-config@5.0.0(@unocss/eslint-plugin@66.3.3)(@vue/compiler-sfc@3.5.22)(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-uAMv8PiW9BOAGmIyTDtWXGnNfv6PFV4DmpqmlUpST5k4bue38VRdIfnM4jvgPuny1xnjYX3flN3kB9++6LknMw==}
    hasBin: true
    peerDependencies:
@@ -264,13 +264,13 @@
      '@antfu/install-pkg': 1.1.0
      '@clack/prompts': 0.11.0
      '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.32.0)
      '@eslint/markdown': 7.3.0
      '@eslint/markdown': 7.4.0
      '@stylistic/eslint-plugin': 5.4.0(eslint@9.32.0)
      '@typescript-eslint/eslint-plugin': 8.44.1(@typescript-eslint/parser@8.44.1)(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/parser': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@unocss/eslint-plugin': 66.3.3(eslint@9.32.0)(typescript@5.9.2)
      '@vitest/eslint-plugin': 1.3.13(eslint@9.32.0)(typescript@5.9.2)
      ansis: 4.1.0
      '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0)(eslint@9.32.0)(typescript@5.9.3)
      '@typescript-eslint/parser': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      '@unocss/eslint-plugin': 66.3.3(eslint@9.32.0)(typescript@5.9.3)
      '@vitest/eslint-plugin': 1.3.16(eslint@9.32.0)(typescript@5.9.3)
      ansis: 4.2.0
      cac: 6.7.14
      eslint: 9.32.0
      eslint-config-flat-gitignore: 2.1.0(eslint@9.32.0)
@@ -278,19 +278,19 @@
      eslint-merge-processors: 2.0.0(eslint@9.32.0)
      eslint-plugin-antfu: 3.1.1(eslint@9.32.0)
      eslint-plugin-command: 3.3.1(eslint@9.32.0)
      eslint-plugin-import-lite: 0.3.0(eslint@9.32.0)(typescript@5.9.2)
      eslint-plugin-import-lite: 0.3.0(eslint@9.32.0)(typescript@5.9.3)
      eslint-plugin-jsdoc: 51.4.1(eslint@9.32.0)
      eslint-plugin-jsonc: 2.20.1(eslint@9.32.0)
      eslint-plugin-n: 17.23.1(eslint@9.32.0)(typescript@5.9.2)
      eslint-plugin-jsonc: 2.21.0(eslint@9.32.0)
      eslint-plugin-n: 17.23.1(eslint@9.32.0)(typescript@5.9.3)
      eslint-plugin-no-only-tests: 3.3.0
      eslint-plugin-perfectionist: 4.15.0(eslint@9.32.0)(typescript@5.9.2)
      eslint-plugin-pnpm: 1.1.2(eslint@9.32.0)
      eslint-plugin-perfectionist: 4.15.1(eslint@9.32.0)(typescript@5.9.3)
      eslint-plugin-pnpm: 1.2.0(eslint@9.32.0)
      eslint-plugin-regexp: 2.10.0(eslint@9.32.0)
      eslint-plugin-toml: 0.12.0(eslint@9.32.0)
      eslint-plugin-unicorn: 60.0.0(eslint@9.32.0)
      eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.44.1)(eslint@9.32.0)
      eslint-plugin-vue: 10.5.0(@stylistic/eslint-plugin@5.4.0)(@typescript-eslint/parser@8.44.1)(eslint@9.32.0)(vue-eslint-parser@10.2.0)
      eslint-plugin-yml: 1.18.0(eslint@9.32.0)
      eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.46.0)(eslint@9.32.0)
      eslint-plugin-vue: 10.5.0(@stylistic/eslint-plugin@5.4.0)(@typescript-eslint/parser@8.46.0)(eslint@9.32.0)(vue-eslint-parser@10.2.0)
      eslint-plugin-yml: 1.19.0(eslint@9.32.0)
      eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.22)(eslint@9.32.0)
      globals: 16.4.0
      jsonc-eslint-parser: 2.4.1
@@ -310,7 +310,7 @@
  /@antfu/install-pkg@1.1.0:
    resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
    dependencies:
      package-manager-detector: 1.3.0
      package-manager-detector: 1.4.0
      tinyexec: 1.0.1
    dev: true
@@ -318,8 +318,8 @@
    resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==}
    dev: true
  /@antfu/utils@9.2.1:
    resolution: {integrity: sha512-TMilPqXyii1AsiEii6l6ubRzbo76p6oshUSYPaKsmXDavyMLqjzVDkcp3pHp5ELMUNJHATcEOGxKTTsX9yYhGg==}
  /@antfu/utils@9.3.0:
    resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==}
    dev: true
  /@babel/code-frame@7.27.1:
@@ -379,7 +379,7 @@
    dependencies:
      '@babel/compat-data': 7.28.4
      '@babel/helper-validator-option': 7.27.1
      browserslist: 4.26.2
      browserslist: 4.26.3
      lru-cache: 5.1.1
      semver: 6.3.1
@@ -1534,24 +1534,26 @@
    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
    dev: true
  /@cacheable/memoize@2.0.2:
    resolution: {integrity: sha512-wPrr7FUiq3Qt4yQyda2/NcOLTJCFcQSU3Am2adP+WLy+sz93/fKTokVTHmtz+rjp4PD7ee0AEOeRVNN6IvIfsg==}
  /@cacheable/memoize@2.0.3:
    resolution: {integrity: sha512-hl9wfQgpiydhQEIv7fkjEzTGE+tcosCXLKFDO707wYJ/78FVOlowb36djex5GdbSyeHnG62pomYLMuV/OT8Pbw==}
    dependencies:
      '@cacheable/utils': 2.0.2
      '@cacheable/utils': 2.1.0
    dev: true
  /@cacheable/memory@2.0.2:
    resolution: {integrity: sha512-sJTITLfeCI1rg7P3ssaGmQryq235EGT8dXGcx6oZwX5NRnKq9IE6lddlllcOl+oXW+yaeTRddCjo0xrfU6ZySA==}
  /@cacheable/memory@2.0.3:
    resolution: {integrity: sha512-R3UKy/CKOyb1LZG/VRCTMcpiMDyLH7SH3JrraRdK6kf3GweWCOU3sgvE13W3TiDRbxnDKylzKJvhUAvWl9LQOA==}
    dependencies:
      '@cacheable/memoize': 2.0.2
      '@cacheable/utils': 2.0.2
      '@cacheable/memoize': 2.0.3
      '@cacheable/utils': 2.1.0
      '@keyv/bigmap': 1.0.2
      hookified: 1.12.1
      keyv: 5.5.3
    dev: true
  /@cacheable/utils@2.0.2:
    resolution: {integrity: sha512-JTFM3raFhVv8LH95T7YnZbf2YoE9wEtkPPStuRF9a6ExZ103hFvs+QyCuYJ6r0hA9wRtbzgZtwUCoDWxssZd4Q==}
  /@cacheable/utils@2.1.0:
    resolution: {integrity: sha512-ZdxfOiaarMqMj+H7qwlt5EBKWaeGihSYVHdQv5lUsbn8MJJOTW82OIwirQ39U5tMZkNvy3bQE+ryzC+xTAb9/g==}
    dependencies:
      keyv: 5.5.3
    dev: true
  /@clack/core@0.5.0:
@@ -1603,8 +1605,8 @@
      postcss-selector-parser: 7.1.0
    dev: true
  /@dcloudio/types@3.4.21:
    resolution: {integrity: sha512-rsv3XfAaD/dtuVboPeYh+vPcULnWyozGaGKHWyN0dYRm7L1uypFUM30qNYMj9iNmbAENuBjV177S1gNEBIvdDA==}
  /@dcloudio/types@3.4.22:
    resolution: {integrity: sha512-qVDGe+eZW2ONGbMfVn1XDelculyfcXYk3d/Dos+6Pddc3x9SBlQVY5HYoKzJrnIMjnlLJMbckiF5y1EjTFvWPQ==}
    dev: false
  /@dcloudio/uni-app-harmony@3.0.0-4070520250711001(postcss@8.5.6)(vite@5.2.8)(vue@3.4.21):
@@ -1714,12 +1716,12 @@
    resolution: {integrity: sha512-/ISF+1xrcvUtcote+LfLyk/pyizTjEY6/3HZgBsOfXchkZBz0fkTWgnj5RHYeqwD7aHLsOJX93eaazNMnzD9Zw==}
    dev: false
  /@dcloudio/uni-app@3.0.0-4070520250711001(@dcloudio/types@3.4.21)(postcss@8.5.6)(vue@3.4.21):
  /@dcloudio/uni-app@3.0.0-4070520250711001(@dcloudio/types@3.4.22)(postcss@8.5.6)(vue@3.4.21):
    resolution: {integrity: sha512-rR1SGJknJyDy80vb47yDICXcZrV11KJ5yhNG8aC+kH2ZL338faBrdOQgqqN/XJegVxJdTfv1KqUXuaShMWTZGA==}
    peerDependencies:
      '@dcloudio/types': ^3.4.14
    dependencies:
      '@dcloudio/types': 3.4.21
      '@dcloudio/types': 3.4.22
      '@dcloudio/uni-cloud': 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
      '@dcloudio/uni-components': 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
      '@dcloudio/uni-console': 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
@@ -1819,7 +1821,7 @@
      postcss-selector-parser: 6.1.2
      resolve: 1.22.10
      source-map-js: 1.2.1
      tapable: 2.2.3
      tapable: 2.3.0
      unimport: 4.1.1
      unplugin-auto-import: 19.1.0
      xregexp: 3.1.0
@@ -1961,10 +1963,10 @@
      - vue
    dev: false
  /@dcloudio/uni-mp-baidu@3.0.0-4070520250711001(@dcloudio/types@3.4.21)(postcss@8.5.6)(vue@3.4.21):
  /@dcloudio/uni-mp-baidu@3.0.0-4070520250711001(@dcloudio/types@3.4.22)(postcss@8.5.6)(vue@3.4.21):
    resolution: {integrity: sha512-7YuoKeqZQ5M/q6e9TSuasa3aoHcqFL0+wEGInYXEVPrFfy94/c39E0y39/kirtx7YM3tcIX8/h4KOBnP3V5uhA==}
    dependencies:
      '@dcloudio/uni-app': 3.0.0-4070520250711001(@dcloudio/types@3.4.21)(postcss@8.5.6)(vue@3.4.21)
      '@dcloudio/uni-app': 3.0.0-4070520250711001(@dcloudio/types@3.4.22)(postcss@8.5.6)(vue@3.4.21)
      '@dcloudio/uni-cli-shared': 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
      '@dcloudio/uni-mp-compiler': 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
      '@dcloudio/uni-mp-vite': 3.0.0-4070520250711001(postcss@8.5.6)(vue@3.4.21)
@@ -2331,7 +2333,7 @@
    engines: {node: '>=18'}
    dependencies:
      '@types/estree': 1.0.8
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/types': 8.46.0
      comment-parser: 1.4.1
      esquery: 1.6.0
      jsdoc-type-pratt-parser: 4.1.0
@@ -2342,7 +2344,7 @@
    engines: {node: '>=20.11.0'}
    dependencies:
      '@types/estree': 1.0.8
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/types': 8.46.0
      comment-parser: 1.4.1
      esquery: 1.6.0
      jsdoc-type-pratt-parser: 4.1.0
@@ -2637,12 +2639,12 @@
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    dev: true
  /@eslint/markdown@7.3.0:
    resolution: {integrity: sha512-v9Cpl9IvzGmWMUwDAwSbf1b2GMwjQJiD0TSHegFrIu23mjqGQOvaCwnetzbG3/fjk8x7baKaIbSTBlpCktZRRg==}
  /@eslint/markdown@7.4.0:
    resolution: {integrity: sha512-VQykmMjBb4tQoJOXVWXa+oQbQeCZlE7W3rAsOpmtpKLvJd75saZZ04PVVs7+zgMDJGghd4/gyFV6YlvdJFaeNQ==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    dependencies:
      '@eslint/core': 0.15.2
      '@eslint/plugin-kit': 0.3.5
      '@eslint/core': 0.16.0
      '@eslint/plugin-kit': 0.4.0
      github-slugger: 2.0.0
      mdast-util-from-markdown: 2.0.2
      mdast-util-frontmatter: 2.0.1
@@ -2664,6 +2666,14 @@
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    dependencies:
      '@eslint/core': 0.15.2
      levn: 0.4.1
    dev: true
  /@eslint/plugin-kit@0.4.0:
    resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    dependencies:
      '@eslint/core': 0.16.0
      levn: 0.4.1
    dev: true
@@ -2809,7 +2819,7 @@
    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    dependencies:
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      chalk: 4.1.2
      jest-message-util: 27.5.1
      jest-util: 27.5.1
@@ -2830,7 +2840,7 @@
      '@jest/test-result': 27.5.1
      '@jest/transform': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      ansi-escapes: 4.3.2
      chalk: 4.1.2
      emittery: 0.8.1
@@ -2867,7 +2877,7 @@
    dependencies:
      '@jest/fake-timers': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      jest-mock: 27.5.1
    dev: true
@@ -2877,7 +2887,7 @@
    dependencies:
      '@jest/types': 27.5.1
      '@sinonjs/fake-timers': 8.1.0
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      jest-message-util: 27.5.1
      jest-mock: 27.5.1
      jest-util: 27.5.1
@@ -2906,7 +2916,7 @@
      '@jest/test-result': 27.5.1
      '@jest/transform': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      chalk: 4.1.2
      collect-v8-coverage: 1.0.2
      exit: 0.1.2
@@ -2990,7 +3000,7 @@
    dependencies:
      '@types/istanbul-lib-coverage': 2.0.6
      '@types/istanbul-reports': 3.0.4
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      '@types/yargs': 16.0.9
      chalk: 4.1.2
    dev: true
@@ -3456,8 +3466,8 @@
      dayjs: 1.11.18
    dev: true
  /@modelcontextprotocol/sdk@1.18.2:
    resolution: {integrity: sha512-beedclIvFcCnPrYgHsylqiYJVJ/CI47Vyc4tY8no1/Li/O8U4BTlJfy6ZwxkYwx+Mx10nrgwSVrA7VBbhh4slg==}
  /@modelcontextprotocol/sdk@1.19.1:
    resolution: {integrity: sha512-3Y2h3MZKjec1eAqSTBclATlX+AbC6n1LgfVzRMJLt3v6w0RCYgwLrjbxPDbhsYHt6Wdqc/aCceNJYgj448ELQQ==}
    engines: {node: '>=18'}
    dependencies:
      ajv: 6.12.6
@@ -3494,8 +3504,8 @@
      '@nodelib/fs.scandir': 2.1.5
      fastq: 1.19.1
  /@nuxt/kit@3.19.2:
    resolution: {integrity: sha512-+QiqO0WcIxsKLUqXdVn3m4rzTRm2fO9MZgd330utCAaagGmHsgiMJp67kE14boJEPutnikfz3qOmrzBnDIHUUg==}
  /@nuxt/kit@3.19.3:
    resolution: {integrity: sha512-ze46EW5xW+UxDvinvPkYt2MzR355Az1lA3bpX8KDialgnCwr+IbkBij/udbUEC6ZFbidPkfK1eKl4ESN7gMY+w==}
    engines: {node: '>=18.12.0'}
    dependencies:
      c12: 3.3.0
@@ -3505,7 +3515,7 @@
      errx: 0.1.0
      exsolve: 1.0.7
      ignore: 7.0.5
      jiti: 2.6.0
      jiti: 2.6.1
      klona: 2.0.6
      knitwork: 1.2.0
      mlly: 1.8.0
@@ -3514,12 +3524,12 @@
      pkg-types: 2.3.0
      rc9: 2.1.2
      scule: 1.3.0
      semver: 7.7.2
      semver: 7.7.3
      std-env: 3.9.0
      tinyglobby: 0.2.15
      ufo: 1.6.1
      unctx: 2.4.1
      unimport: 5.4.0
      unimport: 5.4.1
      untyped: 2.0.0
    transitivePeerDependencies:
      - magicast
@@ -3687,15 +3697,15 @@
      estree-walker: 2.0.2
      picomatch: 4.0.3
  /@rollup/rollup-android-arm-eabi@4.52.3:
    resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==}
  /@rollup/rollup-android-arm-eabi@4.52.4:
    resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==}
    cpu: [arm]
    os: [android]
    requiresBuild: true
    optional: true
  /@rollup/rollup-android-arm64@4.52.3:
    resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==}
  /@rollup/rollup-android-arm64@4.52.4:
    resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==}
    cpu: [arm64]
    os: [android]
    requiresBuild: true
@@ -3707,8 +3717,8 @@
    os: [darwin]
    dev: true
  /@rollup/rollup-darwin-arm64@4.52.3:
    resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==}
  /@rollup/rollup-darwin-arm64@4.52.4:
    resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==}
    cpu: [arm64]
    os: [darwin]
    requiresBuild: true
@@ -3720,145 +3730,145 @@
    os: [darwin]
    dev: true
  /@rollup/rollup-darwin-x64@4.52.3:
    resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==}
  /@rollup/rollup-darwin-x64@4.52.4:
    resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==}
    cpu: [x64]
    os: [darwin]
    requiresBuild: true
    optional: true
  /@rollup/rollup-freebsd-arm64@4.52.3:
    resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==}
  /@rollup/rollup-freebsd-arm64@4.52.4:
    resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==}
    cpu: [arm64]
    os: [freebsd]
    requiresBuild: true
    optional: true
  /@rollup/rollup-freebsd-x64@4.52.3:
    resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==}
  /@rollup/rollup-freebsd-x64@4.52.4:
    resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==}
    cpu: [x64]
    os: [freebsd]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-arm-gnueabihf@4.52.3:
    resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==}
  /@rollup/rollup-linux-arm-gnueabihf@4.52.4:
    resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==}
    cpu: [arm]
    os: [linux]
    libc: [glibc]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-arm-musleabihf@4.52.3:
    resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==}
  /@rollup/rollup-linux-arm-musleabihf@4.52.4:
    resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==}
    cpu: [arm]
    os: [linux]
    libc: [musl]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-arm64-gnu@4.52.3:
    resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==}
  /@rollup/rollup-linux-arm64-gnu@4.52.4:
    resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==}
    cpu: [arm64]
    os: [linux]
    libc: [glibc]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-arm64-musl@4.52.3:
    resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==}
  /@rollup/rollup-linux-arm64-musl@4.52.4:
    resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==}
    cpu: [arm64]
    os: [linux]
    libc: [musl]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-loong64-gnu@4.52.3:
    resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==}
  /@rollup/rollup-linux-loong64-gnu@4.52.4:
    resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==}
    cpu: [loong64]
    os: [linux]
    libc: [glibc]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-ppc64-gnu@4.52.3:
    resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==}
  /@rollup/rollup-linux-ppc64-gnu@4.52.4:
    resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==}
    cpu: [ppc64]
    os: [linux]
    libc: [glibc]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-riscv64-gnu@4.52.3:
    resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==}
  /@rollup/rollup-linux-riscv64-gnu@4.52.4:
    resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==}
    cpu: [riscv64]
    os: [linux]
    libc: [glibc]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-riscv64-musl@4.52.3:
    resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==}
  /@rollup/rollup-linux-riscv64-musl@4.52.4:
    resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==}
    cpu: [riscv64]
    os: [linux]
    libc: [musl]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-s390x-gnu@4.52.3:
    resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==}
  /@rollup/rollup-linux-s390x-gnu@4.52.4:
    resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==}
    cpu: [s390x]
    os: [linux]
    libc: [glibc]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-x64-gnu@4.52.3:
    resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==}
  /@rollup/rollup-linux-x64-gnu@4.52.4:
    resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==}
    cpu: [x64]
    os: [linux]
    libc: [glibc]
    requiresBuild: true
    optional: true
  /@rollup/rollup-linux-x64-musl@4.52.3:
    resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==}
  /@rollup/rollup-linux-x64-musl@4.52.4:
    resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==}
    cpu: [x64]
    os: [linux]
    libc: [musl]
    requiresBuild: true
    optional: true
  /@rollup/rollup-openharmony-arm64@4.52.3:
    resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==}
  /@rollup/rollup-openharmony-arm64@4.52.4:
    resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==}
    cpu: [arm64]
    os: [openharmony]
    requiresBuild: true
    optional: true
  /@rollup/rollup-win32-arm64-msvc@4.52.3:
    resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==}
  /@rollup/rollup-win32-arm64-msvc@4.52.4:
    resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==}
    cpu: [arm64]
    os: [win32]
    requiresBuild: true
    optional: true
  /@rollup/rollup-win32-ia32-msvc@4.52.3:
    resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==}
  /@rollup/rollup-win32-ia32-msvc@4.52.4:
    resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==}
    cpu: [ia32]
    os: [win32]
    requiresBuild: true
    optional: true
  /@rollup/rollup-win32-x64-gnu@4.52.3:
    resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==}
  /@rollup/rollup-win32-x64-gnu@4.52.4:
    resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==}
    cpu: [x64]
    os: [win32]
    requiresBuild: true
    optional: true
  /@rollup/rollup-win32-x64-msvc@4.52.3:
    resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==}
  /@rollup/rollup-win32-x64-msvc@4.52.4:
    resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==}
    cpu: [x64]
    os: [win32]
    requiresBuild: true
@@ -3883,7 +3893,7 @@
      eslint: '>=9.0.0'
    dependencies:
      '@eslint-community/eslint-utils': 4.9.0(eslint@9.32.0)
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/types': 8.46.0
      eslint: 9.32.0
      eslint-visitor-keys: 4.2.1
      espree: 10.4.0
@@ -3937,7 +3947,7 @@
  /@types/graceful-fs@4.1.9:
    resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
    dependencies:
      '@types/node': 24.5.2
      '@types/node': 24.7.0
    dev: true
  /@types/istanbul-lib-coverage@2.0.6:
@@ -3970,10 +3980,10 @@
    resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
    dev: true
  /@types/node@24.5.2:
    resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
  /@types/node@24.7.0:
    resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==}
    dependencies:
      undici-types: 7.12.0
      undici-types: 7.14.0
    dev: true
  /@types/prettier@2.7.3:
@@ -3998,145 +4008,145 @@
      '@types/yargs-parser': 21.0.3
    dev: true
  /@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1)(eslint@9.32.0)(typescript@5.9.2):
    resolution: {integrity: sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw==}
  /@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0)(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
      '@typescript-eslint/parser': ^8.44.1
      '@typescript-eslint/parser': ^8.46.0
      eslint: ^8.57.0 || ^9.0.0
      typescript: '>=4.8.4 <6.0.0'
    dependencies:
      '@eslint-community/regexpp': 4.12.1
      '@typescript-eslint/parser': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/scope-manager': 8.44.1
      '@typescript-eslint/type-utils': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/utils': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/visitor-keys': 8.44.1
      '@typescript-eslint/parser': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      '@typescript-eslint/scope-manager': 8.46.0
      '@typescript-eslint/type-utils': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      '@typescript-eslint/utils': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      '@typescript-eslint/visitor-keys': 8.46.0
      eslint: 9.32.0
      graphemer: 1.4.0
      ignore: 7.0.5
      natural-compare: 1.4.0
      ts-api-utils: 2.1.0(typescript@5.9.2)
      typescript: 5.9.2
      ts-api-utils: 2.1.0(typescript@5.9.3)
      typescript: 5.9.3
    transitivePeerDependencies:
      - supports-color
    dev: true
  /@typescript-eslint/parser@8.44.1(eslint@9.32.0)(typescript@5.9.2):
    resolution: {integrity: sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw==}
  /@typescript-eslint/parser@8.46.0(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
      eslint: ^8.57.0 || ^9.0.0
      typescript: '>=4.8.4 <6.0.0'
    dependencies:
      '@typescript-eslint/scope-manager': 8.44.1
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2)
      '@typescript-eslint/visitor-keys': 8.44.1
      '@typescript-eslint/scope-manager': 8.46.0
      '@typescript-eslint/types': 8.46.0
      '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
      '@typescript-eslint/visitor-keys': 8.46.0
      debug: 4.4.3
      eslint: 9.32.0
      typescript: 5.9.2
      typescript: 5.9.3
    transitivePeerDependencies:
      - supports-color
    dev: true
  /@typescript-eslint/project-service@8.44.1(typescript@5.9.2):
    resolution: {integrity: sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==}
  /@typescript-eslint/project-service@8.46.0(typescript@5.9.3):
    resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
      typescript: '>=4.8.4 <6.0.0'
    dependencies:
      '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2)
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3)
      '@typescript-eslint/types': 8.46.0
      debug: 4.4.3
      typescript: 5.9.2
      typescript: 5.9.3
    transitivePeerDependencies:
      - supports-color
    dev: true
  /@typescript-eslint/scope-manager@8.44.1:
    resolution: {integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==}
  /@typescript-eslint/scope-manager@8.46.0:
    resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    dependencies:
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/visitor-keys': 8.44.1
      '@typescript-eslint/types': 8.46.0
      '@typescript-eslint/visitor-keys': 8.46.0
    dev: true
  /@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.9.2):
    resolution: {integrity: sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==}
  /@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3):
    resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
      typescript: '>=4.8.4 <6.0.0'
    dependencies:
      typescript: 5.9.2
      typescript: 5.9.3
    dev: true
  /@typescript-eslint/type-utils@8.44.1(eslint@9.32.0)(typescript@5.9.2):
    resolution: {integrity: sha512-KdEerZqHWXsRNKjF9NYswNISnFzXfXNDfPxoTh7tqohU/PRIbwTmsjGK6V9/RTYWau7NZvfo52lgVk+sJh0K3g==}
  /@typescript-eslint/type-utils@8.46.0(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
      eslint: ^8.57.0 || ^9.0.0
      typescript: '>=4.8.4 <6.0.0'
    dependencies:
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2)
      '@typescript-eslint/utils': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/types': 8.46.0
      '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
      '@typescript-eslint/utils': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      debug: 4.4.3
      eslint: 9.32.0
      ts-api-utils: 2.1.0(typescript@5.9.2)
      typescript: 5.9.2
      ts-api-utils: 2.1.0(typescript@5.9.3)
      typescript: 5.9.3
    transitivePeerDependencies:
      - supports-color
    dev: true
  /@typescript-eslint/types@8.44.1:
    resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==}
  /@typescript-eslint/types@8.46.0:
    resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    dev: true
  /@typescript-eslint/typescript-estree@8.44.1(typescript@5.9.2):
    resolution: {integrity: sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==}
  /@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3):
    resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
      typescript: '>=4.8.4 <6.0.0'
    dependencies:
      '@typescript-eslint/project-service': 8.44.1(typescript@5.9.2)
      '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.2)
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/visitor-keys': 8.44.1
      '@typescript-eslint/project-service': 8.46.0(typescript@5.9.3)
      '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3)
      '@typescript-eslint/types': 8.46.0
      '@typescript-eslint/visitor-keys': 8.46.0
      debug: 4.4.3
      fast-glob: 3.3.3
      is-glob: 4.0.3
      minimatch: 9.0.5
      semver: 7.7.2
      ts-api-utils: 2.1.0(typescript@5.9.2)
      typescript: 5.9.2
      semver: 7.7.3
      ts-api-utils: 2.1.0(typescript@5.9.3)
      typescript: 5.9.3
    transitivePeerDependencies:
      - supports-color
    dev: true
  /@typescript-eslint/utils@8.44.1(eslint@9.32.0)(typescript@5.9.2):
    resolution: {integrity: sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg==}
  /@typescript-eslint/utils@8.46.0(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
      eslint: ^8.57.0 || ^9.0.0
      typescript: '>=4.8.4 <6.0.0'
    dependencies:
      '@eslint-community/eslint-utils': 4.9.0(eslint@9.32.0)
      '@typescript-eslint/scope-manager': 8.44.1
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2)
      '@typescript-eslint/scope-manager': 8.46.0
      '@typescript-eslint/types': 8.46.0
      '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3)
      eslint: 9.32.0
      typescript: 5.9.2
      typescript: 5.9.3
    transitivePeerDependencies:
      - supports-color
    dev: true
  /@typescript-eslint/visitor-keys@8.44.1:
    resolution: {integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==}
  /@typescript-eslint/visitor-keys@8.46.0:
    resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    dependencies:
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/types': 8.46.0
      eslint-visitor-keys: 4.2.1
    dev: true
@@ -4204,11 +4214,11 @@
    resolution: {integrity: sha512-POSEpwj2FJtrDgzSq6nVhAJbnGIYPqtEMTpzQXfeFqPDMidAXjaH/xZUeTdHDbI9Jg700smrRXJtFJrJFXkmiQ==}
    dev: true
  /@unocss/eslint-plugin@66.3.3(eslint@9.32.0)(typescript@5.9.2):
  /@unocss/eslint-plugin@66.3.3(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-n2Jd22Z5QEAAdXPBzq5i4L8gzYLy7vMF/2N8TE7b8GdIF9kuawyYxTmcjgg+Tp/Sr1HXp/Fcs7Oic2lv5ZvU+A==}
    engines: {node: '>=14'}
    dependencies:
      '@typescript-eslint/utils': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/utils': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      '@unocss/config': 66.3.3
      '@unocss/core': 66.3.3
      '@unocss/rule-utils': 66.3.3
@@ -4412,8 +4422,8 @@
    dependencies:
      '@babel/core': 7.28.4
      '@babel/preset-env': 7.28.3(@babel/core@7.28.4)
      browserslist: 4.26.2
      browserslist-to-esbuild: 2.1.1(browserslist@4.26.2)
      browserslist: 4.26.3
      browserslist-to-esbuild: 2.1.1(browserslist@4.26.3)
      core-js: 3.45.1
      magic-string: 0.30.19
      regenerator-runtime: 0.14.1
@@ -4435,7 +4445,7 @@
      '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4)
      '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.4)
      vite: 5.2.8(sass@1.79.6)(terser@5.44.0)
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
    transitivePeerDependencies:
      - supports-color
    dev: true
@@ -4448,10 +4458,10 @@
      vue: ^3.2.25
    dependencies:
      vite: 5.2.8(sass@1.79.6)(terser@5.44.0)
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
  /@vitest/eslint-plugin@1.3.13(eslint@9.32.0)(typescript@5.9.2):
    resolution: {integrity: sha512-QfzXd1+lCY3dIqPHOZlagA2bJYoWC5yAU3adv8Gks0rHAL6FpyXKYBiyMCuU6mRrbKUMphGqwDQobinOvYgJig==}
  /@vitest/eslint-plugin@1.3.16(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-EvXGiZpz3L1G/pmebcmMe61UzqgR8LFwmm+QGgQEHcrTCFkMgl+c0mj2jneo38/CkHhofbK3zc3xafV6/SpzNw==}
    peerDependencies:
      eslint: '>= 8.57.0'
      typescript: '>= 5.0.0'
@@ -4462,10 +4472,10 @@
      vitest:
        optional: true
    dependencies:
      '@typescript-eslint/scope-manager': 8.44.1
      '@typescript-eslint/utils': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/scope-manager': 8.46.0
      '@typescript-eslint/utils': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      eslint: 9.32.0
      typescript: 5.9.2
      typescript: 5.9.3
    transitivePeerDependencies:
      - supports-color
    dev: true
@@ -4603,7 +4613,7 @@
      nanoid: 5.1.6
      pathe: 2.0.3
      vite-hot-client: 2.1.0(vite@5.2.8)
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
    transitivePeerDependencies:
      - vite
    dev: true
@@ -4651,7 +4661,7 @@
    dependencies:
      '@vue/compiler-ssr': 3.4.21
      '@vue/shared': 3.4.21
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
  /@vue/shared@3.4.21:
    resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==}
@@ -4802,8 +4812,8 @@
    engines: {node: '>=14'}
    dev: true
  /ansis@4.1.0:
    resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==}
  /ansis@4.2.0:
    resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
    engines: {node: '>=14'}
    dev: true
@@ -4858,8 +4868,8 @@
    peerDependencies:
      postcss: ^8.1.0
    dependencies:
      browserslist: 4.26.2
      caniuse-lite: 1.0.30001745
      browserslist: 4.26.3
      caniuse-lite: 1.0.30001749
      fraction.js: 4.3.7
      normalize-range: 0.1.2
      picocolors: 1.1.1
@@ -4994,8 +5004,8 @@
    resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==}
    engines: {node: '>=6.0.0'}
  /baseline-browser-mapping@2.8.8:
    resolution: {integrity: sha512-be0PUaPsQX/gPWWgFsdD+GFzaoig5PXaUC1xLkQiYdDnANU8sMnHoQd8JhbJQuvTWrWLyeFN9Imb5Qtfvr4RrQ==}
  /baseline-browser-mapping@2.8.14:
    resolution: {integrity: sha512-GM9c0cWWR8Ga7//Ves/9KRgTS8nLausCkP3CGiFLrnwA2CDUluXgaQqvrULoR2Ujrd/mz/lkX87F5BHFsNr5sQ==}
    hasBin: true
  /binary-extensions@2.3.0:
@@ -5074,27 +5084,27 @@
    resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==}
    dev: true
  /browserslist-to-esbuild@2.1.1(browserslist@4.26.2):
  /browserslist-to-esbuild@2.1.1(browserslist@4.26.3):
    resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
    engines: {node: '>=18'}
    hasBin: true
    peerDependencies:
      browserslist: '*'
    dependencies:
      browserslist: 4.26.2
      browserslist: 4.26.3
      meow: 13.2.0
    dev: true
  /browserslist@4.26.2:
    resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==}
  /browserslist@4.26.3:
    resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==}
    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
    hasBin: true
    dependencies:
      baseline-browser-mapping: 2.8.8
      caniuse-lite: 1.0.30001745
      electron-to-chromium: 1.5.226
      node-releases: 2.0.21
      update-browserslist-db: 1.1.3(browserslist@4.26.2)
      baseline-browser-mapping: 2.8.14
      caniuse-lite: 1.0.30001749
      electron-to-chromium: 1.5.233
      node-releases: 2.0.23
      update-browserslist-db: 1.1.3(browserslist@4.26.3)
  /bser@2.1.1:
    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
@@ -5138,10 +5148,10 @@
      chokidar: 4.0.3
      confbox: 0.2.2
      defu: 6.1.4
      dotenv: 17.2.2
      dotenv: 17.2.3
      exsolve: 1.0.7
      giget: 2.0.0
      jiti: 2.6.0
      jiti: 2.6.1
      ohash: 2.0.11
      pathe: 2.0.3
      perfect-debounce: 2.0.0
@@ -5159,14 +5169,15 @@
    engines: {node: '>=8'}
    dev: true
  /cacheable@2.0.2:
    resolution: {integrity: sha512-dWjhLx8RWnPsAWVKwW/wI6OJpQ/hSVb1qS0NUif8TR9vRiSwci7Gey8x04kRU9iAF+Rnbtex5Kjjfg/aB5w8Pg==}
  /cacheable@2.1.0:
    resolution: {integrity: sha512-zzL1BxdnqwD69JRT0dihnawAcLkBMwAH+hZSKjUzeBbPedVhk3qYPjRw9VOMYWwt5xRih5xd8S+3kEdGohZm/g==}
    dependencies:
      '@cacheable/memoize': 2.0.2
      '@cacheable/memory': 2.0.2
      '@cacheable/utils': 2.0.2
      '@cacheable/memoize': 2.0.3
      '@cacheable/memory': 2.0.3
      '@cacheable/utils': 2.1.0
      hookified: 1.12.1
      keyv: 5.5.3
      qified: 0.5.0
    dev: true
  /call-bind-apply-helpers@1.0.2:
@@ -5200,8 +5211,8 @@
    engines: {node: '>=10'}
    dev: true
  /caniuse-lite@1.0.30001745:
    resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==}
  /caniuse-lite@1.0.30001749:
    resolution: {integrity: sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==}
  /ccount@2.0.1:
    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -5266,8 +5277,8 @@
    engines: {node: '>=8'}
    dev: true
  /ci-info@4.3.0:
    resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==}
  /ci-info@4.3.1:
    resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==}
    engines: {node: '>=8'}
    dev: true
@@ -5453,7 +5464,7 @@
  /core-js-compat@3.45.1:
    resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==}
    dependencies:
      browserslist: 4.26.2
      browserslist: 4.26.3
    dev: true
  /core-js@3.45.1:
@@ -5468,7 +5479,7 @@
      vary: 1.1.2
    dev: true
  /cosmiconfig@9.0.0(typescript@5.9.2):
  /cosmiconfig@9.0.0(typescript@5.9.3):
    resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
    engines: {node: '>=14'}
    peerDependencies:
@@ -5481,7 +5492,7 @@
      import-fresh: 3.3.1
      js-yaml: 4.1.0
      parse-json: 5.2.0
      typescript: 5.9.2
      typescript: 5.9.3
    dev: true
  /cross-env@7.0.3:
@@ -5751,8 +5762,8 @@
      domhandler: 5.0.3
    dev: true
  /dotenv@17.2.2:
    resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==}
  /dotenv@17.2.3:
    resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
    engines: {node: '>=12'}
    dev: false
@@ -5777,8 +5788,8 @@
    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
    dev: true
  /electron-to-chromium@1.5.226:
    resolution: {integrity: sha512-0tS/r72Ze0WUBiDwnqw4X43TxA7gEuZg0kFwLthoCzkshIbNQFjkf6D8xEzBe6tY6Y65fUhZIuNedTugw+11Lw==}
  /electron-to-chromium@1.5.233:
    resolution: {integrity: sha512-iUdTQSf7EFXsDdQsp8MwJz5SVk4APEFqXU/S47OtQ0YLqacSwPXdZ5vRlMX3neb07Cy2vgioNuRnWUXFwuslkg==}
  /emittery@0.8.1:
    resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==}
@@ -5817,7 +5828,7 @@
    engines: {node: '>=10.13.0'}
    dependencies:
      graceful-fs: 4.2.11
      tapable: 2.2.3
      tapable: 2.3.0
    dev: true
  /entities@4.5.0:
@@ -5950,7 +5961,7 @@
      eslint: '>=6.0.0'
    dependencies:
      eslint: 9.32.0
      semver: 7.7.2
      semver: 7.7.3
    dev: true
  /eslint-compat-utils@0.6.5(eslint@9.32.0):
@@ -5960,7 +5971,7 @@
      eslint: '>=6.0.0'
    dependencies:
      eslint: 9.32.0
      semver: 7.7.2
      semver: 7.7.3
    dev: true
  /eslint-config-flat-gitignore@2.1.0(eslint@9.32.0):
@@ -6031,7 +6042,7 @@
      eslint-compat-utils: 0.5.1(eslint@9.32.0)
    dev: true
  /eslint-plugin-import-lite@0.3.0(eslint@9.32.0)(typescript@5.9.2):
  /eslint-plugin-import-lite@0.3.0(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-dkNBAL6jcoCsXZsQ/Tt2yXmMDoNt5NaBh/U7yvccjiK8cai6Ay+MK77bMykmqQA2bTF6lngaLCDij6MTO3KkvA==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
@@ -6042,9 +6053,9 @@
        optional: true
    dependencies:
      '@eslint-community/eslint-utils': 4.9.0(eslint@9.32.0)
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/types': 8.46.0
      eslint: 9.32.0
      typescript: 5.9.2
      typescript: 5.9.3
    dev: true
  /eslint-plugin-jsdoc@51.4.1(eslint@9.32.0):
@@ -6062,19 +6073,20 @@
      espree: 10.4.0
      esquery: 1.6.0
      parse-imports-exports: 0.2.4
      semver: 7.7.2
      semver: 7.7.3
      spdx-expression-parse: 4.0.0
    transitivePeerDependencies:
      - supports-color
    dev: true
  /eslint-plugin-jsonc@2.20.1(eslint@9.32.0):
    resolution: {integrity: sha512-gUzIwQHXx7ZPypUoadcyRi4WbHW2TPixDr0kqQ4miuJBU0emJmyGTlnaT3Og9X2a8R1CDayN9BFSq5weGWbTng==}
  /eslint-plugin-jsonc@2.21.0(eslint@9.32.0):
    resolution: {integrity: sha512-HttlxdNG5ly3YjP1cFMP62R4qKLxJURfBZo2gnMY+yQojZxkLyOpY1H1KRTKBmvQeSG9pIpSGEhDjE17vvYosg==}
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
    peerDependencies:
      eslint: '>=6.0.0'
    dependencies:
      '@eslint-community/eslint-utils': 4.9.0(eslint@9.32.0)
      diff-sequences: 27.5.1
      eslint: 9.32.0
      eslint-compat-utils: 0.6.5(eslint@9.32.0)
      eslint-json-compat-utils: 0.2.1(eslint@9.32.0)(jsonc-eslint-parser@2.4.1)
@@ -6087,7 +6099,7 @@
      - '@eslint/json'
    dev: true
  /eslint-plugin-n@17.23.1(eslint@9.32.0)(typescript@5.9.2):
  /eslint-plugin-n@17.23.1(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
@@ -6097,12 +6109,12 @@
      enhanced-resolve: 5.18.3
      eslint: 9.32.0
      eslint-plugin-es-x: 7.8.0(eslint@9.32.0)
      get-tsconfig: 4.10.1
      get-tsconfig: 4.12.0
      globals: 15.15.0
      globrex: 0.1.2
      ignore: 5.3.2
      semver: 7.7.2
      ts-declaration-location: 1.0.7(typescript@5.9.2)
      semver: 7.7.3
      ts-declaration-location: 1.0.7(typescript@5.9.3)
    transitivePeerDependencies:
      - typescript
    dev: true
@@ -6112,14 +6124,14 @@
    engines: {node: '>=5.0.0'}
    dev: true
  /eslint-plugin-perfectionist@4.15.0(eslint@9.32.0)(typescript@5.9.2):
    resolution: {integrity: sha512-pC7PgoXyDnEXe14xvRUhBII8A3zRgggKqJFx2a82fjrItDs1BSI7zdZnQtM2yQvcyod6/ujmzb7ejKPx8lZTnw==}
  /eslint-plugin-perfectionist@4.15.1(eslint@9.32.0)(typescript@5.9.3):
    resolution: {integrity: sha512-MHF0cBoOG0XyBf7G0EAFCuJJu4I18wy0zAoT1OHfx2o6EOx1EFTIzr2HGeuZa1kDcusoX0xJ9V7oZmaeFd773Q==}
    engines: {node: ^18.0.0 || >=20.0.0}
    peerDependencies:
      eslint: '>=8.45.0'
    dependencies:
      '@typescript-eslint/types': 8.44.1
      '@typescript-eslint/utils': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/types': 8.46.0
      '@typescript-eslint/utils': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      eslint: 9.32.0
      natural-orderby: 5.0.0
    transitivePeerDependencies:
@@ -6127,8 +6139,8 @@
      - typescript
    dev: true
  /eslint-plugin-pnpm@1.1.2(eslint@9.32.0):
    resolution: {integrity: sha512-WHH09rEiRZ3fjQ8y9LMarCp3uWOTGkbTyC8WCGqyjMVFUwSFjzIeays8ysvqyz7G5vyjr/72Mzq93Kgtp52BOQ==}
  /eslint-plugin-pnpm@1.2.0(eslint@9.32.0):
    resolution: {integrity: sha512-HKIFEmRGVxXvPx/hCpZY0qUGCYoaSYO6EVut4Hf9bckC0qP6F23mBgdoIExRZIWoViHuMznSaDU1FpQmc2xpgw==}
    peerDependencies:
      eslint: ^9.0.0
    dependencies:
@@ -6136,7 +6148,7 @@
      eslint: 9.32.0
      jsonc-eslint-parser: 2.4.1
      pathe: 2.0.3
      pnpm-workspace-yaml: 1.1.2
      pnpm-workspace-yaml: 1.2.0
      tinyglobby: 0.2.15
      yaml-eslint-parser: 1.3.0
    dev: true
@@ -6182,7 +6194,7 @@
      '@eslint-community/eslint-utils': 4.9.0(eslint@9.32.0)
      '@eslint/plugin-kit': 0.3.5
      change-case: 5.4.4
      ci-info: 4.3.0
      ci-info: 4.3.1
      clean-regexp: 1.0.0
      core-js-compat: 3.45.1
      eslint: 9.32.0
@@ -6195,11 +6207,11 @@
      pluralize: 8.0.0
      regexp-tree: 0.1.27
      regjsparser: 0.12.0
      semver: 7.7.2
      semver: 7.7.3
      strip-indent: 4.1.0
    dev: true
  /eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.44.1)(eslint@9.32.0):
  /eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.46.0)(eslint@9.32.0):
    resolution: {integrity: sha512-hLbJ2/wnjKq4kGA9AUaExVFIbNzyxYdVo49QZmKCnhk5pc9wcYRbfgLHvWJ8tnsdcseGhoUAddm9gn/lt+d74w==}
    peerDependencies:
      '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0
@@ -6208,11 +6220,11 @@
      '@typescript-eslint/eslint-plugin':
        optional: true
    dependencies:
      '@typescript-eslint/eslint-plugin': 8.44.1(@typescript-eslint/parser@8.44.1)(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0)(eslint@9.32.0)(typescript@5.9.3)
      eslint: 9.32.0
    dev: true
  /eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0)(@typescript-eslint/parser@8.44.1)(eslint@9.32.0)(vue-eslint-parser@10.2.0):
  /eslint-plugin-vue@10.5.0(@stylistic/eslint-plugin@5.4.0)(@typescript-eslint/parser@8.46.0)(eslint@9.32.0)(vue-eslint-parser@10.2.0):
    resolution: {integrity: sha512-7BZHsG3kC2vei8F2W8hnfDi9RK+cv5eKPMvzBdrl8Vuc0hR5odGQRli8VVzUkrmUHkxFEm4Iio1r5HOKslO0Aw==}
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
    peerDependencies:
@@ -6228,23 +6240,24 @@
    dependencies:
      '@eslint-community/eslint-utils': 4.9.0(eslint@9.32.0)
      '@stylistic/eslint-plugin': 5.4.0(eslint@9.32.0)
      '@typescript-eslint/parser': 8.44.1(eslint@9.32.0)(typescript@5.9.2)
      '@typescript-eslint/parser': 8.46.0(eslint@9.32.0)(typescript@5.9.3)
      eslint: 9.32.0
      natural-compare: 1.4.0
      nth-check: 2.1.1
      postcss-selector-parser: 6.1.2
      semver: 7.7.2
      semver: 7.7.3
      vue-eslint-parser: 10.2.0(eslint@9.32.0)
      xml-name-validator: 4.0.0
    dev: true
  /eslint-plugin-yml@1.18.0(eslint@9.32.0):
    resolution: {integrity: sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==}
  /eslint-plugin-yml@1.19.0(eslint@9.32.0):
    resolution: {integrity: sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==}
    engines: {node: ^14.17.0 || >=16.0.0}
    peerDependencies:
      eslint: '>=6.0.0'
    dependencies:
      debug: 4.4.3
      diff-sequences: 27.5.1
      escape-string-regexp: 4.0.0
      eslint: 9.32.0
      eslint-compat-utils: 0.6.5(eslint@9.32.0)
@@ -6590,7 +6603,7 @@
  /file-entry-cache@10.1.4:
    resolution: {integrity: sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA==}
    dependencies:
      flat-cache: 6.1.14
      flat-cache: 6.1.17
    dev: true
  /file-entry-cache@8.0.0:
@@ -6669,10 +6682,10 @@
      keyv: 4.5.4
    dev: true
  /flat-cache@6.1.14:
    resolution: {integrity: sha512-ExZSCSV9e7v/Zt7RzCbX57lY2dnPdxzU/h3UE6WJ6NtEMfwBd8jmi1n4otDEUfz+T/R+zxrFDpICFdjhD3H/zw==}
  /flat-cache@6.1.17:
    resolution: {integrity: sha512-Jzse4YoiUJBVYTwz5Bwl4h/2VQM7e2KK3MVAMlXzX9uamIHAH/TXUlRKU1AQGQOryQhN0EsmufiiF40G057YXA==}
    dependencies:
      cacheable: 2.0.2
      cacheable: 2.1.0
      flatted: 3.3.3
      hookified: 1.12.1
    dev: true
@@ -6808,8 +6821,8 @@
    engines: {node: '>=10'}
    dev: true
  /get-tsconfig@4.10.1:
    resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
  /get-tsconfig@4.12.0:
    resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==}
    dependencies:
      resolve-pkg-maps: 1.0.0
    dev: true
@@ -7337,7 +7350,7 @@
      '@jest/environment': 27.5.1
      '@jest/test-result': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      chalk: 4.1.2
      co: 4.6.0
      dedent: 0.7.0
@@ -7462,7 +7475,7 @@
      '@jest/environment': 27.5.1
      '@jest/fake-timers': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      jest-mock: 27.5.1
      jest-util: 27.5.1
      jsdom: 16.7.0
@@ -7480,7 +7493,7 @@
      '@jest/environment': 27.5.1
      '@jest/fake-timers': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      jest-mock: 27.5.1
      jest-util: 27.5.1
    dev: true
@@ -7496,7 +7509,7 @@
    dependencies:
      '@jest/types': 27.5.1
      '@types/graceful-fs': 4.1.9
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      anymatch: 3.1.3
      fb-watchman: 2.0.2
      graceful-fs: 4.2.11
@@ -7518,7 +7531,7 @@
      '@jest/source-map': 27.5.1
      '@jest/test-result': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      chalk: 4.1.2
      co: 4.6.0
      expect: 27.5.1
@@ -7573,7 +7586,7 @@
    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    dependencies:
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
    dev: true
  /jest-pnp-resolver@1.2.3(jest-resolve@27.5.1):
@@ -7629,7 +7642,7 @@
      '@jest/test-result': 27.5.1
      '@jest/transform': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      chalk: 4.1.2
      emittery: 0.8.1
      graceful-fs: 4.2.11
@@ -7686,7 +7699,7 @@
    resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==}
    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    dependencies:
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      graceful-fs: 4.2.11
    dev: true
@@ -7715,7 +7728,7 @@
      jest-util: 27.5.1
      natural-compare: 1.4.0
      pretty-format: 27.5.1
      semver: 7.7.2
      semver: 7.7.3
    transitivePeerDependencies:
      - supports-color
    dev: true
@@ -7725,7 +7738,7 @@
    engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
    dependencies:
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      chalk: 4.1.2
      ci-info: 3.9.0
      graceful-fs: 4.2.11
@@ -7750,7 +7763,7 @@
    dependencies:
      '@jest/test-result': 27.5.1
      '@jest/types': 27.5.1
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      ansi-escapes: 4.3.2
      chalk: 4.1.2
      jest-util: 27.5.1
@@ -7761,7 +7774,7 @@
    resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
    engines: {node: '>= 10.13.0'}
    dependencies:
      '@types/node': 24.5.2
      '@types/node': 24.7.0
      merge-stream: 2.0.0
      supports-color: 8.1.1
    dev: true
@@ -7800,8 +7813,8 @@
      - debug
    dev: false
  /jiti@2.6.0:
    resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==}
  /jiti@2.6.1:
    resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
    hasBin: true
  /jpeg-js@0.3.7:
@@ -7932,7 +7945,7 @@
      acorn: 8.15.0
      eslint-visitor-keys: 3.4.3
      espree: 9.6.1
      semver: 7.7.2
      semver: 7.7.3
    dev: true
  /jsonc-parser@3.3.1:
@@ -8157,7 +8170,7 @@
    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    engines: {node: '>=10'}
    dependencies:
      semver: 7.7.2
      semver: 7.7.3
    dev: true
  /makeerror@1.0.12:
@@ -8789,8 +8802,8 @@
    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
    dev: true
  /node-releases@2.0.21:
    resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==}
  /node-releases@2.0.23:
    resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==}
  /normalize-path@3.0.0:
    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
@@ -8953,8 +8966,8 @@
    resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
    dev: true
  /package-manager-detector@1.3.0:
    resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==}
  /package-manager-detector@1.4.0:
    resolution: {integrity: sha512-rRZ+pR1Usc+ND9M2NkmCvE/LYJS+8ORVV9X0KuNSY/gFsp7RBHJM/ADh9LYq4Vvfq6QkKrW6/weuh8SMEtN5gw==}
    dev: true
  /pako@1.0.11:
@@ -9129,16 +9142,16 @@
      pinia:
        optional: true
    dependencies:
      '@nuxt/kit': 3.19.2
      '@nuxt/kit': 3.19.3
      deep-pick-omit: 1.2.1
      defu: 6.1.4
      destr: 2.0.5
      pinia: 2.2.4(typescript@5.9.2)(vue@3.4.21)
      pinia: 2.2.4(typescript@5.9.3)(vue@3.4.21)
    transitivePeerDependencies:
      - magicast
    dev: false
  /pinia@2.2.4(typescript@5.9.2)(vue@3.4.21):
  /pinia@2.2.4(typescript@5.9.3)(vue@3.4.21):
    resolution: {integrity: sha512-K7ZhpMY9iJ9ShTC0cR2+PnxdQRuwVIsXDO/WIEV/RnMC/vmSoKDTKW/exNQYPI+4ij10UjXqdNiEHwn47McANQ==}
    peerDependencies:
      '@vue/composition-api': ^1.4.0
@@ -9151,8 +9164,8 @@
        optional: true
    dependencies:
      '@vue/devtools-api': 6.6.4
      typescript: 5.9.2
      vue: 3.4.21(typescript@5.9.2)
      typescript: 5.9.3
      vue: 3.4.21(typescript@5.9.3)
      vue-demi: 0.14.10(vue@3.4.21)
    dev: false
@@ -9204,8 +9217,8 @@
    engines: {node: '>=4.0.0'}
    dev: false
  /pnpm-workspace-yaml@1.1.2:
    resolution: {integrity: sha512-XgS7j21a+I0dSmUzDUtKp4TAqPfLwJ0kAg0uQ2dveJxFrY14/9ukaD+Mt+4jt67RH4wgRsvNsjNdKbb/7NrMwQ==}
  /pnpm-workspace-yaml@1.2.0:
    resolution: {integrity: sha512-4CnZHmLSaprRnIm2iQ27Zl1cWPRHdX7Ehw7ckRwujoPKCk2QAz4agsA2MbTodg4sgbqYfJ68ULT+Q5A8dU+Mow==}
    dependencies:
      yaml: 2.8.1
    dev: true
@@ -9398,6 +9411,13 @@
  /punycode@2.3.1:
    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
    engines: {node: '>=6'}
    dev: true
  /qified@0.5.0:
    resolution: {integrity: sha512-Zj6Q/Vc/SQ+Fzc87N90jJUzBzxD7MVQ2ZvGyMmYtnl2u1a07CejAhvtk4ZwASos+SiHKCAIylyGHJKIek75QBw==}
    engines: {node: '>=20'}
    dependencies:
      hookified: 1.12.1
    dev: true
  /qrcode-reader@1.0.4:
@@ -9652,35 +9672,35 @@
      yargs: 17.7.2
    dev: true
  /rollup@4.52.3:
    resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==}
  /rollup@4.52.4:
    resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==}
    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
    hasBin: true
    dependencies:
      '@types/estree': 1.0.8
    optionalDependencies:
      '@rollup/rollup-android-arm-eabi': 4.52.3
      '@rollup/rollup-android-arm64': 4.52.3
      '@rollup/rollup-darwin-arm64': 4.52.3
      '@rollup/rollup-darwin-x64': 4.52.3
      '@rollup/rollup-freebsd-arm64': 4.52.3
      '@rollup/rollup-freebsd-x64': 4.52.3
      '@rollup/rollup-linux-arm-gnueabihf': 4.52.3
      '@rollup/rollup-linux-arm-musleabihf': 4.52.3
      '@rollup/rollup-linux-arm64-gnu': 4.52.3
      '@rollup/rollup-linux-arm64-musl': 4.52.3
      '@rollup/rollup-linux-loong64-gnu': 4.52.3
      '@rollup/rollup-linux-ppc64-gnu': 4.52.3
      '@rollup/rollup-linux-riscv64-gnu': 4.52.3
      '@rollup/rollup-linux-riscv64-musl': 4.52.3
      '@rollup/rollup-linux-s390x-gnu': 4.52.3
      '@rollup/rollup-linux-x64-gnu': 4.52.3
      '@rollup/rollup-linux-x64-musl': 4.52.3
      '@rollup/rollup-openharmony-arm64': 4.52.3
      '@rollup/rollup-win32-arm64-msvc': 4.52.3
      '@rollup/rollup-win32-ia32-msvc': 4.52.3
      '@rollup/rollup-win32-x64-gnu': 4.52.3
      '@rollup/rollup-win32-x64-msvc': 4.52.3
      '@rollup/rollup-android-arm-eabi': 4.52.4
      '@rollup/rollup-android-arm64': 4.52.4
      '@rollup/rollup-darwin-arm64': 4.52.4
      '@rollup/rollup-darwin-x64': 4.52.4
      '@rollup/rollup-freebsd-arm64': 4.52.4
      '@rollup/rollup-freebsd-x64': 4.52.4
      '@rollup/rollup-linux-arm-gnueabihf': 4.52.4
      '@rollup/rollup-linux-arm-musleabihf': 4.52.4
      '@rollup/rollup-linux-arm64-gnu': 4.52.4
      '@rollup/rollup-linux-arm64-musl': 4.52.4
      '@rollup/rollup-linux-loong64-gnu': 4.52.4
      '@rollup/rollup-linux-ppc64-gnu': 4.52.4
      '@rollup/rollup-linux-riscv64-gnu': 4.52.4
      '@rollup/rollup-linux-riscv64-musl': 4.52.4
      '@rollup/rollup-linux-s390x-gnu': 4.52.4
      '@rollup/rollup-linux-x64-gnu': 4.52.4
      '@rollup/rollup-linux-x64-musl': 4.52.4
      '@rollup/rollup-openharmony-arm64': 4.52.4
      '@rollup/rollup-win32-arm64-msvc': 4.52.4
      '@rollup/rollup-win32-ia32-msvc': 4.52.4
      '@rollup/rollup-win32-x64-gnu': 4.52.4
      '@rollup/rollup-win32-x64-msvc': 4.52.4
      fsevents: 2.3.3
  /router@2.2.0:
@@ -9779,8 +9799,8 @@
    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
    hasBin: true
  /semver@7.7.2:
    resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
  /semver@7.7.3:
    resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
    engines: {node: '>=10'}
    hasBin: true
@@ -10116,7 +10136,7 @@
      stylelint: '>=14.0.0'
    dependencies:
      postcss-html: 1.8.0
      stylelint: 16.23.0(typescript@5.9.2)
      stylelint: 16.23.0(typescript@5.9.3)
    dev: true
  /stylelint-config-recess-order@6.1.0(stylelint@16.23.0):
@@ -10124,7 +10144,7 @@
    peerDependencies:
      stylelint: '>=16'
    dependencies:
      stylelint: 16.23.0(typescript@5.9.2)
      stylelint: 16.23.0(typescript@5.9.3)
      stylelint-order: 6.0.4(stylelint@16.23.0)
    dev: true
@@ -10136,8 +10156,8 @@
      stylelint: '>=14.0.0'
    dependencies:
      postcss-html: 1.8.0
      semver: 7.7.2
      stylelint: 16.23.0(typescript@5.9.2)
      semver: 7.7.3
      stylelint: 16.23.0(typescript@5.9.3)
      stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@16.23.0)
      stylelint-config-recommended: 17.0.0(stylelint@16.23.0)
    dev: true
@@ -10148,7 +10168,7 @@
    peerDependencies:
      stylelint: ^16.23.0
    dependencies:
      stylelint: 16.23.0(typescript@5.9.2)
      stylelint: 16.23.0(typescript@5.9.3)
    dev: true
  /stylelint-config-standard-vue@1.0.0(postcss-html@1.8.0)(stylelint@16.23.0):
@@ -10159,7 +10179,7 @@
      stylelint: '>=14.0.0'
    dependencies:
      postcss-html: 1.8.0
      stylelint: 16.23.0(typescript@5.9.2)
      stylelint: 16.23.0(typescript@5.9.3)
      stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@16.23.0)
      stylelint-config-recommended-vue: 1.6.1(postcss-html@1.8.0)(stylelint@16.23.0)
      stylelint-config-standard: 39.0.0(stylelint@16.23.0)
@@ -10171,7 +10191,7 @@
    peerDependencies:
      stylelint: ^16.23.0
    dependencies:
      stylelint: 16.23.0(typescript@5.9.2)
      stylelint: 16.23.0(typescript@5.9.3)
      stylelint-config-recommended: 17.0.0(stylelint@16.23.0)
    dev: true
@@ -10182,10 +10202,10 @@
    dependencies:
      postcss: 8.5.6
      postcss-sorting: 8.0.2(postcss@8.5.6)
      stylelint: 16.23.0(typescript@5.9.2)
      stylelint: 16.23.0(typescript@5.9.3)
    dev: true
  /stylelint@16.23.0(typescript@5.9.2):
  /stylelint@16.23.0(typescript@5.9.3):
    resolution: {integrity: sha512-69T5aS2LUY306ekt1Q1oaSPwz/jaG9HjyMix3UMrai1iEbuOafBe2Dh8xlyczrxFAy89qcKyZWWtc42XLx3Bbw==}
    engines: {node: '>=18.12.0'}
    hasBin: true
@@ -10197,7 +10217,7 @@
      '@dual-bundle/import-meta-resolve': 4.2.1
      balanced-match: 2.0.0
      colord: 2.9.3
      cosmiconfig: 9.0.0(typescript@5.9.2)
      cosmiconfig: 9.0.0(typescript@5.9.3)
      css-functions-list: 3.2.3
      css-tree: 3.1.0
      debug: 4.4.3
@@ -10304,8 +10324,8 @@
      strip-ansi: 6.0.1
    dev: true
  /tapable@2.2.3:
    resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==}
  /tapable@2.3.0:
    resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
    engines: {node: '>=6'}
  /terminal-link@2.1.1:
@@ -10405,22 +10425,22 @@
      punycode: 2.3.1
    dev: true
  /ts-api-utils@2.1.0(typescript@5.9.2):
  /ts-api-utils@2.1.0(typescript@5.9.3):
    resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
    engines: {node: '>=18.12'}
    peerDependencies:
      typescript: '>=4.8.4'
    dependencies:
      typescript: 5.9.2
      typescript: 5.9.3
    dev: true
  /ts-declaration-location@1.0.7(typescript@5.9.2):
  /ts-declaration-location@1.0.7(typescript@5.9.3):
    resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==}
    peerDependencies:
      typescript: '>=4.0.0'
    dependencies:
      picomatch: 4.0.3
      typescript: 5.9.2
      typescript: 5.9.3
    dev: true
  /type-check@0.4.0:
@@ -10463,8 +10483,8 @@
      is-typedarray: 1.0.0
    dev: true
  /typescript@5.9.2:
    resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
  /typescript@5.9.3:
    resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
    engines: {node: '>=14.17'}
    hasBin: true
@@ -10476,7 +10496,7 @@
    dependencies:
      '@antfu/utils': 8.1.1
      defu: 6.1.4
      jiti: 2.6.0
      jiti: 2.6.1
    dev: true
  /unconfig@7.3.3:
@@ -10484,7 +10504,7 @@
    dependencies:
      '@quansync/fs': 0.1.5
      defu: 6.1.4
      jiti: 2.6.0
      jiti: 2.6.1
      quansync: 0.2.11
    dev: true
@@ -10497,8 +10517,8 @@
      unplugin: 2.3.10
    dev: false
  /undici-types@7.12.0:
    resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==}
  /undici-types@7.14.0:
    resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==}
    dev: true
  /unicode-canonical-property-names-ecmascript@2.0.1:
@@ -10563,8 +10583,8 @@
      unplugin-utils: 0.2.5
    dev: true
  /unimport@5.4.0:
    resolution: {integrity: sha512-g/OLFZR2mEfqbC6NC9b2225eCJGvufxq34mj6kM3OmI5gdSL0qyqtnv+9qmsGpAmnzSl6x0IWZj4W+8j2hLkMA==}
  /unimport@5.4.1:
    resolution: {integrity: sha512-wMZ2JKUCleCK2zfRHeWcbrUHKXOC3SVBYkyn/wTGzh0THX6sT4hSjuKXxKANN4/WMbT6ZPM4JzcDcnhD2x9Bpg==}
    engines: {node: '>=18.12.0'}
    dependencies:
      acorn: 8.15.0
@@ -10580,7 +10600,7 @@
      strip-literal: 3.1.0
      tinyglobby: 0.2.15
      unplugin: 2.3.10
      unplugin-utils: 0.3.0
      unplugin-utils: 0.3.1
    dev: false
  /unist-util-is@6.0.0:
@@ -10777,8 +10797,8 @@
      pathe: 2.0.3
      picomatch: 4.0.3
  /unplugin-utils@0.3.0:
    resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==}
  /unplugin-utils@0.3.1:
    resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==}
    engines: {node: '>=20.19.0'}
    dependencies:
      pathe: 2.0.3
@@ -10806,7 +10826,7 @@
      tinyglobby: 0.2.15
      unplugin: 2.3.10
      unplugin-utils: 0.2.5
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
    transitivePeerDependencies:
      - supports-color
    dev: true
@@ -10856,18 +10876,18 @@
    dependencies:
      citty: 0.1.6
      defu: 6.1.4
      jiti: 2.6.0
      jiti: 2.6.1
      knitwork: 1.2.0
      scule: 1.3.0
    dev: false
  /update-browserslist-db@1.1.3(browserslist@4.26.2):
  /update-browserslist-db@1.1.3(browserslist@4.26.3):
    resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
    hasBin: true
    peerDependencies:
      browserslist: '>= 4.21.0'
    dependencies:
      browserslist: 4.26.2
      browserslist: 4.26.3
      escalade: 3.2.0
      picocolors: 1.1.1
@@ -10969,8 +10989,8 @@
    peerDependencies:
      vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0
    dependencies:
      '@antfu/utils': 9.2.1
      '@modelcontextprotocol/sdk': 1.18.2
      '@antfu/utils': 9.3.0
      '@modelcontextprotocol/sdk': 1.19.1
      '@vue/devtools-core': 7.7.7(vite@5.2.8)(vue@3.4.21)
      '@vue/devtools-kit': 7.7.7
      ansis: 3.17.0
@@ -11018,7 +11038,7 @@
    dependencies:
      esbuild: 0.20.2
      postcss: 8.5.6
      rollup: 4.52.3
      rollup: 4.52.4
      sass: 1.79.6
      terser: 5.44.0
    optionalDependencies:
@@ -11036,7 +11056,7 @@
      '@vue/composition-api':
        optional: true
    dependencies:
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
    dev: false
  /vue-eslint-parser@10.2.0(eslint@9.32.0):
@@ -11051,7 +11071,7 @@
      eslint-visitor-keys: 4.2.1
      espree: 10.4.0
      esquery: 1.6.0
      semver: 7.7.2
      semver: 7.7.3
    transitivePeerDependencies:
      - supports-color
    dev: true
@@ -11061,7 +11081,7 @@
    peerDependencies:
      vue: ^3.4.37
    dependencies:
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
    dev: true
  /vue-i18n@9.1.9(vue@3.4.21):
@@ -11074,7 +11094,7 @@
      '@intlify/shared': 9.1.9
      '@intlify/vue-devtools': 9.1.9
      '@vue/devtools-api': 6.6.4
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
    dev: false
  /vue-router@4.5.1(vue@3.4.21):
@@ -11083,10 +11103,10 @@
      vue: ^3.2.0
    dependencies:
      '@vue/devtools-api': 6.6.4
      vue: 3.4.21(typescript@5.9.2)
      vue: 3.4.21(typescript@5.9.3)
    dev: false
  /vue@3.4.21(typescript@5.9.2):
  /vue@3.4.21(typescript@5.9.3):
    resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
    peerDependencies:
      typescript: '*'
@@ -11099,7 +11119,7 @@
      '@vue/runtime-dom': 3.4.21
      '@vue/server-renderer': 3.4.21(vue@3.4.21)
      '@vue/shared': 3.4.21
      typescript: 5.9.2
      typescript: 5.9.3
  /w3c-hr-time@1.0.2:
    resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==}
src/api/work/index.js
New file
@@ -0,0 +1,62 @@
import {request} from "@/utils/index.js";
export const getList = (data) => {
  return request({
    url: '/drone-device-core/jobEvent/eventPage',
    method: 'post',
    data,
  })
}
// 获取状态统计数据
export const getstatusCount = (params) => {
  return request({
    url: '/drone-device-core/jobEvent/getstatusCount',
    method: 'get',
    params,
  })
}
export const getStepInfo = (eventNum) => {
  return request({
    url: '/drone-device-core/jobEvent/getStepInfo',
    method: 'get',
    params: { eventNum }
  })
}
// 修改接口:处理待审核状态,动态构建 FormData 提交
export const flowEvent = (data, file) => {
  const formData = new FormData()
  // 动态添加非空字段到 FormData
  Object.entries(data).forEach(([key, value]) => {
    if (value !== undefined && value !== null) {
      formData.append(key, value)
    }
  })
  // 如果 file 存在,则添加到 FormData
  if (file) {
    formData.append('file', file)
  }
   for (let [key, value] of formData.entries()) {
      console.log(key, value)
    }
console.log('formData',formData)
  return request({
    url: '/drone-device-core/jobEvent/flowEvent',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data', // 设置为表单数据格式
    },
  })
}
// 新增接口:获取工单详细信息
export const getTicketInfo = (id) => {
  return request({
    url: '/drone-device-core/jobEvent/getTicketInfo',
    method: 'get',
    params: { id }, // 使用工单 ID 查询
  })
}
src/components/WebViewPlus.vue
@@ -9,23 +9,28 @@
function viewMessage(event) {
  messageFun({
    data: {data: {arg: event.detail.data[0]}},
    type: 'WEB_INVOKE_APPSERVICE'
    data: {
      data: {arg: event.detail.data[0]},
      type: 'WEB_INVOKE_APPSERVICE'
    },
  })
}
// WEB_INVOKE_APPSERVICE
function messageFun(e) {
  if(e.data.type === 'WEB_INVOKE_APPSERVICE'){
    if (e.data.data.arg.type === 'tokenExpired'){
      return uni.redirectTo({
        url: '/pages/login/index'
      })
    }
    emit('webMessage', e.data.data.arg)
  }
}
onShow(() => {
  console.log('show')
  window.addEventListener('message', messageFun)
})
onHide(() => {
  console.log('hide')
  window.removeEventListener('message', messageFun)
})
src/pages.json
@@ -35,7 +35,14 @@
    {
      "path": "pages/inspectionTask/TaskDetails/TaskDetails",
      "style": {
        "navigationBarTitleText": "已执行",
        "navigationBarTitleText": "执行中",
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/inspectionTask/DroneConsole/DroneConsole",
      "style": {
        "navigationBarTitleText": "控制台",
        "navigationStyle": "custom"
      }
    },
@@ -177,4 +184,4 @@
    "navigationBarBackgroundColor": "#F8F8F8",
    "backgroundColor": "#F8F8F8"
  }
}
}
src/pages/droneConsole/index.vue
File was deleted
src/pages/inspectionTask/DroneConsole/DroneConsole.vue
New file
@@ -0,0 +1,30 @@
<template>
  <WebViewPlus :src="`${viewUrl}`" @webMessage="onPostMessage"/>
</template>
<script setup>
import {onHide, onShow} from "@dcloudio/uni-app";
import WebViewPlus from "@/components/WebViewPlus.vue";
import {getWebViewUrl} from "@/utils/index.js";
const viewUrl = getWebViewUrl('/DroneConsole', {wayLineJodInfoId: 6120})
function onPostMessage(event) {
}
// onShow(() => {
//   // #ifdef APP-PLUS
//   plus.screen.lockOrientation("landscape-primary");
//   // #endif
// });
//
// onHide(() => {
//   // #ifdef APP-PLUS
//   plus.screen.lockOrientation("portrait-primary");
//   // #endif
// });
</script>
<style scoped lang="scss">
</style>
src/pages/inspectionTask/TaskDetails/TaskDetails.vue
@@ -8,8 +8,7 @@
import {getWebViewUrl} from "@/utils/index.js";
const userStore = useUserStore()
const viewUrl = getWebViewUrl('/appTaskDetails', {wayLineJodInfoId: 6120})
const viewUrl = getWebViewUrl('/TaskInProgress', {wayLineJodInfoId: 6120})
function onPostMessage(data) {
@@ -17,6 +16,10 @@
    uni.switchTab({
      url: '/pages/inspectionTask/index'
    });
  }else if(data.type === 'control'){
    uni.redirectTo({
      url: '/pages/inspectionTask/DroneConsole/DroneConsole'
    });
  }
}
</script>
src/pages/inspectionTask/index.vue
@@ -1,34 +1,29 @@
<!-- 巡检任务 -->
<template>
  <web-view ref="sWebViewRef" :src="`${viewUrl}`" />
  <WebViewPlus :src="`${viewUrl}`" @webMessage="onPostMessage"/>
</template>
<script setup>
import { useUserStore } from "@/store/index.js";
import { getWebViewUrl } from "@/utils/index.js";
import WebViewPlus from "@/components/WebViewPlus.vue";
const sWebViewRef = ref(null);
const userStore = useUserStore();
const viewUrl = `http://192.168.1.15:5174/drone-app-web-view/#/webViewWrapper/inspectionTask?params=${JSON.stringify(userStore?.userInfo)}`;
const viewUrl = getWebViewUrl('/inspectionTask')
function onPostMessage(data) {
  if (data.type === 'taskDetails'){
    if ([1,2].includes(data.rowItem.status)){
      uni.navigateTo({
        url: '/pages/inspectionTask/TaskDetails/TaskDetails'
      });
    }else{
      uni.navigateTo({
        url: '/subPackages/taskDetail/execution/index'
      });
    }
  }
}
</script>
<style scoped lang="scss">
</style>
<!--<template>-->
<!--  <WebViewPlus :src="`${viewUrl}`" @webMessage="onPostMessage"/>-->
<!--</template>-->
<!--<script setup>-->
<!--import {useUserStore} from "@/store/index.js";-->
<!--import WebViewPlus from "@/components/WebViewPlus.vue";-->
<!--const userStore = useUserStore();-->
<!--const viewUrl = `http://192.168.1.15:5174/drone-app-web-view/#/appTaskDetails?params=${JSON.stringify(userStore?.userInfo)}`;-->
<!--function onPostMessage(data) {-->
<!--  console.log(data)-->
<!--}-->
<!--</script>-->
<!--<style scoped lang="scss">-->
<!--</style>-->
src/pages/login/index.vue
@@ -22,8 +22,8 @@
} from "@/router";
const userStore = useUserStore();
const loginForm = ref({
  username: "shuishen",
  password: "Dashabi...."
  username: "zhx",
  password: "123456"
})
const inputStyle = computed(() => {
  const style = {};
src/pages/work/index.vue
@@ -1,67 +1,218 @@
<!-- 事件工单 -->
<template>
  <view class="min-h-screen flex flex-col items-center">
    <image
      class="mb-50rpx mt-200rpx h-200rpx w-200rpx"
      src="@/static/images/logo.png"
      width="200rpx"
      height="200rpx"
    />
    <view class="flex justify-center">
      <text class="font-size-36rpx">
        {{ $t("home.intro") }}
      </text>
    </view>
    <view class="mt-100rpx flex gap-30rpx">
      <lang-select />
      <view class="cursor-pointer" @click="toGithub">
        <view class="i-mdi-github text-40rpx" />
      </view>
    </view>
    <view class="flex flex-col eventTickets">
         <web-view ref="sWebViewRef" :src="`${viewUrl}`" />
        <!-- <view class="searchTop">
            <up-search placeholder="请输入关键字搜索"  :animation="true"  v-model="listParams.keyword" :show-action="false"></up-search>
            <div>111</div>
        </view>
        <view>
            <up-tabs :list="tabList" @click="handleClick"></up-tabs>
            <view class="eventBox">
                <view class="eventItem"  v-for="(item,index) in dataList" :key="index">
                    <img :src="item.photo_url" alt="" @click="detailHandle(item)" />
                    <div class="itemTitle">{{item.event_name}}</div>
                    <div class="itemContent">
                        <div class="itemStatus">
                            <span v-if="item.status === 0" style="background-color: #ff7411;"></span>
                            <span v-else-if="item.status === 2" style="background-color: #ff472f;"></span>
                            <span v-else-if="item.status === 3" style="background-color: #ffc300;"></span>
                            <span v-else-if="item.status === 4" style="background-color: #06d957;"></span>
                            <p>{{formatDate(item.create_time) }}</p>
                        </div>
                        <div>全屏</div>
                    </div>
                </view>
            </view>
        </view> -->
    </view>
    <!-- #ifdef MP-WEIXIN -->
    <!-- 隐私协议组件 -->
    <agree-privacy
      v-model="showAgreePrivacy"
      :disable-check-privacy="false"
      @agree="handleAgree"
    />
    <!-- #endif -->
  </view>
</template>
<script setup>
// #ifdef MP-WEIXIN
import { useShare } from "@/hooks";
// #endif
    import {getWebViewUrl} from "@/utils/index.js";
import { useUserStore } from '@/store/index.js'
import {getList,getstatusCount} from '/src/api/work/index.js'
    import dayjs from 'dayjs';
    const userStore = useUserStore()
    const userInfo = userStore.userInfo
const sWebViewRef = ref(null);
const viewUrl = getWebViewUrl('/work', {})
// const viewUrl = `http://192.168.1.157:5173/drone-app-web-view/#/webViewWrapper/work?params=${JSON.stringify(userStore?.userInfo)}`;
    const dataList = ref([])
    const keyword = ref('')
    const currentTab=ref('myTickets')
    const tabList = ref([{
            name: '我的工单',
            key: 'myTickets',
            badge: {
                value: 1
            }
        },
        {
            name: '全部状态',
            key: 'all',
            badge: {
                value: 2
            },
            status: null
        },
        {
            name: '待审核',
            key: 'pending',
            badge: {
                value: 3
            },
            status: '2'
        },
        {
            name: '待处理',
            key: 'processing',
            badge: {
                value: 4
            },
            status: '0'
        },
        {
            name: '处理中',
            key: 'inProgress',
            badge: {
                value: 5
            },
            status: '3'
        },
        {
            name: '已完成',
            key: 'completed',
            badge: {
                value: 6
            },
            status: '4'
        }
    ])
    const formatDate = (dateString) => {
        return dayjs(dateString).format('MM/DD HH:mm');
    };
    const listParams = ref({
        status: null,
        current: 1,
        size: 9999,
        source: 1,
        department:'',
        keyword:''
// #ifdef MP-WEIXIN
// 分享使用示例
const { onShareAppMessage, onShareTimeline } = useShare({
  title: "首页",
  path: "pages/tab/map/index",
  imageUrl: "",
});
onShareAppMessage();
onShareTimeline();
// #endif
    })
    const getDataList = () => {
        const params = {
            current: 1,
            size: 9999,
            source: 1,
            status:listParams.value.status,
            event_name:listParams.value.keyword,
            user_id:currentTab.value=== 'myTickets' ?userInfo.user_id : undefined
        }
        getList(params).then(res => {
            const response = res.data.data.records
            dataList.value = response
        })
    }
        const getstatusCountData=()=>{
            getstatusCount().then(res=>{
                const response = res.data.data
                 const { statusCount, totalCount, userCount } = response
                tabList.value.forEach(tab=>{
                    if(tab.key === 'all'){
                        tab.badge.value = totalCount || 0
const title = ref();
title.value = import.meta.env.VITE_APP_TITLE;
                    }else if(tab.key === 'myTickets'){
                        tab.badge.value = userCount || 0
                    }else{
                        tab.badge.value=statusCount[String(tab.status)] || 0
                    }
                })
            })
        }
const showAgreePrivacy = ref(false);
// 同意隐私协议
function handleAgree() {
  console.log("同意隐私政策");
}
// 打开github
function toGithub() {
  if (window?.open) {
    window.open("https://github.com/oyjt/uniapp-vue3-template");
  } else {
    uni.$u.toast("请使用浏览器打开");
  }
}
    const handleClick = (item) => {
        currentTab.value = item.key
    listParams.value.status = item.status
        getDataList()
    }
    const detailHandle = (val) => {
        uni.navigateTo({
            url: `/subPackages/workDetail/index?eventNum=${val.event_num}`,
        })
    }
    onShow(() => {
        getDataList()
        getstatusCountData()
    })
</script>
<style scoped lang="scss">
    .eventTickets {
        padding: 0 10px;
        .searchTop {
            display: flex;
            align-items: center;
            margin-top: 10px;
        }
        :deep(.u-badge) {
            background-color: #1d6fe9 !important;
        }
        .eventBox {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            padding: 10px 0;
            background-color: #ebeff2;
            .eventItem {
                width: calc(50% - 5px);
                background-color: #fff;
                border-radius: 5px;
                overflow: hidden;
                img {
                    width: 100%;
                    height: 100px;
                    border-radius: 5px;
                    overflow: hidden;
                }
                .itemTitle {
                    padding: 0 5px;
                     white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
                .itemContent {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    padding: 5px;
                    .itemStatus {
                        display: flex;
                        align-items: center;
                        span {
                            display: inline-block;
                            width: 10px;
                            height: 10px;
                            border-radius: 50%;
                            margin-right: 5px;
                        }
                    }
                }
            }
        }
    }
</style>
src/subPackages/taskDetail/execution/index.vue
@@ -1,35 +1,24 @@
<!-- 已执行 -->
<template>
  <web-view ref="sWebViewRef" :src="`${viewUrl}`" @message="onPostMessage" @onPostMessage="onPostMessage" />
  <WebViewPlus :src="`${viewUrl}`"/>
</template>
<script setup>
import {onLoad} from "@dcloudio/uni-app";
import {useUserStore} from "@/store/index.js";
import WebViewPlus from "@/components/WebViewPlus.vue";
import {getWebViewUrl} from "@/utils/index.js";
const sWebViewRef = ref(null);
const userStore = useUserStore();
let viewUrl = ''
const viewUrl = ref(getWebViewUrl('/execution'))
function onPostMessage(event) {
  if (event.detail.data[0].type === 'back') {
    // active.value = null
  }
}
// onLoad(() => {
//   window.addEventListener('message', function (e) {
//     if (e.data.data.type === 'back') {
//       // active.value = null
//     }
//   });
// })
onLoad((options) => {
  // console.log('options1111111', JSON.parse(decodeURIComponent(options)));
  const id=3333
  viewUrl = `http://192.168.1.178:5173/drone-app-web-view/#/webViewWrapper/execution?rowItem=${id}`;
});
// function onPostMessage(data) {
//   console.log(data, '9999')
//   if (data.type === 'taskDetails'){
//     console.log('4444')
//     uni.switchTab({
//       url: '/subPackages/taskDetail/execution/index'
//     });
//   }
// }
</script>
<style lang="scss" scoped></style>
src/subPackages/workDetail/index.vue
@@ -1,18 +1,148 @@
<!--
 * @Author       : yuan
 * @Date         : 2025-09-29 13:52:16
 * @LastEditors  : yuan
 * @LastEditTime : 2025-09-29 13:53:32
 * @FilePath     : \src\subPackages\workDetail\index.vue
 * @Description  :
 * Copyright 2025 OBKoro1, All Rights Reserved.
 * 2025-09-29 13:52:16
-->
<!-- 工单详情 - 包含待审核、待处理、处理中、已完成 -->
<template>
  <view> 基础 </view>
    <div class="workDetailContainer">
         <WebViewPlus ref="sWebViewRef" :src="`${viewUrl}`" @webMessage="onPostMessage"/>
    </div>
</template>
<script setup></script>
<script setup>
    import { onLoad } from '@dcloudio/uni-app';
    import { useUserStore } from '@/store/index.js'
    const userStore = useUserStore()
    const userInfo = userStore.userInfo
    const sWebViewRef = ref(null);
    const viewUrl = ref(`http://192.168.1.157:5173/drone-app-web-view/#/webViewWrapper/workDetail?params=${JSON.stringify(userStore?.userInfo)}`);
    onLoad( (options) => {
        const eventNum= options.eventNum;
        viewUrl.value =`http://192.168.1.157:5173/drone-app-web-view/#/webViewWrapper/workDetail?params=${JSON.stringify(userStore?.userInfo)}&eventNum=${eventNum}`
    });
    function onPostMessage(data) {
      if (data.type === 'workback'){
        uni.switchTab({
          url: '/pages/work/index'
        });
      }
    }
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
    .workDetailContainer {
        padding: 0 10px;
        .detailTop {
            .image-container {
                position: relative;
                width: 100%;
                height: 200px;
                .detailImage {
                    width: 100%;
                    height: 100%;
                    display: block;
                    object-fit: cover
                }
                .detailTitle {
                    position: absolute;
                    left: 0;
                    bottom: 0;
                    width: 100%;
                }
                .titleText {
                    display: flex;
                    width: 100%;
                    justify-content: space-between;
                    align-items: center;
                }
            }
        }
        .stepContainer {
            margin-top: 10px;
            display: flex;
            background-color: antiquewhite;
            border-radius: 5px;
            padding: 10px;
            .horizontal-step {
                display: flex;
                align-items: center;
                gap: 12px;
                .step-title {
                    min-width: 60px;
                }
                .step-desc {
                    display: flex;
                    justify-content: space-between;
                    gap: 8px;
                    // color: #666;
                    font-size: 14px;
                }
            }
        }
        .actionButton {
            display: flex;
            justify-content: space-between;
            margin-bottom: 10px;
            .btngroups {
                display: flex;
                justify-content: space-between;
                .u-button {
                    padding: 9px 20px;
                    height: 32px;
                    &:last-child {
                        margin-left: 12px;
                        margin-right: 12px;
                    }
                }
            }
            .leftBtn {
                width: 70px;
                height: 32px;
                background-color: #999;
                border-radius: 5px;
                text-align: center;
                line-height: 32px;
                color: #fff;
                cursor: pointer;
                opacity: 0.8;
            }
            .disableds {
                background: #999 !important;
                cursor: not-allowed !important;
                pointer-events: none;
                opacity: 0.3 !important;
            }
        }
        .workOrderContent {
            margin-top: 15px;
            .workOrderContainer {
                div {
                    margin-bottom: 10px;
                }
                .titketName {
                    display: flex;
                    align-items: center;
                }
            }
        }
    }
</style>
src/utils/common/index.js
@@ -29,17 +29,22 @@
  })
}
export function getWebViewUrl(targetUrl,otherParams){
  const userStore = useUserStore()
  const url = import.meta.env.VITE_APP_WEBVIEW_URL
  // 构建查询参数
  const params = new URLSearchParams()
  params.append('params', JSON.stringify(userStore?.userInfo))
  // 处理 otherParams 对象
export function getWebViewUrl(targetUrl, otherParams) {
  const userStore = useUserStore();
  const url = import.meta.env.VITE_APP_WEBVIEW_URL;
  // 1. 处理用户参数
  const userParams = userStore?.userInfo ? JSON.stringify(userStore.userInfo) : '{}';
  // 2. 构建查询参数字符串
  let queryString = `params=${encodeURIComponent(userParams)}`;
  // 3. 处理 otherParams 对象
  if (otherParams && typeof otherParams === 'object') {
    Object.keys(otherParams).forEach(key => {
      params.append(key, otherParams[key])
    })
      const value = otherParams[key];
      if (value !== undefined && value !== null) {
        queryString += `&${key}=${encodeURIComponent(value)}`;
      }
    });
  }
  return `${url}${targetUrl}?${params.toString()}`
  // 4. 拼接完整 URL
  return `${url}${targetUrl}?${queryString}`;
}