From c96dd0e3a0be6bd7e1246e8613bad417a1f7d45f Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 11 May 2023 09:10:27 +0100 Subject: [PATCH 01/12] chore: split changelog to fix github rendering [ci skip] --- CHANGELOG.md | 3009 +---------------------------------- changelogs/CHANGELOG-3.0.md | 1617 +++++++++++++++++++ changelogs/CHANGELOG-3.1.md | 320 ++++ changelogs/CHANGELOG-3.2.md | 1067 +++++++++++++ 4 files changed, 3011 insertions(+), 3002 deletions(-) create mode 100644 changelogs/CHANGELOG-3.0.md create mode 100644 changelogs/CHANGELOG-3.1.md create mode 100644 changelogs/CHANGELOG-3.2.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 9017db012ed..9f41e36c622 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -355,3011 +355,16 @@ * **build:** ensure BaseTransition functions can be tree-shaken ([3a6f5eb](https://github.com/vuejs/core/commit/3a6f5eb0f7d60dc87d17a69c66e88ae5688b11a5)) +## Previous Changelogs +### 3.2.x (2021-07-16 - 2023-02-02) -## [3.2.47](https://github.com/vuejs/core/compare/v3.2.46...v3.2.47) (2023-02-02) +See [3.2 changelog](./changelogs/CHANGELOG-3.2.md) +### 3.1.x (2021-05-08 - 2021-07-16) -### Bug Fixes - -* **build:** enforce __esModule interop for cjs builds ([4b70366](https://github.com/vuejs/core/commit/4b7036653e5dfd7be95e6efe8c79621b52dcccb7)) - - - -## [3.2.46](https://github.com/vuejs/core/compare/v3.2.45...v3.2.46) (2023-02-02) - - -### Bug Fixes - -* **build:** ensure cjs re-exports can be properly detected when imported from esm ([fb6ff3e](https://github.com/vuejs/core/commit/fb6ff3e99689022d963ea7257b03f73ff514c0c4)) -* **build:** ensure type exports is first ([957722c](https://github.com/vuejs/core/commit/957722c4185ea87aabc711f6f8997e528dd3ba1b)) -* **build:** fix cjs re-exports check for compat build ([ce064a1](https://github.com/vuejs/core/commit/ce064a172b3b5bcb096b4984fe0c1a54177ac9c0)) -* **compat:** fix custom transition classes in compat mode ([#7435](https://github.com/vuejs/core/issues/7435)) ([efe2efd](https://github.com/vuejs/core/commit/efe2efd210f500311e5b603345cb0d353886bd7a)), closes [#6253](https://github.com/vuejs/core/issues/6253) -* **compiler-core:** typeof should be allowed in browser expression validation ([#7037](https://github.com/vuejs/core/issues/7037)) ([3783866](https://github.com/vuejs/core/commit/378386694be6dd43da71f1fa08ee9c5705c13f86)) -* **compiler-sfc:** allow declaring variables after defineProps ([#7461](https://github.com/vuejs/core/issues/7461)) ([686c829](https://github.com/vuejs/core/commit/686c829fec9137cdfe6e51af34f2af01a575f7c6)) -* **compiler-sfc:** always generate runtime prop type for Function ([#7112](https://github.com/vuejs/core/issues/7112)) ([584eae6](https://github.com/vuejs/core/commit/584eae60d1abe80d15b317ec80b7556712df8e5a)), closes [#7111](https://github.com/vuejs/core/issues/7111) -* **compiler-sfc:** support resolving type declaration from normal script ([#5831](https://github.com/vuejs/core/issues/5831)) ([30399d4](https://github.com/vuejs/core/commit/30399d46b15f890056e7a5d076cd588b3806cc15)), closes [#5830](https://github.com/vuejs/core/issues/5830) -* **compiler:** add `hgroup` to supported `HTML_TAGS` ([#6321](https://github.com/vuejs/core/issues/6321)) ([7443174](https://github.com/vuejs/core/commit/7443174e2aa9244bc08c63b4d6c78acc6ff89767)), closes [#6313](https://github.com/vuejs/core/issues/6313) -* **custom-elements:** use strict number casting ([7d0c63f](https://github.com/vuejs/core/commit/7d0c63ff4361e59e820441a24bf4fb2a93335a1e)), closes [#4946](https://github.com/vuejs/core/issues/4946) [#2598](https://github.com/vuejs/core/issues/2598) [#2604](https://github.com/vuejs/core/issues/2604) -* **customElement:** customElement can emit event ([#7296](https://github.com/vuejs/core/issues/7296)) ([c6e5bda](https://github.com/vuejs/core/commit/c6e5bda27d13554675d68dbe33b07f3474467aa6)) -* **reactivity-transform:** fix $$ escape edge cases ([e06d3b6](https://github.com/vuejs/core/commit/e06d3b614ea518e9cdf83fca9200fc816eb4e5a1)), closes [#6312](https://github.com/vuejs/core/issues/6312) [#6944](https://github.com/vuejs/core/issues/6944) -* **reactivity-transform:** prohibit const assignment at compile time ([#6993](https://github.com/vuejs/core/issues/6993)) ([3427052](https://github.com/vuejs/core/commit/3427052229db3448252d938292a40e960a0f4b9c)), closes [#6992](https://github.com/vuejs/core/issues/6992) -* **reactivity:** `triggerRef` working with `toRef` from reactive ([#7507](https://github.com/vuejs/core/issues/7507)) ([e64c9ae](https://github.com/vuejs/core/commit/e64c9ae957aa2606b55e8652bbde30a6ada59fb0)) -* **reactivity:** ensure watch(Effect) can run independent of unmounted instance if created in a detatched effectScope (fix [#7319](https://github.com/vuejs/core/issues/7319)) ([#7330](https://github.com/vuejs/core/issues/7330)) ([cd7c887](https://github.com/vuejs/core/commit/cd7c887b755810aedf83f3d458cb956d5b147f6f)) -* **reactivity:** track hasOwnProperty ([588bd44](https://github.com/vuejs/core/commit/588bd44f036b79d7dee5d23661aa7244f70e6beb)), closes [#2619](https://github.com/vuejs/core/issues/2619) [#2621](https://github.com/vuejs/core/issues/2621) -* **runtime-core:** ensure prop type validation warning shows custom class names ([#7198](https://github.com/vuejs/core/issues/7198)) ([620327d](https://github.com/vuejs/core/commit/620327d527593c6263a21500baddbae1ebc30db8)) -* **runtime-core:** fix keep-alive cache prune logic on vnodes with same type but different keys ([#7510](https://github.com/vuejs/core/issues/7510)) ([1fde49c](https://github.com/vuejs/core/commit/1fde49c0f57cc50fedf91366a274c9759d1d9a39)), closes [#7355](https://github.com/vuejs/core/issues/7355) -* **runtime-core:** set scope id before props ([#6948](https://github.com/vuejs/core/issues/6948)) ([da2ced1](https://github.com/vuejs/core/commit/da2ced15339b6fdb7a1459fa359bb79346a82bc2)), closes [#6923](https://github.com/vuejs/core/issues/6923) -* **runtime-dom:** style update error when component use shorthand properties ([#7425](https://github.com/vuejs/core/issues/7425)) ([b7cfa6f](https://github.com/vuejs/core/commit/b7cfa6f53952daced312862fbb3a88c86e42a77e)) -* **shared:** `feDistanceLight` changed to `feDistantLight` ([#7540](https://github.com/vuejs/core/issues/7540)) ([bef85e7](https://github.com/vuejs/core/commit/bef85e7975084b05af00b60ecd171c83f251c6d5)) -* **shared:** toNumber should only coerce strings ([b55846f](https://github.com/vuejs/core/commit/b55846f05c4a3b163be2ed70ce64014feec29fac)) -* **types/effectScope:** re-expose `active` as readonly property ([#6187](https://github.com/vuejs/core/issues/6187)) ([59ffe5e](https://github.com/vuejs/core/commit/59ffe5ee1f1618be119875313970c72050b37b03)), closes [#6186](https://github.com/vuejs/core/issues/6186) -* **types:** accept sync `serverPrefetch()` ([#7000](https://github.com/vuejs/core/issues/7000)) ([5f1883e](https://github.com/vuejs/core/commit/5f1883ec53547d0847e1270f5a8fb0c46396fb07)) -* **types:** add or update referrerpolicy ([#7199](https://github.com/vuejs/core/issues/7199)) ([1fa3d95](https://github.com/vuejs/core/commit/1fa3d9573051f549e6d381a5e88ec8d5d855e4c9)) -* **types:** allow assigning wider SetupContext type ([#2818](https://github.com/vuejs/core/issues/2818)) ([eb2a832](https://github.com/vuejs/core/commit/eb2a83283caa9de0a45881d860a3cbd9d0bdd279)), closes [#2362](https://github.com/vuejs/core/issues/2362) -* **types:** optional boolean props should have boolean type in return type of defineProps ([#7619](https://github.com/vuejs/core/issues/7619)) ([a0a010d](https://github.com/vuejs/core/commit/a0a010ddc9ba8ef3e883454c73997bf6fb40b385)), closes [#7116](https://github.com/vuejs/core/issues/7116) [#5847](https://github.com/vuejs/core/issues/5847) [#7487](https://github.com/vuejs/core/issues/7487) -* **v-model:** ensure v-model listener casing is consistent with manual v-on listener ([#7067](https://github.com/vuejs/core/issues/7067)) ([87c72ae](https://github.com/vuejs/core/commit/87c72ae49a315a5464dd0c6b00f07163d1cb39e9)), closes [#7066](https://github.com/vuejs/core/issues/7066) - - - -## [3.2.45](https://github.com/vuejs/core/compare/v3.2.44...v3.2.45) (2022-11-11) - - -### Bug Fixes - -* **compiler/v-model:** catch incorrect v-model usage on prop bindings ([001184e](https://github.com/vuejs/core/commit/001184e6bbbc85c4698f460b1f810beca3aed262)), closes [#5584](https://github.com/vuejs/core/issues/5584) -* **custom-elements:** also dispatch hyphenated version of emitted events ([#5378](https://github.com/vuejs/core/issues/5378)) ([0b39e46](https://github.com/vuejs/core/commit/0b39e46192c6258d5bf9d3b6992b84edb0b641d3)), closes [#5373](https://github.com/vuejs/core/issues/5373) -* **custom-elements:** custom element should re-instantiate when inserted again ([#6966](https://github.com/vuejs/core/issues/6966)) ([67890da](https://github.com/vuejs/core/commit/67890daad1a8474c5178565f32a4efa427db911a)), closes [#6934](https://github.com/vuejs/core/issues/6934) -* **custom-elements:** define declared properties in constructor ([#5328](https://github.com/vuejs/core/issues/5328)) ([55382ae](https://github.com/vuejs/core/commit/55382aed58aa3d937f442ad9445b3fff83a07de1)) -* **custom-elements:** ensure custom elements can inherit provides from ancestors ([#5098](https://github.com/vuejs/core/issues/5098)) ([192dcb6](https://github.com/vuejs/core/commit/192dcb648c0630ac20d2009eed512e142a72654a)), closes [#5096](https://github.com/vuejs/core/issues/5096) -* **custom-elements:** fix event emitting for async custom elements ([#5601](https://github.com/vuejs/core/issues/5601)) ([665f2ae](https://github.com/vuejs/core/commit/665f2ae121ec31d65cf22bd577f12fb1d9ffa4a2)), closes [#5599](https://github.com/vuejs/core/issues/5599) -* **custom-elements:** fix number type props casting check ([89f37ce](https://github.com/vuejs/core/commit/89f37ceb62363c77697d177675790a9ab81ba34f)), closes [#5793](https://github.com/vuejs/core/issues/5793) [#5794](https://github.com/vuejs/core/issues/5794) -* **custom-elements:** properties set pre-upgrade should not show up in $attrs ([afe8899](https://github.com/vuejs/core/commit/afe889999cbcaa11020c46c30b591a5ee6c3d4cf)) -* **custom-elements:** respect slot props in custom element mode ([ffef822](https://github.com/vuejs/core/commit/ffef8228694b39638f07c0fe5bc30d826262b672)) -* **custom-elements:** should not reflect non-decalred properties set before upgrade ([5e50909](https://github.com/vuejs/core/commit/5e509091000779acbfae4c85cc1cc3973b1b2e64)) -* **hmr/keep-alive:** fix error in reload component ([#7049](https://github.com/vuejs/core/issues/7049)) ([a54bff2](https://github.com/vuejs/core/commit/a54bff2c9c8e1d908b4a0f3826ac715c9a35e68c)), closes [#7042](https://github.com/vuejs/core/issues/7042) -* **runtime-core:** fix move/removal of static fragments containing text nodes ([#6858](https://github.com/vuejs/core/issues/6858)) ([4049ffc](https://github.com/vuejs/core/commit/4049ffcf29dc12dca71f682edf0b422a5c502e23)), closes [#6852](https://github.com/vuejs/core/issues/6852) -* **sfc:** also generate getter for import bindings during dev ([0594400](https://github.com/vuejs/core/commit/0594400980d3bdc394e92db63fc939a6609f7a94)) -* **sfc:** ensure ` + `) + expect(bindings).toStrictEqual({ + __propsAliases: { + fooBar: 'foo:bar' + }, + foo: BindingTypes.PROPS, + 'foo:bar': BindingTypes.PROPS, + fooBar: BindingTypes.PROPS_ALIASED + }) + + expect(content).toMatch(` + props: _mergeDefaults(['foo', 'foo:bar'], { + foo: 1, + "foo:bar": 'foo-bar' +}),`) + assertCode(content) + }) test('default values w/ type declaration', () => { const { content } = compile(` @@ -123,6 +145,37 @@ describe('sfc reactive props destructure', () => { assertCode(content) }) + test('default values w/ type declaration & key is string', () => { + const { content, bindings } = compile(` + + `) + expect(bindings).toStrictEqual({ + __propsAliases: { + fooBar: 'foo:bar' + }, + foo: BindingTypes.PROPS, + bar: BindingTypes.PROPS, + 'foo:bar': BindingTypes.PROPS, + fooBar: BindingTypes.PROPS_ALIASED, + 'onUpdate:modelValue': BindingTypes.PROPS + }) + expect(content).toMatch(` + props: { + foo: { type: Number, required: true, default: 1 }, + bar: { type: Number, required: true, default: 2 }, + "foo:bar": { type: String, required: true, default: 'foo-bar' }, + "onUpdate:modelValue": { type: Function, required: true } + },`) + assertCode(content) + }) + test('default values w/ type declaration, prod mode', () => { const { content } = compile( ` diff --git a/packages/compiler-sfc/src/script/defineProps.ts b/packages/compiler-sfc/src/script/defineProps.ts index 2a0882284fb..38968527c9a 100644 --- a/packages/compiler-sfc/src/script/defineProps.ts +++ b/packages/compiler-sfc/src/script/defineProps.ts @@ -133,10 +133,11 @@ export function genRuntimeProps(ctx: ScriptCompileContext): string | undefined { const defaults: string[] = [] for (const key in ctx.propsDestructuredBindings) { const d = genDestructuredDefaultValue(ctx, key) + const finalKey = getEscapedKey(key) if (d) defaults.push( - `${key}: ${d.valueString}${ - d.needSkipFactory ? `, __skip_${key}: true` : `` + `${finalKey}: ${d.valueString}${ + d.needSkipFactory ? `, __skip_${finalKey}: true` : `` }` ) } @@ -248,8 +249,9 @@ function genRuntimePropFromType( } } + const finalKey = getEscapedKey(key) if (!ctx.options.isProd) { - return `${key}: { ${concatStrings([ + return `${finalKey}: { ${concatStrings([ `type: ${toRuntimeTypeString(type)}`, `required: ${required}`, skipCheck && 'skipCheck: true', @@ -265,13 +267,13 @@ function genRuntimePropFromType( // #4783 for boolean, should keep the type // #7111 for function, if default value exists or it's not static, should keep it // in production - return `${key}: { ${concatStrings([ + return `${finalKey}: { ${concatStrings([ `type: ${toRuntimeTypeString(type)}`, defaultString ])} }` } else { // production: checks are useless - return `${key}: ${defaultString ? `{ ${defaultString} }` : `{}`}` + return `${finalKey}: ${defaultString ? `{ ${defaultString} }` : `{}`}` } } @@ -362,3 +364,14 @@ function inferValueType(node: Node): string | undefined { return 'Function' } } + +/** + * key may contain symbols + * e.g. onUpdate:modelValue -> "onUpdate:modelValue" + */ +export const escapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g +function getEscapedKey(key: string) { + return escapeSymbolsRE.test(key) + ? JSON.stringify(key) + : key +} diff --git a/packages/compiler-sfc/src/style/cssVars.ts b/packages/compiler-sfc/src/style/cssVars.ts index f232d09695d..a3e2104999a 100644 --- a/packages/compiler-sfc/src/style/cssVars.ts +++ b/packages/compiler-sfc/src/style/cssVars.ts @@ -8,6 +8,7 @@ import { BindingMetadata } from '@vue/compiler-dom' import { SFCDescriptor } from '../parse' +import { escapeSymbolsRE } from '../script/defineProps' import { PluginCreator } from 'postcss' import hash from 'hash-sum' @@ -32,7 +33,7 @@ function genVarName(id: string, raw: string, isProd: boolean): string { } else { // escape ASCII Punctuation & Symbols return `${id}-${raw.replace( - /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g, + escapeSymbolsRE, s => `\\${s}` )}` } From 574c83b52268d668a99309480c2f6c495348a663 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 12 May 2023 11:26:25 +0100 Subject: [PATCH 08/12] refactor(compiler-sfc): move prop key escape logic to utils --- packages/compiler-sfc/src/script/defineProps.ts | 14 ++------------ packages/compiler-sfc/src/script/utils.ts | 10 ++++++++++ packages/compiler-sfc/src/style/cssVars.ts | 7 ++----- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/packages/compiler-sfc/src/script/defineProps.ts b/packages/compiler-sfc/src/script/defineProps.ts index 38968527c9a..be99c6122ec 100644 --- a/packages/compiler-sfc/src/script/defineProps.ts +++ b/packages/compiler-sfc/src/script/defineProps.ts @@ -16,7 +16,8 @@ import { isLiteralNode, isCallOf, unwrapTSNode, - toRuntimeTypeString + toRuntimeTypeString, + getEscapedKey } from './utils' import { genModelProps } from './defineModel' import { getObjectOrArrayExpressionKeys } from './analyzeScriptBindings' @@ -364,14 +365,3 @@ function inferValueType(node: Node): string | undefined { return 'Function' } } - -/** - * key may contain symbols - * e.g. onUpdate:modelValue -> "onUpdate:modelValue" - */ -export const escapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g -function getEscapedKey(key: string) { - return escapeSymbolsRE.test(key) - ? JSON.stringify(key) - : key -} diff --git a/packages/compiler-sfc/src/script/utils.ts b/packages/compiler-sfc/src/script/utils.ts index 53362fcdca8..42c4718e3a8 100644 --- a/packages/compiler-sfc/src/script/utils.ts +++ b/packages/compiler-sfc/src/script/utils.ts @@ -108,3 +108,13 @@ export function normalizePath(p: string) { } export const joinPaths = (path.posix || path).join + +/** + * key may contain symbols + * e.g. onUpdate:modelValue -> "onUpdate:modelValue" + */ +export const escapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g + +export function getEscapedKey(key: string) { + return escapeSymbolsRE.test(key) ? JSON.stringify(key) : key +} diff --git a/packages/compiler-sfc/src/style/cssVars.ts b/packages/compiler-sfc/src/style/cssVars.ts index a3e2104999a..c86dbf2a5b9 100644 --- a/packages/compiler-sfc/src/style/cssVars.ts +++ b/packages/compiler-sfc/src/style/cssVars.ts @@ -8,7 +8,7 @@ import { BindingMetadata } from '@vue/compiler-dom' import { SFCDescriptor } from '../parse' -import { escapeSymbolsRE } from '../script/defineProps' +import { escapeSymbolsRE } from '../script/utils' import { PluginCreator } from 'postcss' import hash from 'hash-sum' @@ -32,10 +32,7 @@ function genVarName(id: string, raw: string, isProd: boolean): string { return hash(id + raw) } else { // escape ASCII Punctuation & Symbols - return `${id}-${raw.replace( - escapeSymbolsRE, - s => `\\${s}` - )}` + return `${id}-${raw.replace(escapeSymbolsRE, s => `\\${s}`)}` } } From 80a708f17a26ae522bd25b86b7af9374c661c06b Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 12 May 2023 12:37:25 +0100 Subject: [PATCH 09/12] chore: bump plugin-vue --- packages/sfc-playground/package.json | 2 +- .../sfc-playground/src/download/template/package.json | 5 ++--- packages/sfc-playground/vite.config.ts | 1 - pnpm-lock.yaml | 8 ++++---- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index 2c7d2253574..1638d2f9e8f 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -8,7 +8,7 @@ "serve": "vite preview" }, "devDependencies": { - "@vitejs/plugin-vue": "^4.1.0", + "@vitejs/plugin-vue": "^4.2.3", "vite": "^4.3.0" }, "dependencies": { diff --git a/packages/sfc-playground/src/download/template/package.json b/packages/sfc-playground/src/download/template/package.json index 48dac88199c..762cdf38592 100644 --- a/packages/sfc-playground/src/download/template/package.json +++ b/packages/sfc-playground/src/download/template/package.json @@ -7,11 +7,10 @@ "serve": "vite preview" }, "dependencies": { - "vue": "^3.2.0" + "vue": "^3.3.0" }, "devDependencies": { - "@vitejs/plugin-vue": "^4.1.0", - "@vue/compiler-sfc": "^3.2.0", + "@vitejs/plugin-vue": "^4.2.3", "vite": "^4.3.0" } } diff --git a/packages/sfc-playground/vite.config.ts b/packages/sfc-playground/vite.config.ts index 5176b9cf061..ed76f69dcf9 100644 --- a/packages/sfc-playground/vite.config.ts +++ b/packages/sfc-playground/vite.config.ts @@ -10,7 +10,6 @@ export default defineConfig({ plugins: [ vue({ script: { - // @ts-ignore fs: { fileExists: fs.existsSync, readFile: file => fs.readFileSync(file, 'utf-8') diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 575974764a0..b54c08d623b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -342,8 +342,8 @@ importers: version: link:../vue devDependencies: '@vitejs/plugin-vue': - specifier: ^4.1.0 - version: 4.1.0(vite@4.3.1)(vue@packages+vue) + specifier: ^4.2.3 + version: 4.2.3(vite@4.3.1)(vue@packages+vue) vite: specifier: ^4.3.0 version: 4.3.1(@types/node@16.18.11)(terser@5.16.2) @@ -1225,8 +1225,8 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@vitejs/plugin-vue@4.1.0(vite@4.3.1)(vue@packages+vue): - resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} + /@vitejs/plugin-vue@4.2.3(vite@4.3.1)(vue@packages+vue): + resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 From f25bd37c6707fde19d164d90a38de41168941f4b Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 12 May 2023 12:53:36 +0100 Subject: [PATCH 10/12] fix(compiler-sfc): fix regression on props destructure when transform is not enabled close #8289 --- .../__snapshots__/defineProps.spec.ts.snap | 20 +++++++++++++++++++ .../compileScript/defineProps.spec.ts | 13 ++++++++++++ .../src/script/definePropsDestructure.ts | 1 + 3 files changed, 34 insertions(+) diff --git a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap index 47328442328..62d9bef5d27 100644 --- a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap @@ -38,6 +38,26 @@ return { props } })" `; +exports[`defineProps > destructure without enabling reactive destructure 1`] = ` +"import { defineComponent as _defineComponent } from 'vue' + +export default /*#__PURE__*/_defineComponent({ + props: { + foo: { type: null, required: true } + }, + setup(__props: any, { expose: __expose }) { + __expose(); + +const { foo } = __props; + + + +return { } +} + +})" +`; + exports[`defineProps > w/ TS assertion 1`] = ` "import { defineComponent as _defineComponent } from 'vue' diff --git a/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts b/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts index fe5ef293ad4..43f54b0aa1e 100644 --- a/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts @@ -586,6 +586,19 @@ const props = defineProps({ foo: String }) }) }) + // #8289 + test('destructure without enabling reactive destructure', () => { + const { content } = compile( + `` + ) + expect(content).toMatch(`const { foo } = __props`) + assertCode(content) + }) + describe('errors', () => { test('w/ both type and non-type args', () => { expect(() => { diff --git a/packages/compiler-sfc/src/script/definePropsDestructure.ts b/packages/compiler-sfc/src/script/definePropsDestructure.ts index 87a58d9fabf..1584913855a 100644 --- a/packages/compiler-sfc/src/script/definePropsDestructure.ts +++ b/packages/compiler-sfc/src/script/definePropsDestructure.ts @@ -28,6 +28,7 @@ export function processPropsDestructure( declId: ObjectPattern ) { if (!ctx.options.propsDestructure && !ctx.options.reactivityTransform) { + ctx.propsIdentifier = ctx.getString(declId) return } From 82350721a408e1f552c613c05971439d6c218d87 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 12 May 2023 13:17:55 +0100 Subject: [PATCH 11/12] fix(compiler-sfc): raise specific warning for failed extends and allow ignoring extends ref #8286 --- .../compileScript/resolveType.spec.ts | 29 +++++++++++++++++++ .../compiler-sfc/src/script/resolveType.ts | 26 ++++++++++++++--- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts b/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts index 240497310ee..dd47ae269c6 100644 --- a/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts @@ -755,6 +755,35 @@ describe('resolveType', () => { `) ).not.toThrow() }) + + test('error against failed extends', () => { + expect(() => + resolve(` + import type Base from 'unknown' + interface Props extends Base {} + defineProps() + `) + ).toThrow(`@vue-ignore`) + }) + + test('allow ignoring failed extends', () => { + let res: any + + expect( + () => + (res = resolve(` + import type Base from 'unknown' + interface Props extends /*@vue-ignore*/ Base { + foo: string + } + defineProps() + `)) + ).not.toThrow(`@vue-ignore`) + + expect(res.props).toStrictEqual({ + foo: ['String'] + }) + }) }) }) diff --git a/packages/compiler-sfc/src/script/resolveType.ts b/packages/compiler-sfc/src/script/resolveType.ts index 6b43be582d5..e79d21f8419 100644 --- a/packages/compiler-sfc/src/script/resolveType.ts +++ b/packages/compiler-sfc/src/script/resolveType.ts @@ -322,11 +322,29 @@ function resolveInterfaceMembers( const base = typeElementsToMap(ctx, node.body.body, node._ownerScope) if (node.extends) { for (const ext of node.extends) { - const { props } = resolveTypeElements(ctx, ext, scope) - for (const key in props) { - if (!hasOwn(base.props, key)) { - base.props[key] = props[key] + if ( + ext.leadingComments && + ext.leadingComments.some(c => c.value.includes('@vue-ignore')) + ) { + continue + } + try { + const { props } = resolveTypeElements(ctx, ext, scope) + for (const key in props) { + if (!hasOwn(base.props, key)) { + base.props[key] = props[key] + } } + } catch (e) { + ctx.error( + `Failed to resolve extends base type.\nIf this previously worked in 3.2, ` + + `you can instruct the compiler to ignore this extend by adding ` + + `/* @vue-ignore */ before it, for example:\n\n` + + `interface Props extends /* @vue-ignore */ Base {}\n\n` + + `Note: both in 3.2 or with the ignore, the properties in the base ` + + `type are treated as fallthrough attrs at runtime.`, + ext + ) } } } From a374d7e6ed973cde7fae36ee82618cf46a8ba68a Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 12 May 2023 13:25:05 +0100 Subject: [PATCH 12/12] release: v3.3.2 --- CHANGELOG.md | 14 ++++++ package.json | 2 +- packages/compiler-core/package.json | 4 +- packages/compiler-dom/package.json | 6 +-- packages/compiler-sfc/package.json | 12 ++--- packages/compiler-ssr/package.json | 6 +-- packages/dts-test/package.json | 2 +- packages/reactivity-transform/package.json | 6 +-- packages/reactivity/package.json | 4 +- packages/runtime-core/package.json | 6 +-- packages/runtime-dom/package.json | 6 +-- packages/runtime-test/package.json | 6 +-- packages/server-renderer/package.json | 8 ++-- packages/sfc-playground/package.json | 2 +- packages/shared/package.json | 2 +- packages/size-check/package.json | 2 +- packages/template-explorer/package.json | 2 +- packages/vue-compat/package.json | 4 +- packages/vue/package.json | 12 ++--- pnpm-lock.yaml | 56 +++++++++++----------- 20 files changed, 88 insertions(+), 74 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f31c58487e5..c6510d87153 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +## [3.3.2](https://github.com/vuejs/core/compare/v3.3.1...v3.3.2) (2023-05-12) + + +### Bug Fixes + +* **compiler-core:** treat floating point numbers as constants ([8dc8cf8](https://github.com/vuejs/core/commit/8dc8cf852bf8057aa5c4b5670f09e8c28a168b73)), closes [#8295](https://github.com/vuejs/core/issues/8295) +* **compiler-dom:** do not throw in production on side effect tags ([c454b9d](https://github.com/vuejs/core/commit/c454b9d7f431d57abedb7184d1e4059914c4463f)), closes [#8287](https://github.com/vuejs/core/issues/8287) [#8292](https://github.com/vuejs/core/issues/8292) +* **compiler-sfc:** fix regression on props destructure when transform is not enabled ([f25bd37](https://github.com/vuejs/core/commit/f25bd37c6707fde19d164d90a38de41168941f4b)), closes [#8289](https://github.com/vuejs/core/issues/8289) +* **compiler-sfc:** handle prop keys that need escaping ([#7803](https://github.com/vuejs/core/issues/7803)) ([690ef29](https://github.com/vuejs/core/commit/690ef296357c7fc09f66ba9408df548e117f686f)), closes [#8291](https://github.com/vuejs/core/issues/8291) +* **compiler-sfc:** properly parse d.ts files when resolving types ([aa1e77d](https://github.com/vuejs/core/commit/aa1e77d532b951ea5d3a5e26214a8b0c9c02fb6f)), closes [#8285](https://github.com/vuejs/core/issues/8285) +* **compiler-sfc:** raise specific warning for failed extends and allow ignoring extends ([8235072](https://github.com/vuejs/core/commit/82350721a408e1f552c613c05971439d6c218d87)), closes [#8286](https://github.com/vuejs/core/issues/8286) + + + ## [3.3.1](https://github.com/vuejs/core/compare/v3.3.0...v3.3.1) (2023-05-11) diff --git a/package.json b/package.json index 30fe2a30f72..21b3a3cd309 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.3.1", + "version": "3.3.2", "packageManager": "pnpm@8.4.0", "type": "module", "scripts": { diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index 010aa429e86..14c3d79a1c4 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-core", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/compiler-core", "main": "index.js", "module": "dist/compiler-core.esm-bundler.js", @@ -33,7 +33,7 @@ "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", "dependencies": { "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.1", + "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" }, diff --git a/packages/compiler-dom/package.json b/packages/compiler-dom/package.json index e95e8bc18f5..e44ba75d39e 100644 --- a/packages/compiler-dom/package.json +++ b/packages/compiler-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-dom", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/compiler-dom", "main": "index.js", "module": "dist/compiler-dom.esm-bundler.js", @@ -37,7 +37,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", "dependencies": { - "@vue/shared": "3.3.1", - "@vue/compiler-core": "3.3.1" + "@vue/shared": "3.3.2", + "@vue/compiler-core": "3.3.2" } } diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index c0691d3c997..a4abee48890 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-sfc", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/compiler-sfc", "main": "dist/compiler-sfc.cjs.js", "module": "dist/compiler-sfc.esm-browser.js", @@ -33,11 +33,11 @@ "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-sfc#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.1", - "@vue/compiler-dom": "3.3.1", - "@vue/compiler-ssr": "3.3.1", - "@vue/reactivity-transform": "3.3.1", - "@vue/shared": "3.3.1", + "@vue/compiler-core": "3.3.2", + "@vue/compiler-dom": "3.3.2", + "@vue/compiler-ssr": "3.3.2", + "@vue/reactivity-transform": "3.3.2", + "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "magic-string": "^0.30.0", "postcss": "^8.1.10", diff --git a/packages/compiler-ssr/package.json b/packages/compiler-ssr/package.json index 51cfcaa2b1d..bde31b442f6 100644 --- a/packages/compiler-ssr/package.json +++ b/packages/compiler-ssr/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-ssr", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/compiler-ssr", "main": "dist/compiler-ssr.cjs.js", "types": "dist/compiler-ssr.d.ts", @@ -28,7 +28,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", "dependencies": { - "@vue/shared": "3.3.1", - "@vue/compiler-dom": "3.3.1" + "@vue/shared": "3.3.2", + "@vue/compiler-dom": "3.3.2" } } diff --git a/packages/dts-test/package.json b/packages/dts-test/package.json index ef37fe4ddb8..9932440ae2a 100644 --- a/packages/dts-test/package.json +++ b/packages/dts-test/package.json @@ -4,5 +4,5 @@ "dependencies": { "vue": "workspace:*" }, - "version": "3.3.1" + "version": "3.3.2" } diff --git a/packages/reactivity-transform/package.json b/packages/reactivity-transform/package.json index d23213979d2..c340609dca2 100644 --- a/packages/reactivity-transform/package.json +++ b/packages/reactivity-transform/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity-transform", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/reactivity-transform", "main": "dist/reactivity-transform.cjs.js", "files": [ @@ -29,8 +29,8 @@ "homepage": "https://github.com/vuejs/core/tree/dev/packages/reactivity-transform#readme", "dependencies": { "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.1", - "@vue/shared": "3.3.1", + "@vue/compiler-core": "3.3.2", + "@vue/shared": "3.3.2", "estree-walker": "^2.0.2", "magic-string": "^0.30.0" }, diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json index 64af38a8440..dd3ff99035f 100644 --- a/packages/reactivity/package.json +++ b/packages/reactivity/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/reactivity", "main": "index.js", "module": "dist/reactivity.esm-bundler.js", @@ -36,6 +36,6 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", "dependencies": { - "@vue/shared": "3.3.1" + "@vue/shared": "3.3.2" } } diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json index aca82a8da5d..44264c57189 100644 --- a/packages/runtime-core/package.json +++ b/packages/runtime-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-core", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/runtime-core", "main": "index.js", "module": "dist/runtime-core.esm-bundler.js", @@ -32,7 +32,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", "dependencies": { - "@vue/shared": "3.3.1", - "@vue/reactivity": "3.3.1" + "@vue/shared": "3.3.2", + "@vue/reactivity": "3.3.2" } } diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json index 75e4c8929e9..591fedf0fea 100644 --- a/packages/runtime-dom/package.json +++ b/packages/runtime-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-dom", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/runtime-dom", "main": "index.js", "module": "dist/runtime-dom.esm-bundler.js", @@ -35,8 +35,8 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", "dependencies": { - "@vue/shared": "3.3.1", - "@vue/runtime-core": "3.3.1", + "@vue/shared": "3.3.2", + "@vue/runtime-core": "3.3.2", "csstype": "^3.1.1" } } diff --git a/packages/runtime-test/package.json b/packages/runtime-test/package.json index 872f9f821fe..e4c6441b334 100644 --- a/packages/runtime-test/package.json +++ b/packages/runtime-test/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-test", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/runtime-test", "private": true, "main": "index.js", @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-test#readme", "dependencies": { - "@vue/shared": "3.3.1", - "@vue/runtime-core": "3.3.1" + "@vue/shared": "3.3.2", + "@vue/runtime-core": "3.3.2" } } diff --git a/packages/server-renderer/package.json b/packages/server-renderer/package.json index 5106d3e91ee..617293af37e 100644 --- a/packages/server-renderer/package.json +++ b/packages/server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/server-renderer", - "version": "3.3.1", + "version": "3.3.2", "description": "@vue/server-renderer", "main": "index.js", "module": "dist/server-renderer.esm-bundler.js", @@ -32,10 +32,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", "peerDependencies": { - "vue": "3.3.1" + "vue": "3.3.2" }, "dependencies": { - "@vue/shared": "3.3.1", - "@vue/compiler-ssr": "3.3.1" + "@vue/shared": "3.3.2", + "@vue/compiler-ssr": "3.3.2" } } diff --git a/packages/sfc-playground/package.json b/packages/sfc-playground/package.json index 1638d2f9e8f..a9c667c06d4 100644 --- a/packages/sfc-playground/package.json +++ b/packages/sfc-playground/package.json @@ -1,6 +1,6 @@ { "name": "@vue/sfc-playground", - "version": "3.3.1", + "version": "3.3.2", "private": true, "scripts": { "dev": "vite", diff --git a/packages/shared/package.json b/packages/shared/package.json index 511069b008a..1148d0ed7b4 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@vue/shared", - "version": "3.3.1", + "version": "3.3.2", "description": "internal utils shared across @vue packages", "main": "index.js", "module": "dist/shared.esm-bundler.js", diff --git a/packages/size-check/package.json b/packages/size-check/package.json index 5c61ed21715..488ce87bff5 100644 --- a/packages/size-check/package.json +++ b/packages/size-check/package.json @@ -1,6 +1,6 @@ { "name": "@vue/size-check", - "version": "3.3.1", + "version": "3.3.2", "private": true, "scripts": { "build": "vite build" diff --git a/packages/template-explorer/package.json b/packages/template-explorer/package.json index 742b6710ce0..28215c7ab2c 100644 --- a/packages/template-explorer/package.json +++ b/packages/template-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/template-explorer", - "version": "3.3.1", + "version": "3.3.2", "private": true, "buildOptions": { "formats": [ diff --git a/packages/vue-compat/package.json b/packages/vue-compat/package.json index bce54cafbcf..bd3c685f587 100644 --- a/packages/vue-compat/package.json +++ b/packages/vue-compat/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compat", - "version": "3.3.1", + "version": "3.3.2", "description": "Vue 3 compatibility build for Vue 2", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -43,6 +43,6 @@ "source-map-js": "^1.0.2" }, "peerDependencies": { - "vue": "3.3.1" + "vue": "3.3.2" } } diff --git a/packages/vue/package.json b/packages/vue/package.json index a8ad7e08edc..398f1428dcb 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "3.3.1", + "version": "3.3.2", "description": "The progressive JavaScript framework for building modern web UI.", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", @@ -81,10 +81,10 @@ }, "homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme", "dependencies": { - "@vue/shared": "3.3.1", - "@vue/compiler-dom": "3.3.1", - "@vue/runtime-dom": "3.3.1", - "@vue/compiler-sfc": "3.3.1", - "@vue/server-renderer": "3.3.1" + "@vue/shared": "3.3.2", + "@vue/compiler-dom": "3.3.2", + "@vue/runtime-dom": "3.3.2", + "@vue/compiler-sfc": "3.3.2", + "@vue/server-renderer": "3.3.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b54c08d623b..2cf5a0d8f32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,7 +146,7 @@ importers: specifier: ^7.21.3 version: 7.21.3 '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared estree-walker: specifier: ^2.0.2 @@ -162,10 +162,10 @@ importers: packages/compiler-dom: dependencies: '@vue/compiler-core': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-core '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared packages/compiler-sfc: @@ -174,19 +174,19 @@ importers: specifier: ^7.20.15 version: 7.21.3 '@vue/compiler-core': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-core '@vue/compiler-dom': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-dom '@vue/compiler-ssr': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-ssr '@vue/reactivity-transform': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../reactivity-transform '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared estree-walker: specifier: ^2.0.2 @@ -241,10 +241,10 @@ importers: packages/compiler-ssr: dependencies: '@vue/compiler-dom': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-dom '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared packages/dts-test: @@ -256,7 +256,7 @@ importers: packages/reactivity: dependencies: '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared packages/reactivity-transform: @@ -265,10 +265,10 @@ importers: specifier: ^7.20.15 version: 7.21.3 '@vue/compiler-core': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-core '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared estree-walker: specifier: ^2.0.2 @@ -287,19 +287,19 @@ importers: packages/runtime-core: dependencies: '@vue/reactivity': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../reactivity '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared packages/runtime-dom: dependencies: '@vue/runtime-core': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../runtime-core '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared csstype: specifier: ^3.1.1 @@ -308,22 +308,22 @@ importers: packages/runtime-test: dependencies: '@vue/runtime-core': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../runtime-core '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared packages/server-renderer: dependencies: '@vue/compiler-ssr': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-ssr '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared vue: - specifier: 3.3.1 + specifier: 3.3.2 version: link:../vue packages/sfc-playground: @@ -368,19 +368,19 @@ importers: packages/vue: dependencies: '@vue/compiler-dom': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-dom '@vue/compiler-sfc': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../compiler-sfc '@vue/runtime-dom': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../runtime-dom '@vue/server-renderer': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../server-renderer '@vue/shared': - specifier: 3.3.1 + specifier: 3.3.2 version: link:../shared packages/vue-compat: @@ -395,7 +395,7 @@ importers: specifier: ^1.0.2 version: 1.0.2 vue: - specifier: 3.3.1 + specifier: 3.3.2 version: link:../vue packages: