Skip to content

Commit c7fd6ae

Browse files
committed
Merge tag 'v3.5.11'
2 parents 126ce65 + 6e4de8d commit c7fd6ae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+922
-972
lines changed

CHANGELOG.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,52 @@
1+
## [3.5.11](https://github.com/vuejs/core/compare/v3.5.10...v3.5.11) (2024-10-03)
2+
3+
4+
### Bug Fixes
5+
6+
* **compiler-sfc:** do not skip `TSSatisfiesExpression` when transforming props destructure ([#12062](https://github.com/vuejs/core/issues/12062)) ([2328b05](https://github.com/vuejs/core/commit/2328b051f4efa1f1394b7d4e73b7c3f76e430e7c)), closes [#12061](https://github.com/vuejs/core/issues/12061)
7+
* **reactivity:** prevent overwriting `next` property during batch processing ([#12075](https://github.com/vuejs/core/issues/12075)) ([d3f5e6e](https://github.com/vuejs/core/commit/d3f5e6e5319b4ffaa55ca9a2ea3d95d78e76fa58)), closes [#12072](https://github.com/vuejs/core/issues/12072)
8+
* **scheduler:** job ordering when the post queue is flushing ([#12090](https://github.com/vuejs/core/issues/12090)) ([577edca](https://github.com/vuejs/core/commit/577edca8e7795436efd710d1c289ea8ea2642b0e))
9+
* **types:** correctly infer `TypeProps` when it is `any` ([#12073](https://github.com/vuejs/core/issues/12073)) ([57315ab](https://github.com/vuejs/core/commit/57315ab9688c9741a271d1075bbd28cbe5f71e2f)), closes [#12058](https://github.com/vuejs/core/issues/12058)
10+
* **types:** should not intersect `PublicProps` with `Props` ([#12077](https://github.com/vuejs/core/issues/12077)) ([6f85894](https://github.com/vuejs/core/commit/6f8589437635706f825ccec51800effba1d2bf5f))
11+
* **types:** infer the first generic type of `Ref` correctly ([#12094](https://github.com/vuejs/core/issues/12094)) ([c97bb84](https://github.com/vuejs/core/commit/c97bb84d0b0a16b012f886b6498e924415ed63e5))
12+
13+
14+
15+
## [3.5.10](https://github.com/vuejs/core/compare/v3.5.9...v3.5.10) (2024-09-27)
16+
17+
18+
### Bug Fixes
19+
20+
* **custom-element:** properly set kebab-case props on Vue custom elements ([ea3efa0](https://github.com/vuejs/core/commit/ea3efa09e008918c1d9ba7226833a8b1a7a57244)), closes [#12030](https://github.com/vuejs/core/issues/12030) [#12032](https://github.com/vuejs/core/issues/12032)
21+
* **reactivity:** fix nested batch edge case ([93c95dd](https://github.com/vuejs/core/commit/93c95dd4cd416503f43a98a1455f62658d22b0b2))
22+
* **reactivity:** only clear notified flags for computed in first batch iteration ([aa9ef23](https://github.com/vuejs/core/commit/aa9ef2386a0cd39a174e5a887ec2b1a3525034fc)), closes [#12045](https://github.com/vuejs/core/issues/12045)
23+
* **types/ref:** handle nested refs in UnwrapRef ([#12049](https://github.com/vuejs/core/issues/12049)) ([e2c19c2](https://github.com/vuejs/core/commit/e2c19c20cfee9788519a80c0e53e216b78505994)), closes [#12044](https://github.com/vuejs/core/issues/12044)
24+
25+
26+
27+
## [3.5.9](https://github.com/vuejs/core/compare/v3.5.8...v3.5.9) (2024-09-26)
28+
29+
30+
### Bug Fixes
31+
32+
* **reactivity:** fix property dep removal regression ([6001e5c](https://github.com/vuejs/core/commit/6001e5c81a05c894586f9287fbd991677bdd0455)), closes [#12020](https://github.com/vuejs/core/issues/12020) [#12021](https://github.com/vuejs/core/issues/12021)
33+
* **reactivity:** fix recursive sync watcher on computed edge case ([10ff159](https://github.com/vuejs/core/commit/10ff15924053d9bd95ad706f78ce09e288213fcf)), closes [#12033](https://github.com/vuejs/core/issues/12033) [#12037](https://github.com/vuejs/core/issues/12037)
34+
* **runtime-core:** avoid rendering plain object as VNode ([#12038](https://github.com/vuejs/core/issues/12038)) ([cb34b28](https://github.com/vuejs/core/commit/cb34b28a4a9bf868be4785b001c526163eda342e)), closes [#12035](https://github.com/vuejs/core/issues/12035) [vitejs/vite-plugin-vue#353](https://github.com/vitejs/vite-plugin-vue/issues/353)
35+
* **runtime-core:** make useId() always return a string ([a177092](https://github.com/vuejs/core/commit/a177092754642af2f98c33a4feffe8f198c3c950))
36+
* **types:** correct type inference of union event names ([#12022](https://github.com/vuejs/core/issues/12022)) ([4da6881](https://github.com/vuejs/core/commit/4da688141d9e7c15b622c289deaa81b11845b2c7))
37+
* **vue:** properly cache runtime compilation ([#12019](https://github.com/vuejs/core/issues/12019)) ([fa0ba24](https://github.com/vuejs/core/commit/fa0ba24b3ace02d7ecab65e57c2bea89a2550dcb))
38+
39+
40+
41+
## [3.5.8](https://github.com/vuejs/core/compare/v3.5.7...v3.5.8) (2024-09-22)
42+
43+
44+
### Bug Fixes
45+
46+
* **reactivity:** do not remove dep from depsMap when cleaning up deps of computed ([#11995](https://github.com/vuejs/core/issues/11995)) ([0267a58](https://github.com/vuejs/core/commit/0267a588017eee4951ac2a877fe1ccae84cad905))
47+
48+
49+
150
## [3.5.7](https://github.com/vuejs/core/compare/v3.5.6...v3.5.7) (2024-09-20)
251

352

package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
3-
"version": "3.5.7",
4-
"packageManager": "pnpm@9.10.0",
3+
"version": "3.5.11",
4+
"packageManager": "pnpm@9.12.0",
55
"type": "module",
66
"scripts": {
77
"dev": "node scripts/dev.js vue vue-vapor",
@@ -61,22 +61,22 @@
6161
"devDependencies": {
6262
"@babel/parser": "catalog:",
6363
"@babel/types": "catalog:",
64-
"@rollup/plugin-alias": "^5.1.0",
65-
"@rollup/plugin-commonjs": "^26.0.1",
64+
"@rollup/plugin-alias": "^5.1.1",
65+
"@rollup/plugin-commonjs": "^26.0.3",
6666
"@rollup/plugin-json": "^6.1.0",
67-
"@rollup/plugin-node-resolve": "^15.2.3",
67+
"@rollup/plugin-node-resolve": "^15.3.0",
6868
"@rollup/plugin-replace": "5.0.4",
69-
"@swc/core": "^1.7.26",
69+
"@swc/core": "^1.7.28",
7070
"@types/hash-sum": "^1.0.2",
71-
"@types/node": "^20.16.5",
71+
"@types/node": "^20.16.10",
7272
"@types/semver": "^7.5.8",
7373
"@types/serve-handler": "^6.1.4",
7474
"@vitest/coverage-v8": "^2.1.1",
7575
"@vitest/ui": "^2.1.1",
7676
"@vue/consolidate": "1.0.0",
7777
"conventional-changelog-cli": "^5.0.0",
7878
"enquirer": "^2.4.1",
79-
"esbuild": "^0.23.1",
79+
"esbuild": "^0.24.0",
8080
"esbuild-plugin-polyfill-node": "^0.3.0",
8181
"eslint": "^9.10.0",
8282
"eslint-plugin-import-x": "^4.2.1",
@@ -95,7 +95,7 @@
9595
"pug": "^3.0.3",
9696
"puppeteer": "~23.3.0",
9797
"rimraf": "^6.0.1",
98-
"rollup": "^4.21.3",
98+
"rollup": "^4.24.0",
9999
"rollup-plugin-dts": "^6.1.1",
100100
"rollup-plugin-esbuild": "^6.1.1",
101101
"rollup-plugin-polyfill-node": "^0.13.0",

packages-private/dts-test/ref.test-d.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,24 @@ describe('allow getter and setter types to be unrelated', <T>() => {
189189
f.value = ref(1)
190190
})
191191

192+
describe('correctly unwraps nested refs', () => {
193+
const obj = {
194+
n: 24,
195+
ref: ref(24),
196+
nestedRef: ref({ n: ref(0) }),
197+
}
198+
199+
const a = ref(obj)
200+
expectType<number>(a.value.n)
201+
expectType<number>(a.value.ref)
202+
expectType<number>(a.value.nestedRef.n)
203+
204+
const b = reactive({ a })
205+
expectType<number>(b.a.n)
206+
expectType<number>(b.a.ref)
207+
expectType<number>(b.a.nestedRef.n)
208+
})
209+
192210
// computed
193211
describe('allow computed getter and setter types to be unrelated', () => {
194212
const obj = ref({

packages-private/sfc-playground/src/download/template/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"vue": "^3.4.0"
1212
},
1313
"devDependencies": {
14-
"@vitejs/plugin-vue": "^5.1.3",
15-
"vite": "^5.4.5"
14+
"@vitejs/plugin-vue": "^5.1.4",
15+
"vite": "^5.4.8"
1616
}
1717
}

packages/compiler-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vue/compiler-core",
3-
"version": "3.5.7",
3+
"version": "3.5.11",
44
"description": "@vue/compiler-core",
55
"main": "index.js",
66
"module": "dist/compiler-core.esm-bundler.js",

packages/compiler-dom/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vue/compiler-dom",
3-
"version": "3.5.7",
3+
"version": "3.5.11",
44
"description": "@vue/compiler-dom",
55
"main": "index.js",
66
"module": "dist/compiler-dom.esm-bundler.js",

packages/compiler-sfc/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vue/compiler-sfc",
3-
"version": "3.5.7",
3+
"version": "3.5.11",
44
"description": "@vue/compiler-sfc",
55
"main": "dist/compiler-sfc.cjs.js",
66
"module": "dist/compiler-sfc.esm-browser.js",
@@ -63,6 +63,6 @@
6363
"postcss-modules": "^6.0.0",
6464
"postcss-selector-parser": "^6.1.2",
6565
"pug": "^3.0.3",
66-
"sass": "^1.78.0"
66+
"sass": "^1.79.4"
6767
}
6868
}

packages/compiler-sfc/src/parse.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { createCache } from './cache'
1818
import type { ImportBinding } from './compileScript'
1919
import { isImportUsed } from './script/importUsageCheck'
2020
import type { LRUCache } from 'lru-cache'
21+
import { genCacheKey } from '@vue/shared'
2122

2223
export const DEFAULT_FILENAME = 'anonymous.vue'
2324

@@ -105,24 +106,14 @@ export const parseCache:
105106
| Map<string, SFCParseResult>
106107
| LRUCache<string, SFCParseResult> = createCache<SFCParseResult>()
107108

108-
function genCacheKey(source: string, options: SFCParseOptions): string {
109-
return (
110-
source +
111-
JSON.stringify(
112-
{
113-
...options,
114-
compiler: { parse: options.compiler?.parse },
115-
},
116-
(_, val) => (typeof val === 'function' ? val.toString() : val),
117-
)
118-
)
119-
}
120-
121109
export function parse(
122110
source: string,
123111
options: SFCParseOptions = {},
124112
): SFCParseResult {
125-
const sourceKey = genCacheKey(source, options)
113+
const sourceKey = genCacheKey(source, {
114+
...options,
115+
compiler: { parse: options.compiler?.parse },
116+
})
126117
const cache = parseCache.get(sourceKey)
127118
if (cache) {
128119
return cache

packages/compiler-sfc/src/script/definePropsDestructure.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ export function transformDestructuredProps(
242242
parent.type.startsWith('TS') &&
243243
parent.type !== 'TSAsExpression' &&
244244
parent.type !== 'TSNonNullExpression' &&
245+
parent.type !== 'TSSatisfiesExpression' &&
245246
parent.type !== 'TSTypeAssertion'
246247
) {
247248
return this.skip()

packages/compiler-ssr/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vue/compiler-ssr",
3-
"version": "3.5.7",
3+
"version": "3.5.11",
44
"description": "@vue/compiler-ssr",
55
"main": "dist/compiler-ssr.cjs.js",
66
"types": "dist/compiler-ssr.d.ts",

0 commit comments

Comments
 (0)