diff --git a/.github/workflows/auto-fix.yml b/.github/workflows/auto-fix.yml index d1577f6bbd..541172f3fa 100644 --- a/.github/workflows/auto-fix.yml +++ b/.github/workflows/auto-fix.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7c873bbd2d..01e60841a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0dd74156bd..219cd73f45 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 diff --git a/.github/workflows/update-html-data.yml b/.github/workflows/update-html-data.yml index edb3b03aa4..0b33c88533 100644 --- a/.github/workflows/update-html-data.yml +++ b/.github/workflows/update-html-data.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: diff --git a/.vscode/launch.json b/.vscode/launch.json index ce8dc5a2ec..7ef11b5db0 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,8 +8,8 @@ "request": "launch", "runtimeExecutable": "${execPath}", "args": [ - // "--disable-extensions", - "--extensionDevelopmentPath=${workspaceRoot}/extensions/vscode" + "--extensionDevelopmentPath=${workspaceRoot}/extensions/vscode", + "--folder-uri=${workspaceRoot}/test-workspace", ], "outFiles": [ "${workspaceRoot}/**/*.js" diff --git a/CHANGELOG.md b/CHANGELOG.md index a884a8e098..1e05ce6689 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,29 @@ > [Join the Insiders Program](https://github.com/vuejs/language-tools/wiki/Get-Insiders-Edition) for more exclusive features and updates. +## 2.0.26 official, 2.0.27 insiders (2024-07-04) + +### Features + +- **language-service:** Support auto-complete for more preprocessing languages. +- **language-core:** Improve type compatibility with Vue 3.5. (#4474) - Thanks, @zhiyuanzmj. + +### Bug Fixes + +- **vscode:** Fix insider version display condition. Insiders +- **language-service:** Fix `vue-twoslash-queries` not working in LSP mode. +- **language-service:** Add null handling for script tag completion items. (#4520) +- **language-core:** Fix `any` in templates if the first checked file was not root. (#4526) - Thanks, @daniluk4000. + +### Other Changes + +- Upgraded Volar from `v2.4.0-alpha.2` to `v2.4.0-alpha.14`: + - Fixed an issue where, when Hybrid Mode is disabled, TS support for Vue files not included in tsconfig may be missing. + - Improved the consistency of `vue-tsc` and `tsc` behavior. (#3526) + - Fixed the `--clean` flag support for `vue-tsc`. +- Updated the high-level overview mermaid diagram. +- Added 'expected' and 'actually happening' sections to the bug report template. (#4515) - Thanks, @davidmatter. + ## 2.0.24 official, 2.0.25 insiders (2024-06-30) ### Features diff --git a/README.md b/README.md index 4d6a678982..b21dd8557a 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,6 @@ 💬 **#language-tools** on our [Discord Server](https://discord.gg/vue) - - - - - - ## Packages - [Vue Language Features](https://github.com/vuejs/language-tools/tree/master/extensions/vscode) \ @@ -150,6 +144,12 @@ Check out this [discussion](https://github.com/vuejs/language-tools/discussions/ \* 🤝 support [take over mode](https://github.com/vuejs/language-tools/discussions/471) \ \* 🅿️ support [extra preview features](https://twitter.com/johnsoncodehk/status/1507024137901916161) + + + + + + ## Contribution Guide If you want to work on the volar extension follow these commands to set up your local development environment. diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index 922508b71e..6467e204c2 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "volar", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "repository": { "type": "git", "url": "https://github.com/vuejs/language-tools.git", @@ -543,10 +543,10 @@ "devDependencies": { "@types/semver": "^7.5.3", "@types/vscode": "^1.82.0", - "@volar/vscode": "~2.4.0-alpha.12", - "@vue/language-core": "2.0.26-alpha.2", - "@vue/language-server": "2.0.26-alpha.2", - "@vue/typescript-plugin": "2.0.26-alpha.2", + "@volar/vscode": "~2.4.0-alpha.15", + "@vue/language-core": "2.0.26", + "@vue/language-server": "2.0.26", + "@vue/typescript-plugin": "2.0.26", "esbuild": "~0.21.0", "esbuild-plugin-copy": "latest", "esbuild-visualizer": "latest", diff --git a/extensions/vscode/src/common.ts b/extensions/vscode/src/common.ts index d92031f8cb..a1339d207a 100644 --- a/extensions/vscode/src/common.ts +++ b/extensions/vscode/src/common.ts @@ -254,35 +254,24 @@ async function doActivate(context: vscode.ExtensionContext, createLc: CreateLang } const item = vscode.languages.createLanguageStatusItem('vue-insider', 'vue'); - if (!context.extension.packageJSON.version.includes('-insider')) { - item.text = '✨ Get Insiders Edition'; - item.severity = vscode.LanguageStatusSeverity.Warning; - } - else { - item.text = '🚀 Insiders Edition'; + item.text = 'Checking for Updates...'; + item.busy = true; + let succeed = false; + for (const url of [ + 'https://raw.githubusercontent.com/vuejs/language-tools/HEAD/insiders.json', + 'https://cdn.jsdelivr.net/gh/vuejs/language-tools/insiders.json', + ]) { + try { + const res = await fetch(url); + onJson(await res.json()); + succeed = true; + break; + } catch { } } - checkUpdate(); - - async function checkUpdate() { - item.detail = 'Checking for Updates...'; - item.busy = true; - let succeed = false; - for (const url of [ - 'https://raw.githubusercontent.com/vuejs/language-tools/HEAD/insiders.json', - 'https://cdn.jsdelivr.net/gh/vuejs/language-tools/insiders.json', - ]) { - try { - const res = await fetch(url); - onJson(await res.json()); - succeed = true; - break; - } catch { } - } - item.busy = false; - if (!succeed) { - item.detail = 'Failed to Fetch Versions'; - item.severity = vscode.LanguageStatusSeverity.Error; - } + item.busy = false; + if (!succeed) { + item.text = 'Failed to Fetch Versions'; + item.severity = vscode.LanguageStatusSeverity.Error; } function onJson(json: { @@ -301,19 +290,25 @@ async function doActivate(context: vscode.ExtensionContext, createLc: CreateLang title: 'Select Version', command: 'vue-insiders.update', }; - if ( - json.versions.some(version => version.version === context.extension.packageJSON.version) - && context.extension.packageJSON.version !== json.latest - ) { - item.detail = 'New Version Available!'; + if (json.versions.some(version => version.version === context.extension.packageJSON.version)) { + item.text = '🚀 Insiders Edition'; + item.severity = vscode.LanguageStatusSeverity.Information; + + if (context.extension.packageJSON.version !== json.latest) { + item.detail = 'New Version Available!'; + item.severity = vscode.LanguageStatusSeverity.Warning; + vscode.window + .showInformationMessage('New Insiders Version Available!', 'Download') + .then(download => { + if (download) { + vscode.commands.executeCommand('vue-insiders.update'); + } + }); + } + } + else { + item.text = '✨ Get Insiders Edition'; item.severity = vscode.LanguageStatusSeverity.Warning; - vscode.window - .showInformationMessage('New Insiders Version Available!', 'Download') - .then(download => { - if (download) { - vscode.commands.executeCommand('vue-insiders.update'); - } - }); } vscode.commands.registerCommand('vue-insiders.update', async () => { const quickPickItems: { [version: string]: vscode.QuickPickItem; } = {}; diff --git a/lerna.json b/lerna.json index 469bff2ca8..fa01477078 100644 --- a/lerna.json +++ b/lerna.json @@ -6,5 +6,5 @@ "packages/*", "test-workspace" ], - "version": "2.0.26-alpha.2" + "version": "2.0.26" } diff --git a/package.json b/package.json index 931641738f..a517f5a569 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@lerna-lite/publish": "latest", "@tsslint/cli": "latest", "@tsslint/config": "latest", - "@volar/language-service": "~2.4.0-alpha.12", + "@volar/language-service": "~2.4.0-alpha.15", "typescript": "latest", "vite": "latest", "vitest": "latest" diff --git a/packages/component-meta/package.json b/packages/component-meta/package.json index cfe4a91c40..0f63f72814 100644 --- a/packages/component-meta/package.json +++ b/packages/component-meta/package.json @@ -1,6 +1,6 @@ { "name": "vue-component-meta", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "**/*.js", @@ -12,10 +12,10 @@ "directory": "packages/component-meta" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.12", - "@vue/language-core": "2.0.26-alpha.2", + "@volar/typescript": "~2.4.0-alpha.15", + "@vue/language-core": "2.0.26", "path-browserify": "^1.0.1", - "vue-component-type-helpers": "2.0.26-alpha.2" + "vue-component-type-helpers": "2.0.26" }, "peerDependencies": { "typescript": "*" diff --git a/packages/component-type-helpers/package.json b/packages/component-type-helpers/package.json index b2634d9a81..ddd7b43b49 100644 --- a/packages/component-type-helpers/package.json +++ b/packages/component-type-helpers/package.json @@ -1,6 +1,6 @@ { "name": "vue-component-type-helpers", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "**/*.js", diff --git a/packages/language-core/lib/codegen/script/component.ts b/packages/language-core/lib/codegen/script/component.ts index e61c3ab84a..8e76cefc88 100644 --- a/packages/language-core/lib/codegen/script/component.ts +++ b/packages/language-core/lib/codegen/script/component.ts @@ -67,60 +67,85 @@ export function* generateScriptSetupOptions( scriptSetup: NonNullable, scriptSetupRanges: ScriptSetupRanges ): Generator { - const propsCodegens: (() => Generator)[] = []; + yield* generatePropsOption(options, ctx, scriptSetup, scriptSetupRanges); + yield* generateEmitsOption(options, scriptSetup, scriptSetupRanges); +} - if (ctx.generatedPropsType) { - propsCodegens.push(function* () { - yield `{} as `; - if (scriptSetupRanges.props.withDefaults?.arg) { - yield `${ctx.helperTypes.WithDefaults.name}<`; - } - yield `${ctx.helperTypes.TypePropsToOption.name}<`; - yield `__VLS_PublicProps>`; - if (scriptSetupRanges.props.withDefaults?.arg) { - yield `, typeof __VLS_withDefaultsArg>`; - } - }); - } - if (scriptSetupRanges.props.define?.arg) { - const { arg } = scriptSetupRanges.props.define; - propsCodegens.push(function* () { - yield generateSfcBlockSection(scriptSetup, arg.start, arg.end, codeFeatures.navigation); - }); +export function* generatePropsOption( + options: ScriptCodegenOptions, + ctx: ScriptCodegenContext, + scriptSetup: NonNullable, + scriptSetupRanges: ScriptSetupRanges +) { + if (options.vueCompilerOptions.target >= 3.5 && ctx.generatedPropsType) { + yield `__typeProps: {} as __VLS_PublicProps,${newLine}`; } + else { + const codegens: (() => Generator)[] = []; - if (propsCodegens.length === 1) { - yield `props: `; - for (const generate of propsCodegens) { - yield* generate(); + if (ctx.generatedPropsType) { + codegens.push(function* () { + yield `{} as `; + if (scriptSetupRanges.props.withDefaults?.arg) { + yield `${ctx.helperTypes.WithDefaults.name}<`; + } + yield `${ctx.helperTypes.TypePropsToOption.name}<`; + yield `__VLS_PublicProps>`; + if (scriptSetupRanges.props.withDefaults?.arg) { + yield `, typeof __VLS_withDefaultsArg>`; + } + }); } - yield `,${newLine}`; - } - else if (propsCodegens.length >= 2) { - yield `props: {${newLine}`; - for (const generate of propsCodegens) { - yield `...`; - yield* generate(); + if (scriptSetupRanges.props.define?.arg) { + const { arg } = scriptSetupRanges.props.define; + codegens.push(function* () { + yield generateSfcBlockSection(scriptSetup, arg.start, arg.end, codeFeatures.navigation); + }); + } + + if (codegens.length === 1) { + yield `props: `; + for (const generate of codegens) { + yield* generate(); + } yield `,${newLine}`; } - yield `},${newLine}`; + else if (codegens.length >= 2) { + yield `props: {${newLine}`; + for (const generate of codegens) { + yield `...`; + yield* generate(); + yield `,${newLine}`; + } + yield `},${newLine}`; + } + } +} + +export function* generateEmitsOption( + options: ScriptCodegenOptions, + scriptSetup: NonNullable, + scriptSetupRanges: ScriptSetupRanges +): Generator { + if (!scriptSetupRanges.emits.define && !scriptSetupRanges.defineProp.some(p => p.isModel)) { + return; } - if (scriptSetupRanges.defineProp.filter(p => p.isModel).length || scriptSetupRanges.emits.define) { - yield `emits: ({} as __VLS_NormalizeEmits),${newLine}`; } - - if (options.vueCompilerOptions.target >= 3.5) { - // https://github.com/vuejs/core/pull/10801 - if (scriptSetupRanges.props.define?.typeArg) { - yield `__typeProps: __VLS_typeProps,${newLine}`; - } - if (scriptSetupRanges.emits.define?.typeArg) { - yield `__typeEmits: ${scriptSetupRanges.emits.name ?? '__VLS_emit'},${newLine}`; + else { + yield `__typeEmits: {} as __VLS_ModelEmitsType`; + const typeArg = scriptSetupRanges.emits.define?.typeArg; + if (typeArg) { + yield ` & `; + yield scriptSetup.content.slice(typeArg.start, typeArg.end); } + yield `,${newLine}`; } } diff --git a/packages/language-core/lib/codegen/script/globalTypes.ts b/packages/language-core/lib/codegen/script/globalTypes.ts index d58bce9cdf..0c3dbc21ea 100644 --- a/packages/language-core/lib/codegen/script/globalTypes.ts +++ b/packages/language-core/lib/codegen/script/globalTypes.ts @@ -16,8 +16,10 @@ declare global { ? `import('${vueCompilerOptions.lib}/jsx-runtime').JSX.Element;` : `globalThis.JSX.Element;` } - type __VLS_GlobalComponents = import('${vueCompilerOptions.lib}').GlobalComponents - & Pick; + type __VLS_GlobalComponents = ${vueCompilerOptions.target >= 3.5 + ? `import('${vueCompilerOptions.lib}').GlobalComponents` + : `import('${vueCompilerOptions.lib}').GlobalComponents & Pick;` + } type __VLS_BuiltInPublicProps = ${vueCompilerOptions.target >= 3.4 ? `import('${vueCompilerOptions.lib}').PublicProps;` : vueCompilerOptions.target >= 3.0 diff --git a/packages/language-core/lib/codegen/script/scriptSetup.ts b/packages/language-core/lib/codegen/script/scriptSetup.ts index 7ddaf4f5c0..2a7587d776 100644 --- a/packages/language-core/lib/codegen/script/scriptSetup.ts +++ b/packages/language-core/lib/codegen/script/scriptSetup.ts @@ -1,7 +1,7 @@ import type { ScriptSetupRanges } from '../../parsers/scriptSetupRanges'; import type { Code, Sfc } from '../../types'; import { endOfLine, generateSfcBlockSection, newLine } from '../common'; -import { generateComponent } from './component'; +import { generateComponent, generateEmitsOption } from './component'; import type { ScriptCodegenContext } from './context'; import { ScriptCodegenOptions, codeFeatures } from './index'; import { generateTemplate } from './template'; @@ -48,7 +48,7 @@ export function* generateScriptSetup( + ` __VLS_setup = (async () => {${newLine}`; yield* generateSetupFunction(options, ctx, scriptSetup, scriptSetupRanges, undefined, definePropMirrors); - const emitTypes = ['typeof __VLS_modelEmitsType']; + const emitTypes = ['__VLS_ModelEmitsType']; if (scriptSetupRanges.emits.define) { emitTypes.unshift(`typeof ${scriptSetupRanges.emits.name ?? '__VLS_emit'}`); @@ -265,14 +265,7 @@ function* generateComponentProps( yield generateSfcBlockSection(scriptSetup, scriptSetupRanges.props.define.arg.start, scriptSetupRanges.props.define.arg.end, codeFeatures.navigation); yield `,${newLine}`; } - if (scriptSetupRanges.emits.define || scriptSetupRanges.defineProp.some(p => p.isModel)) { - yield ` emits: ({} as __VLS_NormalizeEmits),${newLine}`; - } + yield* generateEmitsOption(options, scriptSetup, scriptSetupRanges); yield `})${endOfLine}`; yield `let __VLS_functionalComponentProps!: `; yield `${ctx.helperTypes.OmitKeepDiscriminatedUnion.name}['$props'], keyof __VLS_BuiltInPublicProps>`; @@ -371,10 +364,13 @@ function* generateModelEmits( scriptSetup: NonNullable, scriptSetupRanges: ScriptSetupRanges ): Generator { - yield `const __VLS_modelEmitsType = `; - + yield `type __VLS_ModelEmitsType = `; if (scriptSetupRanges.defineProp.filter(p => p.isModel).length) { - yield `(await import('${options.vueCompilerOptions.lib}')).defineEmits<{${newLine}`; + if (options.vueCompilerOptions.target < 3.5) { + yield `typeof __VLS_modelEmitsType${endOfLine}`; + yield `const __VLS_modelEmitsType = (await import('${options.vueCompilerOptions.lib}')).defineEmits<`; + } + yield `{${newLine}`; for (const defineProp of scriptSetupRanges.defineProp) { if (!defineProp.isModel) { continue; @@ -394,7 +390,10 @@ function* generateModelEmits( } yield `]${endOfLine}`; } - yield `}>()`; + yield `}`; + if (options.vueCompilerOptions.target < 3.5) { + yield `>()`; + } } else { yield `{}`; } diff --git a/packages/language-core/lib/languageModule.ts b/packages/language-core/lib/languageModule.ts index cd3fc6d4d3..f416de2e5e 100644 --- a/packages/language-core/lib/languageModule.ts +++ b/packages/language-core/lib/languageModule.ts @@ -96,11 +96,11 @@ export function createVueLanguagePlugin( createVirtualCode(scriptId, languageId, snapshot) { if (languageId === 'vue' || languageId === 'markdown' || languageId === 'html') { const fileName = asFileName(scriptId); - if (!pluginContext.globalTypesHolder && getProjectVersion() !== canonicalRootFileNamesVersion) { + if (getProjectVersion() !== canonicalRootFileNamesVersion) { canonicalRootFileNamesVersion = getProjectVersion(); - if (isRootFile(fileName)) { - pluginContext.globalTypesHolder = fileName; - } + } + if (!pluginContext.globalTypesHolder && isRootFile(fileName)) { + pluginContext.globalTypesHolder = fileName; } const fileRegistry = getFileRegistry(pluginContext.globalTypesHolder === fileName); const code = fileRegistry.get(fileName); diff --git a/packages/language-core/lib/parsers/scriptSetupRanges.ts b/packages/language-core/lib/parsers/scriptSetupRanges.ts index 7820557d55..a1caccbe1e 100644 --- a/packages/language-core/lib/parsers/scriptSetupRanges.ts +++ b/packages/language-core/lib/parsers/scriptSetupRanges.ts @@ -28,7 +28,9 @@ export function parseScriptSetupRanges( } = {}; const emits: { name?: string; - define?: ReturnType; + define?: ReturnType & { + hasUnionTypeArg?: boolean; + }; } = {}; const expose: { name?: string; @@ -216,6 +218,14 @@ export function parseScriptSetupRanges( if (ts.isVariableDeclaration(parent)) { emits.name = getNodeText(ts, parent.name, ast); } + if (node.typeArguments?.length && ts.isTypeLiteralNode(node.typeArguments[0]) && node.typeArguments[0].members.at(0)) { + for (const member of node.typeArguments[0].members) { + if (ts.isCallSignatureDeclaration(member) && member.parameters[0].type && ts.isUnionTypeNode(member.parameters[0].type)) { + emits.define.hasUnionTypeArg = true; + return; + } + } + } } else if (vueCompilerOptions.macros.defineExpose.includes(callText)) { expose.define = parseDefineFunction(node); diff --git a/packages/language-core/package.json b/packages/language-core/package.json index 8136d26a6f..6fdb9818b2 100644 --- a/packages/language-core/package.json +++ b/packages/language-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/language-core", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "**/*.js", @@ -12,7 +12,7 @@ "directory": "packages/language-core" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.12", + "@volar/language-core": "~2.4.0-alpha.15", "@vue/compiler-dom": "^3.4.0", "@vue/shared": "^3.4.0", "computeds": "^0.0.1", @@ -25,7 +25,7 @@ "@types/minimatch": "^5.1.2", "@types/node": "latest", "@types/path-browserify": "^1.0.1", - "@volar/typescript": "~2.4.0-alpha.12", + "@volar/typescript": "~2.4.0-alpha.15", "@vue/compiler-sfc": "^3.4.0" }, "peerDependencies": { diff --git a/packages/language-plugin-pug/package.json b/packages/language-plugin-pug/package.json index e6653e79f8..2ee3cbc34f 100644 --- a/packages/language-plugin-pug/package.json +++ b/packages/language-plugin-pug/package.json @@ -1,6 +1,6 @@ { "name": "@vue/language-plugin-pug", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "**/*.js", @@ -13,10 +13,10 @@ }, "devDependencies": { "@types/node": "latest", - "@vue/language-core": "2.0.26-alpha.2" + "@vue/language-core": "2.0.26" }, "dependencies": { - "@volar/source-map": "~2.4.0-alpha.12", + "@volar/source-map": "~2.4.0-alpha.15", "volar-service-pug": "volar-2.4" } } diff --git a/packages/language-server/package.json b/packages/language-server/package.json index f14226577f..b52c09f7a5 100644 --- a/packages/language-server/package.json +++ b/packages/language-server/package.json @@ -1,6 +1,6 @@ { "name": "@vue/language-server", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "**/*.js", @@ -15,11 +15,11 @@ "directory": "packages/language-server" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.12", - "@volar/language-server": "~2.4.0-alpha.12", - "@vue/language-core": "2.0.26-alpha.2", - "@vue/language-service": "2.0.26-alpha.2", - "@vue/typescript-plugin": "2.0.26-alpha.2", + "@volar/language-core": "~2.4.0-alpha.15", + "@volar/language-server": "~2.4.0-alpha.15", + "@vue/language-core": "2.0.26", + "@vue/language-service": "2.0.26", + "@vue/typescript-plugin": "2.0.26", "vscode-languageserver-protocol": "^3.17.5", "vscode-uri": "^3.0.8" } diff --git a/packages/language-service/lib/plugins/vue-sfc.ts b/packages/language-service/lib/plugins/vue-sfc.ts index 77cd43d625..e02ca62ad7 100644 --- a/packages/language-service/lib/plugins/vue-sfc.ts +++ b/packages/language-service/lib/plugins/vue-sfc.ts @@ -174,15 +174,59 @@ export function create(): LanguageServicePlugin { }, async provideCompletionItems(document, position, context, token) { - const result = await htmlPluginInstance.provideCompletionItems?.(document, position, context, token) + const result = await htmlPluginInstance.provideCompletionItems?.(document, position, context, token); if (!result) { return; } - result.items = [ - ...result.items.filter(item => item.label !== '!DOCTYPE' && item.label !== 'Custom Blocks'), - createCompletionItemWithTs(result.items.find(item => item.label === 'script')!), - createCompletionItemWithTs(result.items.find(item => item.label === 'script setup')!), - ] + result.items = result.items.filter(item => item.label !== '!DOCTYPE' && item.label !== 'Custom Blocks'); + for (const scriptItem of result.items.filter(item => item.label === 'script' || item.label === 'script setup')) { + scriptItem.kind = 17 satisfies typeof vscode.CompletionItemKind.File; + scriptItem.detail = '.js'; + for (const lang of ['ts', 'tsx', 'jsx']) { + result.items.push({ + ...scriptItem, + detail: `.${lang}`, + kind: 17 satisfies typeof vscode.CompletionItemKind.File, + label: scriptItem.label + ' lang="' + lang + '"', + textEdit: scriptItem.textEdit ? { + ...scriptItem.textEdit, + newText: scriptItem.textEdit.newText + ' lang="' + lang + '"', + } : undefined, + }); + } + } + const styleItem = result.items.find(item => item.label === 'style'); + if (styleItem) { + styleItem.kind = 17 satisfies typeof vscode.CompletionItemKind.File; + styleItem.detail = '.css'; + for (const lang of ['css', 'scss', 'less', 'postcss']) { + result.items.push({ + ...styleItem, + kind: 17 satisfies typeof vscode.CompletionItemKind.File, + detail: lang === 'postcss' ? '.css' : `.${lang}`, + label: styleItem.label + ' lang="' + lang + '"', + textEdit: styleItem.textEdit ? { + ...styleItem.textEdit, + newText: styleItem.textEdit.newText + ' lang="' + lang + '"', + } : undefined, + }); + } + } + const templateItem = result.items.find(item => item.label === 'template'); + if (templateItem) { + templateItem.kind = 17 satisfies typeof vscode.CompletionItemKind.File; + templateItem.detail = '.html'; + result.items.push({ + ...templateItem, + kind: 17 satisfies typeof vscode.CompletionItemKind.File, + detail: '.pug', + label: templateItem.label + ' lang="pug"', + textEdit: templateItem.textEdit ? { + ...templateItem.textEdit, + newText: templateItem.textEdit.newText + ' lang="pug"', + } : undefined, + }); + } return result; }, }; @@ -198,14 +242,3 @@ export function create(): LanguageServicePlugin { } } } - -function createCompletionItemWithTs(base: vscode.CompletionItem): vscode.CompletionItem { - return { - ...base, - label: base.label + ' lang="ts"', - textEdit: { - ...base.textEdit!, - newText: base.textEdit!.newText + ' lang="ts"', - } - }; -} diff --git a/packages/language-service/package.json b/packages/language-service/package.json index 85446ed6f0..d70ac1e240 100644 --- a/packages/language-service/package.json +++ b/packages/language-service/package.json @@ -1,6 +1,6 @@ { "name": "@vue/language-service", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "data", @@ -16,13 +16,13 @@ "update-html-data": "node ./scripts/update-html-data.js" }, "dependencies": { - "@volar/language-core": "~2.4.0-alpha.12", - "@volar/language-service": "~2.4.0-alpha.12", - "@volar/typescript": "~2.4.0-alpha.12", + "@volar/language-core": "~2.4.0-alpha.15", + "@volar/language-service": "~2.4.0-alpha.15", + "@volar/typescript": "~2.4.0-alpha.15", "@vue/compiler-dom": "^3.4.0", - "@vue/language-core": "2.0.26-alpha.2", + "@vue/language-core": "2.0.26", "@vue/shared": "^3.4.0", - "@vue/typescript-plugin": "2.0.26-alpha.2", + "@vue/typescript-plugin": "2.0.26", "computeds": "^0.0.1", "path-browserify": "^1.0.1", "volar-service-css": "volar-2.4", @@ -40,7 +40,7 @@ "devDependencies": { "@types/node": "latest", "@types/path-browserify": "latest", - "@volar/kit": "~2.4.0-alpha.12", + "@volar/kit": "~2.4.0-alpha.15", "vscode-languageserver-protocol": "^3.17.5" } } diff --git a/packages/tsc/package.json b/packages/tsc/package.json index 2a68e688b6..d541dade7e 100644 --- a/packages/tsc/package.json +++ b/packages/tsc/package.json @@ -1,6 +1,6 @@ { "name": "vue-tsc", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "bin", @@ -16,8 +16,8 @@ "vue-tsc": "./bin/vue-tsc.js" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.12", - "@vue/language-core": "2.0.26-alpha.2", + "@volar/typescript": "~2.4.0-alpha.15", + "@vue/language-core": "2.0.26", "semver": "^7.5.4" }, "peerDependencies": { diff --git a/packages/typescript-plugin/package.json b/packages/typescript-plugin/package.json index 22179da3e4..3c24e22b10 100644 --- a/packages/typescript-plugin/package.json +++ b/packages/typescript-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@vue/typescript-plugin", - "version": "2.0.26-alpha.2", + "version": "2.0.26", "license": "MIT", "files": [ "**/*.js", @@ -12,8 +12,8 @@ "directory": "packages/typescript-plugin" }, "dependencies": { - "@volar/typescript": "~2.4.0-alpha.12", - "@vue/language-core": "2.0.26-alpha.2", + "@volar/typescript": "~2.4.0-alpha.15", + "@vue/language-core": "2.0.26", "@vue/shared": "^3.4.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b3750ca8e..b1923644fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,14 +24,14 @@ importers: specifier: latest version: 1.0.13 '@volar/language-service': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 typescript: specifier: latest version: 5.5.3 vite: specifier: latest - version: 5.3.2(@types/node@20.14.9) + version: 5.3.3(@types/node@20.14.9) vitest: specifier: latest version: 1.6.0(@types/node@20.14.9) @@ -43,18 +43,18 @@ importers: version: 7.5.8 '@types/vscode': specifier: ^1.82.0 - version: 1.90.0 + version: 1.91.0 '@volar/vscode': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../../packages/language-core '@vue/language-server': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../../packages/language-server '@vue/typescript-plugin': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../../packages/typescript-plugin esbuild: specifier: ~0.21.0 @@ -75,10 +75,10 @@ importers: packages/component-meta: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../language-core path-browserify: specifier: ^1.0.1 @@ -87,7 +87,7 @@ importers: specifier: '*' version: 5.5.3 vue-component-type-helpers: - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../component-type-helpers devDependencies: '@types/node': @@ -102,8 +102,8 @@ importers: packages/language-core: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/compiler-dom': specifier: ^3.4.0 version: 3.4.31 @@ -139,8 +139,8 @@ importers: specifier: ^1.0.1 version: 1.0.2 '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/compiler-sfc': specifier: ^3.4.0 version: 3.4.31 @@ -148,35 +148,35 @@ importers: packages/language-plugin-pug: dependencies: '@volar/source-map': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 volar-service-pug: specifier: volar-2.4 - version: 0.0.58 + version: 0.0.59 devDependencies: '@types/node': specifier: latest version: 20.14.9 '@vue/language-core': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../language-core packages/language-server: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@volar/language-server': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../language-core '@vue/language-service': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../language-service '@vue/typescript-plugin': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../typescript-plugin vscode-languageserver-protocol: specifier: ^3.17.5 @@ -188,25 +188,25 @@ importers: packages/language-service: dependencies: '@volar/language-core': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@volar/language-service': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/compiler-dom': specifier: ^3.4.0 version: 3.4.31 '@vue/language-core': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../language-core '@vue/shared': specifier: ^3.4.0 version: 3.4.31 '@vue/typescript-plugin': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../typescript-plugin computeds: specifier: ^0.0.1 @@ -216,28 +216,28 @@ importers: version: 1.0.1 volar-service-css: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-emmet: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-html: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-json: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-pug: specifier: volar-2.4 - version: 0.0.58 + version: 0.0.59 volar-service-pug-beautify: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-typescript: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) volar-service-typescript-twoslash-queries: specifier: volar-2.4 - version: 0.0.58(@volar/language-service@2.4.0-alpha.12) + version: 0.0.59(@volar/language-service@2.4.0-alpha.15) vscode-html-languageservice: specifier: ^5.2.0 version: 5.3.0 @@ -255,8 +255,8 @@ importers: specifier: latest version: 1.0.2 '@volar/kit': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12(typescript@5.5.3) + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15(typescript@5.5.3) vscode-languageserver-protocol: specifier: ^3.17.5 version: 3.17.5 @@ -264,10 +264,10 @@ importers: packages/tsc: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../language-core semver: specifier: ^7.5.4 @@ -283,10 +283,10 @@ importers: packages/typescript-plugin: dependencies: '@volar/typescript': - specifier: ~2.4.0-alpha.12 - version: 2.4.0-alpha.12 + specifier: ~2.4.0-alpha.15 + version: 2.4.0-alpha.15 '@vue/language-core': - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../language-core '@vue/shared': specifier: ^3.4.0 @@ -302,7 +302,7 @@ importers: specifier: ^3.4.0 version: 3.4.31(typescript@5.5.3) vue-component-type-helpers: - specifier: 2.0.26-alpha.2 + specifier: 2.0.26 version: link:../packages/component-type-helpers vue2: specifier: npm:vue@2.7.16 @@ -310,6 +310,9 @@ importers: vue3.3: specifier: npm:vue@3.3.13 version: vue@3.3.13(typescript@5.5.3) + vue3.5: + specifier: npm:vue@alpha + version: vue@3.5.0-alpha.2(typescript@5.5.3) packages: @@ -839,8 +842,8 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/vscode@1.90.0': - resolution: {integrity: sha512-oT+ZJL7qHS9Z8bs0+WKf/kQ27qWYR3trsXpq46YDjFqBsMLG4ygGGjPaJ2tyrH0wJzjOEmDyg9PDJBBhWg9pkQ==} + '@types/vscode@1.91.0': + resolution: {integrity: sha512-PgPr+bUODjG3y+ozWUCyzttqR9EHny9sPAfJagddQjDwdtf66y2sDKJMnFZRuzBA2YtBGASqJGPil8VDUPvO6A==} '@vitest/expect@1.6.0': resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} @@ -857,31 +860,31 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - '@volar/kit@2.4.0-alpha.12': - resolution: {integrity: sha512-PPZsZGoj5tdK7Jf6Y/HMjS0cJrRIClyJPX1ehVLhz1zQe08gxzunBdD/i6U7u/OAYKLAY2TzOnVPFJ5iYBYC7A==} + '@volar/kit@2.4.0-alpha.15': + resolution: {integrity: sha512-ZCBErTebCVdzpSo/0wBlrjnZfqQfVIaHUJa3kOQe3TbVR/8Ny/3mij9gSkBTUcSyVtlUFpJpJo/B8aQp0xt/mQ==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.0-alpha.12': - resolution: {integrity: sha512-Dj9qTifcGGgzFLfMbU5dCo13kHyNuEyvPJhtWDnoVBBmgwW3GMwFmgWnNxBhjf63m5x0gux1okaxX2CLN7qSww==} + '@volar/language-core@2.4.0-alpha.15': + resolution: {integrity: sha512-mt8z4Fm2WxfQYoQHPcKVjLQV6PgPqyKLbkCVY2cr5RSaamqCHjhKEpsFX66aL4D/7oYguuaUw9Bx03Vt0TpIIA==} - '@volar/language-server@2.4.0-alpha.12': - resolution: {integrity: sha512-GRzN4Sa8ANv+6o2WZxg/KHnWvJEtH6VIgLXTWv5Rsihs/PZw5Xz6/s4cWuIU4xfsqv9rjkogaTc26L9ZiD+HpQ==} + '@volar/language-server@2.4.0-alpha.15': + resolution: {integrity: sha512-epaF7Rllb29nr25F8hX5bq7ivgStNZzXGkhuPlHCUM+Ij/aQnsBeYQsfm7EttPqqO3abCctpRWyd+icklFEBoQ==} - '@volar/language-service@2.4.0-alpha.12': - resolution: {integrity: sha512-R6MQ/qOlKqBvc7LmdV+K/f64uuAa5zJpyYHpKLzuR0y4iKvWKblxwzggumII6XLBGFwkgMoW3v2RIIz1WXxTqg==} + '@volar/language-service@2.4.0-alpha.15': + resolution: {integrity: sha512-H5T5JvvqvWhG0PvvKPTM0nczTbTKQ+U87a8r0eahlH/ySi2HvIHO/7PiNKLxKqLNsiT8SX4U3QcGC8ZaNcC07g==} - '@volar/snapshot-document@2.4.0-alpha.12': - resolution: {integrity: sha512-3wmiXJFBCPRTxLOMJ8KpFptSka0MxJV1FXojjLQnnW+VIOCdc25YKyh3jaRX4v6MzxmSRKp6c6g3pM44l/V5LQ==} + '@volar/snapshot-document@2.4.0-alpha.15': + resolution: {integrity: sha512-8lnX0eZ7/lM+hakO5kspWABi4nijppxTy9XU0f9ns2lZ/JCE0t9EurNNiOaw4MWFO9USr0H72Ut0LCB9o4rpqA==} - '@volar/source-map@2.4.0-alpha.12': - resolution: {integrity: sha512-LXATFSj4D7T9sEm7FFj6iBgHjKjrdhAgRPcechVKiNCMQdr3r3GVkkeu8aM+1peaMH3LsCqoDxVZEmh2r7CHiw==} + '@volar/source-map@2.4.0-alpha.15': + resolution: {integrity: sha512-8Htngw5TmBY4L3ClDqBGyfLhsB8EmoEXUH1xydyEtEoK0O6NX5ur4Jw8jgvscTlwzizyl/wsN1vn0cQXVbbXYg==} - '@volar/typescript@2.4.0-alpha.12': - resolution: {integrity: sha512-mLg+OQauMTv/+08a7WBWJo1sev/wc8t2is0zhBZIlFU+j5mG89FM4+4089c2p/zoUFZ400Q/VNg2BPfhpZ8wSA==} + '@volar/typescript@2.4.0-alpha.15': + resolution: {integrity: sha512-U3StRBbDuxV6Woa4hvGS4kz3XcOzrWUKgFdEFN+ba1x3eaYg7+ytau8ul05xgA+UNGLXXsKur7fTUhDFyISk0w==} - '@volar/vscode@2.4.0-alpha.12': - resolution: {integrity: sha512-imw8tk5N0JYxO865azLacv8Y4E8AbpNqGgwPAJVq6BPyL1+C9Bj1K816/Yv+ZztHAdZrkhBTxEFjmU5uoe1toQ==} + '@volar/vscode@2.4.0-alpha.15': + resolution: {integrity: sha512-apzZqZrCKO9tDWRzsy4EWUgywMzlVhIqDWP3HrXIjDuRKCFG7x8tgfqoDHOSs5M8aIo2BHk1akzCinobLkpFbw==} '@vscode/emmet-helper@2.9.3': resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} @@ -895,12 +898,18 @@ packages: '@vue/compiler-core@3.4.31': resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} + '@vue/compiler-core@3.5.0-alpha.2': + resolution: {integrity: sha512-BWyn6mNsYytzNUJQdDXP4ftK/AjvD4+5bE7o08xQwsvbYnFwRF80Zi3G8LSe/0AiC68PLqz2iBqZQhdMfSGyww==} + '@vue/compiler-dom@3.3.13': resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==} '@vue/compiler-dom@3.4.31': resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==} + '@vue/compiler-dom@3.5.0-alpha.2': + resolution: {integrity: sha512-2CoonkvK32tvz9n988sE3oXPoBKYtCO0jrjno9C4gemJ7g5q8D0VJyE5AzGYFKM8ZS7bjgp2T67PAmaOOgsu0Q==} + '@vue/compiler-sfc@2.7.16': resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} @@ -910,12 +919,18 @@ packages: '@vue/compiler-sfc@3.4.31': resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==} + '@vue/compiler-sfc@3.5.0-alpha.2': + resolution: {integrity: sha512-tdTA3AseuL2PcT9xSEBr/3mRFiGEb8BMNydcNWgGwjQHUnVS/iJDkD3ob+QDTc4gdXENu0khQbrSb2cSvNXvTA==} + '@vue/compiler-ssr@3.3.13': resolution: {integrity: sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==} '@vue/compiler-ssr@3.4.31': resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} + '@vue/compiler-ssr@3.5.0-alpha.2': + resolution: {integrity: sha512-wyjfDj3jHQI8Ad9cUWPml6dpO8cm3bsEdXOfiIsBSpDOKAlbdvBQIOpb9CQE09JLPK3j8hFtAEGPtq1COcL2kw==} + '@vue/reactivity-transform@3.3.13': resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==} @@ -925,18 +940,27 @@ packages: '@vue/reactivity@3.4.31': resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==} + '@vue/reactivity@3.5.0-alpha.2': + resolution: {integrity: sha512-4UG565XKudWMqijfrIY296XTJLBh3m/nZa+mLhsK5uMq0xBDFsJsrVskAmFlLNTlOd6c5FiktZufB9AB7m6VKw==} + '@vue/runtime-core@3.3.13': resolution: {integrity: sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==} '@vue/runtime-core@3.4.31': resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==} + '@vue/runtime-core@3.5.0-alpha.2': + resolution: {integrity: sha512-59R12UzEhqEOlItt6yKOoTyQ+Hx2hqFPKmdYPT9VAYmLH+ABngjrvw9KuJT9OsR+f4q/NwmCAAvjXV4gC56/cg==} + '@vue/runtime-dom@3.3.13': resolution: {integrity: sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==} '@vue/runtime-dom@3.4.31': resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==} + '@vue/runtime-dom@3.5.0-alpha.2': + resolution: {integrity: sha512-3ShrCHo22tPMblLl0K6VXTv6MB95D9dBZH/YyJO+aLcOdEQXrLtVp8sXG6oPIwapBVlNkOZX7lUQbnzpdZgosQ==} + '@vue/server-renderer@3.3.13': resolution: {integrity: sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==} peerDependencies: @@ -947,12 +971,20 @@ packages: peerDependencies: vue: 3.4.31 + '@vue/server-renderer@3.5.0-alpha.2': + resolution: {integrity: sha512-I9Mq56+B3XUhcKSEr0T9xTqOy04ORTrFANazPR871ITXAHO5viQXrdqOgh2nvBrz6L5c8vpDZgKDhKn+H7G9jg==} + peerDependencies: + vue: 3.5.0-alpha.2 + '@vue/shared@3.3.13': resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} '@vue/shared@3.4.31': resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} + '@vue/shared@3.5.0-alpha.2': + resolution: {integrity: sha512-PMOD/qZfwNGE1xpz92Q7YtcGzz2JtvULSb4HIvv3N0idMAlIKmnzkIvsB0EhosPnJWe5O+xDe+DKmr6fIKu7HQ==} + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -970,8 +1002,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -2335,8 +2367,8 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.1.2: - resolution: {integrity: sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==} + pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} postcss@8.4.39: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} @@ -2738,8 +2770,8 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.20.1: - resolution: {integrity: sha512-R6wDsVsoS9xYOpy8vgeBlqpdOyzJ12HNfQhC/aAKWM3YoCV9TtunJzh/QpkMgeDhkoynDcw5f1y+qF9yc/HHyg==} + type-fest@4.21.0: + resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==} engines: {node: '>=16'} typed-rest-client@1.8.11: @@ -2817,8 +2849,8 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.3.2: - resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + vite@5.3.3: + resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2870,59 +2902,59 @@ packages: jsdom: optional: true - volar-service-css@0.0.58: - resolution: {integrity: sha512-Nz8s7J/R59M7vLV74JgCFSwPGNOgsgrbJYq+XiHAW7O3eUCbM7MrHnCaW/mPaLlEgRPL9TLiWX3VO0B0D4f7iQ==} + volar-service-css@0.0.59: + resolution: {integrity: sha512-gLNjJnECbalPvQB7qeJjhkDN8sR5M3ItbVYjnyio61aHaWptIiXm/HfDahcQ2ApwmvWidkMWWegjGq5L0BENDA==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.58: - resolution: {integrity: sha512-KYN61xp7+z80QOCbT+V2x/WONVGIN8fZ1qTkujtng78lbHVeS3JqCe1sXw20nHWddxakybib7oG8Za81GMFa1w==} + volar-service-emmet@0.0.59: + resolution: {integrity: sha512-6EynHcuMwMBETpK29TbZvIMmvzdVG+Tkokk9VWfZeI+SwDptk2tgdhEqiXXvIkqYNgbuu73Itp66lpH76cAU+Q==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.58: - resolution: {integrity: sha512-X9A7iFXS/KX5Rddcg7H89Th5Eq/iAudwiv6vOSSCkw9JhLAUh4b3Lx/7SbL5MTXqgZMPDw4VqpfWXX3aML6d1Q==} + volar-service-html@0.0.59: + resolution: {integrity: sha512-hEXOsYpILDlITZxnqRLV9OepVWD63GZBsyjMxszwdzlxvGZjzbGcBBinJGGJRwFIV8djdJwnt91bkdg1V5tj6Q==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-json@0.0.58: - resolution: {integrity: sha512-tP2cC8UAuP3RM6IZNDipK46dIdFq3MDizgMuLPPKzzAvCtrQlcTDhxknJzgMsmq92PjRTpwDZr6KDTGZknfgTQ==} + volar-service-json@0.0.59: + resolution: {integrity: sha512-LfDOQhCvUpDBjA6CP9EogO0dn1yEFbInvV3Yk4OsEdyxwWUEYPLVjDacPlVUYcjCIKQN6NcTOWbVwpg4vYjw6A==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-pug-beautify@0.0.58: - resolution: {integrity: sha512-AoEsBiFWA1XL3NiWNMMM1hyXcRn5TSVHEMo8BfQPVz3NrGtPChHqp7XI/RX7N3b7zVSzwrajWJ+iFTUOZDE0Bg==} + volar-service-pug-beautify@0.0.59: + resolution: {integrity: sha512-SCLWHpBdgvWww3a9Vp8FX80ookozhnHx10gkKBTYW4wp7/rzEoVAPSyO7JKBwTdXmdKQv7YXfxLMVUGv0sYUKg==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-pug@0.0.58: - resolution: {integrity: sha512-Fre9qwYaIgcGUZfzSaoXGUVNYZqYRNnsc84wBCgwtRhdgZj7jxo6b/0FKUj9Dwv8bBM+xrX1IHLQECOMOnzC7Q==} + volar-service-pug@0.0.59: + resolution: {integrity: sha512-kmch7yoqeGNlJuDzpw/YL2b89ilzBmWDd0lJbpG412/RXc3PJVA4usUK+SQHdVoF+qi5IcZL6IDxlvRiIrDgWg==} - volar-service-typescript-twoslash-queries@0.0.58: - resolution: {integrity: sha512-DDErD3sQDXx4Pf0dVYrNgYQvN8iZdToWzdu8Aaxnjg4mvxT7yaizcn+KBDtcNSy4jksOHa4ut4R7AxZJ68Fyfg==} + volar-service-typescript-twoslash-queries@0.0.59: + resolution: {integrity: sha512-skm8e6yhCIkqLwJB6S9MqT5lO9LNFuMD3dYxKpmOZs1CKbXmCZZTmLfEaD5VkJae1xdleEDZFFTHl2O5HLjOGQ==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.58: - resolution: {integrity: sha512-r4MVuRlerFzMwpiN8VWumBULuBxcNUCURptnkCPEcypw8N0GjxPBvq5vXOTGRcukKihgY6mvgYKmJMrkQvbmtQ==} + volar-service-typescript@0.0.59: + resolution: {integrity: sha512-VCOpfiu+lUo5lapWLB5L5vmQGtwzmNWn5MueV915eku7blpphmE+Z7hCNcL1NApn7AetXWhiblv8ZhmUx/dGIA==} peerDependencies: '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: @@ -2997,6 +3029,14 @@ packages: typescript: optional: true + vue@3.5.0-alpha.2: + resolution: {integrity: sha512-dyhWA95ko++OlThqFNptBXiVFihKPfZ2487FKSYiB1X7LK1DX6AOjEfxbJdzupoNSOuHDVJIzOvcrBeyChX4vA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -3673,7 +3713,7 @@ snapshots: '@types/semver@7.5.8': {} - '@types/vscode@1.90.0': {} + '@types/vscode@1.91.0': {} '@vitest/expect@1.6.0': dependencies: @@ -3704,25 +3744,25 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@volar/kit@2.4.0-alpha.12(typescript@5.5.3)': + '@volar/kit@2.4.0-alpha.15(typescript@5.5.3)': dependencies: - '@volar/language-service': 2.4.0-alpha.12 - '@volar/typescript': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 + '@volar/typescript': 2.4.0-alpha.15 typesafe-path: 0.2.2 typescript: 5.5.3 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-core@2.4.0-alpha.12': + '@volar/language-core@2.4.0-alpha.15': dependencies: - '@volar/source-map': 2.4.0-alpha.12 + '@volar/source-map': 2.4.0-alpha.15 - '@volar/language-server@2.4.0-alpha.12': + '@volar/language-server@2.4.0-alpha.15': dependencies: - '@volar/language-core': 2.4.0-alpha.12 - '@volar/language-service': 2.4.0-alpha.12 - '@volar/snapshot-document': 2.4.0-alpha.12 - '@volar/typescript': 2.4.0-alpha.12 + '@volar/language-core': 2.4.0-alpha.15 + '@volar/language-service': 2.4.0-alpha.15 + '@volar/snapshot-document': 2.4.0-alpha.15 + '@volar/typescript': 2.4.0-alpha.15 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -3730,29 +3770,29 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-service@2.4.0-alpha.12': + '@volar/language-service@2.4.0-alpha.15': dependencies: - '@volar/language-core': 2.4.0-alpha.12 + '@volar/language-core': 2.4.0-alpha.15 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/snapshot-document@2.4.0-alpha.12': + '@volar/snapshot-document@2.4.0-alpha.15': dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - '@volar/source-map@2.4.0-alpha.12': {} + '@volar/source-map@2.4.0-alpha.15': {} - '@volar/typescript@2.4.0-alpha.12': + '@volar/typescript@2.4.0-alpha.15': dependencies: - '@volar/language-core': 2.4.0-alpha.12 + '@volar/language-core': 2.4.0-alpha.15 path-browserify: 1.0.1 vscode-uri: 3.0.8 - '@volar/vscode@2.4.0-alpha.12': + '@volar/vscode@2.4.0-alpha.15': dependencies: - '@volar/language-server': 2.4.0-alpha.12 + '@volar/language-server': 2.4.0-alpha.15 path-browserify: 1.0.1 vscode-languageclient: 9.0.1 vscode-nls: 5.2.0 @@ -3782,6 +3822,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 + '@vue/compiler-core@3.5.0-alpha.2': + dependencies: + '@babel/parser': 7.24.7 + '@vue/shared': 3.5.0-alpha.2 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + '@vue/compiler-dom@3.3.13': dependencies: '@vue/compiler-core': 3.3.13 @@ -3792,6 +3840,11 @@ snapshots: '@vue/compiler-core': 3.4.31 '@vue/shared': 3.4.31 + '@vue/compiler-dom@3.5.0-alpha.2': + dependencies: + '@vue/compiler-core': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + '@vue/compiler-sfc@2.7.16': dependencies: '@babel/parser': 7.24.7 @@ -3825,6 +3878,18 @@ snapshots: postcss: 8.4.39 source-map-js: 1.2.0 + '@vue/compiler-sfc@3.5.0-alpha.2': + dependencies: + '@babel/parser': 7.24.7 + '@vue/compiler-core': 3.5.0-alpha.2 + '@vue/compiler-dom': 3.5.0-alpha.2 + '@vue/compiler-ssr': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.39 + source-map-js: 1.2.0 + '@vue/compiler-ssr@3.3.13': dependencies: '@vue/compiler-dom': 3.3.13 @@ -3835,6 +3900,11 @@ snapshots: '@vue/compiler-dom': 3.4.31 '@vue/shared': 3.4.31 + '@vue/compiler-ssr@3.5.0-alpha.2': + dependencies: + '@vue/compiler-dom': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + '@vue/reactivity-transform@3.3.13': dependencies: '@babel/parser': 7.24.7 @@ -3851,6 +3921,10 @@ snapshots: dependencies: '@vue/shared': 3.4.31 + '@vue/reactivity@3.5.0-alpha.2': + dependencies: + '@vue/shared': 3.5.0-alpha.2 + '@vue/runtime-core@3.3.13': dependencies: '@vue/reactivity': 3.3.13 @@ -3861,6 +3935,11 @@ snapshots: '@vue/reactivity': 3.4.31 '@vue/shared': 3.4.31 + '@vue/runtime-core@3.5.0-alpha.2': + dependencies: + '@vue/reactivity': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + '@vue/runtime-dom@3.3.13': dependencies: '@vue/runtime-core': 3.3.13 @@ -3874,6 +3953,12 @@ snapshots: '@vue/shared': 3.4.31 csstype: 3.1.3 + '@vue/runtime-dom@3.5.0-alpha.2': + dependencies: + '@vue/runtime-core': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + csstype: 3.1.3 + '@vue/server-renderer@3.3.13(vue@3.4.31(typescript@5.5.3))': dependencies: '@vue/compiler-ssr': 3.3.13 @@ -3886,10 +3971,18 @@ snapshots: '@vue/shared': 3.4.31 vue: 3.4.31(typescript@5.5.3) + '@vue/server-renderer@3.5.0-alpha.2(vue@3.4.31(typescript@5.5.3))': + dependencies: + '@vue/compiler-ssr': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.2 + vue: 3.4.31(typescript@5.5.3) + '@vue/shared@3.3.13': {} '@vue/shared@3.4.31': {} + '@vue/shared@3.5.0-alpha.2': {} + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -3899,11 +3992,11 @@ snapshots: acorn-walk@8.3.3: dependencies: - acorn: 8.12.0 + acorn: 8.12.1 acorn@7.4.1: {} - acorn@8.12.0: {} + acorn@8.12.1: {} add-stream@1.0.0: {} @@ -4880,7 +4973,7 @@ snapshots: local-pkg@0.5.0: dependencies: mlly: 1.7.1 - pkg-types: 1.1.2 + pkg-types: 1.1.3 locate-path@5.0.0: dependencies: @@ -5016,9 +5109,9 @@ snapshots: mlly@1.7.1: dependencies: - acorn: 8.12.0 + acorn: 8.12.1 pathe: 1.1.2 - pkg-types: 1.1.2 + pkg-types: 1.1.3 ufo: 1.5.3 ms@2.1.2: {} @@ -5267,7 +5360,7 @@ snapshots: dependencies: '@babel/code-frame': 7.24.7 index-to-position: 0.1.2 - type-fest: 4.20.1 + type-fest: 4.21.0 parse-path@7.0.0: dependencies: @@ -5327,7 +5420,7 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.1.2: + pkg-types@1.1.3: dependencies: confbox: 0.1.7 mlly: 1.7.1 @@ -5415,21 +5508,21 @@ snapshots: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 - type-fest: 4.20.1 + type-fest: 4.21.0 read-pkg@8.1.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 7.1.1 - type-fest: 4.20.1 + type-fest: 4.21.0 read-pkg@9.0.1: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 8.1.0 - type-fest: 4.20.1 + type-fest: 4.21.0 unicorn-magic: 0.1.0 read@1.0.7: @@ -5750,7 +5843,7 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.20.1: {} + type-fest@4.21.0: {} typed-rest-client@1.8.11: dependencies: @@ -5814,7 +5907,7 @@ snapshots: debug: 4.3.5 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.3.2(@types/node@20.14.9) + vite: 5.3.3(@types/node@20.14.9) transitivePeerDependencies: - '@types/node' - less @@ -5825,7 +5918,7 @@ snapshots: - supports-color - terser - vite@5.3.2(@types/node@20.14.9): + vite@5.3.3(@types/node@20.14.9): dependencies: esbuild: 0.21.5 postcss: 8.4.39 @@ -5853,7 +5946,7 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.2(@types/node@20.14.9) + vite: 5.3.3(@types/node@20.14.9) vite-node: 1.6.0(@types/node@20.14.9) why-is-node-running: 2.2.2 optionalDependencies: @@ -5867,61 +5960,61 @@ snapshots: - supports-color - terser - volar-service-css@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-css-languageservice: 6.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-emmet@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.9.3 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-html@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-json@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-json@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-json-languageservice: 5.4.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-pug-beautify@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-pug-beautify@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: '@johnsoncodehk/pug-beautify': 0.2.2 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-pug@0.0.58: + volar-service-pug@0.0.59: dependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 muggle-string: 0.4.1 pug-lexer: 5.0.1 pug-parser: 6.0.0 - volar-service-html: 0.0.58(@volar/language-service@2.4.0-alpha.12) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.15) vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 - volar-service-typescript-twoslash-queries@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 - volar-service-typescript@0.0.58(@volar/language-service@2.4.0-alpha.12): + volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.15): dependencies: path-browserify: 1.0.1 semver: 7.6.2 @@ -5930,7 +6023,7 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.0-alpha.12 + '@volar/language-service': 2.4.0-alpha.15 vsce@2.15.0: dependencies: @@ -6034,6 +6127,16 @@ snapshots: optionalDependencies: typescript: 5.5.3 + vue@3.5.0-alpha.2(typescript@5.5.3): + dependencies: + '@vue/compiler-dom': 3.5.0-alpha.2 + '@vue/compiler-sfc': 3.5.0-alpha.2 + '@vue/runtime-dom': 3.5.0-alpha.2 + '@vue/server-renderer': 3.5.0-alpha.2(vue@3.4.31(typescript@5.5.3)) + '@vue/shared': 3.5.0-alpha.2 + optionalDependencies: + typescript: 5.5.3 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -6103,7 +6206,7 @@ snapshots: deepmerge-ts: 5.1.0 read-pkg: 9.0.1 sort-keys: 5.0.0 - type-fest: 4.20.1 + type-fest: 4.21.0 write-json-file: 5.0.0 xml2js@0.4.23: diff --git a/test-workspace/package.json b/test-workspace/package.json index e2a6d47230..3ac1eb906a 100644 --- a/test-workspace/package.json +++ b/test-workspace/package.json @@ -1,10 +1,11 @@ { "private": true, - "version": "2.0.26-alpha.2", + "version": "2.0.26", "devDependencies": { "vue": "^3.4.0", - "vue-component-type-helpers": "2.0.26-alpha.2", + "vue-component-type-helpers": "2.0.26", "vue2": "npm:vue@2.7.16", - "vue3.3": "npm:vue@3.3.13" + "vue3.3": "npm:vue@3.3.13", + "vue3.5": "npm:vue@alpha" } } diff --git a/test-workspace/tsc/vue2/tsconfig.json b/test-workspace/tsc/vue2/tsconfig.json index 4002a1354a..ae36414d8e 100644 --- a/test-workspace/tsc/vue2/tsconfig.json +++ b/test-workspace/tsc/vue2/tsconfig.json @@ -17,6 +17,7 @@ "../vue3/#3615", "../vue3/#3656", "../vue3/#3672", + "../vue3/#3782", "../vue3/#4327", "../vue3/components", "../vue3/defineEmits", diff --git a/test-workspace/tsc/vue3.3/tsconfig.json b/test-workspace/tsc/vue3.3/tsconfig.json index dd2c65a327..432c386186 100644 --- a/test-workspace/tsc/vue3.3/tsconfig.json +++ b/test-workspace/tsc/vue3.3/tsconfig.json @@ -7,4 +7,7 @@ "env.d.ts", "../vue3", ], + "exclude": [ + "../vue3/#3782", + ], } diff --git a/test-workspace/tsc/vue3.5/components/main.vue b/test-workspace/tsc/vue3.5/components/main.vue new file mode 100644 index 0000000000..ab5fdd188e --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/main.vue @@ -0,0 +1,80 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-default-props.vue b/test-workspace/tsc/vue3.5/components/script-setup-default-props.vue new file mode 100644 index 0000000000..5f7ea7aa4c --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-default-props.vue @@ -0,0 +1,11 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-expose.vue b/test-workspace/tsc/vue3.5/components/script-setup-expose.vue new file mode 100644 index 0000000000..0186f94f29 --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-expose.vue @@ -0,0 +1,11 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-generic.vue b/test-workspace/tsc/vue3.5/components/script-setup-generic.vue new file mode 100644 index 0000000000..1de1c0a6fe --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-generic.vue @@ -0,0 +1,8 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup-type-only.vue b/test-workspace/tsc/vue3.5/components/script-setup-type-only.vue new file mode 100644 index 0000000000..e1e2b57197 --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup-type-only.vue @@ -0,0 +1,11 @@ + diff --git a/test-workspace/tsc/vue3.5/components/script-setup.vue b/test-workspace/tsc/vue3.5/components/script-setup.vue new file mode 100644 index 0000000000..fdb37a19ec --- /dev/null +++ b/test-workspace/tsc/vue3.5/components/script-setup.vue @@ -0,0 +1,7 @@ + diff --git a/test-workspace/tsc/vue3.5/defineModel/main.vue b/test-workspace/tsc/vue3.5/defineModel/main.vue new file mode 100644 index 0000000000..22d1ff9e86 --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineModel/main.vue @@ -0,0 +1,42 @@ + + + diff --git a/test-workspace/tsc/vue3.5/defineModel/script-setup.vue b/test-workspace/tsc/vue3.5/defineModel/script-setup.vue new file mode 100644 index 0000000000..d1a41272b6 --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineModel/script-setup.vue @@ -0,0 +1,30 @@ + + + diff --git a/test-workspace/tsc/vue3.5/defineProp_B/main.vue b/test-workspace/tsc/vue3.5/defineProp_B/main.vue new file mode 100644 index 0000000000..80a05ed8ba --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineProp_B/main.vue @@ -0,0 +1,41 @@ + diff --git a/test-workspace/tsc/vue3.5/defineProp_B/script-setup-generic.vue b/test-workspace/tsc/vue3.5/defineProp_B/script-setup-generic.vue new file mode 100644 index 0000000000..87f322d69d --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineProp_B/script-setup-generic.vue @@ -0,0 +1,21 @@ + + + diff --git a/test-workspace/tsc/vue3.5/defineProp_B/script-setup.vue b/test-workspace/tsc/vue3.5/defineProp_B/script-setup.vue new file mode 100644 index 0000000000..1ee130a577 --- /dev/null +++ b/test-workspace/tsc/vue3.5/defineProp_B/script-setup.vue @@ -0,0 +1,22 @@ + + + diff --git a/test-workspace/tsc/vue3.5/env.d.ts b/test-workspace/tsc/vue3.5/env.d.ts new file mode 100644 index 0000000000..6920d23218 --- /dev/null +++ b/test-workspace/tsc/vue3.5/env.d.ts @@ -0,0 +1,3 @@ +declare module 'vue' { + export * from 'vue3.5'; +} diff --git a/test-workspace/tsc/vue3.5/tsconfig.json b/test-workspace/tsc/vue3.5/tsconfig.json new file mode 100644 index 0000000000..87f184a8cd --- /dev/null +++ b/test-workspace/tsc/vue3.5/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "vueCompilerOptions": { + "target": 3.5, + }, + "include": [ + "**/*" + ], +} diff --git a/test-workspace/tsc/vue3/#1855/child.vue b/test-workspace/tsc/vue3/#1855/child.vue index f679f09a0c..320cfdb7fa 100644 --- a/test-workspace/tsc/vue3/#1855/child.vue +++ b/test-workspace/tsc/vue3/#1855/child.vue @@ -1,5 +1,5 @@ + +