Skip to content

Commit 3bf1673

Browse files
authored
Merge branch 'main' into solution-1
2 parents d3bd9f4 + 5a8aa0b commit 3bf1673

File tree

68 files changed

+1344
-690
lines changed

Some content is hidden

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

68 files changed

+1344
-690
lines changed

.github/workflows/autofix.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: pnpm/[email protected]
1818

1919
- name: Install Node.js
20-
uses: actions/setup-node@v4
20+
uses: actions/setup-node@v5
2121
with:
2222
node-version-file: '.node-version'
2323
registry-url: 'https://registry.npmjs.org'

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
uses: pnpm/action-setup@v4
2727

2828
- name: Install Node.js
29-
uses: actions/setup-node@v4
29+
uses: actions/setup-node@v5
3030
with:
3131
node-version-file: '.node-version'
3232
registry-url: 'https://registry.npmjs.org'

.github/workflows/ecosystem-ci-trigger.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
if: github.repository == 'vuejs/core' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/ecosystem-ci run')
1111
steps:
1212
- name: Check user permission
13-
uses: actions/github-script@v7
13+
uses: actions/github-script@v8
1414
with:
1515
script: |
1616
const user = context.payload.sender.login
@@ -45,7 +45,7 @@ jobs:
4545
throw new Error('not allowed')
4646
}
4747
- name: Get PR info
48-
uses: actions/github-script@v7
48+
uses: actions/github-script@v8
4949
id: get-pr-data
5050
with:
5151
script: |
@@ -62,7 +62,7 @@ jobs:
6262
commit: pr.head.sha
6363
}
6464
- name: Trigger run
65-
uses: actions/github-script@v7
65+
uses: actions/github-script@v8
6666
id: trigger
6767
env:
6868
COMMENT: ${{ github.event.comment.body }}

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
uses: pnpm/action-setup@v4
2828

2929
- name: Install Node.js
30-
uses: actions/setup-node@v4
30+
uses: actions/setup-node@v5
3131
with:
3232
node-version-file: '.node-version'
3333
registry-url: 'https://registry.npmjs.org'

.github/workflows/size-data.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
uses: pnpm/[email protected]
2929

3030
- name: Install Node.js
31-
uses: actions/setup-node@v4
31+
uses: actions/setup-node@v5
3232
with:
3333
node-version-file: '.node-version'
3434
cache: pnpm

.github/workflows/size-report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
uses: pnpm/[email protected]
2929

3030
- name: Install Node.js
31-
uses: actions/setup-node@v4
31+
uses: actions/setup-node@v5
3232
with:
3333
node-version-file: '.node-version'
3434
cache: pnpm

.github/workflows/test.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: pnpm/[email protected]
1818

1919
- name: Install Node.js
20-
uses: actions/setup-node@v4
20+
uses: actions/setup-node@v5
2121
with:
2222
node-version-file: '.node-version'
2323
cache: 'pnpm'
@@ -38,7 +38,7 @@ jobs:
3838
uses: pnpm/[email protected]
3939

4040
- name: Install Node.js
41-
uses: actions/setup-node@v4
41+
uses: actions/setup-node@v5
4242
with:
4343
node-version-file: '.node-version'
4444
cache: 'pnpm'
@@ -66,7 +66,7 @@ jobs:
6666
uses: pnpm/[email protected]
6767

6868
- name: Install Node.js
69-
uses: actions/setup-node@v4
69+
uses: actions/setup-node@v5
7070
with:
7171
node-version-file: '.node-version'
7272
cache: 'pnpm'
@@ -91,7 +91,7 @@ jobs:
9191
uses: pnpm/[email protected]
9292

9393
- name: Install Node.js
94-
uses: actions/setup-node@v4
94+
uses: actions/setup-node@v5
9595
with:
9696
node-version-file: '.node-version'
9797
cache: 'pnpm'

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
## [3.5.22](https://github.com/vuejs/core/compare/v3.5.21...v3.5.22) (2025-09-25)
2+
3+
4+
### Bug Fixes
5+
6+
* **compiler-core:** identifiers in switch-case should not be inferred as references ([#13923](https://github.com/vuejs/core/issues/13923)) ([5953c9f](https://github.com/vuejs/core/commit/5953c9ff90090e128372f645d377bd99137a5fb4))
7+
* **compiler-dom:** nodes with v-once shouldn't be stringified ([#13878](https://github.com/vuejs/core/issues/13878)) ([95c1975](https://github.com/vuejs/core/commit/95c197560409f5d39a0d376c0a43d89a47a604e8))
8+
* **compiler-sfc:** add support for `@vue-ignore` in runtime type resolution ([#13906](https://github.com/vuejs/core/issues/13906)) ([ba7f7f9](https://github.com/vuejs/core/commit/ba7f7f90f689f6e7e0417a192d081db542de28ec))
9+
* **compiler-sfc:** enhance inferRuntimeType to support TSMappedType with indexed access ([#13848](https://github.com/vuejs/core/issues/13848)) ([e388f1a](https://github.com/vuejs/core/commit/e388f1a09fde78cf006450f060813d972ac8c23d)), closes [#13847](https://github.com/vuejs/core/issues/13847)
10+
* **compiler-sfc:** ensure css custom properties do not start with a digit ([#13870](https://github.com/vuejs/core/issues/13870)) ([9c27951](https://github.com/vuejs/core/commit/9c279517b9bc1f4c250c555ec9b9eb6104756d56))
11+
* **compiler-sfc:** ensure props bindings register before compiling template ([#13922](https://github.com/vuejs/core/issues/13922)) ([abd5638](https://github.com/vuejs/core/commit/abd563822abafe63047f7b599bff266380ee2b64)), closes [#13920](https://github.com/vuejs/core/issues/13920)
12+
* **compiler-ssr:** ensure v-show has a higher priority in SSR ([#12171](https://github.com/vuejs/core/issues/12171)) ([836b829](https://github.com/vuejs/core/commit/836b82976ffb7aa0ea9cbe417bef07deae3ca47c)), closes [#12162](https://github.com/vuejs/core/issues/12162)
13+
* **custom-element:** properly mount multiple Teleports in custom element component w/ shadowRoot false ([#13900](https://github.com/vuejs/core/issues/13900)) ([5e1e791](https://github.com/vuejs/core/commit/5e1e791880238380a1038ae2c505e206ceb34d77)), closes [#13899](https://github.com/vuejs/core/issues/13899)
14+
* **custom-element:** set prop runs pending mutations before disconnect ([#13897](https://github.com/vuejs/core/issues/13897)) ([c4a88cd](https://github.com/vuejs/core/commit/c4a88cdd0dfed3ef46a8aa9be448c01781fdc4f0)), closes [#13315](https://github.com/vuejs/core/issues/13315)
15+
* **custom-element:** use `PatchFlags.BAIL` for slot when props are present ([#13907](https://github.com/vuejs/core/issues/13907)) ([5358bca](https://github.com/vuejs/core/commit/5358bca4a80cf52d19ed91967eeaa025a786083d)), closes [#13904](https://github.com/vuejs/core/issues/13904)
16+
* **reactivity:** respect readonly during ref unwrapping ([#13905](https://github.com/vuejs/core/issues/13905)) ([aba7fed](https://github.com/vuejs/core/commit/aba7feda1703e69e5a7c37f784718de0371adadc)), closes [#13903](https://github.com/vuejs/core/issues/13903)
17+
* **reactivity:** update iterator to check for completion instead of value presence ([#13761](https://github.com/vuejs/core/issues/13761)) ([2078f8b](https://github.com/vuejs/core/commit/2078f8b7565cf637f47fcd5b0abdfb2b264225bb))
18+
* **runtime-core:** simplify block-tracking disabling in `h` helper ([#13841](https://github.com/vuejs/core/issues/13841)) ([75220c7](https://github.com/vuejs/core/commit/75220c7995a13a483ae9599a739075be1c8e17f8))
19+
* **transition-group:** run `forceReflow` on the correct document (fix [#13849](https://github.com/vuejs/core/issues/13849)) ([#13853](https://github.com/vuejs/core/issues/13853)) ([1be5ddf](https://github.com/vuejs/core/commit/1be5ddfe878c8bfddaa2c50e82105b247f50b9ba))
20+
* **types:** more precise types for Events and added missing definitions ([#9675](https://github.com/vuejs/core/issues/9675)) ([8bb8fb2](https://github.com/vuejs/core/commit/8bb8fb236257c03bfa0bccadcfffe3eb4592f71b))
21+
* **types:** set dom stub type to `never` instead of `{}` ([#13915](https://github.com/vuejs/core/issues/13915)) ([8620a61](https://github.com/vuejs/core/commit/8620a616eb02a64fe32dd52d9be68e360687ef9d)), closes [#11564](https://github.com/vuejs/core/issues/11564)
22+
* **types:** widen directive arg type from string to any ([#13758](https://github.com/vuejs/core/issues/13758)) ([4b71706](https://github.com/vuejs/core/commit/4b7170625d0bc93b26a3343aeda98850c1138f82)), closes [#13757](https://github.com/vuejs/core/issues/13757)
23+
24+
25+
### Features
26+
27+
* **custom-element:** allow specifying additional options for `shadowRoot` in custom elements ([#12965](https://github.com/vuejs/core/issues/12965)) ([47e628d](https://github.com/vuejs/core/commit/47e628df1ce1914c5677010ad5bddd18d037cb3c)), closes [#12964](https://github.com/vuejs/core/issues/12964)
28+
29+
30+
### Reverts
31+
32+
* Revert "fix(hmr): prevent __VUE_HMR_RUNTIME__ from being overwritten by vue runtime in 3rd-party libraries" (#13925) ([6b68f72](https://github.com/vuejs/core/commit/6b68f72673dac5db349f26eeefb2f2e0e342586b)), closes [#13925](https://github.com/vuejs/core/issues/13925)
33+
34+
35+
136
## [3.5.21](https://github.com/vuejs/core/compare/v3.5.20...v3.5.21) (2025-09-02)
237

338

package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
3-
"version": "3.5.21",
4-
"packageManager": "pnpm@10.15.0",
3+
"version": "3.5.22",
4+
"packageManager": "pnpm@10.17.1",
55
"type": "module",
66
"scripts": {
77
"dev": "node scripts/dev.js",
@@ -71,38 +71,38 @@
7171
"@rollup/plugin-replace": "5.0.4",
7272
"@swc/core": "^1.13.5",
7373
"@types/hash-sum": "^1.0.2",
74-
"@types/node": "^22.17.2",
75-
"@types/semver": "^7.7.0",
74+
"@types/node": "^22.18.6",
75+
"@types/semver": "^7.7.1",
7676
"@types/serve-handler": "^6.1.4",
7777
"@vitest/coverage-v8": "^3.2.4",
78-
"@vitest/eslint-plugin": "^1.3.5",
78+
"@vitest/eslint-plugin": "^1.3.12",
7979
"@vue/consolidate": "1.0.0",
8080
"conventional-changelog-cli": "^5.0.0",
8181
"enquirer": "^2.4.1",
82-
"esbuild": "^0.25.9",
82+
"esbuild": "^0.25.10",
8383
"esbuild-plugin-polyfill-node": "^0.3.0",
8484
"eslint": "^9.27.0",
8585
"eslint-plugin-import-x": "^4.13.1",
8686
"estree-walker": "catalog:",
87-
"jsdom": "^26.1.0",
87+
"jsdom": "^27.0.0",
8888
"lint-staged": "^16.0.0",
8989
"lodash": "^4.17.21",
90-
"magic-string": "^0.30.18",
90+
"magic-string": "^0.30.19",
9191
"markdown-table": "^3.0.4",
9292
"marked": "13.0.3",
9393
"npm-run-all2": "^8.0.4",
9494
"picocolors": "^1.1.1",
9595
"prettier": "^3.5.3",
9696
"pretty-bytes": "^6.1.1",
9797
"pug": "^3.0.3",
98-
"puppeteer": "~24.17.1",
98+
"puppeteer": "~24.22.2",
9999
"rimraf": "^6.0.1",
100-
"rollup": "^4.50.0",
100+
"rollup": "^4.52.2",
101101
"rollup-plugin-dts": "^6.2.3",
102102
"rollup-plugin-esbuild": "^6.2.1",
103103
"rollup-plugin-polyfill-node": "^0.13.0",
104104
"semver": "^7.7.2",
105-
"serve": "^14.2.4",
105+
"serve": "^14.2.5",
106106
"serve-handler": "^6.1.6",
107107
"simple-git-hooks": "^2.13.0",
108108
"todomvc-app-css": "^2.4.3",

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

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type ExtractBinding<T> = T extends (
1313
declare function testDirective<
1414
Value,
1515
Modifiers extends string = string,
16-
Arg extends string = string,
16+
Arg = any,
1717
>(): ExtractBinding<Directive<any, Value, Modifiers, Arg>>
1818

1919
describe('vmodel', () => {
@@ -44,15 +44,37 @@ describe('custom', () => {
4444
value: number
4545
oldValue: number | null
4646
arg?: 'Arg'
47-
modifiers: Record<'a' | 'b', boolean>
47+
modifiers: Partial<Record<'a' | 'b', boolean>>
4848
// @ts-expect-error
4949
}>(testDirective<number, 'a' | 'b', 'Argx'>())
5050

5151
expectType<{
5252
value: number
5353
oldValue: number | null
5454
arg?: 'Arg'
55-
modifiers: Record<'a' | 'b', boolean>
55+
modifiers: Partial<Record<'a' | 'b', boolean>>
5656
// @ts-expect-error
5757
}>(testDirective<string, 'a' | 'b', 'Arg'>())
58+
59+
expectType<{
60+
value: number
61+
oldValue: number | null
62+
arg?: HTMLElement
63+
modifiers: Partial<Record<'a' | 'b', boolean>>
64+
}>(testDirective<number, 'a' | 'b', HTMLElement>())
65+
66+
expectType<{
67+
value: number
68+
oldValue: number | null
69+
arg?: HTMLElement
70+
modifiers: Partial<Record<'a' | 'b', boolean>>
71+
// @ts-expect-error
72+
}>(testDirective<number, 'a' | 'b', string>())
73+
74+
expectType<{
75+
value: number
76+
oldValue: number | null
77+
arg?: HTMLElement
78+
modifiers: Partial<Record<'a' | 'b', boolean>>
79+
}>(testDirective<number, 'a' | 'b'>())
5880
})

0 commit comments

Comments
 (0)