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 @@
+
+
+
+ exactType(x, {} as string)"
+ @update:c="(x) => exactType(x, {} as number)"
+ @update:d="(x) => exactType(x, {} as number)"
+ @update:e="(x) => exactType(x, {} as string)"
+ @update:f="(x) => exactType(x, {} as string)"
+ @update:g="(x) => exactType(x, {} as string)"
+ />
+
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 @@
+
+
+
+ {{ exactType($props.modelValue, {} as string | undefined) }}
+
+ {{ exactType($props.c, {} as number) }}
+ {{ exactType($props.d, {} as number | undefined) }}
+ {{ exactType($props.e, {} as string | undefined) }}
+ {{ exactType($props.f, {} as string) }}
+ {{ exactType($props.g, {} as string | undefined) }}
+
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 @@
+
+
+
+ {{ exactType(a, {} as T | undefined) }}
+ {{ exactType(b, {} as T | undefined) }}
+ {{ exactType(c, {} as T | undefined) }}
+
+
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 @@
+
+
+
+ {{ exactType(a, {} as string | undefined) }}
+ {{ exactType(b, {} as string) }}
+ {{ exactType(c, {} as number) }}
+ {{ exactType(d, {} as number) }}
+ {{ exactType(e, {} as string | undefined) }}
+ {{ exactType(f, {} as string) }}
+ {{ exactType(g, {} as string | undefined) }}
+
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 @@
+
+
+
+
+
+
+