diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index 9566246842..3dcc85a8f9 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -515,7 +515,7 @@ "devDependencies": { "@types/semver": "^7.5.3", "@types/vscode": "^1.82.0", - "@volar/vscode": "2.2.0-alpha.10", + "@volar/vscode": "2.2.0-alpha.12", "@vue/language-core": "2.0.14", "@vue/language-server": "2.0.14", "@vue/typescript-plugin": "2.0.14", diff --git a/extensions/vscode/src/common.ts b/extensions/vscode/src/common.ts index ffbb8312b1..b843ac0215 100644 --- a/extensions/vscode/src/common.ts +++ b/extensions/vscode/src/common.ts @@ -1,14 +1,14 @@ -import { DiagnosticModel, VueInitializationOptions } from '@vue/language-server'; -import * as vscode from 'vscode'; import * as lsp from '@volar/vscode'; +import { quickPick } from '@volar/vscode/lib/common'; +import type { VueInitializationOptions } from '@vue/language-server'; +import * as fs from 'fs'; +import * as path from 'path'; +import * as semver from 'semver'; +import * as vscode from 'vscode'; import { config } from './config'; import * as doctor from './features/doctor'; import * as nameCasing from './features/nameCasing'; import * as splitEditors from './features/splitEditors'; -import * as semver from 'semver'; -import * as fs from 'fs'; -import * as path from 'path'; -import { quickPick } from '@volar/vscode/lib/common'; let client: lsp.BaseLanguageClient; @@ -437,13 +437,8 @@ async function getInitializationOptions( hybridMode: boolean, ): Promise { return { - diagnosticModel: enabledHybridMode ? DiagnosticModel.Pull : DiagnosticModel.Push, typescript: { tsdk: (await lsp.getTsdk(context)).tsdk }, maxFileSize: config.server.maxFileSize, - semanticTokensLegend: { - tokenTypes: [], - tokenModifiers: [], - }, vue: { hybridMode, }, diff --git a/package.json b/package.json index 544f0582b9..f43172cde2 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@lerna-lite/cli": "latest", "@lerna-lite/publish": "latest", - "@volar/language-service": "2.2.0-alpha.10", + "@volar/language-service": "2.2.0-alpha.12", "@volar/tsl-config": "latest", "tsl": "latest", "typescript": "latest", diff --git a/packages/component-meta/lib/base.ts b/packages/component-meta/lib/base.ts index cba4b852ea..e4ec9154e9 100644 --- a/packages/component-meta/lib/base.ts +++ b/packages/component-meta/lib/base.ts @@ -88,18 +88,6 @@ function createCheckerWorker( } return scriptSnapshots.get(fileName); }, - getLanguageId: fileName => { - if (parsedCommandLine.vueOptions.extensions.some(ext => fileName.endsWith(ext))) { - return 'vue'; - } - if (parsedCommandLine.vueOptions.vitePressExtensions.some(ext => fileName.endsWith(ext))) { - return 'markdown'; - } - if (parsedCommandLine.vueOptions.petiteVueExtensions.some(ext => fileName.endsWith(ext))) { - return 'html'; - } - return vue.resolveCommonLanguageId(fileName); - }, scriptIdToFileName: id => id, fileNameToScriptId: id => id, }; diff --git a/packages/component-meta/package.json b/packages/component-meta/package.json index ab81419bca..3bb6b46c47 100644 --- a/packages/component-meta/package.json +++ b/packages/component-meta/package.json @@ -12,7 +12,7 @@ "directory": "packages/component-meta" }, "dependencies": { - "@volar/typescript": "2.2.0-alpha.10", + "@volar/typescript": "2.2.0-alpha.12", "@vue/language-core": "2.0.14", "path-browserify": "^1.0.1", "vue-component-type-helpers": "2.0.14" diff --git a/packages/language-core/lib/languageModule.ts b/packages/language-core/lib/languageModule.ts index 6d5c65b0e3..29b7a62d7b 100644 --- a/packages/language-core/lib/languageModule.ts +++ b/packages/language-core/lib/languageModule.ts @@ -51,7 +51,7 @@ function getFileRegistryKey( return JSON.stringify(values); } -interface _Plugin extends LanguagePlugin { +export interface _Plugin extends LanguagePlugin { getCanonicalFileName: (fileName: string) => string; pluginContext: Parameters[0]; } @@ -93,14 +93,19 @@ export function createVueLanguagePlugin( return { getCanonicalFileName, pluginContext, + getLanguageId(scriptId) { + if (vueCompilerOptions.extensions.some(ext => scriptId.endsWith(ext))) { + return 'vue'; + } + if (vueCompilerOptions.vitePressExtensions.some(ext => scriptId.endsWith(ext))) { + return 'markdown'; + } + if (vueCompilerOptions.petiteVueExtensions.some(ext => scriptId.endsWith(ext))) { + return 'html'; + } + }, createVirtualCode(fileId, languageId, snapshot) { - const isVueFile = vueCompilerOptions.extensions.some(ext => fileId.endsWith(ext)) - || (vueCompilerOptions.extensions.length && languageId === 'vue'); - const isVitePressFile = vueCompilerOptions.vitePressExtensions.some(ext => fileId.endsWith(ext)) - || (vueCompilerOptions.vitePressExtensions.length && languageId === 'markdown'); - const isPetiteVueFile = vueCompilerOptions.petiteVueExtensions.some(ext => fileId.endsWith(ext)) - || (vueCompilerOptions.petiteVueExtensions.length && languageId === 'html'); - if (isVueFile || isVitePressFile || isPetiteVueFile) { + if (languageId === 'vue' || languageId === 'markdown' || languageId === 'html') { const fileName = getFileName(fileId); const projectVersion = getProjectVersion(); if (projectVersion !== canonicalRootFileNamesVersion) { @@ -122,9 +127,9 @@ export function createVueLanguagePlugin( languageId, snapshot, vueCompilerOptions, - isPetiteVueFile + languageId === 'html' ? [petiteVueSfcPlugin, ...basePlugins] - : isVitePressFile + : languageId === 'markdown' ? [vitePressSfcPlugin, ...basePlugins] : [vueSfcPlugin, ...basePlugins], ts, diff --git a/packages/language-core/lib/virtualFile/computedFiles.ts b/packages/language-core/lib/virtualFile/computedFiles.ts index ea59ec3599..4085573983 100644 --- a/packages/language-core/lib/virtualFile/computedFiles.ts +++ b/packages/language-core/lib/virtualFile/computedFiles.ts @@ -1,4 +1,4 @@ -import { VirtualCode, buildMappings, resolveCommonLanguageId, toString } from '@volar/language-core'; +import { VirtualCode, buildMappings, toString } from '@volar/language-core'; import { computed } from 'computeds'; import type * as ts from 'typescript'; import type { Code, Sfc, SfcBlock, VueLanguagePlugin } from '../types'; @@ -57,7 +57,7 @@ export function computedFiles( if (!file.parentCodeId) { embeddedCodes.push({ id: file.id, - languageId: resolveCommonLanguageId(`/dummy.${file.lang}`), + languageId: resolveCommonLanguageId(file.lang), linkedCodeMappings: file.linkedCodeMappings, snapshot, mappings, @@ -71,7 +71,7 @@ export function computedFiles( parent.embeddedCodes ??= []; parent.embeddedCodes.push({ id: file.id, - languageId: resolveCommonLanguageId(`/dummy.${file.lang}`), + languageId: resolveCommonLanguageId(file.lang), linkedCodeMappings: file.linkedCodeMappings, snapshot, mappings, @@ -238,3 +238,19 @@ function fullDiffTextChangeRange(oldText: string, newText: string): ts.TextChang } } } + +export function resolveCommonLanguageId(lang: string) { + switch (lang) { + case 'js': return 'javascript'; + case 'cjs': return 'javascript'; + case 'mjs': return 'javascript'; + case 'ts': return 'typescript'; + case 'cts': return 'typescript'; + case 'mts': return 'typescript'; + case 'jsx': return 'javascriptreact'; + case 'tsx': return 'typescriptreact'; + case 'pug': return 'jade'; + case 'md': return 'markdown'; + } + return lang; +} diff --git a/packages/language-core/package.json b/packages/language-core/package.json index e4789fea4b..c0024abf53 100644 --- a/packages/language-core/package.json +++ b/packages/language-core/package.json @@ -12,7 +12,7 @@ "directory": "packages/language-core" }, "dependencies": { - "@volar/language-core": "2.2.0-alpha.10", + "@volar/language-core": "2.2.0-alpha.12", "@vue/compiler-dom": "^3.4.0", "@vue/shared": "^3.4.0", "computeds": "^0.0.1", diff --git a/packages/language-plugin-pug/package.json b/packages/language-plugin-pug/package.json index aae78e60f3..eddd61b727 100644 --- a/packages/language-plugin-pug/package.json +++ b/packages/language-plugin-pug/package.json @@ -16,7 +16,7 @@ "@vue/language-core": "2.0.14" }, "dependencies": { - "@volar/source-map": "2.2.0-alpha.10", + "@volar/source-map": "2.2.0-alpha.12", "volar-service-pug": "0.0.40" } } diff --git a/packages/language-server/lib/hybridModeProject.ts b/packages/language-server/lib/hybridModeProject.ts index d4b39db977..4052c03bcc 100644 --- a/packages/language-server/lib/hybridModeProject.ts +++ b/packages/language-server/lib/hybridModeProject.ts @@ -1,126 +1,127 @@ -import type { LanguagePlugin, LanguageServicePlugin, ServerProject, ServerProjectProviderFactory } from '@volar/language-server'; +import type { LanguagePlugin, ProviderResult, ServerBase, ServerProject, ServerProjectProvider, TypeScriptProjectHost } from '@volar/language-server'; import { createSimpleServerProject } from '@volar/language-server/lib/project/simpleProject'; import { createServiceEnvironment, getWorkspaceFolder } from '@volar/language-server/lib/project/simpleProjectProvider'; -import type { ServerContext } from '@volar/language-server/lib/server'; import { FileMap, createLanguage } from '@vue/language-core'; -import { LanguageService, ServiceEnvironment, createLanguageService } from '@vue/language-service'; +import { Disposable, LanguageService, ServiceEnvironment, createLanguageService } from '@vue/language-service'; import { searchNamedPipeServerForFile } from '@vue/typescript-plugin/lib/utils'; import type * as ts from 'typescript'; -export function createHybridModeProjectProviderFactory(sys: ts.System): ServerProjectProviderFactory { - return (context, servicePlugins, getLanguagePlugins) => { - const serviceEnvs = new FileMap(sys.useCaseSensitiveFileNames); - const tsconfigProjects = new FileMap>(sys.useCaseSensitiveFileNames); - const simpleProjects = new FileMap>(sys.useCaseSensitiveFileNames); - context.onDidChangeWatchedFiles(({ changes }) => { +export type GetLanguagePlugin = ( + serviceEnv: ServiceEnvironment, + configFileName?: string, + host?: TypeScriptProjectHost, + sys?: ts.System & { + version: number; + sync(): Promise; + } & Disposable, +) => ProviderResult; + +export function createHybridModeProjectProviderFactory( + sys: ts.System, + getLanguagePlugins: GetLanguagePlugin, +): ServerProjectProvider { + let initialized = false; + + const serviceEnvs = new FileMap(sys.useCaseSensitiveFileNames); + const tsconfigProjects = new FileMap>(sys.useCaseSensitiveFileNames); + const simpleProjects = new FileMap>(sys.useCaseSensitiveFileNames); + + return { + async get(uri): Promise { + if (!initialized) { + initialized = true; + initialize(this); + } + const workspaceFolder = getWorkspaceFolder(uri, this.workspaceFolders); + let serviceEnv = serviceEnvs.get(workspaceFolder); + if (!serviceEnv) { + serviceEnv = createServiceEnvironment(this, workspaceFolder); + serviceEnvs.set(workspaceFolder, serviceEnv); + } + const fileName = serviceEnv.typescript!.uriToFileName(uri); + const projectInfo = (await searchNamedPipeServerForFile(fileName))?.projectInfo; + if (projectInfo?.kind === 1) { + const tsconfig = projectInfo.name; + const tsconfigUri = serviceEnv.typescript!.fileNameToUri(tsconfig); + if (!tsconfigProjects.has(tsconfigUri)) { + tsconfigProjects.set(tsconfigUri, (async () => { + const languagePlugins = await getLanguagePlugins(serviceEnv, tsconfig, undefined, { + ...sys, + version: 0, + async sync() { + return 0; + }, + dispose() { }, + }); + return createTSConfigProject(this, serviceEnv, languagePlugins); + })()); + } + return await tsconfigProjects.get(tsconfigUri)!; + } + else { + if (!simpleProjects.has(workspaceFolder)) { + simpleProjects.set(workspaceFolder, (async () => { + const languagePlugins = await getLanguagePlugins(serviceEnv); + return createSimpleServerProject(this, serviceEnv, languagePlugins); + })()); + } + return await simpleProjects.get(workspaceFolder)!; + } + }, + async all() { + return Promise.all([ + ...tsconfigProjects.values(), + ...simpleProjects.values(), + ]); + }, + }; + + function initialize(server: ServerBase) { + server.onDidChangeWatchedFiles(({ changes }) => { for (const change of changes) { if (tsconfigProjects.has(change.uri)) { tsconfigProjects.get(change.uri)?.then(project => project.dispose()); tsconfigProjects.delete(change.uri); - context.reloadDiagnostics(); + server.clearPushDiagnostics(); } } }); - return { - async getProject(uri): Promise { - const workspaceFolder = getWorkspaceFolder(uri, context.workspaceFolders); - let serviceEnv = serviceEnvs.get(workspaceFolder); - if (!serviceEnv) { - serviceEnv = createServiceEnvironment(context, workspaceFolder); - serviceEnvs.set(workspaceFolder, serviceEnv); - } - const fileName = serviceEnv.typescript!.uriToFileName(uri); - const projectInfo = (await searchNamedPipeServerForFile(fileName))?.projectInfo; - if (projectInfo?.kind === 1) { - const tsconfig = projectInfo.name; - const tsconfigUri = serviceEnv.typescript!.fileNameToUri(tsconfig); - if (!tsconfigProjects.has(tsconfigUri)) { - tsconfigProjects.set(tsconfigUri, (async () => { - const languagePlugins = await getLanguagePlugins(serviceEnv, { - typescript: { - configFileName: tsconfig, - host: { - getScriptFileNames() { - return []; - }, - } as any, - sys: { - ...sys, - version: 0, - async sync() { - return 0; - }, - dispose() { }, - }, - }, - }); - return createTSConfigProject(context, serviceEnv, languagePlugins, servicePlugins); - })()); - } - return await tsconfigProjects.get(tsconfigUri)!; - } - else { - if (!simpleProjects.has(workspaceFolder)) { - simpleProjects.set(workspaceFolder, (() => { - return createSimpleServerProject(context, serviceEnv, servicePlugins, getLanguagePlugins); - })()); - } - return await simpleProjects.get(workspaceFolder)!; - } - }, - async getProjects() { - return Promise.all([ - ...tsconfigProjects.values(), - ...simpleProjects.values(), - ]); - }, - async reloadProjects() { - for (const project of [ - ...tsconfigProjects.values(), - ...simpleProjects.values(), - ]) { - (await project).dispose(); - } - tsconfigProjects.clear(); - }, - }; + } - function createTSConfigProject( - context: ServerContext, - serviceEnv: ServiceEnvironment, - languagePlugins: LanguagePlugin[], - servicePlugins: LanguageServicePlugin[], - ): ServerProject { + function createTSConfigProject( + server: ServerBase, + serviceEnv: ServiceEnvironment, + languagePlugins: LanguagePlugin[], + ): ServerProject { - let languageService: LanguageService | undefined; + let languageService: LanguageService | undefined; - return { - getLanguageService, - getLanguageServiceDontCreate: () => languageService, - dispose() { - languageService?.dispose(); - }, - }; + return { + getLanguageService, + getLanguageServiceDontCreate: () => languageService, + dispose() { + languageService?.dispose(); + }, + }; - function getLanguageService() { - if (!languageService) { - const language = createLanguage(languagePlugins, false, uri => { - const script = context.documents.get(uri); - if (script) { - language.scripts.set(uri, script.languageId, script.getSnapshot()); - } - else { - language.scripts.delete(uri); - } - }); - languageService = createLanguageService( - language, - servicePlugins, - serviceEnv, - ); - } - return languageService; + function getLanguageService() { + if (!languageService) { + const language = createLanguage(languagePlugins, false, uri => { + const document = server.documents.get(uri); + if (document) { + language.scripts.set(uri, document.getSnapshot(), document.languageId); + } + else { + language.scripts.delete(uri); + } + }); + languageService = createLanguageService( + language, + server.languageServicePlugins, + serviceEnv, + ); } + return languageService; } - }; + } } diff --git a/packages/language-server/node.ts b/packages/language-server/node.ts index 3714d01032..22ccfdf60d 100644 --- a/packages/language-server/node.ts +++ b/packages/language-server/node.ts @@ -1,29 +1,79 @@ import type { Connection } from '@volar/language-server'; -import { createConnection, createServer, createTypeScriptProjectProviderFactory, loadTsdkByPath } from '@volar/language-server/node'; -import { ParsedCommandLine, VueCompilerOptions, createParsedCommandLine, createVueLanguagePlugin, parse, resolveCommonLanguageId, resolveVueCompilerOptions } from '@vue/language-core'; -import { ServiceEnvironment, convertAttrName, convertTagName, createDefaultGetTsPluginClient, createVueServicePlugins, detect } from '@vue/language-service'; +import { createConnection, createServer, createTypeScriptProjectProvider, loadTsdkByPath } from '@volar/language-server/node'; +import { ParsedCommandLine, VueCompilerOptions, createParsedCommandLine, createVueLanguagePlugin, parse, resolveVueCompilerOptions } from '@vue/language-core'; +import { ServiceEnvironment, convertAttrName, convertTagName, createDefaultGetTsPluginClient, detect, getVueLanguageServicePlugins } from '@vue/language-service'; import * as tsPluginClient from '@vue/typescript-plugin/lib/client'; import { searchNamedPipeServerForFile } from '@vue/typescript-plugin/lib/utils'; -import { createHybridModeProjectProviderFactory } from './lib/hybridModeProject'; +import { GetLanguagePlugin, createHybridModeProjectProviderFactory } from './lib/hybridModeProject'; import { DetectNameCasingRequest, GetConnectedNamedPipeServerRequest, GetConvertAttrCasingEditsRequest, GetConvertTagCasingEditsRequest, ParseSFCRequest } from './lib/protocol'; import type { VueInitializationOptions } from './lib/types'; +let tsdk: ReturnType; +let hybridMode: boolean; +let getTsPluginClient: ReturnType; + +const envToVueOptions = new WeakMap(); +const watchedExtensions = new Set(); + export const connection: Connection = createConnection(); export const server = createServer(connection); -const envToVueOptions = new WeakMap(); +export const getLanguagePlugins: GetLanguagePlugin = async (serviceEnv, configFileName, host, sys) => { + const commandLine = await parseCommandLine(); + const vueOptions = commandLine?.vueOptions ?? resolveVueCompilerOptions({}); + const vueLanguagePlugin = createVueLanguagePlugin( + tsdk.typescript, + serviceEnv.typescript!.uriToFileName, + sys?.useCaseSensitiveFileNames ?? false, + () => host?.getProjectVersion?.() ?? '', + () => host?.getScriptFileNames() ?? [], + commandLine?.options ?? {}, + vueOptions, + ); + const extensions = [ + ...vueOptions.extensions.map(ext => ext.slice(1)), + ...vueOptions.vitePressExtensions.map(ext => ext.slice(1)), + ...vueOptions.petiteVueExtensions.map(ext => ext.slice(1)), + ]; + if (!hybridMode) { + extensions.push('js', 'cjs', 'mjs', 'ts', 'cts', 'mts', 'jsx', 'tsx', 'json'); + } + const newExtensions = extensions.filter(ext => !watchedExtensions.has(ext)); + if (newExtensions.length) { + for (const ext of newExtensions) { + watchedExtensions.add(ext); + } + server.watchFiles(['**/*.{' + newExtensions.join(',') + '}']); + } -let tsdk: ReturnType; -let getTsPluginClient: ReturnType; + envToVueOptions.set(serviceEnv, vueOptions); -connection.listen(); + return [vueLanguagePlugin]; -connection.onInitialize(async params => { + async function parseCommandLine() { + let commandLine: ParsedCommandLine | undefined; + let sysVersion: number | undefined; + if (sys) { + let newSysVersion = await sys.sync(); + while (sysVersion !== newSysVersion) { + sysVersion = newSysVersion; + if (configFileName) { + commandLine = createParsedCommandLine(tsdk.typescript, sys, configFileName); + } + newSysVersion = await sys.sync(); + } + } + return commandLine; + } +}; +connection.listen(); + +connection.onInitialize(params => { const options: VueInitializationOptions = params.initializationOptions; - const hybridMode = options.vue?.hybridMode ?? true; + hybridMode = options.vue?.hybridMode ?? true; tsdk = loadTsdkByPath(options.typescript.tsdk, params.locale); if (hybridMode) { @@ -33,74 +83,25 @@ connection.onInitialize(async params => { getTsPluginClient = createDefaultGetTsPluginClient(tsdk.typescript, env => envToVueOptions.get(env)!); } - const result = await server.initialize( + const result = server.initialize( params, + getVueLanguageServicePlugins( + tsdk.typescript, + env => envToVueOptions.get(env)!, + getTsPluginClient, + hybridMode, + ), hybridMode - ? createHybridModeProjectProviderFactory(tsdk.typescript.sys) - : createTypeScriptProjectProviderFactory(tsdk.typescript, tsdk.diagnosticMessages), + ? createHybridModeProjectProviderFactory(tsdk.typescript.sys, getLanguagePlugins) + : createTypeScriptProjectProvider(tsdk.typescript, tsdk.diagnosticMessages, (env, ctx) => getLanguagePlugins(env, ctx.configFileName, ctx.host, ctx.sys)), { - // TODO: Dynamically register file watcher for vue, vitepress, petitevue extensions - watchFileExtensions: hybridMode - ? undefined - : ['js', 'cjs', 'mjs', 'ts', 'cts', 'mts', 'jsx', 'tsx', 'json', 'vue'], - // TODO: remove it - getLanguageId: resolveCommonLanguageId, - getServicePlugins() { - return createVueServicePlugins( - tsdk.typescript, - env => envToVueOptions.get(env)!, - getTsPluginClient, - hybridMode, - ); - }, - async getLanguagePlugins(serviceEnv, projectContext) { - const commandLine = await parseCommandLine(); - const vueOptions = commandLine?.vueOptions ?? resolveVueCompilerOptions({}); - const vueLanguagePlugin = createVueLanguagePlugin( - tsdk.typescript, - serviceEnv.typescript!.uriToFileName, - projectContext.typescript?.sys.useCaseSensitiveFileNames ?? false, - () => projectContext.typescript?.host.getProjectVersion?.() ?? '', - () => projectContext.typescript?.host.getScriptFileNames() ?? [], - commandLine?.options ?? {}, - vueOptions, - ); - - envToVueOptions.set(serviceEnv, vueOptions); - - return [vueLanguagePlugin]; - - async function parseCommandLine() { - - let commandLine: ParsedCommandLine | undefined; - - if (projectContext.typescript) { - - const { sys } = projectContext.typescript; - - let sysVersion: number | undefined; - let newSysVersion = await sys.sync(); - - while (sysVersion !== newSysVersion) { - sysVersion = newSysVersion; - if (projectContext.typescript.configFileName) { - commandLine = createParsedCommandLine(tsdk.typescript, sys, projectContext.typescript.configFileName); - } - newSysVersion = await sys.sync(); - } - } - - return commandLine; - } - }, + pullModelDiagnostics: hybridMode, }, ); - if (hybridMode) { - // handle by tsserver + @vue/typescript-plugin + // provided by tsserver + @vue/typescript-plugin result.capabilities.semanticTokensProvider = undefined; } - return result; }); @@ -145,5 +146,5 @@ connection.onRequest(GetConnectedNamedPipeServerRequest.type, async fileName => }); async function getService(uri: string) { - return (await server.projects.getProject(uri)).getLanguageService(); + return (await server.projects.get.call(server, uri)).getLanguageService(); } diff --git a/packages/language-server/package.json b/packages/language-server/package.json index 22009294fc..b91ef1351a 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -15,8 +15,8 @@ "directory": "packages/language-server" }, "dependencies": { - "@volar/language-core": "2.2.0-alpha.10", - "@volar/language-server": "2.2.0-alpha.10", + "@volar/language-core": "2.2.0-alpha.12", + "@volar/language-server": "2.2.0-alpha.12", "@vue/language-core": "2.0.14", "@vue/language-service": "2.0.14", "@vue/typescript-plugin": "2.0.14", diff --git a/packages/language-service/index.ts b/packages/language-service/index.ts index 4c0edbf14f..af832e04fa 100644 --- a/packages/language-service/index.ts +++ b/packages/language-service/index.ts @@ -34,7 +34,7 @@ import { getImportPathForFile } from '@vue/typescript-plugin/lib/requests/getImp import { getPropertiesAtLocation } from '@vue/typescript-plugin/lib/requests/getPropertiesAtLocation'; import { getQuickInfoAtPosition } from '@vue/typescript-plugin/lib/requests/getQuickInfoAtPosition'; -export function createVueServicePlugins( +export function getVueLanguageServicePlugins( ts: typeof import('typescript'), getVueOptions: (env: ServiceEnvironment) => VueCompilerOptions, getTsPluginClient = createDefaultGetTsPluginClient(ts, getVueOptions), diff --git a/packages/language-service/package.json b/packages/language-service/package.json index b3ddac180a..fdbcea6888 100644 --- a/packages/language-service/package.json +++ b/packages/language-service/package.json @@ -16,9 +16,9 @@ "update-html-data": "node ./scripts/update-html-data.js" }, "dependencies": { - "@volar/language-core": "2.2.0-alpha.10", - "@volar/language-service": "2.2.0-alpha.10", - "@volar/typescript": "2.2.0-alpha.10", + "@volar/language-core": "2.2.0-alpha.12", + "@volar/language-service": "2.2.0-alpha.12", + "@volar/typescript": "2.2.0-alpha.12", "@vue/compiler-dom": "^3.4.0", "@vue/language-core": "2.0.14", "@vue/shared": "^3.4.0", @@ -40,7 +40,7 @@ "devDependencies": { "@types/node": "latest", "@types/path-browserify": "latest", - "@volar/kit": "2.2.0-alpha.10", + "@volar/kit": "2.2.0-alpha.12", "vscode-languageserver-protocol": "^3.17.5" } } diff --git a/packages/language-service/tests/utils/createTester.ts b/packages/language-service/tests/utils/createTester.ts index 746c6633ff..9ba6b75b0a 100644 --- a/packages/language-service/tests/utils/createTester.ts +++ b/packages/language-service/tests/utils/createTester.ts @@ -1,9 +1,9 @@ -import { TypeScriptProjectHost, createLanguageService, resolveCommonLanguageId } from '@volar/language-service'; +import { TypeScriptProjectHost, createLanguageService } from '@volar/language-service'; import { createTypeScriptLanguage } from '@volar/typescript'; import * as path from 'path'; import * as ts from 'typescript'; import { URI } from 'vscode-uri'; -import { createParsedCommandLine, createVueLanguagePlugin, createVueServicePlugins } from '../..'; +import { createParsedCommandLine, createVueLanguagePlugin, getVueLanguageServicePlugins } from '../..'; import { createMockServiceEnv } from './mockEnv'; export const rootUri = URI.file(path.resolve(__dirname, '../../../../test-workspace/language-service')).toString(); @@ -25,7 +25,6 @@ function createTester(rootUri: string) { getScriptFileNames: () => parsedCommandLine.fileNames, getCompilationSettings: () => parsedCommandLine.options, getScriptSnapshot, - getLanguageId: resolveCommonLanguageId, scriptIdToFileName: serviceEnv.typescript!.uriToFileName, fileNameToScriptId: serviceEnv.typescript!.fileNameToUri, }; @@ -38,7 +37,7 @@ function createTester(rootUri: string) { parsedCommandLine.options, parsedCommandLine.vueOptions, ); - const vueServicePlugins = createVueServicePlugins(ts, () => parsedCommandLine.vueOptions); + const vueServicePlugins = getVueLanguageServicePlugins(ts, () => parsedCommandLine.vueOptions); const defaultVSCodeSettings: any = { 'typescript.preferences.quoteStyle': 'single', 'javascript.preferences.quoteStyle': 'single', diff --git a/packages/language-service/tests/utils/format.ts b/packages/language-service/tests/utils/format.ts index be4d218d09..88780a5078 100644 --- a/packages/language-service/tests/utils/format.ts +++ b/packages/language-service/tests/utils/format.ts @@ -1,7 +1,7 @@ import * as kit from '@volar/kit'; import * as ts from 'typescript'; import { describe, expect, it } from 'vitest'; -import { createVueLanguagePlugin, createVueServicePlugins, resolveVueCompilerOptions } from '../..'; +import { createVueLanguagePlugin, getVueLanguageServicePlugins, resolveVueCompilerOptions } from '../..'; const resolvedVueOptions = resolveVueCompilerOptions({}); const vueLanguagePlugin = createVueLanguagePlugin( @@ -13,7 +13,7 @@ const vueLanguagePlugin = createVueLanguagePlugin( {}, resolvedVueOptions, ); -const vueServicePLugins = createVueServicePlugins(ts, () => resolvedVueOptions); +const vueServicePLugins = getVueLanguageServicePlugins(ts, () => resolvedVueOptions); const formatter = kit.createFormatter([vueLanguagePlugin], vueServicePLugins); export function defineFormatTest(options: { diff --git a/packages/tsc/index.ts b/packages/tsc/index.ts index 11753e2b5f..41ff9fc9af 100644 --- a/packages/tsc/index.ts +++ b/packages/tsc/index.ts @@ -45,12 +45,6 @@ export function run() { throw extensionsChangedException; } }, - fileName => { - if (runExtensions.some(ext => fileName.endsWith(ext))) { - return 'vue'; - } - return vue.resolveCommonLanguageId(fileName); - }, ); try { diff --git a/packages/tsc/package.json b/packages/tsc/package.json index eef9b98771..75e4c837a7 100644 --- a/packages/tsc/package.json +++ b/packages/tsc/package.json @@ -16,7 +16,7 @@ "vue-tsc": "./bin/vue-tsc.js" }, "dependencies": { - "@volar/typescript": "2.2.0-alpha.10", + "@volar/typescript": "2.2.0-alpha.12", "@vue/language-core": "2.0.14", "semver": "^7.5.4" }, diff --git a/packages/tsc/tests/dts.spec.ts b/packages/tsc/tests/dts.spec.ts index 9aeb0d80e8..54daae201d 100644 --- a/packages/tsc/tests/dts.spec.ts +++ b/packages/tsc/tests/dts.spec.ts @@ -41,17 +41,6 @@ describe('vue-tsc-dts', () => { vueOptions, ); return [vueLanguagePlugin]; - }, fileName => { - if (vueOptions.extensions.some(ext => fileName.endsWith(ext))) { - return 'vue'; - } - if (vueOptions.vitePressExtensions.some(ext => fileName.endsWith(ext))) { - return 'markdown'; - } - if (vueOptions.petiteVueExtensions.some(ext => fileName.endsWith(ext))) { - return 'html'; - } - return vue.resolveCommonLanguageId(fileName); }); const program = createProgram(options); diff --git a/packages/typescript-plugin/index.ts b/packages/typescript-plugin/index.ts index 064676f27a..e833bc4f27 100644 --- a/packages/typescript-plugin/index.ts +++ b/packages/typescript-plugin/index.ts @@ -38,14 +38,21 @@ function createLanguageServicePlugin(): ts.server.PluginModuleFactory { ); const extensions = languagePlugin.typescript?.extraFileExtensions.map(ext => '.' + ext.extension) ?? []; const getScriptSnapshot = info.languageServiceHost.getScriptSnapshot.bind(info.languageServiceHost); + const getScriptVersion = info.languageServiceHost.getScriptVersion.bind(info.languageServiceHost); + const syncedScriptVersions = new vue.FileMap(ts.sys.useCaseSensitiveFileNames); const language = createLanguage( [languagePlugin], ts.sys.useCaseSensitiveFileNames, fileName => { + const version = getScriptVersion(fileName); + if (syncedScriptVersions.get(fileName) === version) { + return; + } + syncedScriptVersions.set(fileName, version); + const snapshot = getScriptSnapshot(fileName); if (snapshot) { - // @ts-expect-error - language.scripts.set(fileName, undefined, snapshot); + language.scripts.set(fileName, snapshot); } else { language.scripts.delete(fileName); diff --git a/packages/typescript-plugin/package.json b/packages/typescript-plugin/package.json index 03f232777e..ccb2d74ecb 100644 --- a/packages/typescript-plugin/package.json +++ b/packages/typescript-plugin/package.json @@ -12,7 +12,7 @@ "directory": "packages/typescript-plugin" }, "dependencies": { - "@volar/typescript": "2.2.0-alpha.10", + "@volar/typescript": "2.2.0-alpha.12", "@vue/language-core": "2.0.14", "@vue/shared": "^3.4.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92f1350b6d..f046b17c83 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: latest version: 3.3.3(typescript@5.4.5) '@volar/language-service': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@volar/tsl-config': specifier: latest version: 0.0.0-20240315.2(tsl@0.0.10(typescript@5.4.5)) @@ -31,7 +31,7 @@ importers: version: 5.2.10(@types/node@20.12.7) vitest: specifier: latest - version: 1.5.0(@types/node@20.12.7) + version: 1.5.2(@types/node@20.12.7) extensions/vscode: devDependencies: @@ -42,8 +42,8 @@ importers: specifier: ^1.82.0 version: 1.88.0 '@volar/vscode': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@vue/language-core': specifier: 2.0.14 version: link:../../packages/language-core @@ -72,8 +72,8 @@ importers: packages/component-meta: dependencies: '@volar/typescript': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@vue/language-core': specifier: 2.0.14 version: link:../language-core @@ -99,14 +99,14 @@ importers: packages/language-core: dependencies: '@volar/language-core': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@vue/compiler-dom': specifier: ^3.4.0 - version: 3.4.23 + version: 3.4.26 '@vue/shared': specifier: ^3.4.0 - version: 3.4.23 + version: 3.4.26 computeds: specifier: ^0.0.1 version: 0.0.1 @@ -134,13 +134,13 @@ importers: version: 1.0.2 '@vue/compiler-sfc': specifier: ^3.4.0 - version: 3.4.23 + version: 3.4.26 packages/language-plugin-pug: dependencies: '@volar/source-map': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 volar-service-pug: specifier: 0.0.40 version: 0.0.40 @@ -155,11 +155,11 @@ importers: packages/language-server: dependencies: '@volar/language-core': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@volar/language-server': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@vue/language-core': specifier: 2.0.14 version: link:../language-core @@ -176,23 +176,23 @@ importers: packages/language-service: dependencies: '@volar/language-core': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@volar/language-service': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@volar/typescript': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@vue/compiler-dom': specifier: ^3.4.0 - version: 3.4.23 + version: 3.4.26 '@vue/language-core': specifier: 2.0.14 version: link:../language-core '@vue/shared': specifier: ^3.4.0 - version: 3.4.23 + version: 3.4.26 '@vue/typescript-plugin': specifier: 2.0.14 version: link:../typescript-plugin @@ -204,28 +204,28 @@ importers: version: 1.0.1 volar-service-css: specifier: 0.0.40 - version: 0.0.40(@volar/language-service@2.2.0-alpha.10) + version: 0.0.40(@volar/language-service@2.2.0-alpha.12) volar-service-emmet: specifier: 0.0.40 - version: 0.0.40(@volar/language-service@2.2.0-alpha.10) + version: 0.0.40(@volar/language-service@2.2.0-alpha.12) volar-service-html: specifier: 0.0.40 - version: 0.0.40(@volar/language-service@2.2.0-alpha.10) + version: 0.0.40(@volar/language-service@2.2.0-alpha.12) volar-service-json: specifier: 0.0.40 - version: 0.0.40(@volar/language-service@2.2.0-alpha.10) + version: 0.0.40(@volar/language-service@2.2.0-alpha.12) volar-service-pug: specifier: 0.0.40 version: 0.0.40 volar-service-pug-beautify: specifier: 0.0.40 - version: 0.0.40(@volar/language-service@2.2.0-alpha.10) + version: 0.0.40(@volar/language-service@2.2.0-alpha.12) volar-service-typescript: specifier: 0.0.40 - version: 0.0.40(@volar/language-service@2.2.0-alpha.10) + version: 0.0.40(@volar/language-service@2.2.0-alpha.12) volar-service-typescript-twoslash-queries: specifier: 0.0.40 - version: 0.0.40(@volar/language-service@2.2.0-alpha.10) + version: 0.0.40(@volar/language-service@2.2.0-alpha.12) vscode-html-languageservice: specifier: npm:@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462 version: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' @@ -243,8 +243,8 @@ importers: specifier: latest version: 1.0.2 '@volar/kit': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10(typescript@5.4.5) + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12(typescript@5.4.5) vscode-languageserver-protocol: specifier: ^3.17.5 version: 3.17.5 @@ -252,8 +252,8 @@ importers: packages/tsc: dependencies: '@volar/typescript': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@vue/language-core': specifier: 2.0.14 version: link:../language-core @@ -271,14 +271,14 @@ importers: packages/typescript-plugin: dependencies: '@volar/typescript': - specifier: 2.2.0-alpha.10 - version: 2.2.0-alpha.10 + specifier: 2.2.0-alpha.12 + version: 2.2.0-alpha.12 '@vue/language-core': specifier: 2.0.14 version: link:../language-core '@vue/shared': specifier: ^3.4.0 - version: 3.4.23 + version: 3.4.26 devDependencies: '@types/node': specifier: latest @@ -288,7 +288,7 @@ importers: devDependencies: vue: specifier: ^3.4.0 - version: 3.4.23(typescript@5.4.5) + version: 3.4.26(typescript@5.4.5) vue-component-type-helpers: specifier: 2.0.14 version: link:../packages/component-type-helpers @@ -306,21 +306,21 @@ packages: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + '@babel/helper-validator-identifier@7.24.5': + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.2': - resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + '@babel/highlight@7.24.5': + resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.4': - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + '@babel/parser@7.24.5': + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/types@7.24.0': - resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + '@babel/types@7.24.5': + resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} '@clack/core@0.3.4': @@ -710,8 +710,8 @@ packages: resolution: {integrity: sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==} engines: {node: ^16.14.0 || >=18.0.0} - '@npmcli/installed-package-contents@2.0.2': - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + '@npmcli/installed-package-contents@2.1.0': + resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true @@ -719,8 +719,8 @@ packages: resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/package-json@5.0.3': - resolution: {integrity: sha512-cgsjCvld2wMqkUqvY+SZI+1ZJ7umGBYc9IAKfqJRKJCcs7hCQYxScUgdsyrRINk3VmdCYf9TXiLBHQ6ECTxhtg==} + '@npmcli/package-json@5.1.0': + resolution: {integrity: sha512-1aL4TuVrLS9sf8quCLerU3H9J4vtCtgu8VauYozrmEyU57i/EdKleCnsQ7vpnABIH6c9mnTxcH5sFkO3BlV8wQ==} engines: {node: ^16.14.0 || >=18.0.0} '@npmcli/promise-spawn@7.0.1': @@ -754,8 +754,8 @@ packages: '@octokit/openapi-types@20.0.0': resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - '@octokit/openapi-types@22.1.0': - resolution: {integrity: sha512-pGUdSP+eEPfZiQHNkZI0U01HLipxncisdJQB4G//OAmfeO8sqTQ9KRa0KF03TUPCziNsoXUrTg4B2Q1EX++T0Q==} + '@octokit/openapi-types@22.2.0': + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} '@octokit/plugin-enterprise-rest@6.0.1': resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} @@ -793,90 +793,90 @@ packages: '@octokit/types@12.6.0': resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - '@octokit/types@13.4.1': - resolution: {integrity: sha512-Y73oOAzRBAUzR/iRAbGULzpNkX8vaxKCqEtg6K74Ff3w9f5apFnWtE/2nade7dMWWW3bS5Kkd6DJS4HF04xreg==} + '@octokit/types@13.5.0': + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rollup/rollup-android-arm-eabi@4.16.1': - resolution: {integrity: sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==} + '@rollup/rollup-android-arm-eabi@4.17.1': + resolution: {integrity: sha512-P6Wg856Ou/DLpR+O0ZLneNmrv7QpqBg+hK4wE05ijbC/t349BRfMfx+UFj5Ha3fCFopIa6iSZlpdaB4agkWp2Q==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.16.1': - resolution: {integrity: sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==} + '@rollup/rollup-android-arm64@4.17.1': + resolution: {integrity: sha512-piwZDjuW2WiHr05djVdUkrG5JbjnGbtx8BXQchYCMfib/nhjzWoiScelZ+s5IJI7lecrwSxHCzW026MWBL+oJQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.16.1': - resolution: {integrity: sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==} + '@rollup/rollup-darwin-arm64@4.17.1': + resolution: {integrity: sha512-LsZXXIsN5Q460cKDT4Y+bzoPDhBmO5DTr7wP80d+2EnYlxSgkwdPfE3hbE+Fk8dtya+8092N9srjBTJ0di8RIA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.16.1': - resolution: {integrity: sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==} + '@rollup/rollup-darwin-x64@4.17.1': + resolution: {integrity: sha512-S7TYNQpWXB9APkxu/SLmYHezWwCoZRA9QLgrDeml+SR2A1LLPD2DBUdUlvmCF7FUpRMKvbeeWky+iizQj65Etw==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.16.1': - resolution: {integrity: sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==} + '@rollup/rollup-linux-arm-gnueabihf@4.17.1': + resolution: {integrity: sha512-Lq2JR5a5jsA5um2ZoLiXXEaOagnVyCpCW7xvlcqHC7y46tLwTEgUSTM3a2TfmmTMmdqv+jknUioWXlmxYxE9Yw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.16.1': - resolution: {integrity: sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==} + '@rollup/rollup-linux-arm-musleabihf@4.17.1': + resolution: {integrity: sha512-9BfzwyPNV0IizQoR+5HTNBGkh1KXE8BqU0DBkqMngmyFW7BfuIZyMjQ0s6igJEiPSBvT3ZcnIFohZ19OqjhDPg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.16.1': - resolution: {integrity: sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==} + '@rollup/rollup-linux-arm64-gnu@4.17.1': + resolution: {integrity: sha512-e2uWaoxo/rtzA52OifrTSXTvJhAXb0XeRkz4CdHBK2KtxrFmuU/uNd544Ogkpu938BzEfvmWs8NZ8Axhw33FDw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.16.1': - resolution: {integrity: sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==} + '@rollup/rollup-linux-arm64-musl@4.17.1': + resolution: {integrity: sha512-ekggix/Bc/d/60H1Mi4YeYb/7dbal1kEDZ6sIFVAE8pUSx7PiWeEh+NWbL7bGu0X68BBIkgF3ibRJe1oFTksQQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.16.1': - resolution: {integrity: sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.17.1': + resolution: {integrity: sha512-UGV0dUo/xCv4pkr/C8KY7XLFwBNnvladt8q+VmdKrw/3RUd3rD0TptwjisvE2TTnnlENtuY4/PZuoOYRiGp8Gw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.16.1': - resolution: {integrity: sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==} + '@rollup/rollup-linux-riscv64-gnu@4.17.1': + resolution: {integrity: sha512-gEYmYYHaehdvX46mwXrU49vD6Euf1Bxhq9pPb82cbUU9UT2NV+RSckQ5tKWOnNXZixKsy8/cPGtiUWqzPuAcXQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.16.1': - resolution: {integrity: sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==} + '@rollup/rollup-linux-s390x-gnu@4.17.1': + resolution: {integrity: sha512-xeae5pMAxHFp6yX5vajInG2toST5lsCTrckSRUFwNgzYqnUjNBcQyqk1bXUxX5yhjWFl2Mnz3F8vQjl+2FRIcw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.16.1': - resolution: {integrity: sha512-N2ZizKhUryqqrMfdCnjhJhZRgv61C6gK+hwVtCIKC8ts8J+go+vqENnGexwg21nHIOvLN5mBM8a7DI2vlyIOPg==} + '@rollup/rollup-linux-x64-gnu@4.17.1': + resolution: {integrity: sha512-AsdnINQoDWfKpBzCPqQWxSPdAWzSgnYbrJYtn6W0H2E9It5bZss99PiLA8CgmDRfvKygt20UpZ3xkhFlIfX9zQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.16.1': - resolution: {integrity: sha512-5ICeMxqg66FrOA2AbnBQ2TJVxfvZsKLxmof0ibvPLaYtbsJqnTUtJOofgWb46Gjd4uZcA4rdsp4JCxegzQPqCg==} + '@rollup/rollup-linux-x64-musl@4.17.1': + resolution: {integrity: sha512-KoB4fyKXTR+wYENkIG3fFF+5G6N4GFvzYx8Jax8BR4vmddtuqSb5oQmYu2Uu067vT/Fod7gxeQYKupm8gAcMSQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.16.1': - resolution: {integrity: sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==} + '@rollup/rollup-win32-arm64-msvc@4.17.1': + resolution: {integrity: sha512-J0d3NVNf7wBL9t4blCNat+d0PYqAx8wOoY+/9Q5cujnafbX7BmtYk3XvzkqLmFECaWvXGLuHmKj/wrILUinmQg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.16.1': - resolution: {integrity: sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==} + '@rollup/rollup-win32-ia32-msvc@4.17.1': + resolution: {integrity: sha512-xjgkWUwlq7IbgJSIxvl516FJ2iuC/7ttjsAxSPpC9kkI5iQQFHKyEN5BjbhvJ/IXIZ3yIBcW5QDlWAyrA+TFag==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.16.1': - resolution: {integrity: sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==} + '@rollup/rollup-win32-x64-msvc@4.17.1': + resolution: {integrity: sha512-0QbCkfk6cnnVKWqqlC0cUrrUMDMfu5ffvYMTUHf+qMN2uAb3MKP31LPcwiMXBNsvoFGs/kYdFOsuLmvppCopXA==} cpu: [x64] os: [win32] @@ -955,51 +955,51 @@ packages: '@types/vscode@1.88.0': resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} - '@vitest/expect@1.5.0': - resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} + '@vitest/expect@1.5.2': + resolution: {integrity: sha512-rf7MTD1WCoDlN3FfYJ9Llfp0PbdtOMZ3FIF0AVkDnKbp3oiMW1c8AmvRZBcqbAhDUAvF52e9zx4WQM1r3oraVA==} - '@vitest/runner@1.5.0': - resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} + '@vitest/runner@1.5.2': + resolution: {integrity: sha512-7IJ7sJhMZrqx7HIEpv3WrMYcq8ZNz9L6alo81Y6f8hV5mIE6yVZsFoivLZmr0D777klm1ReqonE9LyChdcmw6g==} - '@vitest/snapshot@1.5.0': - resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} + '@vitest/snapshot@1.5.2': + resolution: {integrity: sha512-CTEp/lTYos8fuCc9+Z55Ga5NVPKUgExritjF5VY7heRFUfheoAqBneUlvXSUJHUZPjnPmyZA96yLRJDP1QATFQ==} - '@vitest/spy@1.5.0': - resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} + '@vitest/spy@1.5.2': + resolution: {integrity: sha512-xCcPvI8JpCtgikT9nLpHPL1/81AYqZy1GCy4+MCHBE7xi8jgsYkULpW5hrx5PGLgOQjUpb6fd15lqcriJ40tfQ==} - '@vitest/utils@1.5.0': - resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} + '@vitest/utils@1.5.2': + resolution: {integrity: sha512-sWOmyofuXLJ85VvXNsroZur7mOJGiQeM0JN3/0D1uU8U9bGFM69X1iqHaRXl6R8BwaLY6yPCogP257zxTzkUdA==} - '@volar/kit@2.2.0-alpha.10': - resolution: {integrity: sha512-BzH8+ferzp05gyBvnZKr+ZlG2fCGEU5m3ZFx4JJ0ZqtXU6BM5V/sQR/VheWHYAjmSLdW3GaM8azfgP//EpmKXA==} + '@volar/kit@2.2.0-alpha.12': + resolution: {integrity: sha512-JUFbxfwV7AUxzI6rYnQO3a1OcJqsSzP2BDFBqNYtVlIQHpb9JnuGh2Kr4O9LkCyFTBXLR9EkWEtrfZ0Isnxykw==} peerDependencies: typescript: '*' - '@volar/language-core@2.2.0-alpha.10': - resolution: {integrity: sha512-njVJLtpu0zMvDaEk7K5q4BRpOgbyEUljU++un9TfJoJNhxG0z/hWwpwgTRImO42EKvwIxF3XUzeMk+qatAFy7Q==} + '@volar/language-core@2.2.0-alpha.12': + resolution: {integrity: sha512-zgWof8q02kADyb4lalVzoqnvTs/wJRDul5qHl0VC2ZVXwes6j2ZYumjXqAW+8W1CQp8lfJkEn9Z6a5jvU6S7Jw==} - '@volar/language-server@2.2.0-alpha.10': - resolution: {integrity: sha512-PpmgXRvgTN0R5539X5XjBY3zYt/NCoz/LPLw2dFcL8O1lBssYufVPAtSov8mogJLx0PejQFIWLBbdDpCKJT6qw==} + '@volar/language-server@2.2.0-alpha.12': + resolution: {integrity: sha512-M/Dom1Y/Q/WaGqfAuW0wenftsXIxlarnwqWwoe5Lh9jr14j5rWie6ti8tnoM9Iwyu2LG3PwtUjwf23tW69Xqqw==} - '@volar/language-service@2.2.0-alpha.10': - resolution: {integrity: sha512-gnAEPGGfjl/DFFJGzAKV6kZ/GrG3qrVhn95eLtC1rB832ehQNwcq20rAk2F9I05yhves0VjstfDL2/2RrTNp5g==} + '@volar/language-service@2.2.0-alpha.12': + resolution: {integrity: sha512-fTiSNKhW13+57Lvgn8CfLccTA/AdK3yg1RSYHt6NymM1bzGquk1Z7eBW3a2exYawGtBZwmAWUlDYByI9wIVgEg==} - '@volar/snapshot-document@2.2.0-alpha.10': - resolution: {integrity: sha512-d5rK7cfRdDTJ6JA/+Oc99rV0yRCSE1j9mFn4SqDduzGwKVQFR4gmjLPNKeT8iRI17PjmUZCUMdH0PM1u89G9fA==} + '@volar/snapshot-document@2.2.0-alpha.12': + resolution: {integrity: sha512-nVSbnAUkn5khLB7Z/9L6qE/YKG6GH5cVgNaAT4Hns2LObrqUnip3Eaf2pASNq1npxQ8wIInc7hZwanT+alacWQ==} - '@volar/source-map@2.2.0-alpha.10': - resolution: {integrity: sha512-nrdWApVkP5cksAnDEyy1JD9rKdwOJsEq1B+seWO4vNXmZNcxQQCx4DULLBvKt7AzRUAQiAuw5aQkb9RBaSqdVA==} + '@volar/source-map@2.2.0-alpha.12': + resolution: {integrity: sha512-d7vDWBE3Ijenff+f1GbWWvdXK4i0wsWsDnfry7G0Jwhbs2/q+NoQya27ZEc3Is0E5m7sOmgUOvRnLGLKEmWFBg==} '@volar/tsl-config@0.0.0-20240315.2': resolution: {integrity: sha512-bv57xhmegLkfjW0/FZL/sberfmUch7yLAkXlRXj5KxHPYCjIU4T1ciPuLWrtVzCa+o0q7ykQ6aR+Q/z7MSMf6w==} peerDependencies: tsl: '*' - '@volar/typescript@2.2.0-alpha.10': - resolution: {integrity: sha512-GCa0vTVVdA9ULUsu2Rx7jwsIuyZQPvPVT9o3NrANTbYv+523Ao1gv3glC5vzNSDPM6bUl37r94HbCj7KINQr+g==} + '@volar/typescript@2.2.0-alpha.12': + resolution: {integrity: sha512-Ie4/Pj7NcIZWss+kteREZUYRU0jjiAmWCNoUJ7ViYQsYCrtiLMgPthha09V9zAyhk1rUGErF7/TLtAAX1VuflA==} - '@volar/vscode@2.2.0-alpha.10': - resolution: {integrity: sha512-ws4GrTJira5QV3KTgF36cs+FLTrf1JbIWW2nHuO8ZeZ1av7ghG8aSYsJ+FpuRtt7sAxj654P2PrjDqUMFvFZsQ==} + '@volar/vscode@2.2.0-alpha.12': + resolution: {integrity: sha512-VJP+Gl0E0fn3okomuNRPUi9G6temXGnUHoD4EHSg/+izYH3s9J2pDtHtvE+zbKG18xWbJT9uSuhzJombV33T4g==} '@vscode/emmet-helper@2.9.3': resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} @@ -1010,37 +1010,37 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - '@vue/compiler-core@3.4.23': - resolution: {integrity: sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==} + '@vue/compiler-core@3.4.26': + resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==} - '@vue/compiler-dom@3.4.23': - resolution: {integrity: sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==} + '@vue/compiler-dom@3.4.26': + resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==} '@vue/compiler-sfc@2.7.16': resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} - '@vue/compiler-sfc@3.4.23': - resolution: {integrity: sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==} + '@vue/compiler-sfc@3.4.26': + resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==} - '@vue/compiler-ssr@3.4.23': - resolution: {integrity: sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==} + '@vue/compiler-ssr@3.4.26': + resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==} - '@vue/reactivity@3.4.23': - resolution: {integrity: sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==} + '@vue/reactivity@3.4.26': + resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==} - '@vue/runtime-core@3.4.23': - resolution: {integrity: sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==} + '@vue/runtime-core@3.4.26': + resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==} - '@vue/runtime-dom@3.4.23': - resolution: {integrity: sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==} + '@vue/runtime-dom@3.4.26': + resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==} - '@vue/server-renderer@3.4.23': - resolution: {integrity: sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==} + '@vue/server-renderer@3.4.26': + resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==} peerDependencies: - vue: 3.4.23 + vue: 3.4.26 - '@vue/shared@3.4.23': - resolution: {integrity: sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==} + '@vue/shared@3.4.26': + resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -1821,8 +1821,8 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inquirer@9.2.19: - resolution: {integrity: sha512-WpxOT71HGsFya6/mj5PUue0sWwbpbiPfAR+332zLj/siB0QA1PZM8v3GepegFV1Op189UxHUCF6y8AySdtOMVA==} + inquirer@9.2.20: + resolution: {integrity: sha512-SFwJJPS+Ms75NV+wzFBHjirG4z3tzvis31h+9NyH1tqjIu2c7vCavlXILZ73q/nPYy8/aw4W+DNzLH5MjfYXiA==} engines: {node: '>=18'} ip-address@9.0.5: @@ -1983,12 +1983,12 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - libnpmaccess@8.0.3: - resolution: {integrity: sha512-0dU2ZZ8eWrI3JcPIEA5wnQ5s+OGeNtjrg0MHz1vcs06hRLDhZeXBWthuXG47jV1GO5ogClQi7RAFNAWVEjViWw==} + libnpmaccess@8.0.4: + resolution: {integrity: sha512-Q5REi1IhNAWk2vMc1x0bgltJkjC6t+bxjDpvQqfdFDzc9rl/ZwW5zgyVvt0ZrGCBqYbDnUeKopwFwxxIgAKYww==} engines: {node: ^16.14.0 || >=18.0.0} - libnpmpublish@9.0.5: - resolution: {integrity: sha512-MSKHZN2NXmp8GafDMy2eH/FK6c0BjpCbuJ4vJU4xPqCguy0w805VoRnsCwxyrvzCC13MB2tU6VOAX08GioINBA==} + libnpmpublish@9.0.6: + resolution: {integrity: sha512-FoNMQGgGzFBKIrztFTlup26zAh3bUff8ZfOYkUrgNK+f08jG9TbCqDPgXOezKy0X0ZL42BldChBgf4HtmK7hsw==} engines: {node: ^16.14.0 || >=18.0.0} lines-and-columns@1.2.4: @@ -2027,8 +2027,8 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} lru-cache@6.0.0: @@ -2181,8 +2181,8 @@ packages: resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-abi@3.60.0: - resolution: {integrity: sha512-zcGgwoXbzw9NczqbGzAWL/ToDYAxv1V8gL1D67ClbdkIfeeDBbY0GelZtC25ayLvVjr2q2cloHeQV1R0QAWqRQ==} + node-abi@3.62.0: + resolution: {integrity: sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==} engines: {node: '>=10'} node-addon-api@4.3.0: @@ -2509,8 +2509,8 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} read-package-json-fast@3.0.2: resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} @@ -2575,8 +2575,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup@4.16.1: - resolution: {integrity: sha512-5CaD3MPDlPKfhqzRvWXK96G6ELJfPZNb3LHiZxTHgDdC6jvwfGz2E8nY+9g1ONk4ttHsK1WaFP19Js4PSr1E3g==} + rollup@4.17.1: + resolution: {integrity: sha512-0gG94inrUtg25sB2V/pApwiv1lUb0bQ25FPNuzO89Baa+B+c0ccaaBKM5zkZV/12pUUdH+lWCSm9wmHqyocuVQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2850,8 +2850,8 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.15.0: - resolution: {integrity: sha512-tB9lu0pQpX5KJq54g+oHOLumOx+pMep4RaM6liXh2PKmVRFF+/vAtUP0ZaJ0kOySfVNjF6doBWPHhBhISKdlIA==} + type-fest@4.18.0: + resolution: {integrity: sha512-+dbmiyliDY/2TTcjCS7NpI9yV2iEFlUDk5TKnsbkN7ZoRu5s7bT+zvYtNFhFXC2oLwURGT2frACAZvbbyNBI+w==} engines: {node: '>=16'} typed-rest-client@1.8.11: @@ -2924,8 +2924,8 @@ packages: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - vite-node@1.5.0: - resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} + vite-node@1.5.2: + resolution: {integrity: sha512-Y8p91kz9zU+bWtF7HGt6DVw2JbhyuB2RlZix3FPYAYmUyZ3n7iTp8eSyLyY6sxtPegvxQtmlTMhfPhUfCUF93A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -2957,15 +2957,15 @@ packages: terser: optional: true - vitest@1.5.0: - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} + vitest@1.5.2: + resolution: {integrity: sha512-l9gwIkq16ug3xY7BxHwcBQovLZG75zZL0PlsiYQbf76Rz6QGs54416UWMtC0jXeihvHvcHrf2ROEjkQRVpoZYw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.0 - '@vitest/ui': 1.5.0 + '@vitest/browser': 1.5.2 + '@vitest/ui': 1.5.2 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -3047,11 +3047,11 @@ packages: deprecated: vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead. hasBin: true - vscode-css-languageservice@6.2.13: - resolution: {integrity: sha512-2rKWXfH++Kxd9Z4QuEgd1IF7WmblWWU7DScuyf1YumoGLkY9DW6wF/OTlhOyO2rN63sWHX2dehIpKBbho4ZwvA==} + vscode-css-languageservice@6.2.14: + resolution: {integrity: sha512-5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==} - vscode-json-languageservice@5.3.10: - resolution: {integrity: sha512-KlbUYaer3DAnsVyRtgg/MhXOu4TTwY8TjaZYRY7Mt80zSpmvbmd58YT4Wq2ZiqHzdioD6lAvRSxhSCL0DvVY8Q==} + vscode-json-languageservice@5.3.11: + resolution: {integrity: sha512-WYS72Ymria3dn8ZbjtBbt5K71m05wY1Q6hpXV5JxUT0q75Ts0ljLmnZJAVpx8DjPgYbFD+Z8KHpWh2laKLUCtQ==} vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} @@ -3090,8 +3090,8 @@ packages: resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. - vue@3.4.23: - resolution: {integrity: sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==} + vue@3.4.26: + resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3193,28 +3193,28 @@ snapshots: '@babel/code-frame@7.24.2': dependencies: - '@babel/highlight': 7.24.2 + '@babel/highlight': 7.24.5 picocolors: 1.0.0 '@babel/helper-string-parser@7.24.1': {} - '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-validator-identifier@7.24.5': {} - '@babel/highlight@7.24.2': + '@babel/highlight@7.24.5': dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.5 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 - '@babel/parser@7.24.4': + '@babel/parser@7.24.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 - '@babel/types@7.24.0': + '@babel/types@7.24.5': dependencies: '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 '@clack/core@0.3.4': @@ -3435,7 +3435,7 @@ snapshots: fs-extra: 11.2.0 glob-parent: 6.0.2 globby: 14.0.1 - inquirer: 9.2.19 + inquirer: 9.2.20 is-ci: 3.0.1 json5: 2.2.3 load-json-file: 7.0.1 @@ -3480,8 +3480,8 @@ snapshots: fs-extra: 11.2.0 glob: 10.3.12 has-unicode: 2.0.1 - libnpmaccess: 8.0.3 - libnpmpublish: 9.0.5 + libnpmaccess: 8.0.4 + libnpmpublish: 9.0.6 normalize-path: 3.0.0 npm-package-arg: 11.0.2 npm-packlist: 5.1.3 @@ -3572,7 +3572,7 @@ snapshots: agent-base: 7.1.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 - lru-cache: 10.2.0 + lru-cache: 10.2.2 socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color @@ -3584,7 +3584,7 @@ snapshots: '@npmcli/git@5.0.6': dependencies: '@npmcli/promise-spawn': 7.0.1 - lru-cache: 10.2.0 + lru-cache: 10.2.2 npm-pick-manifest: 9.0.0 proc-log: 4.2.0 promise-inflight: 1.0.1 @@ -3594,14 +3594,14 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/installed-package-contents@2.0.2': + '@npmcli/installed-package-contents@2.1.0': dependencies: npm-bundled: 3.0.0 npm-normalize-package-bin: 3.0.1 '@npmcli/node-gyp@3.0.0': {} - '@npmcli/package-json@5.0.3': + '@npmcli/package-json@5.1.0': dependencies: '@npmcli/git': 5.0.6 glob: 10.3.12 @@ -3622,7 +3622,7 @@ snapshots: '@npmcli/run-script@7.0.4': dependencies: '@npmcli/node-gyp': 3.0.0 - '@npmcli/package-json': 5.0.3 + '@npmcli/package-json': 5.1.0 '@npmcli/promise-spawn': 7.0.1 node-gyp: 10.1.0 which: 4.0.0 @@ -3638,24 +3638,24 @@ snapshots: '@octokit/graphql': 7.1.0 '@octokit/request': 8.4.0 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 '@octokit/endpoint@9.0.5': dependencies: - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 universal-user-agent: 6.0.1 '@octokit/graphql@7.1.0': dependencies: '@octokit/request': 8.4.0 - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 universal-user-agent: 6.0.1 '@octokit/openapi-types@20.0.0': {} - '@octokit/openapi-types@22.1.0': {} + '@octokit/openapi-types@22.2.0': {} '@octokit/plugin-enterprise-rest@6.0.1': {} @@ -3675,7 +3675,7 @@ snapshots: '@octokit/request-error@5.1.0': dependencies: - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 deprecation: 2.3.1 once: 1.4.0 @@ -3683,7 +3683,7 @@ snapshots: dependencies: '@octokit/endpoint': 9.0.5 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.4.1 + '@octokit/types': 13.5.0 universal-user-agent: 6.0.1 '@octokit/rest@20.1.0': @@ -3697,59 +3697,59 @@ snapshots: dependencies: '@octokit/openapi-types': 20.0.0 - '@octokit/types@13.4.1': + '@octokit/types@13.5.0': dependencies: - '@octokit/openapi-types': 22.1.0 + '@octokit/openapi-types': 22.2.0 '@pkgjs/parseargs@0.11.0': optional: true - '@rollup/rollup-android-arm-eabi@4.16.1': + '@rollup/rollup-android-arm-eabi@4.17.1': optional: true - '@rollup/rollup-android-arm64@4.16.1': + '@rollup/rollup-android-arm64@4.17.1': optional: true - '@rollup/rollup-darwin-arm64@4.16.1': + '@rollup/rollup-darwin-arm64@4.17.1': optional: true - '@rollup/rollup-darwin-x64@4.16.1': + '@rollup/rollup-darwin-x64@4.17.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.16.1': + '@rollup/rollup-linux-arm-gnueabihf@4.17.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.16.1': + '@rollup/rollup-linux-arm-musleabihf@4.17.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.16.1': + '@rollup/rollup-linux-arm64-gnu@4.17.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.16.1': + '@rollup/rollup-linux-arm64-musl@4.17.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.16.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.17.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.16.1': + '@rollup/rollup-linux-riscv64-gnu@4.17.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.16.1': + '@rollup/rollup-linux-s390x-gnu@4.17.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.16.1': + '@rollup/rollup-linux-x64-gnu@4.17.1': optional: true - '@rollup/rollup-linux-x64-musl@4.16.1': + '@rollup/rollup-linux-x64-musl@4.17.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.16.1': + '@rollup/rollup-win32-arm64-msvc@4.17.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.16.1': + '@rollup/rollup-win32-ia32-msvc@4.17.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.16.1': + '@rollup/rollup-win32-x64-msvc@4.17.1': optional: true '@sec-ant/readable-stream@0.4.1': {} @@ -3828,54 +3828,54 @@ snapshots: '@types/vscode@1.88.0': {} - '@vitest/expect@1.5.0': + '@vitest/expect@1.5.2': dependencies: - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 + '@vitest/spy': 1.5.2 + '@vitest/utils': 1.5.2 chai: 4.4.1 - '@vitest/runner@1.5.0': + '@vitest/runner@1.5.2': dependencies: - '@vitest/utils': 1.5.0 + '@vitest/utils': 1.5.2 p-limit: 5.0.0 pathe: 1.1.2 - '@vitest/snapshot@1.5.0': + '@vitest/snapshot@1.5.2': dependencies: magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 - '@vitest/spy@1.5.0': + '@vitest/spy@1.5.2': dependencies: tinyspy: 2.2.1 - '@vitest/utils@1.5.0': + '@vitest/utils@1.5.2': dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 - '@volar/kit@2.2.0-alpha.10(typescript@5.4.5)': + '@volar/kit@2.2.0-alpha.12(typescript@5.4.5)': dependencies: - '@volar/language-service': 2.2.0-alpha.10 - '@volar/typescript': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 + '@volar/typescript': 2.2.0-alpha.12 typesafe-path: 0.2.2 typescript: 5.4.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-core@2.2.0-alpha.10': + '@volar/language-core@2.2.0-alpha.12': dependencies: - '@volar/source-map': 2.2.0-alpha.10 + '@volar/source-map': 2.2.0-alpha.12 - '@volar/language-server@2.2.0-alpha.10': + '@volar/language-server@2.2.0-alpha.12': dependencies: - '@volar/language-core': 2.2.0-alpha.10 - '@volar/language-service': 2.2.0-alpha.10 - '@volar/snapshot-document': 2.2.0-alpha.10 - '@volar/typescript': 2.2.0-alpha.10 + '@volar/language-core': 2.2.0-alpha.12 + '@volar/language-service': 2.2.0-alpha.12 + '@volar/snapshot-document': 2.2.0-alpha.12 + '@volar/typescript': 2.2.0-alpha.12 '@vscode/l10n': 0.0.16 path-browserify: 1.0.1 request-light: 0.7.0 @@ -3884,19 +3884,19 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-service@2.2.0-alpha.10': + '@volar/language-service@2.2.0-alpha.12': dependencies: - '@volar/language-core': 2.2.0-alpha.10 + '@volar/language-core': 2.2.0-alpha.12 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/snapshot-document@2.2.0-alpha.10': + '@volar/snapshot-document@2.2.0-alpha.12': dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - '@volar/source-map@2.2.0-alpha.10': + '@volar/source-map@2.2.0-alpha.12': dependencies: muggle-string: 0.4.1 @@ -3904,14 +3904,14 @@ snapshots: dependencies: tsl: 0.0.10(typescript@5.4.5) - '@volar/typescript@2.2.0-alpha.10': + '@volar/typescript@2.2.0-alpha.12': dependencies: - '@volar/language-core': 2.2.0-alpha.10 + '@volar/language-core': 2.2.0-alpha.12 path-browserify: 1.0.1 - '@volar/vscode@2.2.0-alpha.10': + '@volar/vscode@2.2.0-alpha.12': dependencies: - '@volar/language-server': 2.2.0-alpha.10 + '@volar/language-server': 2.2.0-alpha.12 path-browserify: 1.0.1 vscode-languageclient: 9.0.1 vscode-nls: 5.2.0 @@ -3928,66 +3928,66 @@ snapshots: '@vscode/l10n@0.0.18': {} - '@vue/compiler-core@3.4.23': + '@vue/compiler-core@3.4.26': dependencies: - '@babel/parser': 7.24.4 - '@vue/shared': 3.4.23 + '@babel/parser': 7.24.5 + '@vue/shared': 3.4.26 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.23': + '@vue/compiler-dom@3.4.26': dependencies: - '@vue/compiler-core': 3.4.23 - '@vue/shared': 3.4.23 + '@vue/compiler-core': 3.4.26 + '@vue/shared': 3.4.26 '@vue/compiler-sfc@2.7.16': dependencies: - '@babel/parser': 7.24.4 + '@babel/parser': 7.24.5 postcss: 8.4.38 source-map: 0.6.1 optionalDependencies: prettier: 2.8.8 - '@vue/compiler-sfc@3.4.23': + '@vue/compiler-sfc@3.4.26': dependencies: - '@babel/parser': 7.24.4 - '@vue/compiler-core': 3.4.23 - '@vue/compiler-dom': 3.4.23 - '@vue/compiler-ssr': 3.4.23 - '@vue/shared': 3.4.23 + '@babel/parser': 7.24.5 + '@vue/compiler-core': 3.4.26 + '@vue/compiler-dom': 3.4.26 + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 estree-walker: 2.0.2 magic-string: 0.30.10 postcss: 8.4.38 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.23': + '@vue/compiler-ssr@3.4.26': dependencies: - '@vue/compiler-dom': 3.4.23 - '@vue/shared': 3.4.23 + '@vue/compiler-dom': 3.4.26 + '@vue/shared': 3.4.26 - '@vue/reactivity@3.4.23': + '@vue/reactivity@3.4.26': dependencies: - '@vue/shared': 3.4.23 + '@vue/shared': 3.4.26 - '@vue/runtime-core@3.4.23': + '@vue/runtime-core@3.4.26': dependencies: - '@vue/reactivity': 3.4.23 - '@vue/shared': 3.4.23 + '@vue/reactivity': 3.4.26 + '@vue/shared': 3.4.26 - '@vue/runtime-dom@3.4.23': + '@vue/runtime-dom@3.4.26': dependencies: - '@vue/runtime-core': 3.4.23 - '@vue/shared': 3.4.23 + '@vue/runtime-core': 3.4.26 + '@vue/shared': 3.4.26 csstype: 3.1.3 - '@vue/server-renderer@3.4.23(vue@3.4.23(typescript@5.4.5))': + '@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5))': dependencies: - '@vue/compiler-ssr': 3.4.23 - '@vue/shared': 3.4.23 - vue: 3.4.23(typescript@5.4.5) + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 + vue: 3.4.26(typescript@5.4.5) - '@vue/shared@3.4.23': {} + '@vue/shared@3.4.26': {} JSONStream@1.3.5: dependencies: @@ -4108,7 +4108,7 @@ snapshots: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 glob: 10.3.12 - lru-cache: 10.2.0 + lru-cache: 10.2.2 minipass: 7.0.4 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -4773,7 +4773,7 @@ snapshots: hosted-git-info@7.0.1: dependencies: - lru-cache: 10.2.0 + lru-cache: 10.2.2 htmlparser2@8.0.2: dependencies: @@ -4846,7 +4846,7 @@ snapshots: ini@1.3.8: {} - inquirer@9.2.19: + inquirer@9.2.20: dependencies: '@inquirer/figures': 1.0.1 '@ljharb/through': 2.3.13 @@ -4988,20 +4988,20 @@ snapshots: leven@3.1.0: {} - libnpmaccess@8.0.3: + libnpmaccess@8.0.4: dependencies: npm-package-arg: 11.0.2 npm-registry-fetch: 16.2.1 transitivePeerDependencies: - supports-color - libnpmpublish@9.0.5: + libnpmpublish@9.0.6: dependencies: ci-info: 4.0.0 normalize-package-data: 6.0.0 npm-package-arg: 11.0.2 npm-registry-fetch: 16.2.1 - proc-log: 3.0.0 + proc-log: 4.2.0 semver: 7.6.0 sigstore: 2.3.0 ssri: 10.0.5 @@ -5042,7 +5042,7 @@ snapshots: dependencies: get-func-name: 2.0.2 - lru-cache@10.2.0: {} + lru-cache@10.2.2: {} lru-cache@6.0.0: dependencies: @@ -5188,7 +5188,7 @@ snapshots: dependencies: type-fest: 2.19.0 - node-abi@3.60.0: + node-abi@3.62.0: dependencies: semver: 7.6.0 @@ -5377,7 +5377,7 @@ snapshots: pacote@17.0.7: dependencies: '@npmcli/git': 5.0.6 - '@npmcli/installed-package-contents': 2.0.2 + '@npmcli/installed-package-contents': 2.1.0 '@npmcli/promise-spawn': 7.0.1 '@npmcli/run-script': 7.0.4 cacache: 18.0.2 @@ -5421,7 +5421,7 @@ snapshots: dependencies: '@babel/code-frame': 7.24.2 index-to-position: 0.1.2 - type-fest: 4.15.0 + type-fest: 4.18.0 parse-path@7.0.0: dependencies: @@ -5458,7 +5458,7 @@ snapshots: path-scurry@1.10.2: dependencies: - lru-cache: 10.2.0 + lru-cache: 10.2.2 minipass: 7.0.4 path-type@4.0.0: {} @@ -5501,7 +5501,7 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.60.0 + node-abi: 3.62.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -5515,7 +5515,7 @@ snapshots: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 18.2.0 + react-is: 18.3.1 proc-log@3.0.0: {} @@ -5563,7 +5563,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-is@18.2.0: {} + react-is@18.3.1: {} read-package-json-fast@3.0.2: dependencies: @@ -5581,21 +5581,21 @@ snapshots: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 - type-fest: 4.15.0 + type-fest: 4.18.0 read-pkg@8.1.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 7.1.1 - type-fest: 4.15.0 + type-fest: 4.18.0 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 8.1.0 - type-fest: 4.15.0 + type-fest: 4.18.0 unicorn-magic: 0.1.0 read@1.0.7: @@ -5633,26 +5633,26 @@ snapshots: reusify@1.0.4: {} - rollup@4.16.1: + rollup@4.17.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.16.1 - '@rollup/rollup-android-arm64': 4.16.1 - '@rollup/rollup-darwin-arm64': 4.16.1 - '@rollup/rollup-darwin-x64': 4.16.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.16.1 - '@rollup/rollup-linux-arm-musleabihf': 4.16.1 - '@rollup/rollup-linux-arm64-gnu': 4.16.1 - '@rollup/rollup-linux-arm64-musl': 4.16.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.16.1 - '@rollup/rollup-linux-riscv64-gnu': 4.16.1 - '@rollup/rollup-linux-s390x-gnu': 4.16.1 - '@rollup/rollup-linux-x64-gnu': 4.16.1 - '@rollup/rollup-linux-x64-musl': 4.16.1 - '@rollup/rollup-win32-arm64-msvc': 4.16.1 - '@rollup/rollup-win32-ia32-msvc': 4.16.1 - '@rollup/rollup-win32-x64-msvc': 4.16.1 + '@rollup/rollup-android-arm-eabi': 4.17.1 + '@rollup/rollup-android-arm64': 4.17.1 + '@rollup/rollup-darwin-arm64': 4.17.1 + '@rollup/rollup-darwin-x64': 4.17.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.17.1 + '@rollup/rollup-linux-arm-musleabihf': 4.17.1 + '@rollup/rollup-linux-arm64-gnu': 4.17.1 + '@rollup/rollup-linux-arm64-musl': 4.17.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.17.1 + '@rollup/rollup-linux-riscv64-gnu': 4.17.1 + '@rollup/rollup-linux-s390x-gnu': 4.17.1 + '@rollup/rollup-linux-x64-gnu': 4.17.1 + '@rollup/rollup-linux-x64-musl': 4.17.1 + '@rollup/rollup-win32-arm64-msvc': 4.17.1 + '@rollup/rollup-win32-ia32-msvc': 4.17.1 + '@rollup/rollup-win32-x64-msvc': 4.17.1 fsevents: 2.3.3 run-async@3.0.0: {} @@ -5920,7 +5920,7 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.15.0: {} + type-fest@4.18.0: {} typed-rest-client@1.8.11: dependencies: @@ -5980,7 +5980,7 @@ snapshots: dependencies: builtins: 5.1.0 - vite-node@1.5.0(@types/node@20.12.7): + vite-node@1.5.2(@types/node@20.12.7): dependencies: cac: 6.7.14 debug: 4.3.4 @@ -6001,18 +6001,18 @@ snapshots: dependencies: esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.16.1 + rollup: 4.17.1 optionalDependencies: '@types/node': 20.12.7 fsevents: 2.3.3 - vitest@1.5.0(@types/node@20.12.7): + vitest@1.5.2(@types/node@20.12.7): dependencies: - '@vitest/expect': 1.5.0 - '@vitest/runner': 1.5.0 - '@vitest/snapshot': 1.5.0 - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 + '@vitest/expect': 1.5.2 + '@vitest/runner': 1.5.2 + '@vitest/snapshot': 1.5.2 + '@vitest/spy': 1.5.2 + '@vitest/utils': 1.5.2 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4 @@ -6026,7 +6026,7 @@ snapshots: tinybench: 2.8.0 tinypool: 0.8.4 vite: 5.2.10(@types/node@20.12.7) - vite-node: 1.5.0(@types/node@20.12.7) + vite-node: 1.5.2(@types/node@20.12.7) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.12.7 @@ -6039,56 +6039,56 @@ snapshots: - supports-color - terser - volar-service-css@0.0.40(@volar/language-service@2.2.0-alpha.10): + volar-service-css@0.0.40(@volar/language-service@2.2.0-alpha.12): dependencies: - vscode-css-languageservice: 6.2.13 + vscode-css-languageservice: 6.2.14 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 - volar-service-emmet@0.0.40(@volar/language-service@2.2.0-alpha.10): + volar-service-emmet@0.0.40(@volar/language-service@2.2.0-alpha.12): dependencies: '@vscode/emmet-helper': 2.9.3 vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' optionalDependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 - volar-service-html@0.0.40(@volar/language-service@2.2.0-alpha.10): + volar-service-html@0.0.40(@volar/language-service@2.2.0-alpha.12): dependencies: vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 - volar-service-json@0.0.40(@volar/language-service@2.2.0-alpha.10): + volar-service-json@0.0.40(@volar/language-service@2.2.0-alpha.12): dependencies: - vscode-json-languageservice: 5.3.10 + vscode-json-languageservice: 5.3.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 - volar-service-pug-beautify@0.0.40(@volar/language-service@2.2.0-alpha.10): + volar-service-pug-beautify@0.0.40(@volar/language-service@2.2.0-alpha.12): dependencies: '@johnsoncodehk/pug-beautify': 0.2.2 optionalDependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 volar-service-pug@0.0.40: dependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 pug-lexer: 5.0.1 pug-parser: 6.0.0 - volar-service-html: 0.0.40(@volar/language-service@2.2.0-alpha.10) + volar-service-html: 0.0.40(@volar/language-service@2.2.0-alpha.12) vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' vscode-languageserver-textdocument: 1.0.11 - volar-service-typescript-twoslash-queries@0.0.40(@volar/language-service@2.2.0-alpha.10): + volar-service-typescript-twoslash-queries@0.0.40(@volar/language-service@2.2.0-alpha.12): optionalDependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 - volar-service-typescript@0.0.40(@volar/language-service@2.2.0-alpha.10): + volar-service-typescript@0.0.40(@volar/language-service@2.2.0-alpha.12): dependencies: path-browserify: 1.0.1 semver: 7.6.0 @@ -6096,7 +6096,7 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 optionalDependencies: - '@volar/language-service': 2.2.0-alpha.10 + '@volar/language-service': 2.2.0-alpha.12 vsce@2.15.0: dependencies: @@ -6121,14 +6121,14 @@ snapshots: yauzl: 2.10.0 yazl: 2.5.1 - vscode-css-languageservice@6.2.13: + vscode-css-languageservice@6.2.14: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 - vscode-json-languageservice@5.3.10: + vscode-json-languageservice@5.3.11: dependencies: '@vscode/l10n': 0.0.18 jsonc-parser: 3.2.1 @@ -6173,13 +6173,13 @@ snapshots: '@vue/compiler-sfc': 2.7.16 csstype: 3.1.3 - vue@3.4.23(typescript@5.4.5): + vue@3.4.26(typescript@5.4.5): dependencies: - '@vue/compiler-dom': 3.4.23 - '@vue/compiler-sfc': 3.4.23 - '@vue/runtime-dom': 3.4.23 - '@vue/server-renderer': 3.4.23(vue@3.4.23(typescript@5.4.5)) - '@vue/shared': 3.4.23 + '@vue/compiler-dom': 3.4.26 + '@vue/compiler-sfc': 3.4.26 + '@vue/runtime-dom': 3.4.26 + '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.4.5)) + '@vue/shared': 3.4.26 optionalDependencies: typescript: 5.4.5 @@ -6252,7 +6252,7 @@ snapshots: deepmerge-ts: 5.1.0 read-pkg: 9.0.1 sort-keys: 5.0.0 - type-fest: 4.15.0 + type-fest: 4.18.0 write-json-file: 5.0.0 xml2js@0.4.23: