]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore: Merge branch 'minor' into vapor
authorEvan You <evan@vuejs.org>
Wed, 29 Jan 2025 07:37:54 +0000 (15:37 +0800)
committerEvan You <evan@vuejs.org>
Wed, 29 Jan 2025 07:37:54 +0000 (15:37 +0800)
12 files changed:
1  2 
package.json
packages-private/template-explorer/package.json
packages/compiler-sfc/package.json
packages/compiler-sfc/src/compileScript.ts
packages/reactivity/src/effectScope.ts
packages/reactivity/src/ref.ts
packages/runtime-core/src/apiLifecycle.ts
packages/runtime-core/src/componentOptions.ts
packages/runtime-core/src/renderer.ts
packages/runtime-vapor/src/renderEffect.ts
pnpm-lock.yaml
vitest.config.ts

diff --cc package.json
index 9e502ec604ae50b06b8c940ff357514815496855,03897cb198833a05aeff691465fab3fb2e77e884..80a86145a150842f43b39afc39b2b62356998dbf
      "@babel/parser": "catalog:",
      "@babel/types": "catalog:",
      "@rollup/plugin-alias": "^5.1.1",
-     "@rollup/plugin-commonjs": "^28.0.1",
+     "@rollup/plugin-commonjs": "^28.0.2",
      "@rollup/plugin-json": "^6.1.0",
-     "@rollup/plugin-node-resolve": "^15.3.0",
+     "@rollup/plugin-node-resolve": "^16.0.0",
      "@rollup/plugin-replace": "5.0.4",
-     "@swc/core": "^1.9.1",
+     "@swc/core": "^1.10.8",
      "@types/hash-sum": "^1.0.2",
-     "@types/node": "^22.8.7",
+     "@types/node": "^22.10.7",
      "@types/semver": "^7.5.8",
      "@types/serve-handler": "^6.1.4",
-     "@vitest/coverage-v8": "^2.1.1",
-     "@vitest/ui": "^2.1.1",
+     "@vitest/coverage-v8": "^3.0.2",
++    "@vitest/ui": "^3.0.2",
      "@vue/consolidate": "1.0.0",
      "conventional-changelog-cli": "^5.0.0",
      "enquirer": "^2.4.1",
index fafca26640229f48853c42aadb5d8dd4298a5e0c,08da34b173e3d11703bd796a1a08ff5731a64fa8..c546f4a298d302b25f7f70ccf69fbf9b3d034573
@@@ -11,8 -11,7 +11,8 @@@
      "enableNonBrowserBranches": true
    },
    "dependencies": {
-     "monaco-editor": "^0.52.0",
 +    "@vue/compiler-vapor": "workspace:^",
+     "monaco-editor": "^0.52.2",
      "source-map-js": "^1.2.1"
    }
  }
Simple merge
index 0d1dc0976f4aa12fc9e5a48a0f32f95bf3ca3185,962b7bc7936bae4d075204f698f688fdd2416246..5403788ed7f0e387fa6d5c1106843f7af91787a6
@@@ -174,10 -169,7 +174,8 @@@ export function compileScript
    const scopeId = options.id ? options.id.replace(/^data-v-/, '') : ''
    const scriptLang = script && script.lang
    const scriptSetupLang = scriptSetup && scriptSetup.lang
 +  const vapor = sfc.vapor || options.vapor
  
-   let refBindings: string[] | undefined
    if (!scriptSetup) {
      if (!script) {
        throw new Error(`[@vue/compiler-sfc] SFC contains no <script> tags.`)
index 5bf9f019f448e12a87ccfbda44809c8ac1b12574,9ae365f5dba51ca84d0d0d08ed81a3dc2f49a251..ed868ff03208b9ae198bd14f2198865f1096f7f6
@@@ -15,8 -20,8 +19,7 @@@ import 
    toRaw,
    toReactive,
  } from './reactive'
- import type { ComputedRef, WritableComputedRef } from './computed'
- import { ReactiveFlags, TrackOpTypes, TriggerOpTypes } from './constants'
+ import { type Dependency, type Link, link, propagate } from './system'
 -import { warn } from './warning'
  
  declare const RefSymbol: unique symbol
  export declare const RawSymbol: unique symbol
index 550ae914a4ff50c3756c31e8b986a43547b99f8f,b79a6d38a06185be7d94406fb8dfd5616a92dc8c..93af3a2b01ce7f8f15289168a26f9928a3615bd1
@@@ -38,10 -38,10 +38,12 @@@ export function injectHook
          // This assumes the hook does not synchronously trigger other hooks, which
          // can only be false when the user does something really funky.
          const reset = setCurrentInstance(target)
--        const res = callWithAsyncErrorHandling(hook, target, type, args)
--        reset()
--        resetTracking()
--        return res
++        try {
++          return callWithAsyncErrorHandling(hook, target, type, args)
++        } finally {
++          reset()
++          resetTracking()
++        }
        })
      if (prepend) {
        hooks.unshift(wrappedHook)
Simple merge
index 8b6b1e04fc6f515ff3e6aa36f482dd22bb2c61f5,0000000000000000000000000000000000000000..8b45b38226539ac6c7bbf176f4d45dbfce39f29a
mode 100644,000000..100644
--- /dev/null
@@@ -1,71 -1,0 +1,71 @@@
-   const job: SchedulerJob = effect.runIfDirty.bind(effect)
 +import { ReactiveEffect, getCurrentScope } from '@vue/reactivity'
 +import {
 +  type SchedulerJob,
 +  currentInstance,
 +  queueJob,
 +  queuePostFlushCb,
 +  simpleSetCurrentInstance,
 +  startMeasure,
 +  warn,
 +} from '@vue/runtime-dom'
 +import { type VaporComponentInstance, isVaporComponent } from './component'
 +import { invokeArrayFns } from '@vue/shared'
 +
 +export function renderEffect(fn: () => void, noLifecycle = false): void {
 +  const instance = currentInstance as VaporComponentInstance | null
 +  const scope = getCurrentScope()
 +  if (__DEV__ && !__TEST__ && !isVaporComponent(instance)) {
 +    warn('renderEffect called without active vapor instance.')
 +  }
 +
 +  // renderEffect is always called after user has registered all hooks
 +  const hasUpdateHooks = instance && (instance.bu || instance.u)
 +  const renderEffectFn = noLifecycle
 +    ? fn
 +    : () => {
 +        if (__DEV__ && instance) {
 +          startMeasure(instance, `renderEffect`)
 +        }
 +        const prev = currentInstance
 +        simpleSetCurrentInstance(instance)
 +        if (scope) scope.on()
 +        if (hasUpdateHooks && instance.isMounted && !instance.isUpdating) {
 +          instance.isUpdating = true
 +          instance.bu && invokeArrayFns(instance.bu)
 +          fn()
 +          queuePostFlushCb(() => {
 +            instance.isUpdating = false
 +            instance.u && invokeArrayFns(instance.u)
 +          })
 +        } else {
 +          fn()
 +        }
 +        if (scope) scope.off()
 +        simpleSetCurrentInstance(prev, instance)
 +        if (__DEV__ && instance) {
 +          startMeasure(instance, `renderEffect`)
 +        }
 +      }
 +
 +  const effect = new ReactiveEffect(renderEffectFn)
++  const job: SchedulerJob = () => effect.dirty && effect.run()
 +
 +  if (instance) {
 +    if (__DEV__) {
 +      effect.onTrack = instance.rtc
 +        ? e => invokeArrayFns(instance.rtc!, e)
 +        : void 0
 +      effect.onTrigger = instance.rtg
 +        ? e => invokeArrayFns(instance.rtg!, e)
 +        : void 0
 +    }
 +    job.i = instance
 +    job.id = instance.uid
 +  }
 +
 +  effect.scheduler = () => queueJob(job)
 +  effect.run()
 +
 +  // TODO recurse handling
 +  // TODO measure
 +}
diff --cc pnpm-lock.yaml
index 3f7ab37c2c8f853da9540412fecbff4be792e638,c2b27c720d3353242bba97db3ae254caa04288c2..0d0fb19fe118ce34191231838f0a8704173af6a0
@@@ -8,25 -8,25 +8,25 @@@ catalogs
    default:
      '@babel/parser':
        specifier: ^7.25.3
-       version: 7.25.6
 -      version: 7.25.3
++      version: 7.26.2
      '@babel/types':
        specifier: ^7.25.2
-       version: 7.25.6
 -      version: 7.25.2
++      version: 7.26.0
      '@vitejs/plugin-vue':
        specifier: ^5.1.2
-       version: 5.1.4
 -      version: 5.1.2
++      version: 5.1.5
      estree-walker:
        specifier: ^2.0.2
        version: 2.0.2
      magic-string:
        specifier: ^0.30.11
-       version: 0.30.12
 -      version: 0.30.11
++      version: 0.30.17
      source-map-js:
        specifier: ^1.2.0
 -      version: 1.2.0
 +      version: 1.2.1
      vite:
        specifier: ^5.4.0
 -      version: 5.4.0
 +      version: 5.4.8
  
  importers:
  
      devDependencies:
        '@babel/parser':
          specifier: 'catalog:'
-         version: 7.25.6
 -        version: 7.25.3
++        version: 7.26.2
        '@babel/types':
          specifier: 'catalog:'
-         version: 7.25.6
 -        version: 7.25.2
++        version: 7.26.0
        '@rollup/plugin-alias':
          specifier: ^5.1.1
-         version: 5.1.1(rollup@4.25.0)
+         version: 5.1.1(rollup@4.31.0)
        '@rollup/plugin-commonjs':
-         specifier: ^28.0.1
-         version: 28.0.1(rollup@4.25.0)
+         specifier: ^28.0.2
+         version: 28.0.2(rollup@4.31.0)
        '@rollup/plugin-json':
          specifier: ^6.1.0
-         version: 6.1.0(rollup@4.25.0)
+         version: 6.1.0(rollup@4.31.0)
        '@rollup/plugin-node-resolve':
-         specifier: ^15.3.0
-         version: 15.3.0(rollup@4.25.0)
+         specifier: ^16.0.0
+         version: 16.0.0(rollup@4.31.0)
        '@rollup/plugin-replace':
          specifier: 5.0.4
-         version: 5.0.4(rollup@4.25.0)
+         version: 5.0.4(rollup@4.31.0)
        '@swc/core':
-         specifier: ^1.9.1
-         version: 1.9.1
+         specifier: ^1.10.8
+         version: 1.10.8
        '@types/hash-sum':
          specifier: ^1.0.2
          version: 1.0.2
          specifier: ^6.1.4
          version: 6.1.4
        '@vitest/coverage-v8':
-         specifier: ^2.1.1
-         version: 2.1.1(vitest@2.1.1)
+         specifier: ^3.0.2
 -        version: 3.0.2(vitest@3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4))
++        version: 3.0.2(vitest@3.0.2)
        '@vitest/eslint-plugin':
-         specifier: ^1.0.1
-         version: 1.1.6(@typescript-eslint/utils@8.12.2(eslint@9.14.0)(typescript@5.6.2))(eslint@9.14.0)(typescript@5.6.2)(vitest@2.1.1)
+         specifier: ^1.1.25
 -        version: 1.1.25(@typescript-eslint/utils@8.20.0(eslint@9.18.0)(typescript@5.6.2))(eslint@9.18.0)(typescript@5.6.2)(vitest@3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4))
++        version: 1.1.25(@typescript-eslint/utils@8.20.0(eslint@9.18.0)(typescript@5.6.2))(eslint@9.18.0)(typescript@5.6.2)(vitest@3.0.2)
 +      '@vitest/ui':
-         specifier: ^2.1.1
-         version: 2.1.1(vitest@2.1.1)
++        specifier: ^3.0.2
++        version: 3.0.4(vitest@3.0.2)
        '@vue/consolidate':
          specifier: 1.0.0
          version: 1.0.0
          specifier: ~5.6.2
          version: 5.6.2
        typescript-eslint:
-         specifier: ^8.12.2
-         version: 8.12.2(eslint@9.14.0)(typescript@5.6.2)
+         specifier: ^8.20.0
+         version: 8.20.0(eslint@9.18.0)(typescript@5.6.2)
        vite:
          specifier: 'catalog:'
-         version: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
 -        version: 5.4.0(@types/node@22.10.7)(sass@1.83.4)
++        version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
        vitest:
-         specifier: ^2.1.1
-         version: 2.1.1(@types/node@22.8.7)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.80.6)(terser@5.33.0)
+         specifier: ^3.0.2
 -        version: 3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4)
++        version: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
 +
 +  benchmark:
 +    dependencies:
 +      '@vitejs/plugin-vue':
 +        specifier: https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5
-         version: https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))(vue@3.5.13(typescript@5.6.2))
++        version: https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@3.5.13(typescript@5.6.2))
 +      connect:
 +        specifier: ^3.7.0
 +        version: 3.7.0
 +      sirv:
 +        specifier: ^2.0.4
 +        version: 2.0.4
 +      vite:
 +        specifier: 'catalog:'
-         version: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
++        version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
 +    devDependencies:
 +      '@types/connect':
 +        specifier: ^3.4.38
 +        version: 3.4.38
 +      terser:
 +        specifier: ^5.33.0
 +        version: 5.33.0
  
    packages-private/dts-built-test:
      dependencies:
      devDependencies:
        '@vitejs/plugin-vue':
          specifier: 'catalog:'
-         version: 5.1.4(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))(vue@packages+vue)
 -        version: 5.1.2(vite@5.4.0(@types/node@22.10.7)(sass@1.83.4))(vue@packages+vue)
++        version: 5.1.5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)
        vite:
          specifier: 'catalog:'
-         version: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
 -        version: 5.4.0(@types/node@22.10.7)(sass@1.83.4)
++        version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
  
    packages-private/template-explorer:
      dependencies:
 +      '@vue/compiler-vapor':
 +        specifier: workspace:^
 +        version: link:../../packages/compiler-vapor
        monaco-editor:
-         specifier: ^0.52.0
-         version: 0.52.0
+         specifier: ^0.52.2
+         version: 0.52.2
        source-map-js:
          specifier: ^1.2.1
          version: 1.2.1
      devDependencies:
        '@vitejs/plugin-vue':
          specifier: 'catalog:'
-         version: 5.1.4(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))(vue@packages+vue)
 -        version: 5.1.2(vite@5.4.0(@types/node@22.10.7)(sass@1.83.4))(vue@packages+vue)
++        version: 5.1.5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)
        vite:
          specifier: 'catalog:'
-         version: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
 -        version: 5.4.0(@types/node@22.10.7)(sass@1.83.4)
++        version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
        vue:
          specifier: workspace:*
          version: link:../../packages/vue
      dependencies:
        '@babel/parser':
          specifier: 'catalog:'
-         version: 7.25.6
 -        version: 7.25.3
++        version: 7.26.2
        '@vue/shared':
          specifier: workspace:*
          version: link:../shared
      devDependencies:
        '@babel/types':
          specifier: 'catalog:'
-         version: 7.25.6
 -        version: 7.25.2
++        version: 7.26.0
  
    packages/compiler-dom:
      dependencies:
      dependencies:
        '@babel/parser':
          specifier: 'catalog:'
-         version: 7.25.6
 -        version: 7.25.3
++        version: 7.26.2
        '@vue/compiler-core':
          specifier: workspace:*
          version: link:../compiler-core
          version: 2.0.2
        magic-string:
          specifier: 'catalog:'
-         version: 0.30.12
 -        version: 0.30.11
++        version: 0.30.17
        postcss:
-         specifier: ^8.4.48
-         version: 8.4.48
+         specifier: ^8.5.1
+         version: 8.5.1
        source-map-js:
          specifier: 'catalog:'
 -        version: 1.2.0
 +        version: 1.2.1
      devDependencies:
        '@babel/types':
          specifier: 'catalog:'
-         version: 7.25.6
 -        version: 7.25.2
++        version: 7.26.0
        '@vue/consolidate':
          specifier: ^1.0.0
          version: 1.0.0
      dependencies:
        '@babel/parser':
          specifier: 'catalog:'
-         version: 7.25.6
 -        version: 7.25.3
++        version: 7.26.2
        estree-walker:
          specifier: 'catalog:'
          version: 2.0.2
          specifier: workspace:*
          version: link:../vue
  
-         version: https://pkg.pr.new/@vitejs/plugin-vue@481bcd4(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))(vue@packages+vue)
 +  playground:
 +    dependencies:
 +      '@vueuse/core':
 +        specifier: ^11.1.0
 +        version: 11.1.0(vue@packages+vue)
 +      vue:
 +        specifier: workspace:*
 +        version: link:../packages/vue
 +    devDependencies:
 +      '@vitejs/plugin-vue':
 +        specifier: https://pkg.pr.new/@vitejs/plugin-vue@481bcd4
-         version: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
++        version: https://pkg.pr.new/@vitejs/plugin-vue@481bcd4(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)
 +      '@vue/compiler-sfc':
 +        specifier: workspace:*
 +        version: link:../packages/compiler-sfc
 +      vite:
 +        specifier: 'catalog:'
-         version: 0.4.0(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))
++        version: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
 +      vite-hyper-config:
 +        specifier: ^0.4.0
-         version: 0.8.7(rollup@4.25.0)(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))
++        version: 0.4.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))
 +      vite-plugin-inspect:
 +        specifier: ^0.8.7
++        version: 0.8.7(rollup@4.31.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))
 +
  packages:
  
    '@ampproject/remapping@2.3.0':
      resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
      engines: {node: '>=6.0.0'}
  
 +  '@antfu/utils@0.7.10':
 +    resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
 +
+   '@asamuzakjp/css-color@2.8.2':
+     resolution: {integrity: sha512-RtWv9jFN2/bLExuZgFFZ0I3pWWeezAHGgrmjqGGWclATl1aDe3yhCUaI0Ilkp6OCk9zX7+FjvDasEX8Q9Rxc5w==}
    '@babel/code-frame@7.24.7':
      resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
      engines: {node: '>=6.9.0'}
  
--  '@babel/helper-string-parser@7.24.8':
--    resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
 -    engines: {node: '>=6.9.0'}
 -
+   '@babel/helper-string-parser@7.25.9':
+     resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
      engines: {node: '>=6.9.0'}
  
--  '@babel/helper-validator-identifier@7.24.7':
--    resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
 -    engines: {node: '>=6.9.0'}
 -
+   '@babel/helper-validator-identifier@7.25.9':
+     resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
      engines: {node: '>=6.9.0'}
  
    '@babel/highlight@7.24.7':
      resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
      engines: {node: '>=6.9.0'}
  
-   '@babel/parser@7.25.6':
-     resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==}
 -  '@babel/parser@7.25.3':
 -    resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==}
 -    engines: {node: '>=6.0.0'}
 -    hasBin: true
 -
+   '@babel/parser@7.26.2':
+     resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
      engines: {node: '>=6.0.0'}
      hasBin: true
  
-   '@babel/types@7.25.6':
-     resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
 -  '@babel/types@7.25.2':
 -    resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==}
 -    engines: {node: '>=6.9.0'}
 -
+   '@babel/types@7.26.0':
+     resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
      engines: {node: '>=6.9.0'}
  
-   '@bcoe/v8-coverage@0.2.3':
-     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+   '@bcoe/v8-coverage@1.0.2':
+     resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==}
+     engines: {node: '>=18'}
  
    '@conventional-changelog/git-client@1.0.1':
      resolution: {integrity: sha512-PJEqBwAleffCMETaVm/fUgHldzBE35JFk3/9LL6NUA5EXa3qednu+UT6M7E5iBu3zIQZCULYIiZ90fBYHt6xUw==}
      resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
      engines: {node: '>=14'}
  
-   '@puppeteer/browsers@2.4.0':
-     resolution: {integrity: sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==}
 +  '@polka/url@1.0.0-next.25':
 +    resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
 +
+   '@puppeteer/browsers@2.7.0':
+     resolution: {integrity: sha512-bO61XnTuopsz9kvtfqhVbH6LTM1koxK0IlBR+yuVrM2LB7mk8+5o1w18l5zqd5cs8xlf+ntgambqRqGifMDjog==}
      engines: {node: '>=18'}
      hasBin: true
  
        rollup:
          optional: true
  
-   '@rollup/rollup-android-arm-eabi@4.25.0':
-     resolution: {integrity: sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==}
 -  '@rollup/rollup-android-arm-eabi@4.20.0':
 -    resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==}
 -    cpu: [arm]
 -    os: [android]
 -
+   '@rollup/rollup-android-arm-eabi@4.31.0':
+     resolution: {integrity: sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==}
      cpu: [arm]
      os: [android]
  
-   '@rollup/rollup-android-arm64@4.25.0':
-     resolution: {integrity: sha512-/Y76tmLGUJqVBXXCfVS8Q8FJqYGhgH4wl4qTA24E9v/IJM0XvJCGQVSW1QZ4J+VURO9h8YCa28sTFacZXwK7Rg==}
 -  '@rollup/rollup-android-arm64@4.20.0':
 -    resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==}
 -    cpu: [arm64]
 -    os: [android]
 -
+   '@rollup/rollup-android-arm64@4.31.0':
+     resolution: {integrity: sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==}
      cpu: [arm64]
      os: [android]
  
-   '@rollup/rollup-darwin-arm64@4.25.0':
-     resolution: {integrity: sha512-YVT6L3UrKTlC0FpCZd0MGA7NVdp7YNaEqkENbWQ7AOVOqd/7VzyHpgIpc1mIaxRAo1ZsJRH45fq8j4N63I/vvg==}
 -  '@rollup/rollup-darwin-arm64@4.20.0':
 -    resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==}
 -    cpu: [arm64]
 -    os: [darwin]
 -
+   '@rollup/rollup-darwin-arm64@4.31.0':
+     resolution: {integrity: sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==}
      cpu: [arm64]
      os: [darwin]
  
-   '@rollup/rollup-darwin-x64@4.25.0':
-     resolution: {integrity: sha512-ZRL+gexs3+ZmmWmGKEU43Bdn67kWnMeWXLFhcVv5Un8FQcx38yulHBA7XR2+KQdYIOtD0yZDWBCudmfj6lQJoA==}
 -  '@rollup/rollup-darwin-x64@4.20.0':
 -    resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==}
 -    cpu: [x64]
 -    os: [darwin]
 -
+   '@rollup/rollup-darwin-x64@4.31.0':
+     resolution: {integrity: sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==}
      cpu: [x64]
      os: [darwin]
  
      cpu: [x64]
      os: [freebsd]
  
-   '@rollup/rollup-linux-arm-gnueabihf@4.25.0':
-     resolution: {integrity: sha512-uD/dbLSs1BEPzg564TpRAQ/YvTnCds2XxyOndAO8nJhaQcqQGFgv/DAVko/ZHap3boCvxnzYMa3mTkV/B/3SWA==}
 -  '@rollup/rollup-linux-arm-gnueabihf@4.20.0':
 -    resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==}
 -    cpu: [arm]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-arm-gnueabihf@4.31.0':
+     resolution: {integrity: sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==}
      cpu: [arm]
      os: [linux]
  
-   '@rollup/rollup-linux-arm-musleabihf@4.25.0':
-     resolution: {integrity: sha512-ZVt/XkrDlQWegDWrwyC3l0OfAF7yeJUF4fq5RMS07YM72BlSfn2fQQ6lPyBNjt+YbczMguPiJoCfaQC2dnflpQ==}
 -  '@rollup/rollup-linux-arm-musleabihf@4.20.0':
 -    resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==}
 -    cpu: [arm]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-arm-musleabihf@4.31.0':
+     resolution: {integrity: sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==}
      cpu: [arm]
      os: [linux]
  
-   '@rollup/rollup-linux-arm64-gnu@4.25.0':
-     resolution: {integrity: sha512-qboZ+T0gHAW2kkSDPHxu7quaFaaBlynODXpBVnPxUgvWYaE84xgCKAPEYE+fSMd3Zv5PyFZR+L0tCdYCMAtG0A==}
 -  '@rollup/rollup-linux-arm64-gnu@4.20.0':
 -    resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==}
 -    cpu: [arm64]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-arm64-gnu@4.31.0':
+     resolution: {integrity: sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==}
      cpu: [arm64]
      os: [linux]
  
-   '@rollup/rollup-linux-arm64-musl@4.25.0':
-     resolution: {integrity: sha512-ndWTSEmAaKr88dBuogGH2NZaxe7u2rDoArsejNslugHZ+r44NfWiwjzizVS1nUOHo+n1Z6qV3X60rqE/HlISgw==}
 -  '@rollup/rollup-linux-arm64-musl@4.20.0':
 -    resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==}
 -    cpu: [arm64]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-arm64-musl@4.31.0':
+     resolution: {integrity: sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==}
      cpu: [arm64]
      os: [linux]
  
-   '@rollup/rollup-linux-powerpc64le-gnu@4.25.0':
-     resolution: {integrity: sha512-BVSQvVa2v5hKwJSy6X7W1fjDex6yZnNKy3Kx1JGimccHft6HV0THTwNtC2zawtNXKUu+S5CjXslilYdKBAadzA==}
+   '@rollup/rollup-linux-loongarch64-gnu@4.31.0':
+     resolution: {integrity: sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==}
+     cpu: [loong64]
+     os: [linux]
 -  '@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
 -    resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==}
 -    cpu: [ppc64]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-powerpc64le-gnu@4.31.0':
+     resolution: {integrity: sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==}
      cpu: [ppc64]
      os: [linux]
  
-   '@rollup/rollup-linux-riscv64-gnu@4.25.0':
-     resolution: {integrity: sha512-G4hTREQrIdeV0PE2JruzI+vXdRnaK1pg64hemHq2v5fhv8C7WjVaeXc9P5i4Q5UC06d/L+zA0mszYIKl+wY8oA==}
 -  '@rollup/rollup-linux-riscv64-gnu@4.20.0':
 -    resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==}
 -    cpu: [riscv64]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-riscv64-gnu@4.31.0':
+     resolution: {integrity: sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==}
      cpu: [riscv64]
      os: [linux]
  
-   '@rollup/rollup-linux-s390x-gnu@4.25.0':
-     resolution: {integrity: sha512-9T/w0kQ+upxdkFL9zPVB6zy9vWW1deA3g8IauJxojN4bnz5FwSsUAD034KpXIVX5j5p/rn6XqumBMxfRkcHapQ==}
 -  '@rollup/rollup-linux-s390x-gnu@4.20.0':
 -    resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==}
 -    cpu: [s390x]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-s390x-gnu@4.31.0':
+     resolution: {integrity: sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==}
      cpu: [s390x]
      os: [linux]
  
-   '@rollup/rollup-linux-x64-gnu@4.25.0':
-     resolution: {integrity: sha512-ThcnU0EcMDn+J4B9LD++OgBYxZusuA7iemIIiz5yzEcFg04VZFzdFjuwPdlURmYPZw+fgVrFzj4CA64jSTG4Ig==}
 -  '@rollup/rollup-linux-x64-gnu@4.20.0':
 -    resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==}
 -    cpu: [x64]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-x64-gnu@4.31.0':
+     resolution: {integrity: sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==}
      cpu: [x64]
      os: [linux]
  
-   '@rollup/rollup-linux-x64-musl@4.25.0':
-     resolution: {integrity: sha512-zx71aY2oQxGxAT1JShfhNG79PnjYhMC6voAjzpu/xmMjDnKNf6Nl/xv7YaB/9SIa9jDYf8RBPWEnjcdlhlv1rQ==}
 -  '@rollup/rollup-linux-x64-musl@4.20.0':
 -    resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==}
 -    cpu: [x64]
 -    os: [linux]
 -
+   '@rollup/rollup-linux-x64-musl@4.31.0':
+     resolution: {integrity: sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==}
      cpu: [x64]
      os: [linux]
  
-   '@rollup/rollup-win32-arm64-msvc@4.25.0':
-     resolution: {integrity: sha512-JT8tcjNocMs4CylWY/CxVLnv8e1lE7ff1fi6kbGocWwxDq9pj30IJ28Peb+Y8yiPNSF28oad42ApJB8oUkwGww==}
 -  '@rollup/rollup-win32-arm64-msvc@4.20.0':
 -    resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==}
 -    cpu: [arm64]
 -    os: [win32]
 -
+   '@rollup/rollup-win32-arm64-msvc@4.31.0':
+     resolution: {integrity: sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==}
      cpu: [arm64]
      os: [win32]
  
-   '@rollup/rollup-win32-ia32-msvc@4.25.0':
-     resolution: {integrity: sha512-dRLjLsO3dNOfSN6tjyVlG+Msm4IiZnGkuZ7G5NmpzwF9oOc582FZG05+UdfTbz5Jd4buK/wMb6UeHFhG18+OEg==}
 -  '@rollup/rollup-win32-ia32-msvc@4.20.0':
 -    resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==}
 -    cpu: [ia32]
 -    os: [win32]
 -
+   '@rollup/rollup-win32-ia32-msvc@4.31.0':
+     resolution: {integrity: sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==}
      cpu: [ia32]
      os: [win32]
  
-   '@rollup/rollup-win32-x64-msvc@4.25.0':
-     resolution: {integrity: sha512-/RqrIFtLB926frMhZD0a5oDa4eFIbyNEwLLloMTEjmqfwZWXywwVVOVmwTsuyhC9HKkVEZcOOi+KV4U9wmOdlg==}
 -  '@rollup/rollup-win32-x64-msvc@4.20.0':
 -    resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==}
 -    cpu: [x64]
 -    os: [win32]
 -
+   '@rollup/rollup-win32-x64-msvc@4.31.0':
+     resolution: {integrity: sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==}
      cpu: [x64]
      os: [win32]
  
    '@tootallnate/quickjs-emscripten@0.23.0':
      resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
  
 -  '@types/estree@1.0.5':
 -    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
 -
 +  '@types/connect@3.4.38':
 +    resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
 +
+   '@types/doctrine@0.0.9':
+     resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==}
    '@types/estree@1.0.6':
      resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
  
      engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
      peerDependencies:
        eslint: ^8.57.0 || ^9.0.0
+       typescript: '>=4.8.4 <5.8.0'
  
-   '@typescript-eslint/visitor-keys@8.11.0':
-     resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==}
+   '@typescript-eslint/visitor-keys@8.18.0':
+     resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==}
      engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
  
-   '@typescript-eslint/visitor-keys@8.12.2':
-     resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==}
+   '@typescript-eslint/visitor-keys@8.20.0':
+     resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==}
      engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
  
-   '@vitejs/plugin-vue@5.1.4':
-     resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
 -  '@vitejs/plugin-vue@5.1.2':
 -    resolution: {integrity: sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==}
++  '@vitejs/plugin-vue@5.1.5':
++    resolution: {integrity: sha512-dlnib73G05CDBAUR/YpuZcQQ47fpjihnnNouAAqN62z+oqSsWJ+kh52GRzIxpkgFG3q11eXK7Di7RMmoCwISZA==}
 +    engines: {node: ^18.0.0 || >=20.0.0}
 +    peerDependencies:
 +      vite: ^5.0.0
 +      vue: ^3.2.25
 +
 +  '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@481bcd4':
 +    resolution: {tarball: https://pkg.pr.new/@vitejs/plugin-vue@481bcd4}
 +    version: 5.1.5
 +    engines: {node: ^18.0.0 || >=20.0.0}
 +    peerDependencies:
 +      vite: ^5.0.0
 +      vue: ^3.2.25
 +
 +  '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5':
 +    resolution: {tarball: https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5}
 +    version: 5.1.4
      engines: {node: ^18.0.0 || >=20.0.0}
      peerDependencies:
        vite: ^5.0.0
        vite:
          optional: true
  
-   '@vitest/pretty-format@2.1.1':
-     resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==}
+   '@vitest/pretty-format@3.0.2':
+     resolution: {integrity: sha512-yBohcBw/T/p0/JRgYD+IYcjCmuHzjC3WLAKsVE4/LwiubzZkE8N49/xIQ/KGQwDRA8PaviF8IRO8JMWMngdVVQ==}
++  '@vitest/pretty-format@3.0.4':
++    resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==}
 +
-   '@vitest/runner@2.1.1':
-     resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==}
+   '@vitest/runner@3.0.2':
+     resolution: {integrity: sha512-GHEsWoncrGxWuW8s405fVoDfSLk6RF2LCXp6XhevbtDjdDme1WV/eNmUueDfpY1IX3MJaCRelVCEXsT9cArfEg==}
  
-   '@vitest/snapshot@2.1.1':
-     resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==}
+   '@vitest/snapshot@3.0.2':
+     resolution: {integrity: sha512-h9s67yD4+g+JoYG0zPCo/cLTabpDqzqNdzMawmNPzDStTiwxwkyYM1v5lWE8gmGv3SVJ2DcxA2NpQJZJv9ym3g==}
  
-   '@vitest/spy@2.1.1':
-     resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==}
+   '@vitest/spy@3.0.2':
+     resolution: {integrity: sha512-8mI2iUn+PJFMT44e3ISA1R+K6ALVs47W6eriDTfXe6lFqlflID05MB4+rIFhmDSLBj8iBsZkzBYlgSkinxLzSQ==}
  
-   '@vitest/ui@2.1.1':
-     resolution: {integrity: sha512-IIxo2LkQDA+1TZdPLYPclzsXukBWd5dX2CKpGqH8CCt8Wh0ZuDn4+vuQ9qlppEju6/igDGzjWF/zyorfsf+nHg==}
++  '@vitest/ui@3.0.4':
++    resolution: {integrity: sha512-e+s2F9e9FUURkZ5aFIe1Fi3Y8M7UF6gEuShcaV/ur7y/Ldri+1tzWQ1TJq9Vas42NXnXvCAIrU39Z4U2RyET6g==}
 +    peerDependencies:
-       vitest: 2.1.1
++      vitest: 3.0.4
++
+   '@vitest/utils@3.0.2':
+     resolution: {integrity: sha512-Qu01ZYZlgHvDP02JnMBRpX43nRaZtNpIzw3C1clDXmn8eakgX6iQVGzTQ/NjkIr64WD8ioqOjkaYRVvHQI5qiw==}
  
-   '@vitest/utils@2.1.1':
-     resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==}
++  '@vitest/utils@3.0.4':
++    resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==}
 +
 +  '@vue/compiler-core@3.5.13':
 +    resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
 +
 +  '@vue/compiler-dom@3.5.13':
 +    resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
 +
 +  '@vue/compiler-sfc@3.5.13':
 +    resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==}
 +
 +  '@vue/compiler-ssr@3.5.13':
 +    resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
 +
    '@vue/consolidate@1.0.0':
      resolution: {integrity: sha512-oTyUE+QHIzLw2PpV14GD/c7EohDyP64xCniWTcqcEmTd699eFqTIwOmtDYjcO1j3QgdXoJEoWv1/cCdLrRoOfg==}
      engines: {node: '>= 0.12.0'}
  
-   '@vue/repl@4.4.2':
-     resolution: {integrity: sha512-MEAsBK/YzMFGINOBzqM40XTeIYAUsg7CqvXvD5zi0rhYEQrPfEUIdexmMjdm7kVKsKmcvIHxrFK2DFC35m9kHw==}
 +  '@vue/reactivity@3.5.13':
 +    resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
 +
+   '@vue/repl@4.4.3':
+     resolution: {integrity: sha512-MKIaWgmpaDSfcQrzgsoEFW4jpFbdPYFDn9LBvXFQqEUcosheP9IoUcj/u4omp72oxsecFF5YO4/ssp4aaR8e+g==}
  
 +  '@vue/runtime-core@3.5.13':
 +    resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==}
 +
 +  '@vue/runtime-dom@3.5.13':
 +    resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==}
 +
 +  '@vue/server-renderer@3.5.13':
 +    resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==}
 +    peerDependencies:
 +      vue: 3.5.13
 +
 +  '@vue/shared@3.5.13':
 +    resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
 +
 +  '@vueuse/core@11.1.0':
 +    resolution: {integrity: sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg==}
 +
 +  '@vueuse/metadata@11.1.0':
 +    resolution: {integrity: sha512-l9Q502TBTaPYGanl1G+hPgd3QX5s4CGnpXriVBR5fEZ/goI6fvDaVmIl3Td8oKFurOxTmbXvBPSsgrd6eu6HYg==}
 +
 +  '@vueuse/shared@11.1.0':
 +    resolution: {integrity: sha512-YUtIpY122q7osj+zsNMFAfMTubGz0sn5QzE5gPzAIiCmtt2ha3uQUY1+JPyL4gRCTsLPX82Y9brNbo/aqlA91w==}
 +
    '@zeit/schemas@2.36.0':
      resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==}
  
        supports-color:
          optional: true
  
 +  debug@4.3.7:
 +    resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
 +    engines: {node: '>=6.0'}
 +    peerDependencies:
 +      supports-color: '*'
 +    peerDependenciesMeta:
 +      supports-color:
 +        optional: true
 +
+   debug@4.4.0:
+     resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+     engines: {node: '>=6.0'}
+     peerDependencies:
+       supports-color: '*'
+     peerDependenciesMeta:
+       supports-color:
+         optional: true
    decimal.js@10.4.3:
      resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
  
        picomatch:
          optional: true
  
-   fdir@6.4.0:
-     resolution: {integrity: sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==}
++  fdir@6.4.3:
++    resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
 +    peerDependencies:
 +      picomatch: ^3 || ^4
 +    peerDependenciesMeta:
 +      picomatch:
 +        optional: true
 +
 +  fflate@0.8.2:
 +    resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
 +
    file-entry-cache@8.0.0:
      resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
      engines: {node: '>=16.0.0'}
    flatted@3.3.1:
      resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
  
++  flatted@3.3.2:
++    resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
++
    foreground-child@3.3.0:
      resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
      engines: {node: '>=14'}
      resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
      engines: {node: '>=12'}
  
-   magic-string@0.30.12:
-     resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==}
 -  magic-string@0.30.11:
 -    resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
 -
+   magic-string@0.30.17:
+     resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
  
-   magicast@0.3.4:
-     resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==}
+   magicast@0.3.5:
+     resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
  
    make-dir@4.0.0:
      resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    mitt@3.0.1:
      resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
  
-   monaco-editor@0.52.0:
-     resolution: {integrity: sha512-OeWhNpABLCeTqubfqLMXGsqf6OmPU6pHM85kF3dhy6kq5hnhuVS1p3VrEW/XhWHc71P2tHyS5JFySD8mgs1crw==}
+   monaco-editor@0.52.2:
+     resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==}
  
 +  mrmime@2.0.0:
 +    resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
 +    engines: {node: '>=10'}
 +
    ms@2.0.0:
      resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
  
    ms@2.1.3:
      resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
  
--  nanoid@3.3.7:
--    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
 -    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
 -    hasBin: true
 -
+   nanoid@3.3.8:
+     resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
      engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
      hasBin: true
  
      resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==}
      engines: {node: '>=18'}
  
-   parse5@7.1.2:
-     resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+   parse5@7.2.1:
+     resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
  
 +  parseurl@1.3.3:
 +    resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
 +    engines: {node: '>= 0.8'}
 +
    path-exists@4.0.0:
      resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
      engines: {node: '>=8'}
    path-to-regexp@3.3.0:
      resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==}
  
 +  pathe@1.1.2:
 +    resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
 +
+   pathe@2.0.2:
+     resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==}
    pathval@2.0.0:
      resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
      engines: {node: '>= 14.16'}
    postcss-value-parser@4.2.0:
      resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
  
-   postcss@8.4.48:
-     resolution: {integrity: sha512-GCRK8F6+Dl7xYniR5a4FYbpBzU8XnZVeowqsQFYdcXuSbChgiks7qybSkbvnaeqv0G0B+dd9/jJgH8kkLDQeEA==}
 -  postcss@8.4.41:
 -    resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
 -    engines: {node: ^10 || ^12 || >=14}
 -
+   postcss@8.5.1:
+     resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==}
      engines: {node: ^10 || ^12 || >=14}
  
    prelude-ls@1.2.1:
      peerDependencies:
        rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
  
-   rollup@4.25.0:
-     resolution: {integrity: sha512-uVbClXmR6wvx5R1M3Od4utyLUxrmOcEm3pAtMphn73Apq19PDtHpgZoEvqH2YnnaNUuvKmg2DgRd2Sqv+odyqg==}
 -  rollup@4.20.0:
 -    resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==}
 -    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
 -    hasBin: true
 -
+   rollup@4.31.0:
+     resolution: {integrity: sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==}
      engines: {node: '>=18.0.0', npm: '>=8.0.0'}
      hasBin: true
  
-   rrweb-cssom@0.6.0:
-     resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
-   rrweb-cssom@0.7.1:
-     resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
+   rrweb-cssom@0.8.0:
+     resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
  
 +  run-applescript@7.0.0:
 +    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
 +    engines: {node: '>=18'}
 +
    run-parallel@1.2.0:
      resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
  
      resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==}
      hasBin: true
  
 +  sirv@2.0.4:
 +    resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
 +    engines: {node: '>= 10'}
 +
++  sirv@3.0.0:
++    resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==}
++    engines: {node: '>=18'}
++
    slice-ansi@5.0.0:
      resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
      engines: {node: '>=12'}
    stackback@0.0.2:
      resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
  
-   std-env@3.7.0:
-     resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
 +  statuses@1.5.0:
 +    resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
 +    engines: {node: '>= 0.6'}
 +
+   std-env@3.8.0:
+     resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
  
    streamx@2.18.0:
      resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==}
    tinybench@2.9.0:
      resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
  
-   tinyexec@0.3.0:
-     resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==}
+   tinyexec@0.3.2:
+     resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
  
-   tinyglobby@0.2.6:
-     resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==}
++  tinyglobby@0.2.10:
++    resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
 +    engines: {node: '>=12.0.0'}
 +
-   tinypool@1.0.0:
-     resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==}
+   tinypool@1.0.2:
+     resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
      engines: {node: ^18.0.0 || >=20.0.0}
  
-   tinyrainbow@1.2.0:
-     resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
+   tinyrainbow@2.0.0:
+     resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
      engines: {node: '>=14.0.0'}
  
-   tinyspy@3.0.0:
-     resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==}
+   tinyspy@3.0.2:
+     resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
      engines: {node: '>=14.0.0'}
  
-   to-fast-properties@2.0.0:
-     resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
-     engines: {node: '>=4'}
+   tldts-core@6.1.62:
+     resolution: {integrity: sha512-ohONqbfobpuaylhqFbtCzc0dFFeNz85FVKSesgT8DS9OV3a25Yj730pTj7/dDtCqmgoCgEj6gDiU9XxgHKQlBw==}
+   tldts@6.1.62:
+     resolution: {integrity: sha512-TF+wo3MgTLbf37keEwQD0IxvOZO8UZxnpPJDg5iFGAASGxYzbX/Q0y944ATEjrfxG/pF1TWRHCPbFp49Mz1Y1w==}
+     hasBin: true
  
 -  to-fast-properties@2.0.0:
 -    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
 -    engines: {node: '>=4'}
 -
    to-regex-range@5.0.1:
      resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
      engines: {node: '>=8.0'}
    token-stream@1.0.0:
      resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==}
  
-   tough-cookie@4.1.4:
-     resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
-     engines: {node: '>=6'}
 +  totalist@3.0.1:
 +    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
 +    engines: {node: '>=6'}
 +
+   tough-cookie@5.0.0:
+     resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==}
+     engines: {node: '>=16'}
  
    tr46@5.0.0:
      resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
      resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
      engines: {node: '>= 0.8'}
  
 -  vite@5.4.0:
 -    resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==}
 -    engines: {node: ^18.0.0 || >=20.0.0}
 -    hasBin: true
 +  vite-hyper-config@0.4.0:
 +    resolution: {integrity: sha512-SQSnMt+M8EPLWA4TjU8mvoE/7lPSAnWabN6zEdWOJ2iTrQAKwZ7O6jAsYHUVRPCNgvHAyD0B7s5tluPYvmbAxw==}
 +    engines: {node: '>=18.0.0'}
 +    peerDependencies:
 +      vite: ^4.0.0 || ^5.0.0
 +
 +  vite-node@2.1.1:
 +    resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==}
 +    engines: {node: ^18.0.0 || >=20.0.0}
 +    hasBin: true
 +
+   vite-node@3.0.2:
+     resolution: {integrity: sha512-hsEQerBAHvVAbv40m3TFQe/lTEbOp7yDpyqMJqr2Tnd+W58+DEYOt+fluQgekOePcsNBmR77lpVAnIU2Xu4SvQ==}
+     engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+     hasBin: true
 +  vite-plugin-inspect@0.8.7:
 +    resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==}
 +    engines: {node: '>=14'}
      peerDependencies:
 -      '@types/node': ^18.0.0 || >=20.0.0
 -      less: '*'
 -      lightningcss: ^1.21.0
 -      sass: '*'
 -      sass-embedded: '*'
 -      stylus: '*'
 -      sugarss: '*'
 -      terser: ^5.4.0
 +      '@nuxt/kit': '*'
 +      vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0
      peerDependenciesMeta:
 -      '@types/node':
 -        optional: true
 -      less:
 -        optional: true
 -      lightningcss:
 -        optional: true
 -      sass:
 -        optional: true
 -      sass-embedded:
 -        optional: true
 -      stylus:
 -        optional: true
 -      sugarss:
 -        optional: true
 -      terser:
 +      '@nuxt/kit':
          optional: true
  
    vite@5.4.8:
@@@ -3818,35 -3693,54 +3889,42 @@@ snapshots
        '@jridgewell/gen-mapping': 0.3.5
        '@jridgewell/trace-mapping': 0.3.25
  
 +  '@antfu/utils@0.7.10': {}
 +
+   '@asamuzakjp/css-color@2.8.2':
+     dependencies:
+       '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+       '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+       '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+       '@csstools/css-tokenizer': 3.0.3
+       lru-cache: 11.0.2
    '@babel/code-frame@7.24.7':
      dependencies:
        '@babel/highlight': 7.24.7
        picocolors: 1.1.1
  
--  '@babel/helper-string-parser@7.24.8': {}
 -
+   '@babel/helper-string-parser@7.25.9': {}
  
--  '@babel/helper-validator-identifier@7.24.7': {}
 -
+   '@babel/helper-validator-identifier@7.25.9': {}
  
    '@babel/highlight@7.24.7':
      dependencies:
--      '@babel/helper-validator-identifier': 7.24.7
++      '@babel/helper-validator-identifier': 7.25.9
        chalk: 2.4.2
        js-tokens: 4.0.0
        picocolors: 1.1.1
  
-   '@babel/parser@7.25.6':
 -  '@babel/parser@7.25.3':
 -    dependencies:
 -      '@babel/types': 7.25.2
 -
+   '@babel/parser@7.26.2':
      dependencies:
-       '@babel/types': 7.25.6
+       '@babel/types': 7.26.0
  
-   '@babel/types@7.25.6':
 -  '@babel/types@7.25.2':
 -    dependencies:
 -      '@babel/helper-string-parser': 7.24.8
 -      '@babel/helper-validator-identifier': 7.24.7
 -      to-fast-properties: 2.0.0
 -
+   '@babel/types@7.26.0':
      dependencies:
-       '@babel/helper-string-parser': 7.24.8
-       '@babel/helper-validator-identifier': 7.24.7
-       to-fast-properties: 2.0.0
+       '@babel/helper-string-parser': 7.25.9
+       '@babel/helper-validator-identifier': 7.25.9
  
-   '@bcoe/v8-coverage@0.2.3': {}
+   '@bcoe/v8-coverage@1.0.2': {}
  
    '@conventional-changelog/git-client@1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.0.0)':
      dependencies:
    '@pkgjs/parseargs@0.11.0':
      optional: true
  
-   '@puppeteer/browsers@2.4.0':
 +  '@polka/url@1.0.0-next.25': {}
 +
+   '@puppeteer/browsers@2.7.0':
      dependencies:
-       debug: 4.3.6
+       debug: 4.4.0
        extract-zip: 2.0.1
        progress: 2.0.3
-       proxy-agent: 6.4.0
+       proxy-agent: 6.5.0
        semver: 7.6.3
        tar-fs: 3.0.6
        unbzip2-stream: 1.4.3
        estree-walker: 2.0.2
        picomatch: 2.3.1
      optionalDependencies:
-       rollup: 4.25.0
+       rollup: 4.31.0
  
-   '@rollup/rollup-android-arm-eabi@4.25.0':
 -  '@rollup/rollup-android-arm-eabi@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-android-arm-eabi@4.31.0':
      optional: true
  
-   '@rollup/rollup-android-arm64@4.25.0':
 -  '@rollup/rollup-android-arm64@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-android-arm64@4.31.0':
      optional: true
  
-   '@rollup/rollup-darwin-arm64@4.25.0':
 -  '@rollup/rollup-darwin-arm64@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-darwin-arm64@4.31.0':
      optional: true
  
-   '@rollup/rollup-darwin-x64@4.25.0':
 -  '@rollup/rollup-darwin-x64@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-darwin-x64@4.31.0':
      optional: true
  
-   '@rollup/rollup-freebsd-arm64@4.25.0':
+   '@rollup/rollup-freebsd-arm64@4.31.0':
      optional: true
  
-   '@rollup/rollup-freebsd-x64@4.25.0':
+   '@rollup/rollup-freebsd-x64@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-arm-gnueabihf@4.25.0':
 -  '@rollup/rollup-linux-arm-gnueabihf@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-arm-gnueabihf@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-arm-musleabihf@4.25.0':
 -  '@rollup/rollup-linux-arm-musleabihf@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-arm-musleabihf@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-arm64-gnu@4.25.0':
 -  '@rollup/rollup-linux-arm64-gnu@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-arm64-gnu@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-arm64-musl@4.25.0':
 -  '@rollup/rollup-linux-arm64-musl@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-arm64-musl@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-powerpc64le-gnu@4.25.0':
+   '@rollup/rollup-linux-loongarch64-gnu@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-riscv64-gnu@4.25.0':
 -  '@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-powerpc64le-gnu@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-s390x-gnu@4.25.0':
 -  '@rollup/rollup-linux-riscv64-gnu@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-riscv64-gnu@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-x64-gnu@4.25.0':
 -  '@rollup/rollup-linux-s390x-gnu@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-s390x-gnu@4.31.0':
      optional: true
  
-   '@rollup/rollup-linux-x64-musl@4.25.0':
 -  '@rollup/rollup-linux-x64-gnu@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-x64-gnu@4.31.0':
      optional: true
  
-   '@rollup/rollup-win32-arm64-msvc@4.25.0':
 -  '@rollup/rollup-linux-x64-musl@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-linux-x64-musl@4.31.0':
      optional: true
  
-   '@rollup/rollup-win32-ia32-msvc@4.25.0':
 -  '@rollup/rollup-win32-arm64-msvc@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-win32-arm64-msvc@4.31.0':
      optional: true
  
-   '@rollup/rollup-win32-x64-msvc@4.25.0':
 -  '@rollup/rollup-win32-ia32-msvc@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-win32-ia32-msvc@4.31.0':
      optional: true
  
-   '@swc/core-darwin-arm64@1.9.1':
 -  '@rollup/rollup-win32-x64-msvc@4.20.0':
 -    optional: true
 -
+   '@rollup/rollup-win32-x64-msvc@4.31.0':
      optional: true
  
-   '@swc/core-darwin-x64@1.9.1':
+   '@swc/core-darwin-arm64@1.10.8':
      optional: true
  
-   '@swc/core-linux-arm-gnueabihf@1.9.1':
+   '@swc/core-darwin-x64@1.10.8':
      optional: true
  
-   '@swc/core-linux-arm64-gnu@1.9.1':
+   '@swc/core-linux-arm-gnueabihf@1.10.8':
      optional: true
  
-   '@swc/core-linux-arm64-musl@1.9.1':
+   '@swc/core-linux-arm64-gnu@1.10.8':
      optional: true
  
-   '@swc/core-linux-x64-gnu@1.9.1':
+   '@swc/core-linux-arm64-musl@1.10.8':
      optional: true
  
-   '@swc/core-linux-x64-musl@1.9.1':
+   '@swc/core-linux-x64-gnu@1.10.8':
      optional: true
  
-   '@swc/core-win32-arm64-msvc@1.9.1':
+   '@swc/core-linux-x64-musl@1.10.8':
      optional: true
  
-   '@swc/core-win32-ia32-msvc@1.9.1':
+   '@swc/core-win32-arm64-msvc@1.10.8':
      optional: true
  
-   '@swc/core-win32-x64-msvc@1.9.1':
+   '@swc/core-win32-ia32-msvc@1.10.8':
      optional: true
  
-   '@swc/core@1.9.1':
+   '@swc/core-win32-x64-msvc@1.10.8':
+     optional: true
+   '@swc/core@1.10.8':
      dependencies:
        '@swc/counter': 0.1.3
-       '@swc/types': 0.1.14
+       '@swc/types': 0.1.17
      optionalDependencies:
-       '@swc/core-darwin-arm64': 1.9.1
-       '@swc/core-darwin-x64': 1.9.1
-       '@swc/core-linux-arm-gnueabihf': 1.9.1
-       '@swc/core-linux-arm64-gnu': 1.9.1
-       '@swc/core-linux-arm64-musl': 1.9.1
-       '@swc/core-linux-x64-gnu': 1.9.1
-       '@swc/core-linux-x64-musl': 1.9.1
-       '@swc/core-win32-arm64-msvc': 1.9.1
-       '@swc/core-win32-ia32-msvc': 1.9.1
-       '@swc/core-win32-x64-msvc': 1.9.1
+       '@swc/core-darwin-arm64': 1.10.8
+       '@swc/core-darwin-x64': 1.10.8
+       '@swc/core-linux-arm-gnueabihf': 1.10.8
+       '@swc/core-linux-arm64-gnu': 1.10.8
+       '@swc/core-linux-arm64-musl': 1.10.8
+       '@swc/core-linux-x64-gnu': 1.10.8
+       '@swc/core-linux-x64-musl': 1.10.8
+       '@swc/core-win32-arm64-msvc': 1.10.8
+       '@swc/core-win32-ia32-msvc': 1.10.8
+       '@swc/core-win32-x64-msvc': 1.10.8
  
    '@swc/counter@0.1.3': {}
  
  
    '@tootallnate/quickjs-emscripten@0.23.0': {}
  
 -  '@types/doctrine@0.0.9': {}
 +  '@types/connect@3.4.38':
 +    dependencies:
-       '@types/node': 22.8.7
++      '@types/node': 22.10.7
 -  '@types/estree@1.0.5': {}
++  '@types/doctrine@0.0.9': {}
  
    '@types/estree@1.0.6': {}
  
  
    '@types/trusted-types@2.0.7': {}
  
 +  '@types/web-bluetooth@0.0.20': {}
 +
    '@types/yauzl@2.10.3':
      dependencies:
-       '@types/node': 22.8.7
+       '@types/node': 22.10.7
      optional: true
  
-   '@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.14.0)(typescript@5.6.2))(eslint@9.14.0)(typescript@5.6.2)':
+   '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0)(typescript@5.6.2))(eslint@9.18.0)(typescript@5.6.2)':
      dependencies:
-       '@eslint-community/regexpp': 4.11.0
-       '@typescript-eslint/parser': 8.12.2(eslint@9.14.0)(typescript@5.6.2)
-       '@typescript-eslint/scope-manager': 8.12.2
-       '@typescript-eslint/type-utils': 8.12.2(eslint@9.14.0)(typescript@5.6.2)
-       '@typescript-eslint/utils': 8.12.2(eslint@9.14.0)(typescript@5.6.2)
-       '@typescript-eslint/visitor-keys': 8.12.2
-       eslint: 9.14.0
+       '@eslint-community/regexpp': 4.12.1
+       '@typescript-eslint/parser': 8.20.0(eslint@9.18.0)(typescript@5.6.2)
+       '@typescript-eslint/scope-manager': 8.20.0
+       '@typescript-eslint/type-utils': 8.20.0(eslint@9.18.0)(typescript@5.6.2)
+       '@typescript-eslint/utils': 8.20.0(eslint@9.18.0)(typescript@5.6.2)
+       '@typescript-eslint/visitor-keys': 8.20.0
+       eslint: 9.18.0
        graphemer: 1.4.0
        ignore: 5.3.1
        natural-compare: 1.4.0
      transitivePeerDependencies:
        - supports-color
  
-   '@typescript-eslint/utils@8.11.0(eslint@9.14.0)(typescript@5.6.2)':
+   '@typescript-eslint/utils@8.18.0(eslint@9.18.0)(typescript@5.6.2)':
      dependencies:
-       '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0)
-       '@typescript-eslint/scope-manager': 8.11.0
-       '@typescript-eslint/types': 8.11.0
-       '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.2)
-       eslint: 9.14.0
+       '@eslint-community/eslint-utils': 4.4.0(eslint@9.18.0)
+       '@typescript-eslint/scope-manager': 8.18.0
+       '@typescript-eslint/types': 8.18.0
+       '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.6.2)
+       eslint: 9.18.0
+       typescript: 5.6.2
      transitivePeerDependencies:
        - supports-color
-       - typescript
  
-   '@typescript-eslint/utils@8.12.2(eslint@9.14.0)(typescript@5.6.2)':
+   '@typescript-eslint/utils@8.20.0(eslint@9.18.0)(typescript@5.6.2)':
      dependencies:
-       '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0)
-       '@typescript-eslint/scope-manager': 8.12.2
-       '@typescript-eslint/types': 8.12.2
-       '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.2)
-       eslint: 9.14.0
+       '@eslint-community/eslint-utils': 4.4.0(eslint@9.18.0)
+       '@typescript-eslint/scope-manager': 8.20.0
+       '@typescript-eslint/types': 8.20.0
+       '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.6.2)
+       eslint: 9.18.0
+       typescript: 5.6.2
      transitivePeerDependencies:
        - supports-color
-       - typescript
  
-   '@typescript-eslint/visitor-keys@8.11.0':
+   '@typescript-eslint/visitor-keys@8.18.0':
      dependencies:
-       '@typescript-eslint/types': 8.11.0
-       eslint-visitor-keys: 3.4.3
+       '@typescript-eslint/types': 8.18.0
+       eslint-visitor-keys: 4.2.0
  
-   '@typescript-eslint/visitor-keys@8.12.2':
+   '@typescript-eslint/visitor-keys@8.20.0':
      dependencies:
-       '@typescript-eslint/types': 8.12.2
-       eslint-visitor-keys: 3.4.3
+       '@typescript-eslint/types': 8.20.0
+       eslint-visitor-keys: 4.2.0
  
-   '@vitejs/plugin-vue@5.1.4(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))(vue@packages+vue)':
 -  '@vitejs/plugin-vue@5.1.2(vite@5.4.0(@types/node@22.10.7)(sass@1.83.4))(vue@packages+vue)':
++  '@vitejs/plugin-vue@5.1.5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)':
 +    dependencies:
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
 +      vue: link:packages/vue
 +
-   '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@481bcd4(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))(vue@packages+vue)':
++  '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@481bcd4(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@packages+vue)':
      dependencies:
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
 -      vite: 5.4.0(@types/node@22.10.7)(sass@1.83.4)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
        vue: link:packages/vue
  
-   '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))(vue@3.5.13(typescript@5.6.2))':
 -  '@vitest/coverage-v8@3.0.2(vitest@3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4))':
++  '@vitejs/plugin-vue@https://pkg.pr.new/@vitejs/plugin-vue@e3c5ce5(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))(vue@3.5.13(typescript@5.6.2))':
 +    dependencies:
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
 +      vue: 3.5.13(typescript@5.6.2)
 +
-   '@vitest/coverage-v8@2.1.1(vitest@2.1.1)':
++  '@vitest/coverage-v8@3.0.2(vitest@3.0.2)':
      dependencies:
        '@ampproject/remapping': 2.3.0
-       '@bcoe/v8-coverage': 0.2.3
-       debug: 4.3.6
+       '@bcoe/v8-coverage': 1.0.2
+       debug: 4.4.0
        istanbul-lib-coverage: 3.2.2
        istanbul-lib-report: 3.0.1
        istanbul-lib-source-maps: 5.0.6
        istanbul-reports: 3.1.7
-       magic-string: 0.30.12
-       magicast: 0.3.4
-       std-env: 3.7.0
+       magic-string: 0.30.17
+       magicast: 0.3.5
+       std-env: 3.8.0
        test-exclude: 7.0.1
-       tinyrainbow: 1.2.0
-       vitest: 2.1.1(@types/node@22.8.7)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.80.6)(terser@5.33.0)
+       tinyrainbow: 2.0.0
 -      vitest: 3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4)
++      vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
      transitivePeerDependencies:
        - supports-color
  
-   '@vitest/eslint-plugin@1.1.6(@typescript-eslint/utils@8.12.2(eslint@9.14.0)(typescript@5.6.2))(eslint@9.14.0)(typescript@5.6.2)(vitest@2.1.1)':
 -  '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.20.0(eslint@9.18.0)(typescript@5.6.2))(eslint@9.18.0)(typescript@5.6.2)(vitest@3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4))':
++  '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.20.0(eslint@9.18.0)(typescript@5.6.2))(eslint@9.18.0)(typescript@5.6.2)(vitest@3.0.2)':
      dependencies:
-       '@typescript-eslint/utils': 8.12.2(eslint@9.14.0)(typescript@5.6.2)
-       eslint: 9.14.0
-       vitest: 2.1.1(@types/node@22.8.7)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.80.6)(terser@5.33.0)
+       '@typescript-eslint/utils': 8.20.0(eslint@9.18.0)(typescript@5.6.2)
+       eslint: 9.18.0
      optionalDependencies:
        typescript: 5.6.2
 -      vitest: 3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4)
++      vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
  
-   '@vitest/expect@2.1.1':
+   '@vitest/expect@3.0.2':
      dependencies:
-       '@vitest/spy': 2.1.1
-       '@vitest/utils': 2.1.1
-       chai: 5.1.1
-       tinyrainbow: 1.2.0
+       '@vitest/spy': 3.0.2
+       '@vitest/utils': 3.0.2
+       chai: 5.1.2
+       tinyrainbow: 2.0.0
  
-   '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))':
 -  '@vitest/mocker@3.0.2(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4))':
++  '@vitest/mocker@3.0.2(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))':
      dependencies:
-       '@vitest/spy': 2.1.1
+       '@vitest/spy': 3.0.2
        estree-walker: 3.0.3
-       magic-string: 0.30.12
+       magic-string: 0.30.17
      optionalDependencies:
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
 -      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
  
-   '@vitest/pretty-format@2.1.1':
+   '@vitest/pretty-format@3.0.2':
      dependencies:
-       tinyrainbow: 1.2.0
+       tinyrainbow: 2.0.0
  
-   '@vitest/runner@2.1.1':
++  '@vitest/pretty-format@3.0.4':
 +    dependencies:
-       '@vitest/utils': 2.1.1
-       pathe: 1.1.2
++      tinyrainbow: 2.0.0
 +
-   '@vitest/snapshot@2.1.1':
+   '@vitest/runner@3.0.2':
      dependencies:
-       '@vitest/pretty-format': 2.1.1
-       magic-string: 0.30.12
-       pathe: 1.1.2
+       '@vitest/utils': 3.0.2
+       pathe: 2.0.2
+   '@vitest/snapshot@3.0.2':
+     dependencies:
+       '@vitest/pretty-format': 3.0.2
+       magic-string: 0.30.17
+       pathe: 2.0.2
  
-   '@vitest/spy@2.1.1':
+   '@vitest/spy@3.0.2':
      dependencies:
-       tinyspy: 3.0.0
+       tinyspy: 3.0.2
  
-   '@vitest/ui@2.1.1(vitest@2.1.1)':
++  '@vitest/ui@3.0.4(vitest@3.0.2)':
 +    dependencies:
-       '@vitest/utils': 2.1.1
++      '@vitest/utils': 3.0.4
 +      fflate: 0.8.2
-       flatted: 3.3.1
-       pathe: 1.1.2
-       sirv: 2.0.4
-       tinyglobby: 0.2.6
-       tinyrainbow: 1.2.0
-       vitest: 2.1.1(@types/node@22.8.7)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.80.6)(terser@5.33.0)
++      flatted: 3.3.2
++      pathe: 2.0.2
++      sirv: 3.0.0
++      tinyglobby: 0.2.10
++      tinyrainbow: 2.0.0
++      vitest: 3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0)
++
+   '@vitest/utils@3.0.2':
+     dependencies:
+       '@vitest/pretty-format': 3.0.2
+       loupe: 3.1.2
+       tinyrainbow: 2.0.0
  
-   '@vitest/utils@2.1.1':
++  '@vitest/utils@3.0.4':
 +    dependencies:
-       '@vitest/pretty-format': 2.1.1
-       loupe: 3.1.1
-       tinyrainbow: 1.2.0
++      '@vitest/pretty-format': 3.0.4
++      loupe: 3.1.2
++      tinyrainbow: 2.0.0
 +
 +  '@vue/compiler-core@3.5.13':
 +    dependencies:
-       '@babel/parser': 7.25.6
++      '@babel/parser': 7.26.2
 +      '@vue/shared': 3.5.13
 +      entities: 4.5.0
 +      estree-walker: 2.0.2
 +      source-map-js: 1.2.1
 +
 +  '@vue/compiler-dom@3.5.13':
 +    dependencies:
 +      '@vue/compiler-core': 3.5.13
 +      '@vue/shared': 3.5.13
 +
 +  '@vue/compiler-sfc@3.5.13':
 +    dependencies:
-       '@babel/parser': 7.25.6
++      '@babel/parser': 7.26.2
 +      '@vue/compiler-core': 3.5.13
 +      '@vue/compiler-dom': 3.5.13
 +      '@vue/compiler-ssr': 3.5.13
 +      '@vue/shared': 3.5.13
 +      estree-walker: 2.0.2
-       magic-string: 0.30.12
-       postcss: 8.4.48
++      magic-string: 0.30.17
++      postcss: 8.5.1
 +      source-map-js: 1.2.1
 +
 +  '@vue/compiler-ssr@3.5.13':
 +    dependencies:
 +      '@vue/compiler-dom': 3.5.13
 +      '@vue/shared': 3.5.13
 +
    '@vue/consolidate@1.0.0': {}
  
-   '@vue/repl@4.4.2': {}
 +  '@vue/reactivity@3.5.13':
 +    dependencies:
 +      '@vue/shared': 3.5.13
 +
+   '@vue/repl@4.4.3': {}
  
 +  '@vue/runtime-core@3.5.13':
 +    dependencies:
 +      '@vue/reactivity': 3.5.13
 +      '@vue/shared': 3.5.13
 +
 +  '@vue/runtime-dom@3.5.13':
 +    dependencies:
 +      '@vue/reactivity': 3.5.13
 +      '@vue/runtime-core': 3.5.13
 +      '@vue/shared': 3.5.13
 +      csstype: 3.1.3
 +
 +  '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.6.2))':
 +    dependencies:
 +      '@vue/compiler-ssr': 3.5.13
 +      '@vue/shared': 3.5.13
 +      vue: 3.5.13(typescript@5.6.2)
 +
 +  '@vue/shared@3.5.13': {}
 +
 +  '@vueuse/core@11.1.0(vue@packages+vue)':
 +    dependencies:
 +      '@types/web-bluetooth': 0.0.20
 +      '@vueuse/metadata': 11.1.0
 +      '@vueuse/shared': 11.1.0(vue@packages+vue)
 +      vue-demi: 0.14.10(vue@packages+vue)
 +    transitivePeerDependencies:
 +      - '@vue/composition-api'
 +      - vue
 +
 +  '@vueuse/metadata@11.1.0': {}
 +
 +  '@vueuse/shared@11.1.0(vue@packages+vue)':
 +    dependencies:
 +      vue-demi: 0.14.10(vue@packages+vue)
 +    transitivePeerDependencies:
 +      - '@vue/composition-api'
 +      - vue
 +
    '@zeit/schemas@2.36.0': {}
  
    accepts@1.3.8:
  
    concat-map@0.0.1: {}
  
 +  connect@3.7.0:
 +    dependencies:
 +      debug: 2.6.9
 +      finalhandler: 1.1.2
 +      parseurl: 1.3.3
 +      utils-merge: 1.0.1
 +    transitivePeerDependencies:
 +      - supports-color
 +
    constantinople@4.0.1:
      dependencies:
-       '@babel/parser': 7.25.6
-       '@babel/types': 7.25.6
 -      '@babel/parser': 7.25.3
 -      '@babel/types': 7.25.2
++      '@babel/parser': 7.26.2
++      '@babel/types': 7.26.0
  
    content-disposition@0.5.2: {}
  
      dependencies:
        ms: 2.1.2
  
 +  debug@4.3.7:
 +    dependencies:
 +      ms: 2.1.3
 +
+   debug@4.4.0:
+     dependencies:
+       ms: 2.1.3
    decimal.js@10.4.3: {}
  
    deep-eql@5.0.2: {}
      optionalDependencies:
        picomatch: 4.0.2
  
-   fdir@6.4.0(picomatch@4.0.2):
++  fdir@6.4.3(picomatch@4.0.2):
 +    optionalDependencies:
 +      picomatch: 4.0.2
 +
 +  fflate@0.8.2: {}
 +
    file-entry-cache@8.0.0:
      dependencies:
        flat-cache: 4.0.1
  
    flatted@3.3.1: {}
  
++  flatted@3.3.2: {}
++
    foreground-child@3.3.0:
      dependencies:
-       cross-spawn: 7.0.3
+       cross-spawn: 7.0.6
        signal-exit: 4.1.0
  
-   form-data@4.0.0:
+   form-data@4.0.1:
      dependencies:
        asynckit: 0.4.0
        combined-stream: 1.0.8
  
    lru-cache@11.0.0: {}
  
+   lru-cache@11.0.2: {}
    lru-cache@7.18.3: {}
  
-   magic-string@0.30.12:
 -  magic-string@0.30.11:
 -    dependencies:
 -      '@jridgewell/sourcemap-codec': 1.5.0
 -
+   magic-string@0.30.17:
      dependencies:
        '@jridgewell/sourcemap-codec': 1.5.0
  
  
    mitt@3.0.1: {}
  
-   monaco-editor@0.52.0: {}
+   monaco-editor@0.52.2: {}
  
 +  mrmime@2.0.0: {}
 +
    ms@2.0.0: {}
  
    ms@2.1.2: {}
  
    ms@2.1.3: {}
  
--  nanoid@3.3.7: {}
 -
+   nanoid@3.3.8: {}
  
    natural-compare@1.4.0: {}
  
  
    path-to-regexp@3.3.0: {}
  
 +  pathe@1.1.2: {}
 +
+   pathe@2.0.2: {}
    pathval@2.0.0: {}
  
    pend@1.2.0: {}
  
    postcss-value-parser@4.2.0: {}
  
-   postcss@8.4.48:
 -  postcss@8.4.41:
 -    dependencies:
 -      nanoid: 3.3.7
 -      picocolors: 1.1.1
 -      source-map-js: 1.2.1
 -
+   postcss@8.5.1:
      dependencies:
-       nanoid: 3.3.7
+       nanoid: 3.3.8
        picocolors: 1.1.1
        source-map-js: 1.2.1
  
      transitivePeerDependencies:
        - supports-color
  
-   rollup-plugin-polyfill-node@0.13.0(rollup@4.25.0):
+   rollup-plugin-polyfill-node@0.13.0(rollup@4.31.0):
      dependencies:
-       '@rollup/plugin-inject': 5.0.5(rollup@4.25.0)
-       rollup: 4.25.0
+       '@rollup/plugin-inject': 5.0.5(rollup@4.31.0)
+       rollup: 4.31.0
  
-   rollup@4.25.0:
 -  rollup@4.20.0:
 -    dependencies:
 -      '@types/estree': 1.0.5
 -    optionalDependencies:
 -      '@rollup/rollup-android-arm-eabi': 4.20.0
 -      '@rollup/rollup-android-arm64': 4.20.0
 -      '@rollup/rollup-darwin-arm64': 4.20.0
 -      '@rollup/rollup-darwin-x64': 4.20.0
 -      '@rollup/rollup-linux-arm-gnueabihf': 4.20.0
 -      '@rollup/rollup-linux-arm-musleabihf': 4.20.0
 -      '@rollup/rollup-linux-arm64-gnu': 4.20.0
 -      '@rollup/rollup-linux-arm64-musl': 4.20.0
 -      '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0
 -      '@rollup/rollup-linux-riscv64-gnu': 4.20.0
 -      '@rollup/rollup-linux-s390x-gnu': 4.20.0
 -      '@rollup/rollup-linux-x64-gnu': 4.20.0
 -      '@rollup/rollup-linux-x64-musl': 4.20.0
 -      '@rollup/rollup-win32-arm64-msvc': 4.20.0
 -      '@rollup/rollup-win32-ia32-msvc': 4.20.0
 -      '@rollup/rollup-win32-x64-msvc': 4.20.0
 -      fsevents: 2.3.3
 -
+   rollup@4.31.0:
      dependencies:
        '@types/estree': 1.0.6
      optionalDependencies:
-       '@rollup/rollup-android-arm-eabi': 4.25.0
-       '@rollup/rollup-android-arm64': 4.25.0
-       '@rollup/rollup-darwin-arm64': 4.25.0
-       '@rollup/rollup-darwin-x64': 4.25.0
-       '@rollup/rollup-freebsd-arm64': 4.25.0
-       '@rollup/rollup-freebsd-x64': 4.25.0
-       '@rollup/rollup-linux-arm-gnueabihf': 4.25.0
-       '@rollup/rollup-linux-arm-musleabihf': 4.25.0
-       '@rollup/rollup-linux-arm64-gnu': 4.25.0
-       '@rollup/rollup-linux-arm64-musl': 4.25.0
-       '@rollup/rollup-linux-powerpc64le-gnu': 4.25.0
-       '@rollup/rollup-linux-riscv64-gnu': 4.25.0
-       '@rollup/rollup-linux-s390x-gnu': 4.25.0
-       '@rollup/rollup-linux-x64-gnu': 4.25.0
-       '@rollup/rollup-linux-x64-musl': 4.25.0
-       '@rollup/rollup-win32-arm64-msvc': 4.25.0
-       '@rollup/rollup-win32-ia32-msvc': 4.25.0
-       '@rollup/rollup-win32-x64-msvc': 4.25.0
+       '@rollup/rollup-android-arm-eabi': 4.31.0
+       '@rollup/rollup-android-arm64': 4.31.0
+       '@rollup/rollup-darwin-arm64': 4.31.0
+       '@rollup/rollup-darwin-x64': 4.31.0
+       '@rollup/rollup-freebsd-arm64': 4.31.0
+       '@rollup/rollup-freebsd-x64': 4.31.0
+       '@rollup/rollup-linux-arm-gnueabihf': 4.31.0
+       '@rollup/rollup-linux-arm-musleabihf': 4.31.0
+       '@rollup/rollup-linux-arm64-gnu': 4.31.0
+       '@rollup/rollup-linux-arm64-musl': 4.31.0
+       '@rollup/rollup-linux-loongarch64-gnu': 4.31.0
+       '@rollup/rollup-linux-powerpc64le-gnu': 4.31.0
+       '@rollup/rollup-linux-riscv64-gnu': 4.31.0
+       '@rollup/rollup-linux-s390x-gnu': 4.31.0
+       '@rollup/rollup-linux-x64-gnu': 4.31.0
+       '@rollup/rollup-linux-x64-musl': 4.31.0
+       '@rollup/rollup-win32-arm64-msvc': 4.31.0
+       '@rollup/rollup-win32-ia32-msvc': 4.31.0
+       '@rollup/rollup-win32-x64-msvc': 4.31.0
        fsevents: 2.3.3
  
-   rrweb-cssom@0.6.0: {}
-   rrweb-cssom@0.7.1: {}
+   rrweb-cssom@0.8.0: {}
  
 +  run-applescript@7.0.0: {}
 +
    run-parallel@1.2.0:
      dependencies:
        queue-microtask: 1.2.3
  
    simple-git-hooks@2.11.1: {}
  
 +  sirv@2.0.4:
 +    dependencies:
 +      '@polka/url': 1.0.0-next.25
 +      mrmime: 2.0.0
 +      totalist: 3.0.1
 +
++  sirv@3.0.0:
++    dependencies:
++      '@polka/url': 1.0.0-next.25
++      mrmime: 2.0.0
++      totalist: 3.0.1
++
    slice-ansi@5.0.0:
      dependencies:
        ansi-styles: 6.2.1
  
    stackback@0.0.2: {}
  
-   std-env@3.7.0: {}
 +  statuses@1.5.0: {}
 +
+   std-env@3.8.0: {}
  
    streamx@2.18.0:
      dependencies:
  
    tinybench@2.9.0: {}
  
-   tinyexec@0.3.0: {}
+   tinyexec@0.3.2: {}
  
-   tinyglobby@0.2.6:
++  tinyglobby@0.2.10:
 +    dependencies:
-       fdir: 6.3.0(picomatch@4.0.2)
++      fdir: 6.4.3(picomatch@4.0.2)
 +      picomatch: 4.0.2
 +
-   tinypool@1.0.0: {}
+   tinypool@1.0.2: {}
+   tinyrainbow@2.0.0: {}
  
-   tinyrainbow@1.2.0: {}
+   tinyspy@3.0.2: {}
  
-   tinyspy@3.0.0: {}
+   tldts-core@6.1.62: {}
  
-   to-fast-properties@2.0.0: {}
+   tldts@6.1.62:
+     dependencies:
+       tldts-core: 6.1.62
  
 -  to-fast-properties@2.0.0: {}
 -
    to-regex-range@5.0.1:
      dependencies:
        is-number: 7.0.0
  
    token-stream@1.0.0: {}
  
-   tough-cookie@4.1.4:
 +  totalist@3.0.1: {}
 +
+   tough-cookie@5.0.0:
      dependencies:
-       psl: 1.9.0
-       punycode: 2.3.1
-       universalify: 0.2.0
-       url-parse: 1.5.10
+       tldts: 6.1.62
  
    tr46@5.0.0:
      dependencies:
  
    unicorn-magic@0.1.0: {}
  
-   universalify@0.2.0: {}
    universalify@2.0.1: {}
  
 +  unpipe@1.0.0: {}
 +
    update-check@1.5.4:
      dependencies:
        registry-auth-token: 3.3.2
      dependencies:
        punycode: 2.3.1
  
-   url-parse@1.5.10:
-     dependencies:
-       querystringify: 2.2.0
-       requires-port: 1.0.0
-   urlpattern-polyfill@10.0.0: {}
    util-deprecate@1.0.2: {}
  
 +  utils-merge@1.0.1: {}
 +
    validate-npm-package-license@3.0.4:
      dependencies:
        spdx-correct: 3.2.0
  
    vary@1.1.2: {}
  
-   vite-hyper-config@0.4.0(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)):
 -  vite-node@3.0.2(@types/node@22.10.7)(sass@1.83.4):
++  vite-hyper-config@0.4.0(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)):
 +    dependencies:
 +      cac: 6.7.14
 +      picocolors: 1.1.0
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
-       vite-node: 2.1.1(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
++      vite-node: 2.1.1(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
 +    transitivePeerDependencies:
 +      - '@types/node'
 +      - less
 +      - lightningcss
 +      - sass
 +      - sass-embedded
 +      - stylus
 +      - sugarss
 +      - supports-color
 +      - terser
 +
-   vite-node@2.1.1(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0):
++  vite-node@2.1.1(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0):
 +    dependencies:
 +      cac: 6.7.14
 +      debug: 4.3.6
 +      pathe: 1.1.2
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
 +    transitivePeerDependencies:
 +      - '@types/node'
 +      - less
 +      - lightningcss
 +      - sass
 +      - sass-embedded
 +      - stylus
 +      - sugarss
 +      - supports-color
 +      - terser
 +
-   vite-plugin-inspect@0.8.7(rollup@4.25.0)(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)):
++  vite-node@3.0.2(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0):
+     dependencies:
+       cac: 6.7.14
+       debug: 4.4.0
+       es-module-lexer: 1.6.0
+       pathe: 2.0.2
 -      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
+     transitivePeerDependencies:
+       - '@types/node'
+       - less
+       - lightningcss
+       - sass
+       - sass-embedded
+       - stylus
+       - sugarss
+       - supports-color
+       - terser
 -  vite@5.4.0(@types/node@22.10.7)(sass@1.83.4):
++  vite-plugin-inspect@0.8.7(rollup@4.31.0)(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)):
      dependencies:
 -      esbuild: 0.21.5
 -      postcss: 8.4.41
 -      rollup: 4.20.0
 -    optionalDependencies:
 -      '@types/node': 22.10.7
 -      fsevents: 2.3.3
 -      sass: 1.83.4
 +      '@antfu/utils': 0.7.10
-       '@rollup/pluginutils': 5.1.0(rollup@4.25.0)
++      '@rollup/pluginutils': 5.1.0(rollup@4.31.0)
 +      debug: 4.3.7
 +      error-stack-parser-es: 0.1.5
 +      fs-extra: 11.2.0
 +      open: 10.1.0
 +      perfect-debounce: 1.0.0
 +      picocolors: 1.1.0
 +      sirv: 2.0.4
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
 +    transitivePeerDependencies:
 +      - rollup
 +      - supports-color
  
-   vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0):
 -  vite@5.4.8(@types/node@22.10.7)(sass@1.83.4):
++  vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0):
      dependencies:
        esbuild: 0.21.5
-       postcss: 8.4.48
-       rollup: 4.25.0
+       postcss: 8.5.1
+       rollup: 4.31.0
      optionalDependencies:
-       '@types/node': 22.8.7
+       '@types/node': 22.10.7
        fsevents: 2.3.3
-       sass: 1.80.6
+       sass: 1.83.4
 +      terser: 5.33.0
  
-   vitest@2.1.1(@types/node@22.8.7)(@vitest/ui@2.1.1)(jsdom@25.0.0)(sass@1.80.6)(terser@5.33.0):
-     dependencies:
-       '@vitest/expect': 2.1.1
-       '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0))
-       '@vitest/pretty-format': 2.1.1
-       '@vitest/runner': 2.1.1
-       '@vitest/snapshot': 2.1.1
-       '@vitest/spy': 2.1.1
-       '@vitest/utils': 2.1.1
-       chai: 5.1.1
-       debug: 4.3.6
-       magic-string: 0.30.12
-       pathe: 1.1.2
-       std-env: 3.7.0
 -  vitest@3.0.2(@types/node@22.10.7)(jsdom@26.0.0)(sass@1.83.4):
++  vitest@3.0.2(@types/node@22.10.7)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(terser@5.33.0):
+     dependencies:
+       '@vitest/expect': 3.0.2
 -      '@vitest/mocker': 3.0.2(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4))
++      '@vitest/mocker': 3.0.2(vite@5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0))
+       '@vitest/pretty-format': 3.0.2
+       '@vitest/runner': 3.0.2
+       '@vitest/snapshot': 3.0.2
+       '@vitest/spy': 3.0.2
+       '@vitest/utils': 3.0.2
+       chai: 5.1.2
+       debug: 4.4.0
+       expect-type: 1.1.0
+       magic-string: 0.30.17
+       pathe: 2.0.2
+       std-env: 3.8.0
        tinybench: 2.9.0
-       tinyexec: 0.3.0
-       tinypool: 1.0.0
-       tinyrainbow: 1.2.0
-       vite: 5.4.8(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
-       vite-node: 2.1.1(@types/node@22.8.7)(sass@1.80.6)(terser@5.33.0)
+       tinyexec: 0.3.2
+       tinypool: 1.0.2
+       tinyrainbow: 2.0.0
 -      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)
 -      vite-node: 3.0.2(@types/node@22.10.7)(sass@1.83.4)
++      vite: 5.4.8(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
++      vite-node: 3.0.2(@types/node@22.10.7)(sass@1.83.4)(terser@5.33.0)
        why-is-node-running: 2.3.0
      optionalDependencies:
-       '@types/node': 22.8.7
-       '@vitest/ui': 2.1.1(vitest@2.1.1)
-       jsdom: 25.0.0
+       '@types/node': 22.10.7
++      '@vitest/ui': 3.0.4(vitest@3.0.2)
+       jsdom: 26.0.0
      transitivePeerDependencies:
        - less
        - lightningcss
  
    with@7.0.2:
      dependencies:
-       '@babel/parser': 7.25.6
-       '@babel/types': 7.25.6
 -      '@babel/parser': 7.25.3
 -      '@babel/types': 7.25.2
++      '@babel/parser': 7.26.2
++      '@babel/types': 7.26.0
        assert-never: 1.3.0
        babel-walk: 3.0.0-canary-5
  
index 4d7285f7616573f2489e9115dbe7ac110a89fb2c,ed0bd0303e315ee36287ec9477320e15ec2500fe..425b509ed92b6e6a072a3a38bc1186818c652e47
@@@ -25,9 -24,14 +25,14 @@@ export default defineConfig(
    test: {
      globals: true,
      pool: 'threads',
+     poolOptions: {
+       forks: {
+         execArgv: ['--expose-gc'],
+       },
+     },
      setupFiles: 'scripts/setup-vitest.ts',
      environmentMatchGlobs: [
 -      ['packages/{vue,vue-compat,runtime-dom}/**', 'jsdom'],
 +      ['packages/{vue,vue-compat,runtime-dom,runtime-vapor}/**', 'jsdom'],
      ],
      sequence: {
        hooks: 'list',