diff --git a/package.json b/package.json
index 9a0ec63..8a72a21 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
     "@vitejs/plugin-vue": "5.2.1",
     "@vue/eslint-config-prettier": "10.2.0",
     "@vue/eslint-config-typescript": "14.4.0",
-    "@vue/language-server": "2.2.0",
+    "@vue/language-server": "2.2.2",
     "@vue/tsconfig": "0.7.0",
     "@vue/typescript-plugin": "2.2.0",
     "@vuepress/bundler-vite": "2.0.0-rc.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 72a7960..0f6a2e5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -24,8 +24,8 @@ importers:
         specifier: 14.4.0
         version: 14.4.0(eslint-plugin-vue@9.32.0(eslint@9.20.1))(eslint@9.20.1)(typescript@5.7.3)
       '@vue/language-server':
-        specifier: 2.2.0
-        version: 2.2.0(typescript@5.7.3)
+        specifier: 2.2.2
+        version: 2.2.2(typescript@5.7.3)
       '@vue/tsconfig':
         specifier: 0.7.0
         version: 0.7.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))
@@ -889,12 +889,20 @@ packages:
       typescript:
         optional: true
 
-  '@vue/language-server@2.2.0':
-    resolution: {integrity: sha512-vj8PnPUF7cJ5vjE3pPmUUgVI4zdZZPn8kqTM1w8EJVVIgnlzNFHBmebcI9G0IN1CWKMOEqSBnE3vn/lup31K9Q==}
+  '@vue/language-core@2.2.2':
+    resolution: {integrity: sha512-QotO41kurE5PLf3vrNgGTk3QswO2PdUFjBwNiOi7zMmGhwb25PSTh9hD1MCgKC06AVv+8sZQvlL3Do4TTVHSiQ==}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
+  '@vue/language-server@2.2.2':
+    resolution: {integrity: sha512-zql1mBYG6KMFKrhbhgHHgnSuUR1mQ3qrko/1AforhANfl4hg72GzlETnQKiGuN2V63JD2tOttC2WaEBxAQQrVQ==}
     hasBin: true
 
-  '@vue/language-service@2.2.0':
-    resolution: {integrity: sha512-2SioOuCyocrVYSMOosHS2Lc4MeV1kwzEgPnd7A8lFUDNby8sjDd7UL1FCgiolygeletZh5Us7o8gvG9khiPygQ==}
+  '@vue/language-service@2.2.2':
+    resolution: {integrity: sha512-TRCGRgJJ6v+qCtpHrwKkwol7VpcmyfjYDP5j5lRNWmyb8SRB3bKYqmshMYzDuL8YfT5tOxmSRVstDKYV7mucXA==}
 
   '@vue/reactivity@3.5.13':
     resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
@@ -927,6 +935,9 @@ packages:
   '@vue/typescript-plugin@2.2.0':
     resolution: {integrity: sha512-7okpTvJ8blQApgUtfPvkO1tOkxxWt8oScXwsjQRB46QAgZ/0LwWpWG0yB8mvBLkw4mZpSXsp6e3ntnUwRagURA==}
 
+  '@vue/typescript-plugin@2.2.2':
+    resolution: {integrity: sha512-M/fNR/M4Rt+jm7Vmv21sPoHNM7MLYC7QjW5gqmP9y6HGmIlxOubqXYIqddeEnikmEsOc3linykEAxAIVxfIvbA==}
+
   '@vuepress/bundler-vite@2.0.0-rc.7':
     resolution: {integrity: sha512-2jNnU3sgHJuUCPfE0DvGRsAxo/A/Locguvnv4Q6QwJYdB1fuAqE6x5p8RDzq8Lv/GsyeexDWiV/PFER5EtVP3w==}
 
@@ -1118,6 +1129,9 @@ packages:
   alien-signals@0.4.11:
     resolution: {integrity: sha512-79GUbcQM5K2zb+HyUMODTgJdVjZWwybDNQRduqP9ks7XZvJylm9uWesOjVcu6/veWsa+XNGVE4xVQ8+RGu8HaA==}
 
+  alien-signals@1.0.3:
+    resolution: {integrity: sha512-zQOh3wAYK5ujENxvBBR3CFGF/b6afaSzZ/c9yNhJ1ENrGHETvpUuKQsa93Qrclp0+PzTF93MaZ7scVp1uUozhA==}
+
   ansi-regex@6.1.0:
     resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
     engines: {node: '>=12'}
@@ -3072,29 +3086,42 @@ snapshots:
     optionalDependencies:
       typescript: 5.7.3
 
-  '@vue/language-server@2.2.0(typescript@5.7.3)':
+  '@vue/language-core@2.2.2(typescript@5.7.3)':
+    dependencies:
+      '@volar/language-core': 2.4.11
+      '@vue/compiler-dom': 3.5.13
+      '@vue/compiler-vue2': 2.7.16
+      '@vue/shared': 3.5.13
+      alien-signals: 1.0.3
+      minimatch: 9.0.5
+      muggle-string: 0.4.1
+      path-browserify: 1.0.1
+    optionalDependencies:
+      typescript: 5.7.3
+
+  '@vue/language-server@2.2.2(typescript@5.7.3)':
     dependencies:
       '@volar/language-core': 2.4.11
       '@volar/language-server': 2.4.11
       '@volar/test-utils': 2.4.11
-      '@vue/language-core': 2.2.0(typescript@5.7.3)
-      '@vue/language-service': 2.2.0(typescript@5.7.3)
-      '@vue/typescript-plugin': 2.2.0(typescript@5.7.3)
+      '@vue/language-core': 2.2.2(typescript@5.7.3)
+      '@vue/language-service': 2.2.2(typescript@5.7.3)
+      '@vue/typescript-plugin': 2.2.2(typescript@5.7.3)
       vscode-languageserver-protocol: 3.17.5
       vscode-uri: 3.0.8
     transitivePeerDependencies:
       - typescript
 
-  '@vue/language-service@2.2.0(typescript@5.7.3)':
+  '@vue/language-service@2.2.2(typescript@5.7.3)':
     dependencies:
       '@volar/language-core': 2.4.11
       '@volar/language-service': 2.4.11
       '@volar/typescript': 2.4.11
       '@vue/compiler-dom': 3.5.13
-      '@vue/language-core': 2.2.0(typescript@5.7.3)
+      '@vue/language-core': 2.2.2(typescript@5.7.3)
       '@vue/shared': 3.5.13
-      '@vue/typescript-plugin': 2.2.0(typescript@5.7.3)
-      alien-signals: 0.4.11
+      '@vue/typescript-plugin': 2.2.2(typescript@5.7.3)
+      alien-signals: 1.0.3
       path-browserify: 1.0.1
       volar-service-css: 0.0.62(@volar/language-service@2.4.11)
       volar-service-emmet: 0.0.62(@volar/language-service@2.4.11)
@@ -3147,6 +3174,14 @@ snapshots:
     transitivePeerDependencies:
       - typescript
 
+  '@vue/typescript-plugin@2.2.2(typescript@5.7.3)':
+    dependencies:
+      '@volar/typescript': 2.4.11
+      '@vue/language-core': 2.2.2(typescript@5.7.3)
+      '@vue/shared': 3.5.13
+    transitivePeerDependencies:
+      - typescript
+
   '@vuepress/bundler-vite@2.0.0-rc.7(@types/node@22.13.4)(sass@1.85.0)(typescript@5.7.3)':
     dependencies:
       '@vitejs/plugin-vue': 5.2.1(vite@5.0.13(@types/node@22.13.4)(sass@1.85.0))(vue@3.5.13(typescript@5.7.3))
@@ -3563,6 +3598,8 @@ snapshots:
 
   alien-signals@0.4.11: {}
 
+  alien-signals@1.0.3: {}
+
   ansi-regex@6.1.0: {}
 
   ansi-styles@4.3.0: