From ad3c572cd459a98371c4682481e1c159e1184407 Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Thu, 21 Mar 2024 21:20:52 +0100 Subject: [PATCH] test(typescript): Add tests for Volar caching (#836) * test(typescript): Add tests for Volar caching * test: add more tests and update Volar --- packages/language-server/package.json | 12 +- .../language-server/test/fixture/.gitkeep | 0 .../test/fixture/cachingTest.astro | 5 + .../language-server/test/fixture/env.d.ts | 3 + .../test/fixture/importFromSuperModule.astro | 4 + .../test/fixture/tsconfig.json | 3 + .../test/typescript/caching.test.ts | 140 ++++++++++++++++ .../test/typescript/diagnostics.test.ts | 11 +- packages/ts-plugin/package.json | 4 +- packages/vscode/package.json | 6 +- packages/vscode/tsconfig.json | 3 +- pnpm-lock.yaml | 149 +++++++++--------- 12 files changed, 256 insertions(+), 84 deletions(-) delete mode 100644 packages/language-server/test/fixture/.gitkeep create mode 100644 packages/language-server/test/fixture/cachingTest.astro create mode 100644 packages/language-server/test/fixture/env.d.ts create mode 100644 packages/language-server/test/fixture/importFromSuperModule.astro create mode 100644 packages/language-server/test/fixture/tsconfig.json create mode 100644 packages/language-server/test/typescript/caching.test.ts diff --git a/packages/language-server/package.json b/packages/language-server/package.json index d0e4f6e0..343a859d 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -23,11 +23,11 @@ "dependencies": { "@astrojs/compiler": "^2.7.0", "@jridgewell/sourcemap-codec": "^1.4.15", - "@volar/kit": "~2.1.2", - "@volar/language-core": "~2.1.2", - "@volar/language-server": "~2.1.2", - "@volar/language-service": "~2.1.2", - "@volar/typescript": "~2.1.2", + "@volar/kit": "~2.1.3", + "@volar/language-core": "~2.1.3", + "@volar/language-server": "~2.1.3", + "@volar/language-service": "~2.1.3", + "@volar/typescript": "~2.1.3", "fast-glob": "^3.2.12", "volar-service-css": "0.0.34", "volar-service-emmet": "0.0.34", @@ -45,7 +45,7 @@ "@types/chai": "^4.3.5", "@types/mocha": "^10.0.1", "@types/node": "^18.17.8", - "@volar/test-utils": "~2.1.2", + "@volar/test-utils": "~2.1.3", "astro": "^4.3.5", "chai": "^4.3.7", "mocha": "^10.2.0", diff --git a/packages/language-server/test/fixture/.gitkeep b/packages/language-server/test/fixture/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/language-server/test/fixture/cachingTest.astro b/packages/language-server/test/fixture/cachingTest.astro new file mode 100644 index 00000000..5dafe949 --- /dev/null +++ b/packages/language-server/test/fixture/cachingTest.astro @@ -0,0 +1,5 @@ +--- +import Component from './caching/'; +--- + + new Promise((r) => setTimeout(r, ms)); + +describe('TypeScript - Cache invalidation', async () => { + let languageServer: LanguageServer; + + async function createFile(name: string, contents: string) { + await writeFile(path.join(fixtureDir, 'caching', name), contents); + } + + async function removeFile(name: string) { + await rm(path.join(fixtureDir, 'caching', name)); + } + + before(async () => { + languageServer = await getLanguageServer(); + + try { + await mkdir(path.join(fixtureDir, 'caching')); + } catch (e) {} + + await createFile('toBeDeleted.astro', ''); + }); + + it('Can get paths completions for new files', async () => { + const fileNames = ['PathCompletion.astro', 'PathCompletion2.astro']; + + const document = await languageServer.handle.openTextDocument( + path.join(fixtureDir, 'cachingTest.astro'), + 'astro' + ); + + // Try two different files, to make sure the cache capture everything + for (const fileName of fileNames) { + await createFile(fileName, ''); + + const completions = await languageServer.handle.sendCompletionRequest(document.uri, { + line: 1, + character: 33, + }); + + const labels = completions?.items.map((i) => i.label); + expect(labels).to.include(fileName, `Expected ${fileName} to be in the completions`); + } + }); + + it('Does not get path completions for removed files', async () => { + const document = await languageServer.handle.openTextDocument( + path.join(fixtureDir, 'cachingTest.astro'), + 'astro' + ); + + await removeFile('toBeDeleted.astro'); + + const directoryContent = await readdir(path.join(fixtureDir, '/caching')); + expect(directoryContent).to.not.include('toBeDeleted.astro'); + + const completions = await languageServer.handle.sendCompletionRequest(document.uri, { + line: 1, + character: 33, + }); + + const labels = completions?.items.map((i) => i.label); + expect(labels).to.not.include( + 'toBeDeleted.astro', + `Expected toBeDeleted.astro to not be in the completions, since the file was deleted` + ); + }); + + it('Can get auto-imports for new files', async () => { + const fileNames = ['AutoImport.astro', 'AutoImport2.astro']; + + const document = await languageServer.handle.openTextDocument( + path.join(fixtureDir, 'cachingTest.astro'), + 'astro' + ); + + // Try two different files, to make sure the cache capture everything + for (const fileName of fileNames) { + await createFile(fileName, ''); + + const imports = await languageServer.handle.sendCompletionRequest(document.uri, { + line: 4, + character: 9, + }); + + const labels = imports?.items.map((i) => i.label); + const className = fileName.slice(0, -'.astro'.length); + expect(labels).to.include(className, `Expected ${className} to be in the auto-imports`); + } + }); + + it('New files have access to context of the project', async () => { + const existingDocument = await languageServer.handle.openTextDocument( + path.join(fixtureDir, 'importFromSuperModule.astro'), + 'astro' + ); + + const existingDiagnostics = (await languageServer.handle.sendDocumentDiagnosticRequest( + existingDocument.uri + )) as FullDocumentDiagnosticReport; + + expect(existingDiagnostics.items).to.have.length( + 0, + 'Expected no diagnostics, as the file is part of the project' + ); + + await createFile( + 'WillImportFromSuperModule.astro', + '---\n\nimport { hello } from "im-a-super-module";\n\nhello;\n\n---\n' + ); + + const document = await languageServer.handle.openTextDocument( + path.join(fixtureDir, 'caching', 'WillImportFromSuperModule.astro'), + 'astro' + ); + + const diagnostics = (await languageServer.handle.sendDocumentDiagnosticRequest( + document.uri + )) as FullDocumentDiagnosticReport; + + expect(diagnostics.items).to.have.length( + 0, + 'Expected no diagnostics, as new files should have access to the module declaration in the project like already existing files.' + ); + }); + + after(async () => { + // Delete all the temp files + await rm(path.join(fixtureDir, 'caching'), { recursive: true }); + }); +}); diff --git a/packages/language-server/test/typescript/diagnostics.test.ts b/packages/language-server/test/typescript/diagnostics.test.ts index 1cefabf3..d4356c88 100644 --- a/packages/language-server/test/typescript/diagnostics.test.ts +++ b/packages/language-server/test/typescript/diagnostics.test.ts @@ -62,7 +62,7 @@ describe('TypeScript - Diagnostics', async () => { const diagnostics = (await languageServer.handle.sendDocumentDiagnosticRequest( document.uri )) as FullDocumentDiagnosticReport; - expect(diagnostics.items).length(1); + expect(diagnostics.items).length(2); diagnostics.items = diagnostics.items.map((diag) => ({ ...diag, data: {} })); expect(diagnostics.items).to.deep.equal([ @@ -75,6 +75,15 @@ describe('TypeScript - Diagnostics', async () => { severity: DiagnosticSeverity.Error, source: 'ts', }, + { + code: 2307, + data: {}, + message: + "Cannot find module 'astro:content' or its corresponding type declarations.\n\nIf you're using content collections, make sure to run `astro dev`, `astro build` or `astro sync` to first generate the types so you can import from them. If you already ran one of those commands, restarting the language server might be necessary in order for the change to take effect.", + range: Range.create(1, 31, 1, 46), + severity: 1, + source: 'ts', + }, ]); }); diff --git a/packages/ts-plugin/package.json b/packages/ts-plugin/package.json index bb98e4c5..7fb0a787 100644 --- a/packages/ts-plugin/package.json +++ b/packages/ts-plugin/package.json @@ -19,8 +19,8 @@ "author": "withastro", "license": "MIT", "dependencies": { - "@volar/language-core": "~2.1.2", - "@volar/typescript": "~2.1.2", + "@volar/language-core": "~2.1.3", + "@volar/typescript": "~2.1.3", "@astrojs/compiler": "^2.7.0", "@jridgewell/sourcemap-codec": "^1.4.15", "semver": "^7.3.8", diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 521c174c..f26f2c4d 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -186,7 +186,7 @@ }, "scripts": { "prebuild": "cd ../ts-plugin && pnpm build", - "build": "pnpm prebuild && node scripts/build.mjs -- --minify", + "build": "tsc && pnpm prebuild && node scripts/build.mjs -- --minify", "dev": "node scripts/build.mjs -- --watch", "build:grammar": "npx js-yaml syntaxes/astro.tmLanguage.src.yaml > syntaxes/astro.tmLanguage.json", "test": "pnpm test:vscode && pnpm test:grammar", @@ -201,8 +201,8 @@ "@types/mocha": "^10.0.1", "@types/node": "^18.17.8", "@types/vscode": "^1.82.0", - "@volar/language-server": "~2.1.2", - "@volar/vscode": "~2.1.2", + "@volar/language-server": "~2.1.3", + "@volar/vscode": "~2.1.3", "@vscode/test-electron": "^2.3.2", "@vscode/vsce": "latest", "esbuild": "^0.17.19", diff --git a/packages/vscode/tsconfig.json b/packages/vscode/tsconfig.json index 5a24989c..96d36601 100644 --- a/packages/vscode/tsconfig.json +++ b/packages/vscode/tsconfig.json @@ -2,7 +2,8 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "dist", - "rootDir": "src" + "rootDir": "src", + "emitDeclarationOnly": true }, "include": ["src"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f97e2de5..ff7fa332 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -82,41 +82,41 @@ importers: specifier: ^1.4.15 version: 1.4.15 '@volar/kit': - specifier: ~2.1.2 - version: 2.1.2(typescript@5.2.2) + specifier: ~2.1.3 + version: 2.1.3(typescript@5.2.2) '@volar/language-core': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 '@volar/language-server': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 '@volar/language-service': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 '@volar/typescript': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 fast-glob: specifier: ^3.2.12 version: 3.2.12 volar-service-css: specifier: 0.0.34 - version: 0.0.34(@volar/language-service@2.1.2) + version: 0.0.34(@volar/language-service@2.1.3) volar-service-emmet: specifier: 0.0.34 - version: 0.0.34(@volar/language-service@2.1.2) + version: 0.0.34(@volar/language-service@2.1.3) volar-service-html: specifier: 0.0.34 - version: 0.0.34(@volar/language-service@2.1.2) + version: 0.0.34(@volar/language-service@2.1.3) volar-service-prettier: specifier: 0.0.34 - version: 0.0.34(@volar/language-service@2.1.2)(prettier@3.2.5) + version: 0.0.34(@volar/language-service@2.1.3)(prettier@3.2.5) volar-service-typescript: specifier: 0.0.34 - version: 0.0.34(@volar/language-service@2.1.2) + version: 0.0.34(@volar/language-service@2.1.3) volar-service-typescript-twoslash-queries: specifier: 0.0.34 - version: 0.0.34(@volar/language-service@2.1.2) + version: 0.0.34(@volar/language-service@2.1.3) vscode-html-languageservice: specifier: ^5.1.2 version: 5.1.2 @@ -140,8 +140,8 @@ importers: specifier: ^18.17.8 version: 18.17.8 '@volar/test-utils': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 astro: specifier: ^4.3.5 version: 4.3.5(@types/node@18.17.8)(typescript@5.2.2) @@ -182,11 +182,11 @@ importers: specifier: ^1.4.15 version: 1.4.15 '@volar/language-core': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 '@volar/typescript': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 semver: specifier: ^7.3.8 version: 7.5.4 @@ -247,17 +247,17 @@ importers: specifier: ^1.82.0 version: 1.83.0 '@volar/language-server': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 '@volar/vscode': - specifier: ~2.1.2 - version: 2.1.2 + specifier: ~2.1.3 + version: 2.1.3 '@vscode/test-electron': specifier: ^2.3.2 version: 2.3.2 '@vscode/vsce': specifier: latest - version: 2.24.0 + version: 2.23.0 esbuild: specifier: ^0.17.19 version: 0.17.19 @@ -2115,31 +2115,31 @@ packages: optional: true dev: true - /@volar/kit@2.1.2(typescript@5.2.2): - resolution: {integrity: sha512-u20R1lCWCgFYBCHC+FR/e9J+P61vUNQpyWt4keAY+zpVHEHsSXVA2xWMJV1l1Iq5Dd0jBUSqrb1zsEya455AzA==} + /@volar/kit@2.1.3(typescript@5.2.2): + resolution: {integrity: sha512-E4gsBkYZnoQ/T1GorDCs2ndYV+3rv/SPxPbG0um1RU47sH6qX1I7Kk+1wjwTVD78TLCA8NSTq+dMapAL5mGw3Q==} peerDependencies: typescript: '*' dependencies: - '@volar/language-service': 2.1.2 - '@volar/typescript': 2.1.2 + '@volar/language-service': 2.1.3 + '@volar/typescript': 2.1.3 typesafe-path: 0.2.2 typescript: 5.2.2 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: false - /@volar/language-core@2.1.2: - resolution: {integrity: sha512-5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA==} + /@volar/language-core@2.1.3: + resolution: {integrity: sha512-F93KYZYqcYltG7NihfnLt/omMZOtrQtsh2+wj+cgx3xolopU+TZvmwlZWOjw3ObZGFj3SKBb4jJn6VSfSch6RA==} dependencies: - '@volar/source-map': 2.1.2 + '@volar/source-map': 2.1.3 - /@volar/language-server@2.1.2: - resolution: {integrity: sha512-5NR5Ztg+OxvDI4oRrjS0/4ZVPumWwhVq5acuK2BJbakG1kJXViYI9NOWiWITMjnliPvf12TEcSrVDBmIq54DOg==} + /@volar/language-server@2.1.3: + resolution: {integrity: sha512-dUet7VeDWhsHWSd8wRcE19kkIDT3rq/FC6CzTDH+y0sjnGrKwRH9ANX6KbR1HzEh71ajRL1XemK2X6N7x5VEWQ==} dependencies: - '@volar/language-core': 2.1.2 - '@volar/language-service': 2.1.2 - '@volar/snapshot-document': 2.1.2 - '@volar/typescript': 2.1.2 + '@volar/language-core': 2.1.3 + '@volar/language-service': 2.1.3 + '@volar/snapshot-document': 2.1.3 + '@volar/typescript': 2.1.3 '@vscode/l10n': 0.0.16 path-browserify: 1.0.1 request-light: 0.7.0 @@ -2148,44 +2148,44 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - /@volar/language-service@2.1.2: - resolution: {integrity: sha512-CmVbbKdqzVq+0FT67hfELdHpboqXhKXh6EjypypuFX5ptIRftHZdkaq3/lCCa46EHxS5tvE44jn+s7faN4iRDA==} + /@volar/language-service@2.1.3: + resolution: {integrity: sha512-0wsPSvfIP1IAP0Bskp5aCjYvLge9PTzIAiHDFK9PYmMOJqO+vgPih9IIBSded1SCxaRauSvqwGoXKdeFieoYbg==} dependencies: - '@volar/language-core': 2.1.2 + '@volar/language-core': 2.1.3 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - /@volar/snapshot-document@2.1.2: - resolution: {integrity: sha512-ZpJIBZrdm/Gx4jC/zn8H+O6H5vZZwY7B5CMTxl9y8HvcqlePOyDi+VkX8pjQz1VFG9Z5Z+Bau/RL6exqkoVDDA==} + /@volar/snapshot-document@2.1.3: + resolution: {integrity: sha512-sXcat0I1YmmohMuq1q/tcbcYIeI9vkZwx14LEpsX/wk9DcxrEILx+d1gjRxg9EgRjQRacDZIVevnKZf6p3Fi8A==} dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - /@volar/source-map@2.1.2: - resolution: {integrity: sha512-yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q==} + /@volar/source-map@2.1.3: + resolution: {integrity: sha512-j+R+NG/OlDgdNMttADxNuSM9Z26StT/Bjw0NgSydI05Vihngn9zvaP/xXwfWs5qQrRzbKVFxJebS2ks5m/URuA==} dependencies: muggle-string: 0.4.0 - /@volar/test-utils@2.1.2: - resolution: {integrity: sha512-i3QSQ29klRxjhTg9fyzYd5svipwYlP2pIcZmH6FYeU9YXto0e2hEhddxu7+8oIjqKfovnPfNxT8YVgtLAXBgrQ==} + /@volar/test-utils@2.1.3: + resolution: {integrity: sha512-N5eW8+Q2RadhTVNsXgWMEvXBCtG/OuuMpKWMafgyE6vwAqtpg1j/TfQWzYCAIS8ildJdj3m1tUW1Nrn2O2MozQ==} dependencies: - '@volar/language-core': 2.1.2 - '@volar/language-server': 2.1.2 + '@volar/language-core': 2.1.3 + '@volar/language-server': 2.1.3 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: true - /@volar/typescript@2.1.2: - resolution: {integrity: sha512-lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ==} + /@volar/typescript@2.1.3: + resolution: {integrity: sha512-ZZqLMih4mvu2eJAW3UCFm84OM/ojYMoA/BU/W1TctT5F2nVzNJmW4jxMWmP3wQzxCbATfTa5gLb1+BSI9NBMBg==} dependencies: - '@volar/language-core': 2.1.2 + '@volar/language-core': 2.1.3 path-browserify: 1.0.1 - /@volar/vscode@2.1.2: - resolution: {integrity: sha512-gRer7Tw4dKU8glqEhm9Tg9TksBVmeRvolbjn4F3tfDLi/HbfOFGMHfcIH3/NIM0bNRhDhZvVZa1npif2U8QWXQ==} + /@volar/vscode@2.1.3: + resolution: {integrity: sha512-sQ2z+Yxo9JzJ1h1/1Wfm1cXAmYfBUB02eHxzW13bH5P6qC003K/X20XqhBmUvHNGC0FfPy9jP5TnKGeVo9scCA==} dependencies: - '@volar/language-server': 2.1.2 + '@volar/language-server': 2.1.3 path-browserify: 1.0.1 vscode-languageclient: 9.0.1 vscode-nls: 5.2.0 @@ -2220,8 +2220,8 @@ packages: - supports-color dev: true - /@vscode/vsce@2.24.0: - resolution: {integrity: sha512-p6CIXpH5HXDqmUkgFXvIKTjZpZxy/uDx4d/UsfhS9vQUun43KDNUbYeZocyAHgqcJlPEurgArHz9te1PPiqPyA==} + /@vscode/vsce@2.23.0: + resolution: {integrity: sha512-Wf9yN8feZf4XmUW/erXyKQvCL577u72AQv4AI4Cwt5o5NyE49C5mpfw3pN78BJYYG3qnSIxwRo7JPvEurkQuNA==} engines: {node: '>= 14'} hasBin: true dependencies: @@ -2229,6 +2229,7 @@ packages: chalk: 2.4.2 cheerio: 1.0.0-rc.12 commander: 6.2.1 + find-yarn-workspace-root: 2.0.0 glob: 7.2.3 hosted-git-info: 4.1.0 jsonc-parser: 3.2.0 @@ -3779,6 +3780,12 @@ packages: pkg-dir: 4.2.0 dev: true + /find-yarn-workspace-root@2.0.0: + resolution: {integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==} + dependencies: + micromatch: 4.0.5 + dev: true + /flat-cache@3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -7139,7 +7146,7 @@ packages: vite: 5.0.12(@types/node@18.17.8) dev: true - /volar-service-css@0.0.34(@volar/language-service@2.1.2): + /volar-service-css@0.0.34(@volar/language-service@2.1.3): resolution: {integrity: sha512-C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7147,13 +7154,13 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.3 vscode-css-languageservice: 6.2.10 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: false - /volar-service-emmet@0.0.34(@volar/language-service@2.1.2): + /volar-service-emmet@0.0.34(@volar/language-service@2.1.3): resolution: {integrity: sha512-ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7161,12 +7168,12 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.3 '@vscode/emmet-helper': 2.9.2 vscode-html-languageservice: 5.1.2 dev: false - /volar-service-html@0.0.34(@volar/language-service@2.1.2): + /volar-service-html@0.0.34(@volar/language-service@2.1.3): resolution: {integrity: sha512-kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7174,13 +7181,13 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.3 vscode-html-languageservice: 5.1.2 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 dev: false - /volar-service-prettier@0.0.34(@volar/language-service@2.1.2)(prettier@3.2.5): + /volar-service-prettier@0.0.34(@volar/language-service@2.1.3)(prettier@3.2.5): resolution: {integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7191,12 +7198,12 @@ packages: prettier: optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.3 prettier: 3.2.5 vscode-uri: 3.0.8 dev: false - /volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.2): + /volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.3): resolution: {integrity: sha512-XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7204,10 +7211,10 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.3 dev: false - /volar-service-typescript@0.0.34(@volar/language-service@2.1.2): + /volar-service-typescript@0.0.34(@volar/language-service@2.1.3): resolution: {integrity: sha512-NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -7215,7 +7222,7 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.2 + '@volar/language-service': 2.1.3 path-browserify: 1.0.1 semver: 7.5.4 typescript-auto-import-cache: 0.3.2