From 33db74c4f84b0bb69259fbbe3cef18a297c3abf1 Mon Sep 17 00:00:00 2001 From: so1ve Date: Tue, 2 Jan 2024 16:17:13 +0800 Subject: [PATCH 1/7] fix --- .../language-core/src/generators/script.ts | 8 +++++++- test-workspace/tsc/vue3/#3779/main.vue | 10 ++++++++++ test-workspace/tsc/vue3/#3779/named.vue | 10 ++++++++++ test-workspace/tsc/vue3/#3820/main.vue | 19 +++++++++++++++++++ 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 test-workspace/tsc/vue3/#3779/main.vue create mode 100644 test-workspace/tsc/vue3/#3779/named.vue create mode 100644 test-workspace/tsc/vue3/#3820/main.vue diff --git a/packages/language-core/src/generators/script.ts b/packages/language-core/src/generators/script.ts index 79ffc712b0..d5f1a21b21 100644 --- a/packages/language-core/src/generators/script.ts +++ b/packages/language-core/src/generators/script.ts @@ -977,7 +977,13 @@ type __VLS_PrettifyGlobal = { [K in keyof T]: T[K]; } & {}; yield _(`>;\n`); } } - yield _(`};\n`); + yield _(`}`); + + if (bindingNames.size !== 0 && scriptSetupRanges?.props.define) { + yield _(` & Omit `'${name}'`).join(' | ')}>`); + } + + yield _(`;\n`); /* Components */ yield _(`/* Components */\n`); diff --git a/test-workspace/tsc/vue3/#3779/main.vue b/test-workspace/tsc/vue3/#3779/main.vue new file mode 100644 index 0000000000..eb9bac551f --- /dev/null +++ b/test-workspace/tsc/vue3/#3779/main.vue @@ -0,0 +1,10 @@ + + + diff --git a/test-workspace/tsc/vue3/#3779/named.vue b/test-workspace/tsc/vue3/#3779/named.vue new file mode 100644 index 0000000000..0af7707c82 --- /dev/null +++ b/test-workspace/tsc/vue3/#3779/named.vue @@ -0,0 +1,10 @@ + + + diff --git a/test-workspace/tsc/vue3/#3820/main.vue b/test-workspace/tsc/vue3/#3820/main.vue new file mode 100644 index 0000000000..4c9321df33 --- /dev/null +++ b/test-workspace/tsc/vue3/#3820/main.vue @@ -0,0 +1,19 @@ + + + From f8bbcc462c631371c2bed44a0e2caab614586578 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Wed, 1 May 2024 05:34:13 +0800 Subject: [PATCH 2/7] Fixes --- package.json | 9 + .../lib/codegen/script/component.ts | 4 +- pnpm-lock.yaml | 162 ++++++++---------- test-workspace/tsc/vue3/#3779/main.vue | 2 +- 4 files changed, 87 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index f43172cde2..bd76201d7c 100644 --- a/package.json +++ b/package.json @@ -27,5 +27,14 @@ "typescript": "latest", "vite": "latest", "vitest": "latest" + }, + "pnpm": { + "overrides": { + "@vue/runtime-dom": "alpha", + "@vue/shared": "alpha", + "@vue/compiler-dom": "alpha", + "@vue/compiler-sfc": "alpha", + "vue": "alpha" + } } } diff --git a/packages/language-core/lib/codegen/script/component.ts b/packages/language-core/lib/codegen/script/component.ts index 27b9caa457..c4d3d0095a 100644 --- a/packages/language-core/lib/codegen/script/component.ts +++ b/packages/language-core/lib/codegen/script/component.ts @@ -117,10 +117,10 @@ export function* generateScriptSetupOptions( if (options.vueCompilerOptions.target >= 3.5) { // https://github.com/vuejs/core/pull/10801 if (scriptSetupRanges.props.define?.typeArg) { - yield `__typeProps: typeof __VLS_typeProps,${newLine}`; + yield `__typeProps: __VLS_typeProps,${newLine}`; } if (scriptSetupRanges.emits.define?.typeArg) { - yield `__typeEmits: typeof ${scriptSetupRanges.emits.name ?? '__VLS_emit'},${newLine}`; + yield `__typeEmits: ${scriptSetupRanges.emits.name ?? '__VLS_emit'},${newLine}`; } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2cbe30719..f6500d7fe9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,13 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@vue/runtime-dom': alpha + '@vue/shared': alpha + '@vue/compiler-dom': alpha + '@vue/compiler-sfc': alpha + vue: alpha + importers: .: @@ -102,11 +109,11 @@ importers: specifier: 2.2.0-alpha.12 version: 2.2.0-alpha.12 '@vue/compiler-dom': - specifier: ^3.4.0 - version: 3.4.26 + specifier: alpha + version: 3.5.0-alpha.1 '@vue/shared': - specifier: ^3.4.0 - version: 3.4.26 + specifier: alpha + version: 3.5.0-alpha.1 computeds: specifier: ^0.0.1 version: 0.0.1 @@ -133,8 +140,8 @@ importers: specifier: ^1.0.1 version: 1.0.2 '@vue/compiler-sfc': - specifier: ^3.4.0 - version: 3.4.26 + specifier: alpha + version: 3.5.0-alpha.1 packages/language-plugin-pug: dependencies: @@ -185,14 +192,14 @@ importers: specifier: 2.2.0-alpha.12 version: 2.2.0-alpha.12 '@vue/compiler-dom': - specifier: ^3.4.0 - version: 3.4.26 + specifier: alpha + version: 3.5.0-alpha.1 '@vue/language-core': specifier: 2.0.15 version: link:../language-core '@vue/shared': - specifier: ^3.4.0 - version: 3.4.26 + specifier: alpha + version: 3.5.0-alpha.1 '@vue/typescript-plugin': specifier: 2.0.15 version: link:../typescript-plugin @@ -277,8 +284,8 @@ importers: specifier: 2.0.15 version: link:../language-core '@vue/shared': - specifier: ^3.4.0 - version: 3.4.26 + specifier: alpha + version: 3.5.0-alpha.1 devDependencies: '@types/node': specifier: latest @@ -287,8 +294,8 @@ importers: test-workspace: devDependencies: vue: - specifier: ^3.4.0 - version: 3.4.26(typescript@5.4.5) + specifier: alpha + version: 3.5.0-alpha.1(typescript@5.4.5) vue-component-type-helpers: specifier: 2.0.15 version: link:../packages/component-type-helpers @@ -1010,37 +1017,34 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - '@vue/compiler-core@3.4.26': - resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==} - - '@vue/compiler-dom@3.4.26': - resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==} + '@vue/compiler-core@3.5.0-alpha.1': + resolution: {integrity: sha512-3LuZ61zyNLKqYSTRYd6FSi/SKKeNenagISxdMi+hOXsX2fqwduIym1yXaExN5J4YqABmVY1PUdLpngbHAwOddA==} - '@vue/compiler-sfc@2.7.16': - resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} + '@vue/compiler-dom@3.5.0-alpha.1': + resolution: {integrity: sha512-WIlcl+czQeKa8SV4VDDeUJJfRTeUuYt1akuxslos3XR9BwVHHCsrUr3ZlXUiKVqn0jA2Il62Q+9yKDcaOW9Prw==} - '@vue/compiler-sfc@3.4.26': - resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==} + '@vue/compiler-sfc@3.5.0-alpha.1': + resolution: {integrity: sha512-gU1ctcyg/iGU4Myqv7MACEFqcSnQNcErBiLRsg8VRM8/I4zslEc5onQfFcYpxNVypNOy3m98qoDH5jNZPWkexQ==} - '@vue/compiler-ssr@3.4.26': - resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==} + '@vue/compiler-ssr@3.5.0-alpha.1': + resolution: {integrity: sha512-m17eU6J4oVIeAgCcIxkZzIl/jnm0ToLcjvT+f36x2SVfl+t5X1o//SkMz74uaY9YF/zJIKmbaRMUINJrthKEeg==} - '@vue/reactivity@3.4.26': - resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==} + '@vue/reactivity@3.5.0-alpha.1': + resolution: {integrity: sha512-TjHuPXDH65F1UtUpZp35dllbV1HV9UtZ1uuuSaEF37ffQ9gmLZ0VBoA+dc4/3SiRjq9LnxN2+KguE1Ppm5oRQg==} - '@vue/runtime-core@3.4.26': - resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==} + '@vue/runtime-core@3.5.0-alpha.1': + resolution: {integrity: sha512-o/t6CVyXxJz/Quq2dK9BS1cwsHMvzqL3UD5t4eJuFEpD3+TKwcWxkxH6rDBjPUjvAI39rQiT9Kzjpmqa67Ghow==} - '@vue/runtime-dom@3.4.26': - resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==} + '@vue/runtime-dom@3.5.0-alpha.1': + resolution: {integrity: sha512-Xav+IolYTXP7whSQhWwj+qZLgoLTDta4QtToIXwe5I+cW2gfVo8K6P9LkYJX53uabtViyc0YuTdiAn7m9xlp3A==} - '@vue/server-renderer@3.4.26': - resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==} + '@vue/server-renderer@3.5.0-alpha.1': + resolution: {integrity: sha512-0Mp0FE+e0ngJeR7apVOXJp0FQxBJV+grFhKHl5U3S0vqmVvjmoVmwbG0PSjgbuM6rBaahIcmRWae2fznbZ2Rsw==} peerDependencies: - vue: 3.4.26 + vue: alpha - '@vue/shared@3.4.26': - resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==} + '@vue/shared@3.5.0-alpha.1': + resolution: {integrity: sha512-l/XzbyDZaIop+PnACclDD+sPs+PBpeeiWIPNfZTI7TE9faML/usFpb7UpKJDe5mutQoTtC/o5RFwr696EV05QQ==} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -2451,11 +2455,6 @@ packages: engines: {node: '>=10'} hasBin: true - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3090,8 +3089,8 @@ packages: resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. - vue@3.4.26: - resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==} + vue@3.5.0-alpha.1: + resolution: {integrity: sha512-p3Qmnb/OqJI3idyywcvCxKMIo8UCHsqeVovjrWWKYqFTYHWtXG4zSvM0LCnAq4uETMkR0AHvxY0zPLQwhmneBA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3928,66 +3927,58 @@ snapshots: '@vscode/l10n@0.0.18': {} - '@vue/compiler-core@3.4.26': + '@vue/compiler-core@3.5.0-alpha.1': dependencies: '@babel/parser': 7.24.5 - '@vue/shared': 3.4.26 + '@vue/shared': 3.5.0-alpha.1 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.26': + '@vue/compiler-dom@3.5.0-alpha.1': dependencies: - '@vue/compiler-core': 3.4.26 - '@vue/shared': 3.4.26 + '@vue/compiler-core': 3.5.0-alpha.1 + '@vue/shared': 3.5.0-alpha.1 - '@vue/compiler-sfc@2.7.16': + '@vue/compiler-sfc@3.5.0-alpha.1': dependencies: '@babel/parser': 7.24.5 - postcss: 8.4.38 - source-map: 0.6.1 - optionalDependencies: - prettier: 2.8.8 - - '@vue/compiler-sfc@3.4.26': - dependencies: - '@babel/parser': 7.24.5 - '@vue/compiler-core': 3.4.26 - '@vue/compiler-dom': 3.4.26 - '@vue/compiler-ssr': 3.4.26 - '@vue/shared': 3.4.26 + '@vue/compiler-core': 3.5.0-alpha.1 + '@vue/compiler-dom': 3.5.0-alpha.1 + '@vue/compiler-ssr': 3.5.0-alpha.1 + '@vue/shared': 3.5.0-alpha.1 estree-walker: 2.0.2 magic-string: 0.30.10 postcss: 8.4.38 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.26': + '@vue/compiler-ssr@3.5.0-alpha.1': dependencies: - '@vue/compiler-dom': 3.4.26 - '@vue/shared': 3.4.26 + '@vue/compiler-dom': 3.5.0-alpha.1 + '@vue/shared': 3.5.0-alpha.1 - '@vue/reactivity@3.4.26': + '@vue/reactivity@3.5.0-alpha.1': dependencies: - '@vue/shared': 3.4.26 + '@vue/shared': 3.5.0-alpha.1 - '@vue/runtime-core@3.4.26': + '@vue/runtime-core@3.5.0-alpha.1': dependencies: - '@vue/reactivity': 3.4.26 - '@vue/shared': 3.4.26 + '@vue/reactivity': 3.5.0-alpha.1 + '@vue/shared': 3.5.0-alpha.1 - '@vue/runtime-dom@3.4.26': + '@vue/runtime-dom@3.5.0-alpha.1': dependencies: - '@vue/runtime-core': 3.4.26 - '@vue/shared': 3.4.26 + '@vue/runtime-core': 3.5.0-alpha.1 + '@vue/shared': 3.5.0-alpha.1 csstype: 3.1.3 - '@vue/server-renderer@3.4.26(vue@3.4.26(typescript@5.4.5))': + '@vue/server-renderer@3.5.0-alpha.1(vue@3.5.0-alpha.1(typescript@5.4.5))': dependencies: - '@vue/compiler-ssr': 3.4.26 - '@vue/shared': 3.4.26 - vue: 3.4.26(typescript@5.4.5) + '@vue/compiler-ssr': 3.5.0-alpha.1 + '@vue/shared': 3.5.0-alpha.1 + vue: 3.5.0-alpha.1(typescript@5.4.5) - '@vue/shared@3.4.26': {} + '@vue/shared@3.5.0-alpha.1': {} JSONStream@1.3.5: dependencies: @@ -5508,9 +5499,6 @@ snapshots: tar-fs: 2.1.1 tunnel-agent: 0.6.0 - prettier@2.8.8: - optional: true - pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -6170,16 +6158,16 @@ snapshots: vue@2.7.16: dependencies: - '@vue/compiler-sfc': 2.7.16 + '@vue/compiler-sfc': 3.5.0-alpha.1 csstype: 3.1.3 - vue@3.4.26(typescript@5.4.5): + vue@3.5.0-alpha.1(typescript@5.4.5): dependencies: - '@vue/compiler-dom': 3.4.26 - '@vue/compiler-sfc': 3.4.26 - '@vue/runtime-dom': 3.4.26 - '@vue/server-renderer': 3.4.26(vue@3.4.26(typescript@5.4.5)) - '@vue/shared': 3.4.26 + '@vue/compiler-dom': 3.5.0-alpha.1 + '@vue/compiler-sfc': 3.5.0-alpha.1 + '@vue/runtime-dom': 3.5.0-alpha.1 + '@vue/server-renderer': 3.5.0-alpha.1(vue@3.5.0-alpha.1(typescript@5.4.5)) + '@vue/shared': 3.5.0-alpha.1 optionalDependencies: typescript: 5.4.5 diff --git a/test-workspace/tsc/vue3/#3779/main.vue b/test-workspace/tsc/vue3/#3779/main.vue index eb9bac551f..5fcef0b240 100644 --- a/test-workspace/tsc/vue3/#3779/main.vue +++ b/test-workspace/tsc/vue3/#3779/main.vue @@ -6,5 +6,5 @@ defineProps<{ From abc5168b02483d0818543f71f755d018a4a8780d Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Sat, 20 Jul 2024 19:10:18 +0800 Subject: [PATCH 3/7] Update pnpm-lock.yaml --- pnpm-lock.yaml | 353 ++++++++++++++----------------------------------- 1 file changed, 101 insertions(+), 252 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 775b2df64b..5c42398864 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,12 @@ settings: excludeLinksFromLockfile: false overrides: + '@vue/runtime-dom': alpha + '@vue/shared': alpha + '@vue/compiler-dom': alpha + '@vue/compiler-sfc': alpha inquirer: 9.2.23 + vue: alpha importers: @@ -105,11 +110,11 @@ importers: specifier: ~2.4.0-alpha.15 version: 2.4.0-alpha.15 '@vue/compiler-dom': - specifier: ^3.4.0 - version: 3.4.31 + specifier: alpha + version: 3.5.0-alpha.3 '@vue/shared': - specifier: ^3.4.0 - version: 3.4.31 + specifier: alpha + version: 3.5.0-alpha.3 computeds: specifier: ^0.0.1 version: 0.0.1 @@ -142,8 +147,8 @@ importers: specifier: ~2.4.0-alpha.15 version: 2.4.0-alpha.15 '@vue/compiler-sfc': - specifier: ^3.4.0 - version: 3.4.31 + specifier: alpha + version: 3.5.0-alpha.3 packages/language-plugin-pug: dependencies: @@ -197,14 +202,14 @@ importers: specifier: ~2.4.0-alpha.15 version: 2.4.0-alpha.15 '@vue/compiler-dom': - specifier: ^3.4.0 - version: 3.4.31 + specifier: alpha + version: 3.5.0-alpha.3 '@vue/language-core': specifier: 2.0.26 version: link:../language-core '@vue/shared': - specifier: ^3.4.0 - version: 3.4.31 + specifier: alpha + version: 3.5.0-alpha.3 '@vue/typescript-plugin': specifier: 2.0.26 version: link:../typescript-plugin @@ -289,8 +294,8 @@ importers: specifier: 2.0.26 version: link:../language-core '@vue/shared': - specifier: ^3.4.0 - version: 3.4.31 + specifier: alpha + version: 3.5.0-alpha.3 devDependencies: '@types/node': specifier: latest @@ -299,8 +304,8 @@ importers: test-workspace: devDependencies: vue: - specifier: ^3.4.0 - version: 3.4.31(typescript@5.5.3) + specifier: alpha + version: 3.5.0-alpha.3(typescript@5.5.3) vue-component-type-helpers: specifier: 2.0.26 version: link:../packages/component-type-helpers @@ -892,98 +897,50 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - '@vue/compiler-core@3.3.13': - resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==} + '@vue/compiler-core@3.5.0-alpha.3': + resolution: {integrity: sha512-du7iRe9SE5HJ8XGaVtN4OnVsBuslCOINZUiRYykJjDvJERdjDcJglJ4YTfi0gmG80p6TmzQSXxPuBVT/JlqpuQ==} - '@vue/compiler-core@3.4.31': - resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} + '@vue/compiler-dom@3.5.0-alpha.3': + resolution: {integrity: sha512-SL/lSqZ/LgiFEyix1Z3SqvRvd1hfZqQ0RfaH0wRDLv/2lkqswl4qxnqFBEChoWS0BpMBIMkAmrAha7xIhELKug==} - '@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==} - - '@vue/compiler-sfc@3.3.13': - resolution: {integrity: sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==} - - '@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-sfc@3.5.0-alpha.3': + resolution: {integrity: sha512-UVs18nFL365hea2P9iOHvQDBB8eZxymhGmEol6YMbwB3DjhOcGyzscVixRin/kNHyPr5dEKjRUKcfxwZ03a+9A==} '@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==} - - '@vue/reactivity@3.3.13': - resolution: {integrity: sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==} - - '@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/compiler-ssr@3.5.0-alpha.3': + resolution: {integrity: sha512-cATOOLUjg9W86ZMT87DPsi3W4BZUZIIrIGZEUrRcC91lWs00PTtXiWxhQF4QGpxKpGLPr9GK3E2z5SeQWlk5Zw==} - '@vue/runtime-core@3.4.31': - resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==} + '@vue/reactivity@3.5.0-alpha.3': + resolution: {integrity: sha512-Ju0okU4JHdBsxxu7RR3qOMssg4G11KX5vhmlyOwpH3bssp1fYZWQ9qyz+iadtOVsomc+b3WG0Jdx1KFgrGMHcg==} - '@vue/runtime-core@3.5.0-alpha.2': - resolution: {integrity: sha512-59R12UzEhqEOlItt6yKOoTyQ+Hx2hqFPKmdYPT9VAYmLH+ABngjrvw9KuJT9OsR+f4q/NwmCAAvjXV4gC56/cg==} + '@vue/runtime-core@3.5.0-alpha.3': + resolution: {integrity: sha512-RWo7KGycr0IIj1hjJ6xe5gsTeEMkhsW9wWc+lU4r8t7Tbg90F/wjBOcIXzFKhqI5+o9dExgozRhTYwrchbx/6g==} - '@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/runtime-dom@3.5.0-alpha.3': + resolution: {integrity: sha512-IOM5wRRnEPYU2USpLtG1VbTyMkyj9Dk2xGnHKnqtjy/4Wdnp1pXifCTfa37rnFPZFAbKeXRJT74dLMdRIyH9Kw==} '@vue/server-renderer@3.3.13': resolution: {integrity: sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==} peerDependencies: - vue: 3.3.13 - - '@vue/server-renderer@3.4.31': - resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==} - peerDependencies: - vue: 3.4.31 + vue: alpha '@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: alpha - '@vue/shared@3.4.31': - resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==} + '@vue/server-renderer@3.5.0-alpha.3': + resolution: {integrity: sha512-w2ZOu7Q64BSotuyKReFEq5p/G0U1txTVgOsKq6+bTo3kPcUBYZV9yVCaePVf9kcU5tqjZoje5UBzNExe5DzZ3A==} + peerDependencies: + vue: alpha - '@vue/shared@3.5.0-alpha.2': - resolution: {integrity: sha512-PMOD/qZfwNGE1xpz92Q7YtcGzz2JtvULSb4HIvv3N0idMAlIKmnzkIvsB0EhosPnJWe5O+xDe+DKmr6fIKu7HQ==} + '@vue/shared@3.5.0-alpha.3': + resolution: {integrity: sha512-TOd0zMchrmWoSWNddkx30wHTVRBkzemhgmbXMBUURv6HuyuddlVyqCMLDmYiklEurers3ILRp+e3b5QN838+kg==} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -2379,11 +2336,6 @@ packages: engines: {node: '>=10'} hasBin: true - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3021,16 +2973,16 @@ packages: typescript: optional: true - vue@3.4.31: - resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==} + vue@3.5.0-alpha.2: + resolution: {integrity: sha512-dyhWA95ko++OlThqFNptBXiVFihKPfZ2487FKSYiB1X7LK1DX6AOjEfxbJdzupoNSOuHDVJIzOvcrBeyChX4vA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - vue@3.5.0-alpha.2: - resolution: {integrity: sha512-dyhWA95ko++OlThqFNptBXiVFihKPfZ2487FKSYiB1X7LK1DX6AOjEfxbJdzupoNSOuHDVJIzOvcrBeyChX4vA==} + vue@3.5.0-alpha.3: + resolution: {integrity: sha512-VrCHKUgxsiGMO1SCSrS9yHLwJYAwRrbKqrHdd32ruAWnMC5GVnbrjcrcMuvw5RnrfUc+9y7pBXpVbiO6+WsyMQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3807,84 +3759,26 @@ snapshots: '@vscode/l10n@0.0.18': {} - '@vue/compiler-core@3.3.13': - dependencies: - '@babel/parser': 7.24.7 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - - '@vue/compiler-core@3.4.31': - dependencies: - '@babel/parser': 7.24.7 - '@vue/shared': 3.4.31 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - - '@vue/compiler-core@3.5.0-alpha.2': + '@vue/compiler-core@3.5.0-alpha.3': dependencies: '@babel/parser': 7.24.7 - '@vue/shared': 3.5.0-alpha.2 + '@vue/shared': 3.5.0-alpha.3 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 - '@vue/shared': 3.3.13 - - '@vue/compiler-dom@3.4.31': - dependencies: - '@vue/compiler-core': 3.4.31 - '@vue/shared': 3.4.31 - - '@vue/compiler-dom@3.5.0-alpha.2': + '@vue/compiler-dom@3.5.0-alpha.3': dependencies: - '@vue/compiler-core': 3.5.0-alpha.2 - '@vue/shared': 3.5.0-alpha.2 + '@vue/compiler-core': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 - '@vue/compiler-sfc@2.7.16': + '@vue/compiler-sfc@3.5.0-alpha.3': dependencies: '@babel/parser': 7.24.7 - postcss: 8.4.39 - source-map: 0.6.1 - optionalDependencies: - prettier: 2.8.8 - - '@vue/compiler-sfc@3.3.13': - dependencies: - '@babel/parser': 7.24.7 - '@vue/compiler-core': 3.3.13 - '@vue/compiler-dom': 3.3.13 - '@vue/compiler-ssr': 3.3.13 - '@vue/reactivity-transform': 3.3.13 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - magic-string: 0.30.10 - postcss: 8.4.39 - source-map-js: 1.2.0 - - '@vue/compiler-sfc@3.4.31': - dependencies: - '@babel/parser': 7.24.7 - '@vue/compiler-core': 3.4.31 - '@vue/compiler-dom': 3.4.31 - '@vue/compiler-ssr': 3.4.31 - '@vue/shared': 3.4.31 - estree-walker: 2.0.2 - magic-string: 0.30.10 - 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 + '@vue/compiler-core': 3.5.0-alpha.3 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/compiler-ssr': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 estree-walker: 2.0.2 magic-string: 0.30.10 postcss: 8.4.39 @@ -3892,96 +3786,54 @@ snapshots: '@vue/compiler-ssr@3.3.13': dependencies: - '@vue/compiler-dom': 3.3.13 - '@vue/shared': 3.3.13 - - '@vue/compiler-ssr@3.4.31': - dependencies: - '@vue/compiler-dom': 3.4.31 - '@vue/shared': 3.4.31 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 '@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 - '@vue/compiler-core': 3.3.13 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - magic-string: 0.30.10 - - '@vue/reactivity@3.3.13': - dependencies: - '@vue/shared': 3.3.13 - - '@vue/reactivity@3.4.31': - 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 - '@vue/shared': 3.3.13 - - '@vue/runtime-core@3.4.31': - dependencies: - '@vue/reactivity': 3.4.31 - '@vue/shared': 3.4.31 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 - '@vue/runtime-core@3.5.0-alpha.2': + '@vue/compiler-ssr@3.5.0-alpha.3': dependencies: - '@vue/reactivity': 3.5.0-alpha.2 - '@vue/shared': 3.5.0-alpha.2 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 - '@vue/runtime-dom@3.3.13': + '@vue/reactivity@3.5.0-alpha.3': dependencies: - '@vue/runtime-core': 3.3.13 - '@vue/shared': 3.3.13 - csstype: 3.1.3 + '@vue/shared': 3.5.0-alpha.3 - '@vue/runtime-dom@3.4.31': + '@vue/runtime-core@3.5.0-alpha.3': dependencies: - '@vue/reactivity': 3.4.31 - '@vue/runtime-core': 3.4.31 - '@vue/shared': 3.4.31 - csstype: 3.1.3 + '@vue/reactivity': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 - '@vue/runtime-dom@3.5.0-alpha.2': + '@vue/runtime-dom@3.5.0-alpha.3': dependencies: - '@vue/runtime-core': 3.5.0-alpha.2 - '@vue/shared': 3.5.0-alpha.2 + '@vue/reactivity': 3.5.0-alpha.3 + '@vue/runtime-core': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 csstype: 3.1.3 - '@vue/server-renderer@3.3.13(vue@3.4.31(typescript@5.5.3))': + '@vue/server-renderer@3.3.13(vue@3.5.0-alpha.3(typescript@5.5.3))': dependencies: '@vue/compiler-ssr': 3.3.13 - '@vue/shared': 3.3.13 - vue: 3.4.31(typescript@5.5.3) + '@vue/shared': 3.5.0-alpha.3 + vue: 3.5.0-alpha.3(typescript@5.5.3) - '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3))': - dependencies: - '@vue/compiler-ssr': 3.4.31 - '@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))': + '@vue/server-renderer@3.5.0-alpha.2(vue@3.5.0-alpha.3(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.5.0-alpha.3 + vue: 3.5.0-alpha.3(typescript@5.5.3) - '@vue/shared@3.4.31': {} + '@vue/server-renderer@3.5.0-alpha.3(vue@3.5.0-alpha.3(typescript@5.5.3))': + dependencies: + '@vue/compiler-ssr': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 + vue: 3.5.0-alpha.3(typescript@5.5.3) - '@vue/shared@3.5.0-alpha.2': {} + '@vue/shared@3.5.0-alpha.3': {} JSONStream@1.3.5: dependencies: @@ -5447,9 +5299,6 @@ snapshots: tar-fs: 2.1.1 tunnel-agent: 0.6.0 - prettier@2.8.8: - optional: true - pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 @@ -6104,36 +5953,36 @@ snapshots: vue@2.7.16: dependencies: - '@vue/compiler-sfc': 2.7.16 + '@vue/compiler-sfc': 3.5.0-alpha.3 csstype: 3.1.3 vue@3.3.13(typescript@5.5.3): dependencies: - '@vue/compiler-dom': 3.3.13 - '@vue/compiler-sfc': 3.3.13 - '@vue/runtime-dom': 3.3.13 - '@vue/server-renderer': 3.3.13(vue@3.4.31(typescript@5.5.3)) - '@vue/shared': 3.3.13 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/compiler-sfc': 3.5.0-alpha.3 + '@vue/runtime-dom': 3.5.0-alpha.3 + '@vue/server-renderer': 3.3.13(vue@3.5.0-alpha.3(typescript@5.5.3)) + '@vue/shared': 3.5.0-alpha.3 optionalDependencies: typescript: 5.5.3 - vue@3.4.31(typescript@5.5.3): + vue@3.5.0-alpha.2(typescript@5.5.3): dependencies: - '@vue/compiler-dom': 3.4.31 - '@vue/compiler-sfc': 3.4.31 - '@vue/runtime-dom': 3.4.31 - '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.3)) - '@vue/shared': 3.4.31 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/compiler-sfc': 3.5.0-alpha.3 + '@vue/runtime-dom': 3.5.0-alpha.3 + '@vue/server-renderer': 3.5.0-alpha.2(vue@3.5.0-alpha.3(typescript@5.5.3)) + '@vue/shared': 3.5.0-alpha.3 optionalDependencies: typescript: 5.5.3 - vue@3.5.0-alpha.2(typescript@5.5.3): + vue@3.5.0-alpha.3(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 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/compiler-sfc': 3.5.0-alpha.3 + '@vue/runtime-dom': 3.5.0-alpha.3 + '@vue/server-renderer': 3.5.0-alpha.3(vue@3.5.0-alpha.3(typescript@5.5.3)) + '@vue/shared': 3.5.0-alpha.3 optionalDependencies: typescript: 5.5.3 From 861b4332e45024210b4aa98a82979fa448d4aee1 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Mon, 26 Aug 2024 00:02:54 +0800 Subject: [PATCH 4/7] updates --- package.json | 7 +- .../language-server/tests/completions.spec.ts | 3 +- .../tsc/tests/__snapshots__/dts.spec.ts.snap | 234 +++++------------ packages/tsc/tests/typecheck.spec.ts | 16 +- pnpm-lock.yaml | 238 +++++------------- test-workspace/package.json | 5 +- .../tsc/passedFixtures/vue2/tsconfig.json | 2 +- .../{vue3.5 => vue3.4}/components/main.vue | 27 +- .../components/script-setup-default-props.vue | 0 .../components/script-setup-expose.vue | 0 .../components/script-setup-generic.vue | 0 .../components/script-setup-type-only.vue | 0 .../components/script-setup.vue | 0 .../{vue3.5 => vue3.4}/defineModel/main.vue | 30 +-- .../defineModel/script-setup.vue | 0 .../{vue3.5 => vue3.4}/defineProp_B/main.vue | 18 +- .../defineProp_B/script-setup-generic.vue | 0 .../defineProp_B/script-setup.vue | 0 .../{vue3.3 => vue3.4}/env.d.ts | 2 +- .../{vue3.3 => vue3.4}/tsconfig.json | 6 +- .../tsc/passedFixtures/vue3.5/env.d.ts | 3 - .../tsc/passedFixtures/vue3.5/tsconfig.json | 9 - .../passedFixtures/vue3/components/main.vue | 27 +- .../passedFixtures/vue3/defineModel/main.vue | 30 +-- .../passedFixtures/vue3/defineProp_B/main.vue | 18 +- test-workspace/tsc/tsconfig.json | 3 +- 26 files changed, 229 insertions(+), 449 deletions(-) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/components/main.vue (87%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/components/script-setup-default-props.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/components/script-setup-expose.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/components/script-setup-generic.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/components/script-setup-type-only.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/components/script-setup.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/defineModel/main.vue (55%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/defineModel/script-setup.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/defineProp_B/main.vue (75%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/defineProp_B/script-setup-generic.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.5 => vue3.4}/defineProp_B/script-setup.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.3 => vue3.4}/env.d.ts (50%) rename test-workspace/tsc/passedFixtures/{vue3.3 => vue3.4}/tsconfig.json (62%) delete mode 100644 test-workspace/tsc/passedFixtures/vue3.5/env.d.ts delete mode 100644 test-workspace/tsc/passedFixtures/vue3.5/tsconfig.json diff --git a/package.json b/package.json index cf3aebd3bf..2e95edd2db 100644 --- a/package.json +++ b/package.json @@ -40,13 +40,8 @@ "@volar/test-utils": "https://pkg.pr.new/volarjs/volar.js/@volar/test-utils@28cbdee", "@volar/typescript": "https://pkg.pr.new/volarjs/volar.js/@volar/typescript@28cbdee", "@volar/vscode": "https://pkg.pr.new/volarjs/volar.js/@volar/vscode@28cbdee", - "@vue/runtime-dom": "beta", - "@vue/shared": "beta", - "@vue/compiler-dom": "beta", - "@vue/compiler-sfc": "beta", "volar-service-typescript": "https://pkg.pr.new/volarjs/services/volar-service-typescript@177b9ed", - "inquirer": "9.2.23", - "vue": "beta" + "inquirer": "9.2.23" } } } diff --git a/packages/language-server/tests/completions.spec.ts b/packages/language-server/tests/completions.spec.ts index 9323cef6f0..9cbe3a39bd 100644 --- a/packages/language-server/tests/completions.spec.ts +++ b/packages/language-server/tests/completions.spec.ts @@ -155,6 +155,7 @@ describe('Completions', async () => { "slot", "template", "fixture", + "BaseTransition", ] `); }); @@ -306,7 +307,7 @@ describe('Completions', async () => { }, ], "detail": "Add import from "./ComponentForAutoImport.vue" - (property) default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly>, {}, {}>", + (property) default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}>, ... 7 more ..., {}>", "documentation": { "kind": "markdown", "value": "", diff --git a/packages/tsc/tests/__snapshots__/dts.spec.ts.snap b/packages/tsc/tests/__snapshots__/dts.spec.ts.snap index cb65071221..6130cbaffd 100644 --- a/packages/tsc/tests/__snapshots__/dts.spec.ts.snap +++ b/packages/tsc/tests/__snapshots__/dts.spec.ts.snap @@ -5,7 +5,7 @@ exports[`vue-tsc-dts > Input: #4577/main.vue, Output: #4577/main.vue.d.ts 1`] = value: string; }; declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ - props: __VLS_Prettify & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly>, never>, never> & { + props: __VLS_Prettify & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{}>, never>, never> & { nonGeneric: string; rows: Row[]; }> & (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps); @@ -47,13 +47,13 @@ export default _default; `; exports[`vue-tsc-dts > Input: empty-component/component.vue, Output: empty-component/component.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; +"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; exports[`vue-tsc-dts > Input: empty-component/custom-extension-component.cext, Output: empty-component/custom-extension-component.cext.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; +"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; @@ -61,9 +61,9 @@ export default _default; exports[`vue-tsc-dts > Input: events/component-class.vue, Output: events/component-class.vue.d.ts 1`] = ` "declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { foo: (value: string) => void; -}, string, import("vue").PublicProps, Readonly> & { +}, string, import("vue").PublicProps, Readonly<{ onFoo?: (value: string) => any; -}, {}, {}>; +}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; @@ -71,10 +71,10 @@ export default _default; exports[`vue-tsc-dts > Input: events/component-generic.vue, Output: events/component-generic.vue.d.ts 1`] = ` "declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_Prettify & Omit<{ + readonly onFoo?: (value: string) => any; + } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{ onFoo?: (value: string) => any; - } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly> & { - onFoo?: (value: string) => any; - }, never>, "onFoo"> & {}> & (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps); + }>, never>, "onFoo"> & {}> & (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps); expose(exposed: import("vue").ShallowUnwrapRef<{}>): void; attrs: any; slots: ReturnType<() => {}>; @@ -94,12 +94,12 @@ type __VLS_Prettify = { exports[`vue-tsc-dts > Input: generic/component.vue, Output: generic/component.vue.d.ts 1`] = ` "declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_Prettify & Omit<{ + readonly "onUpdate:title"?: (title: string) => any; + readonly onBar?: (data: number) => any; + } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{ "onUpdate:title"?: (title: string) => any; onBar?: (data: number) => any; - } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly> & { - "onUpdate:title"?: (title: string) => any; - onBar?: (data: number) => any; - }, never>, "onUpdate:title" | "onBar"> & ({ + }>, never>, "onUpdate:title" | "onBar"> & ({ title?: string; } & { foo: number; @@ -133,12 +133,12 @@ type __VLS_Prettify = { exports[`vue-tsc-dts > Input: generic/custom-extension-component.cext, Output: generic/custom-extension-component.cext.d.ts 1`] = ` "declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_Prettify & Omit<{ + readonly "onUpdate:title"?: (title: string) => any; + readonly onBar?: (data: number) => any; + } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{ "onUpdate:title"?: (title: string) => any; onBar?: (data: number) => any; - } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly> & { - "onUpdate:title"?: (title: string) => any; - onBar?: (data: number) => any; - }, never>, "onUpdate:title" | "onBar"> & ({ + }>, never>, "onUpdate:title" | "onBar"> & ({ title?: string; } & { foo: number; @@ -170,7 +170,7 @@ type __VLS_Prettify = { `; exports[`vue-tsc-dts > Input: generic/main.vue, Output: generic/main.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; +"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; @@ -192,7 +192,7 @@ exports[`vue-tsc-dts > Input: options-api/component.ts, Output: options-api/comp */ password: string; } -declare const _default: import("vue").DefineComponent<{ +declare const _default: import("vue").DefineComponent any[]; }; -}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { +}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { submit: ({ email, password }: SubmitPayload) => boolean; -}, string, import("vue").PublicProps, Readonly { - foo: string; - }; - }; - /** - * Default function Array - */ - arrayDefault: { - type: ArrayConstructor; - default: () => number[]; - }; - /** - * Default function more complex - */ - complexDefault: { - type: ArrayConstructor; - default: (props: any) => any[]; - }; -}>> & { +}, string, import("vue").PublicProps, Readonly<{ + numberDefault: number; + objectDefault: Record; + arrayDefault: unknown[]; + complexDefault: unknown[]; +} & {} & { onSubmit?: (args_0: SubmitPayload) => any; -}, { +}>, { numberDefault: number; objectDefault: Record; arrayDefault: unknown[]; complexDefault: unknown[]; -}, {}>; +}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; @@ -278,7 +252,7 @@ exports[`vue-tsc-dts > Input: reference-type-events/component.vue, Output: refer arg2?: any; }) => void; baz: () => void; -}, string, import("vue").PublicProps, Readonly> & { +}, string, import("vue").PublicProps, Readonly<{ onFoo?: (data?: { foo: string; }) => any; @@ -287,7 +261,7 @@ exports[`vue-tsc-dts > Input: reference-type-events/component.vue, Output: refer arg2?: any; }) => any; onBaz?: () => any; -}, {}, {}>; +}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; @@ -316,8 +290,8 @@ exports[`vue-tsc-dts > Input: reference-type-exposed/component.vue, Output: refe /** * a counter string */ - counter: import("vue").Ref; -}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; + counter: import("vue").Ref; +}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; @@ -329,15 +303,20 @@ exports[`vue-tsc-dts > Input: reference-type-model/component.vue, Output: refere "qux"?: string; quxModifiers?: Record<'lazy' | 'trim', true>; }; -declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_PublicProps>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { +declare const _default: import("vue").DefineComponent>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { "update:foo": (foo: number) => void; "update:bar": (bar: string[]) => void; "update:qux": (qux: string) => void; -}, string, import("vue").PublicProps, Readonly>> & { +}, string, import("vue").PublicProps, Readonly<{} & { + foo?: number; + bar?: string[]; + qux?: string; + quxModifiers?: Record<"lazy" | "trim", true>; +} & { "onUpdate:foo"?: (foo: number) => any; "onUpdate:bar"?: (bar: string[]) => any; "onUpdate:qux"?: (qux: string) => any; -}, {}, {}>; +}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; type __VLS_NonUndefinedable = T extends undefined ? never : T; type __VLS_TypePropsToOption = { @@ -351,41 +330,10 @@ type __VLS_TypePropsToOption = { " `; -exports[`vue-tsc-dts > Input: reference-type-props/component.vue, Output: reference-type-props/component.vue.d.ts 1`] = ` -"import { MyProps } from './my-props'; -declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption, { - bar: number; - baz: () => string[]; -}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly, { - bar: number; - baz: () => string[]; -}>>>, { - bar: number; - baz: string[]; -}, {}>; -export default _default; -type __VLS_WithDefaults = { - [K in keyof Pick]: K extends keyof D ? __VLS_Prettify : P[K]; -}; -type __VLS_Prettify = { - [K in keyof T]: T[K]; -} & {}; -type __VLS_NonUndefinedable = T extends undefined ? never : T; -type __VLS_TypePropsToOption = { - [K in keyof T]-?: {} extends Pick ? { - type: import('vue').PropType<__VLS_NonUndefinedable>; - } : { - type: import('vue').PropType; - required: true; - }; -}; -" -`; +exports[`vue-tsc-dts > Input: reference-type-props/component.vue, Output: reference-type-props/component.vue.d.ts 1`] = `undefined`; exports[`vue-tsc-dts > Input: reference-type-props/component-js.vue, Output: reference-type-props/component-js.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{ +"declare const _default: import("vue").DefineComponent Input: reference-type-props/component-js.vue, Output: ref xbaz: { readonly type: StringConstructor; }; -}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, { +}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{ + foo: string; bar: string; -}, {}>; + xfoo: string; +} & { + baz?: string; + xbar?: string; + xbaz?: string; +} & {}>, { + bar: string; +}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; exports[`vue-tsc-dts > Input: reference-type-props/component-js-setup.vue, Output: reference-type-props/component-js-setup.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{ +"declare const _default: import("vue").DefineComponent Input: reference-type-props/component-js-setup.vue, Outpu type: ArrayConstructor; default: () => number[]; }; -}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly number[]; - }; -}>>, { +}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{ + foo: string; + bar: string; + xfoo: string; + hello: string; + numberOrStringProp: string | number; + arrayProps: unknown[]; +} & { + baz?: string; + xbar?: string; + xbaz?: string; +} & {}>, { bar: string; hello: string; numberOrStringProp: string | number; arrayProps: unknown[]; -}, {}>; +}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; export default _default; " `; @@ -647,7 +551,7 @@ exports[`vue-tsc-dts > Input: template-slots/component.vue, Output: template-slo str: string; }): any; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { @@ -685,7 +589,7 @@ declare function __VLS_template(): Readonly<{ }) => VNode[]; 'no-bind': () => VNode[]; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { @@ -706,7 +610,7 @@ exports[`vue-tsc-dts > Input: template-slots/component-destructuring.vue, Output num: number; }) => any[]; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { @@ -731,7 +635,7 @@ exports[`vue-tsc-dts > Input: template-slots/component-no-script.vue, Output: te str: string; }): any; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { diff --git a/packages/tsc/tests/typecheck.spec.ts b/packages/tsc/tests/typecheck.spec.ts index bd8d302817..8a1e015d06 100644 --- a/packages/tsc/tests/typecheck.spec.ts +++ b/packages/tsc/tests/typecheck.spec.ts @@ -9,23 +9,29 @@ describe(`vue-tsc`, () => { getTscOutput('stable') ).toMatchInlineSnapshot(` [ - "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", - "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", "test-workspace/tsc/failureFixtures/directives/main.vue(12,2): error TS2578: Unused '@ts-expect-error' directive.", + "test-workspace/tsc/passedFixtures/#4503/main.vue(4,2): error TS2578: Unused '@ts-expect-error' directive.", + "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3539/main.vue(8,2): error TS2578: Unused '@ts-expect-error' directive.", + "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3718/main.vue(2,2): error TS2578: Unused '@ts-expect-error' directive.", ] `); }); - test(`TypeScript - next`, () => { + test(`TypeScript - Next`, () => { expect( getTscOutput('next') ).toMatchInlineSnapshot(` [ - "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", - "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", "test-workspace/tsc/failureFixtures/directives/main.vue(12,2): error TS2578: Unused '@ts-expect-error' directive.", "test-workspace/tsc/passedFixtures/#3373/tsconfig.json(4,3): error TS5102: Option 'importsNotUsedAsValues' has been removed. Please remove it from your configuration. Use 'verbatimModuleSyntax' instead.", + "test-workspace/tsc/passedFixtures/#4503/main.vue(4,2): error TS2578: Unused '@ts-expect-error' directive.", + "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3539/main.vue(8,2): error TS2578: Unused '@ts-expect-error' directive.", + "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3718/main.vue(2,2): error TS2578: Unused '@ts-expect-error' directive.", ] `); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d4cdf7b7c3..ec4eb3f404 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -320,20 +320,17 @@ importers: specifier: npm:typescript@latest version: typescript@5.5.4 vue: - specifier: ^3.4.0 - version: 3.4.38(typescript@5.5.4) + specifier: beta + version: 3.5.0-beta.3(typescript@5.5.4) vue-component-type-helpers: specifier: 2.0.28 version: link:../packages/component-type-helpers vue2: specifier: npm:vue@2.7.16 version: vue@2.7.16 - vue3.3: - specifier: npm:vue@3.3.13 - version: vue@3.3.13(typescript@5.5.4) - vue3.5: - specifier: npm:vue@3.5.0-alpha.3 - version: vue@3.5.0-alpha.3(typescript@5.5.4) + vue3.4: + specifier: npm:vue@3.4.38 + version: vue@3.4.38(typescript@5.5.4) packages: @@ -1227,101 +1224,69 @@ packages: engines: {node: '>= 20'} hasBin: true - '@vue/compiler-core@3.3.13': - resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==} - '@vue/compiler-core@3.4.38': resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} - '@vue/compiler-core@3.5.0-alpha.3': - resolution: {integrity: sha512-du7iRe9SE5HJ8XGaVtN4OnVsBuslCOINZUiRYykJjDvJERdjDcJglJ4YTfi0gmG80p6TmzQSXxPuBVT/JlqpuQ==} - - '@vue/compiler-dom@3.3.13': - resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==} + '@vue/compiler-core@3.5.0-beta.3': + resolution: {integrity: sha512-88gac5IIPIXEp74H5EFd5+SENbe4qd0TjtNBqUlD0QZdZ1/4WJIVWL79VRsp24LPBBUvQM5ddfMl8meUXr97jw==} '@vue/compiler-dom@3.4.38': resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} - '@vue/compiler-dom@3.5.0-alpha.3': - resolution: {integrity: sha512-SL/lSqZ/LgiFEyix1Z3SqvRvd1hfZqQ0RfaH0wRDLv/2lkqswl4qxnqFBEChoWS0BpMBIMkAmrAha7xIhELKug==} + '@vue/compiler-dom@3.5.0-beta.3': + resolution: {integrity: sha512-KMp24vqXvxmqO7/mds1Nb8fkQrYHhQdHZX7LvpRiHsHweAWZ7IC4jLrWg4//gs3kBmhxjKx5AE/f0uHuX6UT0Q==} '@vue/compiler-sfc@2.7.16': resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} - '@vue/compiler-sfc@3.3.13': - resolution: {integrity: sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==} - '@vue/compiler-sfc@3.4.38': resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} - '@vue/compiler-sfc@3.5.0-alpha.3': - resolution: {integrity: sha512-UVs18nFL365hea2P9iOHvQDBB8eZxymhGmEol6YMbwB3DjhOcGyzscVixRin/kNHyPr5dEKjRUKcfxwZ03a+9A==} - - '@vue/compiler-ssr@3.3.13': - resolution: {integrity: sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==} + '@vue/compiler-sfc@3.5.0-beta.3': + resolution: {integrity: sha512-gbMW3KXuKgNO8aOOZ5xJcDs9wq8LNnIc0ZlboMZ7CcqjW6L8jIIPZps9ewwT8RUNvKoxl7MoPPvgeWJvlKRlfw==} '@vue/compiler-ssr@3.4.38': resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} - '@vue/compiler-ssr@3.5.0-alpha.3': - resolution: {integrity: sha512-cATOOLUjg9W86ZMT87DPsi3W4BZUZIIrIGZEUrRcC91lWs00PTtXiWxhQF4QGpxKpGLPr9GK3E2z5SeQWlk5Zw==} + '@vue/compiler-ssr@3.5.0-beta.3': + resolution: {integrity: sha512-6SQhCb8dqnipwcZzA888lbs15GNp/YmzIfoFqCGBlyDWFz77wGdbDEV+cCHOwGU4kzwDCAuoFki6UL0h/kYoxQ==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - '@vue/reactivity-transform@3.3.13': - resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==} - - '@vue/reactivity@3.3.13': - resolution: {integrity: sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==} - '@vue/reactivity@3.4.38': resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} - '@vue/reactivity@3.5.0-alpha.3': - resolution: {integrity: sha512-Ju0okU4JHdBsxxu7RR3qOMssg4G11KX5vhmlyOwpH3bssp1fYZWQ9qyz+iadtOVsomc+b3WG0Jdx1KFgrGMHcg==} - - '@vue/runtime-core@3.3.13': - resolution: {integrity: sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==} + '@vue/reactivity@3.5.0-beta.3': + resolution: {integrity: sha512-vtg6+iwb8h7cHy9X8G0z059yZoZvBt8nD64Os12uy+iDZ8TaKketU9q0Sa1pmCRq/T7xEeXr23BEOxP5LBkJ0g==} '@vue/runtime-core@3.4.38': resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} - '@vue/runtime-core@3.5.0-alpha.3': - resolution: {integrity: sha512-RWo7KGycr0IIj1hjJ6xe5gsTeEMkhsW9wWc+lU4r8t7Tbg90F/wjBOcIXzFKhqI5+o9dExgozRhTYwrchbx/6g==} - - '@vue/runtime-dom@3.3.13': - resolution: {integrity: sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==} + '@vue/runtime-core@3.5.0-beta.3': + resolution: {integrity: sha512-WGW2j2aoJbJEWVlIezzvVWeiPTlkgZxp42PdaWm3ZzP1JsASHoIq6fCMo3bFxvH9pxPhgjYQxtrfyuVofQUVKA==} '@vue/runtime-dom@3.4.38': resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} - '@vue/runtime-dom@3.5.0-alpha.3': - resolution: {integrity: sha512-IOM5wRRnEPYU2USpLtG1VbTyMkyj9Dk2xGnHKnqtjy/4Wdnp1pXifCTfa37rnFPZFAbKeXRJT74dLMdRIyH9Kw==} - - '@vue/server-renderer@3.3.13': - resolution: {integrity: sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==} - peerDependencies: - vue: 3.3.13 + '@vue/runtime-dom@3.5.0-beta.3': + resolution: {integrity: sha512-1hUBqEubv64aQN+qBuxJrsUGZJqTDodtMtjXfmjrbl2ZwdcBQhKONqZJRAdNCF320Nh3PivhmrMaGt43/6npkg==} '@vue/server-renderer@3.4.38': resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} peerDependencies: vue: 3.4.38 - '@vue/server-renderer@3.5.0-alpha.3': - resolution: {integrity: sha512-w2ZOu7Q64BSotuyKReFEq5p/G0U1txTVgOsKq6+bTo3kPcUBYZV9yVCaePVf9kcU5tqjZoje5UBzNExe5DzZ3A==} + '@vue/server-renderer@3.5.0-beta.3': + resolution: {integrity: sha512-mSkHAQyELQyAfV/nSW7/bMQF8pdT8BYWKtgJiubAGKLWc1kZMk1GzUx+CumD/UJ1EbeWt79QIiRG6Q4HNx2cCA==} peerDependencies: - vue: 3.5.0-alpha.3 - - '@vue/shared@3.3.13': - resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} + vue: 3.5.0-beta.3 '@vue/shared@3.4.38': resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} - '@vue/shared@3.5.0-alpha.3': - resolution: {integrity: sha512-TOd0zMchrmWoSWNddkx30wHTVRBkzemhgmbXMBUURv6HuyuddlVyqCMLDmYiklEurers3ILRp+e3b5QN838+kg==} + '@vue/shared@3.5.0-beta.3': + resolution: {integrity: sha512-MLtDZlcJILbDwrcyZK/Mtf5mhebiRZggJ3BZeXaFe5RaQVVbirMIBBhvv8ujtAuweioD92np86LsjWcgg0JebQ==} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -3385,14 +3350,6 @@ packages: resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. - vue@3.3.13: - resolution: {integrity: sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - vue@3.4.38: resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} peerDependencies: @@ -3401,8 +3358,8 @@ packages: typescript: optional: true - vue@3.5.0-alpha.3: - resolution: {integrity: sha512-VrCHKUgxsiGMO1SCSrS9yHLwJYAwRrbKqrHdd32ruAWnMC5GVnbrjcrcMuvw5RnrfUc+9y7pBXpVbiO6+WsyMQ==} + vue@3.5.0-beta.3: + resolution: {integrity: sha512-0ibS+nuCPRDKDAmqd/1GRTUX3Mkbsbe+zak/Ym0oiy8LJ0ORNXjFHiLJ2q0H2e8UX/JpEtJ2Kio/bcnqEd8nvw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4548,13 +4505,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.3.13': - dependencies: - '@babel/parser': 7.25.4 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - '@vue/compiler-core@3.4.38': dependencies: '@babel/parser': 7.25.4 @@ -4563,28 +4513,23 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-core@3.5.0-alpha.3': + '@vue/compiler-core@3.5.0-beta.3': dependencies: '@babel/parser': 7.25.4 - '@vue/shared': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-beta.3 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 - '@vue/shared': 3.3.13 - '@vue/compiler-dom@3.4.38': dependencies: '@vue/compiler-core': 3.4.38 '@vue/shared': 3.4.38 - '@vue/compiler-dom@3.5.0-alpha.3': + '@vue/compiler-dom@3.5.0-beta.3': dependencies: - '@vue/compiler-core': 3.5.0-alpha.3 - '@vue/shared': 3.5.0-alpha.3 + '@vue/compiler-core': 3.5.0-beta.3 + '@vue/shared': 3.5.0-beta.3 '@vue/compiler-sfc@2.7.16': dependencies: @@ -4594,19 +4539,6 @@ snapshots: optionalDependencies: prettier: 2.8.8 - '@vue/compiler-sfc@3.3.13': - dependencies: - '@babel/parser': 7.25.4 - '@vue/compiler-core': 3.3.13 - '@vue/compiler-dom': 3.3.13 - '@vue/compiler-ssr': 3.3.13 - '@vue/reactivity-transform': 3.3.13 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - magic-string: 0.30.11 - postcss: 8.4.41 - source-map-js: 1.2.0 - '@vue/compiler-sfc@3.4.38': dependencies: '@babel/parser': 7.25.4 @@ -4619,78 +4551,50 @@ snapshots: postcss: 8.4.41 source-map-js: 1.2.0 - '@vue/compiler-sfc@3.5.0-alpha.3': + '@vue/compiler-sfc@3.5.0-beta.3': dependencies: '@babel/parser': 7.25.4 - '@vue/compiler-core': 3.5.0-alpha.3 - '@vue/compiler-dom': 3.5.0-alpha.3 - '@vue/compiler-ssr': 3.5.0-alpha.3 - '@vue/shared': 3.5.0-alpha.3 + '@vue/compiler-core': 3.5.0-beta.3 + '@vue/compiler-dom': 3.5.0-beta.3 + '@vue/compiler-ssr': 3.5.0-beta.3 + '@vue/shared': 3.5.0-beta.3 estree-walker: 2.0.2 magic-string: 0.30.11 postcss: 8.4.41 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.3.13': - dependencies: - '@vue/compiler-dom': 3.3.13 - '@vue/shared': 3.3.13 - '@vue/compiler-ssr@3.4.38': dependencies: '@vue/compiler-dom': 3.4.38 '@vue/shared': 3.4.38 - '@vue/compiler-ssr@3.5.0-alpha.3': + '@vue/compiler-ssr@3.5.0-beta.3': dependencies: - '@vue/compiler-dom': 3.5.0-alpha.3 - '@vue/shared': 3.5.0-alpha.3 + '@vue/compiler-dom': 3.5.0-beta.3 + '@vue/shared': 3.5.0-beta.3 '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 he: 1.2.0 - '@vue/reactivity-transform@3.3.13': - dependencies: - '@babel/parser': 7.25.4 - '@vue/compiler-core': 3.3.13 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - magic-string: 0.30.11 - - '@vue/reactivity@3.3.13': - dependencies: - '@vue/shared': 3.3.13 - '@vue/reactivity@3.4.38': dependencies: '@vue/shared': 3.4.38 - '@vue/reactivity@3.5.0-alpha.3': - dependencies: - '@vue/shared': 3.5.0-alpha.3 - - '@vue/runtime-core@3.3.13': + '@vue/reactivity@3.5.0-beta.3': dependencies: - '@vue/reactivity': 3.3.13 - '@vue/shared': 3.3.13 + '@vue/shared': 3.5.0-beta.3 '@vue/runtime-core@3.4.38': dependencies: '@vue/reactivity': 3.4.38 '@vue/shared': 3.4.38 - '@vue/runtime-core@3.5.0-alpha.3': + '@vue/runtime-core@3.5.0-beta.3': dependencies: - '@vue/reactivity': 3.5.0-alpha.3 - '@vue/shared': 3.5.0-alpha.3 - - '@vue/runtime-dom@3.3.13': - dependencies: - '@vue/runtime-core': 3.3.13 - '@vue/shared': 3.3.13 - csstype: 3.1.3 + '@vue/reactivity': 3.5.0-beta.3 + '@vue/shared': 3.5.0-beta.3 '@vue/runtime-dom@3.4.38': dependencies: @@ -4699,36 +4603,28 @@ snapshots: '@vue/shared': 3.4.38 csstype: 3.1.3 - '@vue/runtime-dom@3.5.0-alpha.3': + '@vue/runtime-dom@3.5.0-beta.3': dependencies: - '@vue/reactivity': 3.5.0-alpha.3 - '@vue/runtime-core': 3.5.0-alpha.3 - '@vue/shared': 3.5.0-alpha.3 + '@vue/reactivity': 3.5.0-beta.3 + '@vue/runtime-core': 3.5.0-beta.3 + '@vue/shared': 3.5.0-beta.3 csstype: 3.1.3 - '@vue/server-renderer@3.3.13(vue@3.4.38(typescript@5.5.4))': - dependencies: - '@vue/compiler-ssr': 3.3.13 - '@vue/shared': 3.3.13 - vue: 3.4.38(typescript@5.5.4) - - '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))': + '@vue/server-renderer@3.4.38(vue@3.5.0-beta.3(typescript@5.5.4))': dependencies: '@vue/compiler-ssr': 3.4.38 '@vue/shared': 3.4.38 - vue: 3.4.38(typescript@5.5.4) + vue: 3.5.0-beta.3(typescript@5.5.4) - '@vue/server-renderer@3.5.0-alpha.3(vue@3.4.38(typescript@5.5.4))': + '@vue/server-renderer@3.5.0-beta.3(vue@3.5.0-beta.3(typescript@5.5.4))': dependencies: - '@vue/compiler-ssr': 3.5.0-alpha.3 - '@vue/shared': 3.5.0-alpha.3 - vue: 3.4.38(typescript@5.5.4) - - '@vue/shared@3.3.13': {} + '@vue/compiler-ssr': 3.5.0-beta.3 + '@vue/shared': 3.5.0-beta.3 + vue: 3.5.0-beta.3(typescript@5.5.4) '@vue/shared@3.4.38': {} - '@vue/shared@3.5.0-alpha.3': {} + '@vue/shared@3.5.0-beta.3': {} JSONStream@1.3.5: dependencies: @@ -6883,33 +6779,23 @@ snapshots: '@vue/compiler-sfc': 2.7.16 csstype: 3.1.3 - vue@3.3.13(typescript@5.5.4): - dependencies: - '@vue/compiler-dom': 3.3.13 - '@vue/compiler-sfc': 3.3.13 - '@vue/runtime-dom': 3.3.13 - '@vue/server-renderer': 3.3.13(vue@3.4.38(typescript@5.5.4)) - '@vue/shared': 3.3.13 - optionalDependencies: - typescript: 5.5.4 - vue@3.4.38(typescript@5.5.4): dependencies: '@vue/compiler-dom': 3.4.38 '@vue/compiler-sfc': 3.4.38 '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4)) + '@vue/server-renderer': 3.4.38(vue@3.5.0-beta.3(typescript@5.5.4)) '@vue/shared': 3.4.38 optionalDependencies: typescript: 5.5.4 - vue@3.5.0-alpha.3(typescript@5.5.4): + vue@3.5.0-beta.3(typescript@5.5.4): dependencies: - '@vue/compiler-dom': 3.5.0-alpha.3 - '@vue/compiler-sfc': 3.5.0-alpha.3 - '@vue/runtime-dom': 3.5.0-alpha.3 - '@vue/server-renderer': 3.5.0-alpha.3(vue@3.4.38(typescript@5.5.4)) - '@vue/shared': 3.5.0-alpha.3 + '@vue/compiler-dom': 3.5.0-beta.3 + '@vue/compiler-sfc': 3.5.0-beta.3 + '@vue/runtime-dom': 3.5.0-beta.3 + '@vue/server-renderer': 3.5.0-beta.3(vue@3.5.0-beta.3(typescript@5.5.4)) + '@vue/shared': 3.5.0-beta.3 optionalDependencies: typescript: 5.5.4 diff --git a/test-workspace/package.json b/test-workspace/package.json index 2078ebacdb..fbc0776160 100644 --- a/test-workspace/package.json +++ b/test-workspace/package.json @@ -4,10 +4,9 @@ "devDependencies": { "typescript-stable": "npm:typescript@latest", "typescript-next": "npm:typescript@next", - "vue": "^3.4.0", + "vue": "beta", "vue-component-type-helpers": "2.0.28", "vue2": "npm:vue@2.7.16", - "vue3.3": "npm:vue@3.3.13", - "vue3.5": "npm:vue@3.5.0-alpha.3" + "vue3.4": "npm:vue@3.4.38" } } diff --git a/test-workspace/tsc/passedFixtures/vue2/tsconfig.json b/test-workspace/tsc/passedFixtures/vue2/tsconfig.json index 61eb1dbaff..2d0808786c 100644 --- a/test-workspace/tsc/passedFixtures/vue2/tsconfig.json +++ b/test-workspace/tsc/passedFixtures/vue2/tsconfig.json @@ -4,7 +4,7 @@ "target": 2.7, }, "include": [ - "env.d.ts", + "**/*", "../vue3", ], "exclude": [ diff --git a/test-workspace/tsc/passedFixtures/vue3.5/components/main.vue b/test-workspace/tsc/passedFixtures/vue3.4/components/main.vue similarity index 87% rename from test-workspace/tsc/passedFixtures/vue3.5/components/main.vue rename to test-workspace/tsc/passedFixtures/vue3.4/components/main.vue index 4bc49803d7..9c93ed2794 100644 --- a/test-workspace/tsc/passedFixtures/vue3.5/components/main.vue +++ b/test-workspace/tsc/passedFixtures/vue3.4/components/main.vue @@ -1,6 +1,6 @@ + + diff --git a/test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue b/test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue new file mode 100644 index 0000000000..0af7707c82 --- /dev/null +++ b/test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue @@ -0,0 +1,10 @@ + + + diff --git a/test-workspace/tsc/passedFixtures/vue3.5/#3820/main.vue b/test-workspace/tsc/passedFixtures/vue3.5/#3820/main.vue new file mode 100644 index 0000000000..4c9321df33 --- /dev/null +++ b/test-workspace/tsc/passedFixtures/vue3.5/#3820/main.vue @@ -0,0 +1,19 @@ + + + From c392bfb40f3ca9a82bfef7191bab94dcca99d5f2 Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Mon, 26 Aug 2024 00:54:42 +0800 Subject: [PATCH 6/7] Revert "Merge branch 'fix/issue-3779-3820' of https://github.com/so1ve/language-tools into pr/3838" This reverts commit f26e8bbfa5395b0e332e29491d0ed154af2f254a, reversing changes made to 248aa41b77b425657069be106ce00b1ae93430c1. --- .../language-server/tests/completions.spec.ts | 3 +- .../tsc/tests/__snapshots__/dts.spec.ts.snap | 234 ++++++++++++----- packages/tsc/tests/typecheck.spec.ts | 16 +- pnpm-lock.yaml | 238 +++++++++++++----- test-workspace/package.json | 5 +- .../tsc/passedFixtures/vue2/tsconfig.json | 2 +- .../{vue3.4 => vue3.3}/env.d.ts | 2 +- .../{vue3.4 => vue3.3}/tsconfig.json | 6 +- .../{vue3.4 => vue3.5}/components/main.vue | 27 +- .../components/script-setup-default-props.vue | 0 .../components/script-setup-expose.vue | 0 .../components/script-setup-generic.vue | 0 .../components/script-setup-type-only.vue | 0 .../components/script-setup.vue | 0 .../{vue3.4 => vue3.5}/defineModel/main.vue | 30 +-- .../defineModel/script-setup.vue | 0 .../{vue3.4 => vue3.5}/defineProp_B/main.vue | 18 +- .../defineProp_B/script-setup-generic.vue | 0 .../defineProp_B/script-setup.vue | 0 .../tsc/passedFixtures/vue3.5/env.d.ts | 3 + .../tsc/passedFixtures/vue3.5/tsconfig.json | 9 + .../passedFixtures/vue3/components/main.vue | 27 +- .../passedFixtures/vue3/defineModel/main.vue | 30 +-- .../passedFixtures/vue3/defineProp_B/main.vue | 18 +- test-workspace/tsc/tsconfig.json | 3 +- test-workspace/tsc/vue3/#3779/main.vue | 10 - test-workspace/tsc/vue3/#3779/named.vue | 10 - test-workspace/tsc/vue3/#3820/main.vue | 19 -- 28 files changed, 443 insertions(+), 267 deletions(-) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.3}/env.d.ts (50%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.3}/tsconfig.json (62%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/components/main.vue (87%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/components/script-setup-default-props.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/components/script-setup-expose.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/components/script-setup-generic.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/components/script-setup-type-only.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/components/script-setup.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/defineModel/main.vue (55%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/defineModel/script-setup.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/defineProp_B/main.vue (75%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/defineProp_B/script-setup-generic.vue (100%) rename test-workspace/tsc/passedFixtures/{vue3.4 => vue3.5}/defineProp_B/script-setup.vue (100%) create mode 100644 test-workspace/tsc/passedFixtures/vue3.5/env.d.ts create mode 100644 test-workspace/tsc/passedFixtures/vue3.5/tsconfig.json delete mode 100644 test-workspace/tsc/vue3/#3779/main.vue delete mode 100644 test-workspace/tsc/vue3/#3779/named.vue delete mode 100644 test-workspace/tsc/vue3/#3820/main.vue diff --git a/packages/language-server/tests/completions.spec.ts b/packages/language-server/tests/completions.spec.ts index 9cbe3a39bd..9323cef6f0 100644 --- a/packages/language-server/tests/completions.spec.ts +++ b/packages/language-server/tests/completions.spec.ts @@ -155,7 +155,6 @@ describe('Completions', async () => { "slot", "template", "fixture", - "BaseTransition", ] `); }); @@ -307,7 +306,7 @@ describe('Completions', async () => { }, ], "detail": "Add import from "./ComponentForAutoImport.vue" - (property) default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}>, ... 7 more ..., {}>", + (property) default: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly>, {}, {}>", "documentation": { "kind": "markdown", "value": "", diff --git a/packages/tsc/tests/__snapshots__/dts.spec.ts.snap b/packages/tsc/tests/__snapshots__/dts.spec.ts.snap index 6130cbaffd..cb65071221 100644 --- a/packages/tsc/tests/__snapshots__/dts.spec.ts.snap +++ b/packages/tsc/tests/__snapshots__/dts.spec.ts.snap @@ -5,7 +5,7 @@ exports[`vue-tsc-dts > Input: #4577/main.vue, Output: #4577/main.vue.d.ts 1`] = value: string; }; declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ - props: __VLS_Prettify & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{}>, never>, never> & { + props: __VLS_Prettify & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly>, never>, never> & { nonGeneric: string; rows: Row[]; }> & (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps); @@ -47,13 +47,13 @@ export default _default; `; exports[`vue-tsc-dts > Input: empty-component/component.vue, Output: empty-component/component.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; export default _default; " `; exports[`vue-tsc-dts > Input: empty-component/custom-extension-component.cext, Output: empty-component/custom-extension-component.cext.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; export default _default; " `; @@ -61,9 +61,9 @@ export default _default; exports[`vue-tsc-dts > Input: events/component-class.vue, Output: events/component-class.vue.d.ts 1`] = ` "declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { foo: (value: string) => void; -}, string, import("vue").PublicProps, Readonly<{ +}, string, import("vue").PublicProps, Readonly> & { onFoo?: (value: string) => any; -}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +}, {}, {}>; export default _default; " `; @@ -71,10 +71,10 @@ export default _default; exports[`vue-tsc-dts > Input: events/component-generic.vue, Output: events/component-generic.vue.d.ts 1`] = ` "declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_Prettify & Omit<{ - readonly onFoo?: (value: string) => any; - } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{ onFoo?: (value: string) => any; - }>, never>, "onFoo"> & {}> & (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps); + } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly> & { + onFoo?: (value: string) => any; + }, never>, "onFoo"> & {}> & (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps); expose(exposed: import("vue").ShallowUnwrapRef<{}>): void; attrs: any; slots: ReturnType<() => {}>; @@ -94,12 +94,12 @@ type __VLS_Prettify = { exports[`vue-tsc-dts > Input: generic/component.vue, Output: generic/component.vue.d.ts 1`] = ` "declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_Prettify & Omit<{ - readonly "onUpdate:title"?: (title: string) => any; - readonly onBar?: (data: number) => any; - } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{ "onUpdate:title"?: (title: string) => any; onBar?: (data: number) => any; - }>, never>, "onUpdate:title" | "onBar"> & ({ + } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly> & { + "onUpdate:title"?: (title: string) => any; + onBar?: (data: number) => any; + }, never>, "onUpdate:title" | "onBar"> & ({ title?: string; } & { foo: number; @@ -133,12 +133,12 @@ type __VLS_Prettify = { exports[`vue-tsc-dts > Input: generic/custom-extension-component.cext, Output: generic/custom-extension-component.cext.d.ts 1`] = ` "declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_Prettify>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_Prettify & Omit<{ - readonly "onUpdate:title"?: (title: string) => any; - readonly onBar?: (data: number) => any; - } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<{ "onUpdate:title"?: (title: string) => any; onBar?: (data: number) => any; - }>, never>, "onUpdate:title" | "onBar"> & ({ + } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly> & { + "onUpdate:title"?: (title: string) => any; + onBar?: (data: number) => any; + }, never>, "onUpdate:title" | "onBar"> & ({ title?: string; } & { foo: number; @@ -170,7 +170,7 @@ type __VLS_Prettify = { `; exports[`vue-tsc-dts > Input: generic/main.vue, Output: generic/main.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +"declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; export default _default; " `; @@ -192,7 +192,7 @@ exports[`vue-tsc-dts > Input: options-api/component.ts, Output: options-api/comp */ password: string; } -declare const _default: import("vue").DefineComponent any[]; }; -}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { +}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { submit: ({ email, password }: SubmitPayload) => boolean; -}, string, import("vue").PublicProps, Readonly<{ - numberDefault: number; - objectDefault: Record; - arrayDefault: unknown[]; - complexDefault: unknown[]; -} & {} & { +}, string, import("vue").PublicProps, Readonly { + foo: string; + }; + }; + /** + * Default function Array + */ + arrayDefault: { + type: ArrayConstructor; + default: () => number[]; + }; + /** + * Default function more complex + */ + complexDefault: { + type: ArrayConstructor; + default: (props: any) => any[]; + }; +}>> & { onSubmit?: (args_0: SubmitPayload) => any; -}>, { +}, { numberDefault: number; objectDefault: Record; arrayDefault: unknown[]; complexDefault: unknown[]; -}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +}, {}>; export default _default; " `; @@ -252,7 +278,7 @@ exports[`vue-tsc-dts > Input: reference-type-events/component.vue, Output: refer arg2?: any; }) => void; baz: () => void; -}, string, import("vue").PublicProps, Readonly<{ +}, string, import("vue").PublicProps, Readonly> & { onFoo?: (data?: { foo: string; }) => any; @@ -261,7 +287,7 @@ exports[`vue-tsc-dts > Input: reference-type-events/component.vue, Output: refer arg2?: any; }) => any; onBaz?: () => any; -}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +}, {}, {}>; export default _default; " `; @@ -290,8 +316,8 @@ exports[`vue-tsc-dts > Input: reference-type-exposed/component.vue, Output: refe /** * a counter string */ - counter: import("vue").Ref; -}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; + counter: import("vue").Ref; +}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; export default _default; " `; @@ -303,20 +329,15 @@ exports[`vue-tsc-dts > Input: reference-type-model/component.vue, Output: refere "qux"?: string; quxModifiers?: Record<'lazy' | 'trim', true>; }; -declare const _default: import("vue").DefineComponent>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { +declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_PublicProps>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { "update:foo": (foo: number) => void; "update:bar": (bar: string[]) => void; "update:qux": (qux: string) => void; -}, string, import("vue").PublicProps, Readonly<{} & { - foo?: number; - bar?: string[]; - qux?: string; - quxModifiers?: Record<"lazy" | "trim", true>; -} & { +}, string, import("vue").PublicProps, Readonly>> & { "onUpdate:foo"?: (foo: number) => any; "onUpdate:bar"?: (bar: string[]) => any; "onUpdate:qux"?: (qux: string) => any; -}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +}, {}, {}>; export default _default; type __VLS_NonUndefinedable = T extends undefined ? never : T; type __VLS_TypePropsToOption = { @@ -330,10 +351,41 @@ type __VLS_TypePropsToOption = { " `; -exports[`vue-tsc-dts > Input: reference-type-props/component.vue, Output: reference-type-props/component.vue.d.ts 1`] = `undefined`; +exports[`vue-tsc-dts > Input: reference-type-props/component.vue, Output: reference-type-props/component.vue.d.ts 1`] = ` +"import { MyProps } from './my-props'; +declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption, { + bar: number; + baz: () => string[]; +}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly, { + bar: number; + baz: () => string[]; +}>>>, { + bar: number; + baz: string[]; +}, {}>; +export default _default; +type __VLS_WithDefaults = { + [K in keyof Pick]: K extends keyof D ? __VLS_Prettify : P[K]; +}; +type __VLS_Prettify = { + [K in keyof T]: T[K]; +} & {}; +type __VLS_NonUndefinedable = T extends undefined ? never : T; +type __VLS_TypePropsToOption = { + [K in keyof T]-?: {} extends Pick ? { + type: import('vue').PropType<__VLS_NonUndefinedable>; + } : { + type: import('vue').PropType; + required: true; + }; +}; +" +`; exports[`vue-tsc-dts > Input: reference-type-props/component-js.vue, Output: reference-type-props/component-js.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent Input: reference-type-props/component-js.vue, Output: ref xbaz: { readonly type: StringConstructor; }; -}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{ - foo: string; - bar: string; - xfoo: string; -} & { - baz?: string; - xbar?: string; - xbaz?: string; -} & {}>, { +}, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, { bar: string; -}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +}, {}>; export default _default; " `; exports[`vue-tsc-dts > Input: reference-type-props/component-js-setup.vue, Output: reference-type-props/component-js-setup.vue.d.ts 1`] = ` -"declare const _default: import("vue").DefineComponent Input: reference-type-props/component-js-setup.vue, Outpu type: ArrayConstructor; default: () => number[]; }; -}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{ - foo: string; - bar: string; - xfoo: string; - hello: string; - numberOrStringProp: string | number; - arrayProps: unknown[]; -} & { - baz?: string; - xbar?: string; - xbaz?: string; -} & {}>, { +}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly number[]; + }; +}>>, { bar: string; hello: string; numberOrStringProp: string | number; arrayProps: unknown[]; -}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +}, {}>; export default _default; " `; @@ -551,7 +647,7 @@ exports[`vue-tsc-dts > Input: template-slots/component.vue, Output: template-slo str: string; }): any; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { @@ -589,7 +685,7 @@ declare function __VLS_template(): Readonly<{ }) => VNode[]; 'no-bind': () => VNode[]; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { @@ -610,7 +706,7 @@ exports[`vue-tsc-dts > Input: template-slots/component-destructuring.vue, Output num: number; }) => any[]; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { @@ -635,7 +731,7 @@ exports[`vue-tsc-dts > Input: template-slots/component-no-script.vue, Output: te str: string; }): any; }; -declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}>; +declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly>, {}, {}>; declare const _default: __VLS_WithTemplateSlots>; export default _default; type __VLS_WithTemplateSlots = T & { diff --git a/packages/tsc/tests/typecheck.spec.ts b/packages/tsc/tests/typecheck.spec.ts index 8a1e015d06..bd8d302817 100644 --- a/packages/tsc/tests/typecheck.spec.ts +++ b/packages/tsc/tests/typecheck.spec.ts @@ -9,29 +9,23 @@ describe(`vue-tsc`, () => { getTscOutput('stable') ).toMatchInlineSnapshot(` [ - "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", - "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", "test-workspace/tsc/failureFixtures/directives/main.vue(12,2): error TS2578: Unused '@ts-expect-error' directive.", - "test-workspace/tsc/passedFixtures/#4503/main.vue(4,2): error TS2578: Unused '@ts-expect-error' directive.", - "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3539/main.vue(8,2): error TS2578: Unused '@ts-expect-error' directive.", - "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3718/main.vue(2,2): error TS2578: Unused '@ts-expect-error' directive.", ] `); }); - test(`TypeScript - Next`, () => { + test(`TypeScript - next`, () => { expect( getTscOutput('next') ).toMatchInlineSnapshot(` [ - "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", - "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstanceWithMixins, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly<...>, ... 15 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(4,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", + "test-workspace/tsc/failureFixtures/directives/main.vue(9,6): error TS2339: Property 'notExist' does not exist on type 'CreateComponentPublicInstance>, { exist: typeof exist; }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 12 more ..., {}>'.", "test-workspace/tsc/failureFixtures/directives/main.vue(12,2): error TS2578: Unused '@ts-expect-error' directive.", "test-workspace/tsc/passedFixtures/#3373/tsconfig.json(4,3): error TS5102: Option 'importsNotUsedAsValues' has been removed. Please remove it from your configuration. Use 'verbatimModuleSyntax' instead.", - "test-workspace/tsc/passedFixtures/#4503/main.vue(4,2): error TS2578: Unused '@ts-expect-error' directive.", - "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3539/main.vue(8,2): error TS2578: Unused '@ts-expect-error' directive.", - "test-workspace/tsc/passedFixtures/vue3_strictTemplate/#3718/main.vue(2,2): error TS2578: Unused '@ts-expect-error' directive.", ] `); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec4eb3f404..d4cdf7b7c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -320,17 +320,20 @@ importers: specifier: npm:typescript@latest version: typescript@5.5.4 vue: - specifier: beta - version: 3.5.0-beta.3(typescript@5.5.4) + specifier: ^3.4.0 + version: 3.4.38(typescript@5.5.4) vue-component-type-helpers: specifier: 2.0.28 version: link:../packages/component-type-helpers vue2: specifier: npm:vue@2.7.16 version: vue@2.7.16 - vue3.4: - specifier: npm:vue@3.4.38 - version: vue@3.4.38(typescript@5.5.4) + vue3.3: + specifier: npm:vue@3.3.13 + version: vue@3.3.13(typescript@5.5.4) + vue3.5: + specifier: npm:vue@3.5.0-alpha.3 + version: vue@3.5.0-alpha.3(typescript@5.5.4) packages: @@ -1224,69 +1227,101 @@ packages: engines: {node: '>= 20'} hasBin: true + '@vue/compiler-core@3.3.13': + resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==} + '@vue/compiler-core@3.4.38': resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} - '@vue/compiler-core@3.5.0-beta.3': - resolution: {integrity: sha512-88gac5IIPIXEp74H5EFd5+SENbe4qd0TjtNBqUlD0QZdZ1/4WJIVWL79VRsp24LPBBUvQM5ddfMl8meUXr97jw==} + '@vue/compiler-core@3.5.0-alpha.3': + resolution: {integrity: sha512-du7iRe9SE5HJ8XGaVtN4OnVsBuslCOINZUiRYykJjDvJERdjDcJglJ4YTfi0gmG80p6TmzQSXxPuBVT/JlqpuQ==} + + '@vue/compiler-dom@3.3.13': + resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==} '@vue/compiler-dom@3.4.38': resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} - '@vue/compiler-dom@3.5.0-beta.3': - resolution: {integrity: sha512-KMp24vqXvxmqO7/mds1Nb8fkQrYHhQdHZX7LvpRiHsHweAWZ7IC4jLrWg4//gs3kBmhxjKx5AE/f0uHuX6UT0Q==} + '@vue/compiler-dom@3.5.0-alpha.3': + resolution: {integrity: sha512-SL/lSqZ/LgiFEyix1Z3SqvRvd1hfZqQ0RfaH0wRDLv/2lkqswl4qxnqFBEChoWS0BpMBIMkAmrAha7xIhELKug==} '@vue/compiler-sfc@2.7.16': resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} + '@vue/compiler-sfc@3.3.13': + resolution: {integrity: sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==} + '@vue/compiler-sfc@3.4.38': resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} - '@vue/compiler-sfc@3.5.0-beta.3': - resolution: {integrity: sha512-gbMW3KXuKgNO8aOOZ5xJcDs9wq8LNnIc0ZlboMZ7CcqjW6L8jIIPZps9ewwT8RUNvKoxl7MoPPvgeWJvlKRlfw==} + '@vue/compiler-sfc@3.5.0-alpha.3': + resolution: {integrity: sha512-UVs18nFL365hea2P9iOHvQDBB8eZxymhGmEol6YMbwB3DjhOcGyzscVixRin/kNHyPr5dEKjRUKcfxwZ03a+9A==} + + '@vue/compiler-ssr@3.3.13': + resolution: {integrity: sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==} '@vue/compiler-ssr@3.4.38': resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} - '@vue/compiler-ssr@3.5.0-beta.3': - resolution: {integrity: sha512-6SQhCb8dqnipwcZzA888lbs15GNp/YmzIfoFqCGBlyDWFz77wGdbDEV+cCHOwGU4kzwDCAuoFki6UL0h/kYoxQ==} + '@vue/compiler-ssr@3.5.0-alpha.3': + resolution: {integrity: sha512-cATOOLUjg9W86ZMT87DPsi3W4BZUZIIrIGZEUrRcC91lWs00PTtXiWxhQF4QGpxKpGLPr9GK3E2z5SeQWlk5Zw==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + '@vue/reactivity-transform@3.3.13': + resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==} + + '@vue/reactivity@3.3.13': + resolution: {integrity: sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==} + '@vue/reactivity@3.4.38': resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} - '@vue/reactivity@3.5.0-beta.3': - resolution: {integrity: sha512-vtg6+iwb8h7cHy9X8G0z059yZoZvBt8nD64Os12uy+iDZ8TaKketU9q0Sa1pmCRq/T7xEeXr23BEOxP5LBkJ0g==} + '@vue/reactivity@3.5.0-alpha.3': + resolution: {integrity: sha512-Ju0okU4JHdBsxxu7RR3qOMssg4G11KX5vhmlyOwpH3bssp1fYZWQ9qyz+iadtOVsomc+b3WG0Jdx1KFgrGMHcg==} + + '@vue/runtime-core@3.3.13': + resolution: {integrity: sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==} '@vue/runtime-core@3.4.38': resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} - '@vue/runtime-core@3.5.0-beta.3': - resolution: {integrity: sha512-WGW2j2aoJbJEWVlIezzvVWeiPTlkgZxp42PdaWm3ZzP1JsASHoIq6fCMo3bFxvH9pxPhgjYQxtrfyuVofQUVKA==} + '@vue/runtime-core@3.5.0-alpha.3': + resolution: {integrity: sha512-RWo7KGycr0IIj1hjJ6xe5gsTeEMkhsW9wWc+lU4r8t7Tbg90F/wjBOcIXzFKhqI5+o9dExgozRhTYwrchbx/6g==} + + '@vue/runtime-dom@3.3.13': + resolution: {integrity: sha512-JJkpE8R/hJKXqVTgUoODwS5wqKtOsmJPEqmp90PDVGygtJ4C0PtOkcEYXwhiVEmef6xeXcIlrT3Yo5aQ4qkHhQ==} '@vue/runtime-dom@3.4.38': resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} - '@vue/runtime-dom@3.5.0-beta.3': - resolution: {integrity: sha512-1hUBqEubv64aQN+qBuxJrsUGZJqTDodtMtjXfmjrbl2ZwdcBQhKONqZJRAdNCF320Nh3PivhmrMaGt43/6npkg==} + '@vue/runtime-dom@3.5.0-alpha.3': + resolution: {integrity: sha512-IOM5wRRnEPYU2USpLtG1VbTyMkyj9Dk2xGnHKnqtjy/4Wdnp1pXifCTfa37rnFPZFAbKeXRJT74dLMdRIyH9Kw==} + + '@vue/server-renderer@3.3.13': + resolution: {integrity: sha512-vSnN+nuf6iSqTL3Qgx/9A+BT+0Zf/VJOgF5uMZrKjYPs38GMYyAU1coDyBNHauehXDaP+zl73VhwWv0vBRBHcg==} + peerDependencies: + vue: 3.3.13 '@vue/server-renderer@3.4.38': resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} peerDependencies: vue: 3.4.38 - '@vue/server-renderer@3.5.0-beta.3': - resolution: {integrity: sha512-mSkHAQyELQyAfV/nSW7/bMQF8pdT8BYWKtgJiubAGKLWc1kZMk1GzUx+CumD/UJ1EbeWt79QIiRG6Q4HNx2cCA==} + '@vue/server-renderer@3.5.0-alpha.3': + resolution: {integrity: sha512-w2ZOu7Q64BSotuyKReFEq5p/G0U1txTVgOsKq6+bTo3kPcUBYZV9yVCaePVf9kcU5tqjZoje5UBzNExe5DzZ3A==} peerDependencies: - vue: 3.5.0-beta.3 + vue: 3.5.0-alpha.3 + + '@vue/shared@3.3.13': + resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} '@vue/shared@3.4.38': resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} - '@vue/shared@3.5.0-beta.3': - resolution: {integrity: sha512-MLtDZlcJILbDwrcyZK/Mtf5mhebiRZggJ3BZeXaFe5RaQVVbirMIBBhvv8ujtAuweioD92np86LsjWcgg0JebQ==} + '@vue/shared@3.5.0-alpha.3': + resolution: {integrity: sha512-TOd0zMchrmWoSWNddkx30wHTVRBkzemhgmbXMBUURv6HuyuddlVyqCMLDmYiklEurers3ILRp+e3b5QN838+kg==} JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -3350,6 +3385,14 @@ packages: resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. + vue@3.3.13: + resolution: {integrity: sha512-LDnUpQvDgsfc0u/YgtAgTMXJlJQqjkxW1PVcOnJA5cshPleULDjHi7U45pl2VJYazSSvLH8UKcid/kzH8I0a0Q==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + vue@3.4.38: resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} peerDependencies: @@ -3358,8 +3401,8 @@ packages: typescript: optional: true - vue@3.5.0-beta.3: - resolution: {integrity: sha512-0ibS+nuCPRDKDAmqd/1GRTUX3Mkbsbe+zak/Ym0oiy8LJ0ORNXjFHiLJ2q0H2e8UX/JpEtJ2Kio/bcnqEd8nvw==} + vue@3.5.0-alpha.3: + resolution: {integrity: sha512-VrCHKUgxsiGMO1SCSrS9yHLwJYAwRrbKqrHdd32ruAWnMC5GVnbrjcrcMuvw5RnrfUc+9y7pBXpVbiO6+WsyMQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4505,6 +4548,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@vue/compiler-core@3.3.13': + dependencies: + '@babel/parser': 7.25.4 + '@vue/shared': 3.3.13 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + '@vue/compiler-core@3.4.38': dependencies: '@babel/parser': 7.25.4 @@ -4513,23 +4563,28 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-core@3.5.0-beta.3': + '@vue/compiler-core@3.5.0-alpha.3': dependencies: '@babel/parser': 7.25.4 - '@vue/shared': 3.5.0-beta.3 + '@vue/shared': 3.5.0-alpha.3 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 + '@vue/shared': 3.3.13 + '@vue/compiler-dom@3.4.38': dependencies: '@vue/compiler-core': 3.4.38 '@vue/shared': 3.4.38 - '@vue/compiler-dom@3.5.0-beta.3': + '@vue/compiler-dom@3.5.0-alpha.3': dependencies: - '@vue/compiler-core': 3.5.0-beta.3 - '@vue/shared': 3.5.0-beta.3 + '@vue/compiler-core': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 '@vue/compiler-sfc@2.7.16': dependencies: @@ -4539,6 +4594,19 @@ snapshots: optionalDependencies: prettier: 2.8.8 + '@vue/compiler-sfc@3.3.13': + dependencies: + '@babel/parser': 7.25.4 + '@vue/compiler-core': 3.3.13 + '@vue/compiler-dom': 3.3.13 + '@vue/compiler-ssr': 3.3.13 + '@vue/reactivity-transform': 3.3.13 + '@vue/shared': 3.3.13 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.41 + source-map-js: 1.2.0 + '@vue/compiler-sfc@3.4.38': dependencies: '@babel/parser': 7.25.4 @@ -4551,50 +4619,78 @@ snapshots: postcss: 8.4.41 source-map-js: 1.2.0 - '@vue/compiler-sfc@3.5.0-beta.3': + '@vue/compiler-sfc@3.5.0-alpha.3': dependencies: '@babel/parser': 7.25.4 - '@vue/compiler-core': 3.5.0-beta.3 - '@vue/compiler-dom': 3.5.0-beta.3 - '@vue/compiler-ssr': 3.5.0-beta.3 - '@vue/shared': 3.5.0-beta.3 + '@vue/compiler-core': 3.5.0-alpha.3 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/compiler-ssr': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 estree-walker: 2.0.2 magic-string: 0.30.11 postcss: 8.4.41 source-map-js: 1.2.0 + '@vue/compiler-ssr@3.3.13': + dependencies: + '@vue/compiler-dom': 3.3.13 + '@vue/shared': 3.3.13 + '@vue/compiler-ssr@3.4.38': dependencies: '@vue/compiler-dom': 3.4.38 '@vue/shared': 3.4.38 - '@vue/compiler-ssr@3.5.0-beta.3': + '@vue/compiler-ssr@3.5.0-alpha.3': dependencies: - '@vue/compiler-dom': 3.5.0-beta.3 - '@vue/shared': 3.5.0-beta.3 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 he: 1.2.0 + '@vue/reactivity-transform@3.3.13': + dependencies: + '@babel/parser': 7.25.4 + '@vue/compiler-core': 3.3.13 + '@vue/shared': 3.3.13 + estree-walker: 2.0.2 + magic-string: 0.30.11 + + '@vue/reactivity@3.3.13': + dependencies: + '@vue/shared': 3.3.13 + '@vue/reactivity@3.4.38': dependencies: '@vue/shared': 3.4.38 - '@vue/reactivity@3.5.0-beta.3': + '@vue/reactivity@3.5.0-alpha.3': + dependencies: + '@vue/shared': 3.5.0-alpha.3 + + '@vue/runtime-core@3.3.13': dependencies: - '@vue/shared': 3.5.0-beta.3 + '@vue/reactivity': 3.3.13 + '@vue/shared': 3.3.13 '@vue/runtime-core@3.4.38': dependencies: '@vue/reactivity': 3.4.38 '@vue/shared': 3.4.38 - '@vue/runtime-core@3.5.0-beta.3': + '@vue/runtime-core@3.5.0-alpha.3': dependencies: - '@vue/reactivity': 3.5.0-beta.3 - '@vue/shared': 3.5.0-beta.3 + '@vue/reactivity': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 + + '@vue/runtime-dom@3.3.13': + dependencies: + '@vue/runtime-core': 3.3.13 + '@vue/shared': 3.3.13 + csstype: 3.1.3 '@vue/runtime-dom@3.4.38': dependencies: @@ -4603,28 +4699,36 @@ snapshots: '@vue/shared': 3.4.38 csstype: 3.1.3 - '@vue/runtime-dom@3.5.0-beta.3': + '@vue/runtime-dom@3.5.0-alpha.3': dependencies: - '@vue/reactivity': 3.5.0-beta.3 - '@vue/runtime-core': 3.5.0-beta.3 - '@vue/shared': 3.5.0-beta.3 + '@vue/reactivity': 3.5.0-alpha.3 + '@vue/runtime-core': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 csstype: 3.1.3 - '@vue/server-renderer@3.4.38(vue@3.5.0-beta.3(typescript@5.5.4))': + '@vue/server-renderer@3.3.13(vue@3.4.38(typescript@5.5.4))': + dependencies: + '@vue/compiler-ssr': 3.3.13 + '@vue/shared': 3.3.13 + vue: 3.4.38(typescript@5.5.4) + + '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))': dependencies: '@vue/compiler-ssr': 3.4.38 '@vue/shared': 3.4.38 - vue: 3.5.0-beta.3(typescript@5.5.4) + vue: 3.4.38(typescript@5.5.4) - '@vue/server-renderer@3.5.0-beta.3(vue@3.5.0-beta.3(typescript@5.5.4))': + '@vue/server-renderer@3.5.0-alpha.3(vue@3.4.38(typescript@5.5.4))': dependencies: - '@vue/compiler-ssr': 3.5.0-beta.3 - '@vue/shared': 3.5.0-beta.3 - vue: 3.5.0-beta.3(typescript@5.5.4) + '@vue/compiler-ssr': 3.5.0-alpha.3 + '@vue/shared': 3.5.0-alpha.3 + vue: 3.4.38(typescript@5.5.4) + + '@vue/shared@3.3.13': {} '@vue/shared@3.4.38': {} - '@vue/shared@3.5.0-beta.3': {} + '@vue/shared@3.5.0-alpha.3': {} JSONStream@1.3.5: dependencies: @@ -6779,23 +6883,33 @@ snapshots: '@vue/compiler-sfc': 2.7.16 csstype: 3.1.3 + vue@3.3.13(typescript@5.5.4): + dependencies: + '@vue/compiler-dom': 3.3.13 + '@vue/compiler-sfc': 3.3.13 + '@vue/runtime-dom': 3.3.13 + '@vue/server-renderer': 3.3.13(vue@3.4.38(typescript@5.5.4)) + '@vue/shared': 3.3.13 + optionalDependencies: + typescript: 5.5.4 + vue@3.4.38(typescript@5.5.4): dependencies: '@vue/compiler-dom': 3.4.38 '@vue/compiler-sfc': 3.4.38 '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.5.0-beta.3(typescript@5.5.4)) + '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4)) '@vue/shared': 3.4.38 optionalDependencies: typescript: 5.5.4 - vue@3.5.0-beta.3(typescript@5.5.4): + vue@3.5.0-alpha.3(typescript@5.5.4): dependencies: - '@vue/compiler-dom': 3.5.0-beta.3 - '@vue/compiler-sfc': 3.5.0-beta.3 - '@vue/runtime-dom': 3.5.0-beta.3 - '@vue/server-renderer': 3.5.0-beta.3(vue@3.5.0-beta.3(typescript@5.5.4)) - '@vue/shared': 3.5.0-beta.3 + '@vue/compiler-dom': 3.5.0-alpha.3 + '@vue/compiler-sfc': 3.5.0-alpha.3 + '@vue/runtime-dom': 3.5.0-alpha.3 + '@vue/server-renderer': 3.5.0-alpha.3(vue@3.4.38(typescript@5.5.4)) + '@vue/shared': 3.5.0-alpha.3 optionalDependencies: typescript: 5.5.4 diff --git a/test-workspace/package.json b/test-workspace/package.json index fbc0776160..2078ebacdb 100644 --- a/test-workspace/package.json +++ b/test-workspace/package.json @@ -4,9 +4,10 @@ "devDependencies": { "typescript-stable": "npm:typescript@latest", "typescript-next": "npm:typescript@next", - "vue": "beta", + "vue": "^3.4.0", "vue-component-type-helpers": "2.0.28", "vue2": "npm:vue@2.7.16", - "vue3.4": "npm:vue@3.4.38" + "vue3.3": "npm:vue@3.3.13", + "vue3.5": "npm:vue@3.5.0-alpha.3" } } diff --git a/test-workspace/tsc/passedFixtures/vue2/tsconfig.json b/test-workspace/tsc/passedFixtures/vue2/tsconfig.json index 2d0808786c..61eb1dbaff 100644 --- a/test-workspace/tsc/passedFixtures/vue2/tsconfig.json +++ b/test-workspace/tsc/passedFixtures/vue2/tsconfig.json @@ -4,7 +4,7 @@ "target": 2.7, }, "include": [ - "**/*", + "env.d.ts", "../vue3", ], "exclude": [ diff --git a/test-workspace/tsc/passedFixtures/vue3.4/env.d.ts b/test-workspace/tsc/passedFixtures/vue3.3/env.d.ts similarity index 50% rename from test-workspace/tsc/passedFixtures/vue3.4/env.d.ts rename to test-workspace/tsc/passedFixtures/vue3.3/env.d.ts index ba03f76807..ded58db6d1 100644 --- a/test-workspace/tsc/passedFixtures/vue3.4/env.d.ts +++ b/test-workspace/tsc/passedFixtures/vue3.3/env.d.ts @@ -1,3 +1,3 @@ declare module 'vue' { - export * from 'vue3.4'; + export * from 'vue3.3'; } diff --git a/test-workspace/tsc/passedFixtures/vue3.4/tsconfig.json b/test-workspace/tsc/passedFixtures/vue3.3/tsconfig.json similarity index 62% rename from test-workspace/tsc/passedFixtures/vue3.4/tsconfig.json rename to test-workspace/tsc/passedFixtures/vue3.3/tsconfig.json index dd7116fe43..36b56469eb 100644 --- a/test-workspace/tsc/passedFixtures/vue3.4/tsconfig.json +++ b/test-workspace/tsc/passedFixtures/vue3.3/tsconfig.json @@ -4,12 +4,10 @@ "target": 3.3, }, "include": [ - "**/*", + "env.d.ts", "../vue3", ], "exclude": [ - "../vue3/components", - "../vue3/defineModel", - "../vue3/defineProp_B", + "../vue3/#3782", ], } diff --git a/test-workspace/tsc/passedFixtures/vue3.4/components/main.vue b/test-workspace/tsc/passedFixtures/vue3.5/components/main.vue similarity index 87% rename from test-workspace/tsc/passedFixtures/vue3.4/components/main.vue rename to test-workspace/tsc/passedFixtures/vue3.5/components/main.vue index 9c93ed2794..4bc49803d7 100644 --- a/test-workspace/tsc/passedFixtures/vue3.4/components/main.vue +++ b/test-workspace/tsc/passedFixtures/vue3.5/components/main.vue @@ -1,6 +1,6 @@ - - diff --git a/test-workspace/tsc/vue3/#3779/named.vue b/test-workspace/tsc/vue3/#3779/named.vue deleted file mode 100644 index 0af7707c82..0000000000 --- a/test-workspace/tsc/vue3/#3779/named.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/test-workspace/tsc/vue3/#3820/main.vue b/test-workspace/tsc/vue3/#3820/main.vue deleted file mode 100644 index 4c9321df33..0000000000 --- a/test-workspace/tsc/vue3/#3820/main.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - From 3584e4916035f90ed084396b8b86fa3568f5de5f Mon Sep 17 00:00:00 2001 From: Johnson Chu Date: Mon, 26 Aug 2024 01:02:57 +0800 Subject: [PATCH 7/7] updates --- packages/language-server/tests/renaming.spec.ts | 2 +- test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue | 4 ++-- test-workspace/tsc/passedFixtures/vue3.5/tsconfig.json | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/language-server/tests/renaming.spec.ts b/packages/language-server/tests/renaming.spec.ts index c4a0356278..829b59f4e3 100644 --- a/packages/language-server/tests/renaming.spec.ts +++ b/packages/language-server/tests/renaming.spec.ts @@ -776,7 +776,7 @@ describe('Renaming', async () => { const position = document.positionAt(offset); const edit = await server.sendRenameRequest(document.uri, position, newName); - expect(edit).toBeDefined(); + expect(edit?.changes).toBeDefined(); for (const [uri, edits] of Object.entries(edit!.changes!)) { delete edit!.changes![uri]; diff --git a/test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue b/test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue index 0af7707c82..5fcef0b240 100644 --- a/test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue +++ b/test-workspace/tsc/passedFixtures/vue3.5/#3779/named.vue @@ -1,10 +1,10 @@ diff --git a/test-workspace/tsc/passedFixtures/vue3.5/tsconfig.json b/test-workspace/tsc/passedFixtures/vue3.5/tsconfig.json index 574d756717..1e3a821a3c 100644 --- a/test-workspace/tsc/passedFixtures/vue3.5/tsconfig.json +++ b/test-workspace/tsc/passedFixtures/vue3.5/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../../../tsconfig.base.json", "vueCompilerOptions": { + "lib": "vue3.5", "target": 3.5, }, "include": [