Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(reactivity): prevent endless recursion in computed getters #11797

Merged
merged 1 commit into from
Sep 5, 2024

Conversation

lehni
Copy link
Contributor

@lehni lehni commented Sep 3, 2024

As shared on Twitter with @yyx990803, here the fix for the endless recursion that is sadly very difficult to isolate form our code-base. I will keep trying to create a simple test-case.

Copy link

pkg-pr-new bot commented Sep 4, 2024

Open in Stackblitz

@vue/compiler-core

pnpm add https://pkg.pr.new/@vue/compiler-core@11797

@vue/compiler-dom

pnpm add https://pkg.pr.new/@vue/compiler-dom@11797

@vue/compiler-sfc

pnpm add https://pkg.pr.new/@vue/compiler-sfc@11797

@vue/compiler-ssr

pnpm add https://pkg.pr.new/@vue/compiler-ssr@11797

@vue/reactivity

pnpm add https://pkg.pr.new/@vue/reactivity@11797

@vue/runtime-dom

pnpm add https://pkg.pr.new/@vue/runtime-dom@11797

@vue/runtime-core

pnpm add https://pkg.pr.new/@vue/runtime-core@11797

@vue/server-renderer

pnpm add https://pkg.pr.new/@vue/server-renderer@11797

@vue/shared

pnpm add https://pkg.pr.new/@vue/shared@11797

vue

pnpm add https://pkg.pr.new/vue@11797

@vue/compat

pnpm add https://pkg.pr.new/@vue/compat@11797

commit: 785c471

Copy link

github-actions bot commented Sep 4, 2024

Size Report

Bundles

File Size Gzip Brotli
runtime-dom.global.prod.js 100 kB (-32 B) 37.7 kB (-11 B) 33.9 kB (+6 B)
vue.global.prod.js 159 kB (-32 B) 57.6 kB (-7 B) 51.2 kB (+7 B)

Usages

Name Size Gzip Brotli
createApp 55.2 kB (-9 B) 21.2 kB (-7 B) 19.4 kB (-10 B)
createSSRApp 59.2 kB (-9 B) 22.9 kB (-9 B) 20.9 kB (-34 B)
defineCustomElement 59.9 kB (-10 B) 22.8 kB (-9 B) 20.8 kB (+40 B)
overall 68.9 kB (-31 B) 26.3 kB (-5 B) 23.9 kB (-39 B)

@edison1105 edison1105 added need test The PR has missing test cases. scope: reactivity labels Sep 4, 2024
@yyx990803
Copy link
Member

/ecosystem-ci run

@vue-bot
Copy link
Contributor

vue-bot commented Sep 4, 2024

📝 Ran ecosystem CI: Open

suite result latest scheduled
language-tools failure failure
nuxt failure success
pinia success success
primevue success success
quasar success success
radix-vue success success
router success success
test-utils success success
vant success success
vite-plugin-vue success success
vitepress success success
vue-i18n success success
vue-macros success success
vuetify success success
vueuse success success
vue-simple-compiler success success

@yyx990803
Copy link
Member

/ecosystem-ci run nuxt

@vue-bot
Copy link
Contributor

vue-bot commented Sep 4, 2024

⏳ Triggered ecosystem CI: Open

@yyx990803
Copy link
Member

This doesn't seem to break anything but it would be ideal to have a minimal test case so we better understand what kind of usage leads to need of this fix.

@lehni
Copy link
Contributor Author

lehni commented Sep 4, 2024

@yyx990803 I've been trying to understand the situation that creates such a chain and how to create a simple test-case for it all morning, but have not managed to do so yet. It's very tricky, as I don't unterstand the internals of the reactivity system and the situation only occurs in one place in our complex code-base.

@lehni
Copy link
Contributor Author

lehni commented Sep 4, 2024

I've finally managed to track this down. I will create a test-case soon, and I also have a simpler fix for this endless recursion than the current one. More to come.

@lehni lehni force-pushed the fix/reactivity-computed-recursion branch from 892d0fa to 785c471 Compare September 4, 2024 20:53
@lehni
Copy link
Contributor Author

lehni commented Sep 4, 2024

I have added a simpler fix for this situation along with a proper test in 785c471

@yyx990803 I look forward to hearing your thoughts on this.

@yyx990803
Copy link
Member

@lehni that is indeed another behavior change from 3.4. I will address it in a separate commit.

@yyx990803 yyx990803 merged commit 716275d into vuejs:main Sep 5, 2024
13 checks passed
@lehni
Copy link
Contributor Author

lehni commented Sep 5, 2024

@yyx990803 amazing, thank you for working on this so swiftly!

@onlime
Copy link

onlime commented Sep 5, 2024

Great @lehni & @yyx990803 Thanks for the fast fix! The endless recursion also occurred in floating-vue tooltips, fixed with Vue 3.5.2

@lehni lehni deleted the fix/reactivity-computed-recursion branch September 5, 2024 17:21
@charlesg99
Copy link

Why was this reverted? 3.5.2 fixed it and today 3.5.3 broke it again.

@lehni
Copy link
Contributor Author

lehni commented Sep 7, 2024

@charlesg99 are you saying you're seeing an endless recursion again?

For what it's worth, this fix here wasn't reverted, it's the follow up commit e84c4a6 by @yyx990803 that was reverted.

@charlesg99
Copy link

@charlesg99 are you saying you're seeing an endless recursion again?

For what it's worth, this fix here wasn't reverted, it's the follow up commit e84c4a6 by @yyx990803 that was reverted.

The reverted commit references your comment here and not a separate issue, so I'm commenting here :)

@lehni
Copy link
Contributor Author

lehni commented Sep 8, 2024

Ok understood. Could you create a new issue with a test-case illustrating your bug?

renovate bot added a commit to slipmatio/logger that referenced this pull request Sep 9, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) | [`1.46.1`
->
`1.47.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.46.1/1.47.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.16.2` ->
`20.16.5`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.2/20.16.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.16.2/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.16.2/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`15.7.0` ->
`15.7.3`](https://renovatebot.com/diffs/npm/happy-dom/15.7.0/15.7.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/15.7.0/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/15.7.0/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vitejs.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`5.4.2` ->
`5.4.3`](https://renovatebot.com/diffs/npm/vite/5.4.2/5.4.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite-plugin-dts](https://redirect.github.com/qmhc/vite-plugin-dts) |
[`4.0.3` ->
`4.1.1`](https://renovatebot.com/diffs/npm/vite-plugin-dts/4.0.3/4.1.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-dts/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-dts/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-dts/4.0.3/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-dts/4.0.3/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://redirect.github.com/vuejs/core)) | [`3.4.38` ->
`3.5.3`](https://renovatebot.com/diffs/npm/vue/3.4.38/3.5.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.4.38/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.4.38/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.1.2` ->
`2.1.6`](https://renovatebot.com/diffs/npm/vue-tsc/2.1.2/2.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.1.2/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.1.2/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.47.0`](https://redirect.github.com/microsoft/playwright/compare/v1.46.1...d5943def35edadc6f9bd8daeed382559d2a55fbe)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.46.1...v1.47.0)

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

###
[`v15.7.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.2...v15.7.3)

##### 👷‍♂️ Patch fixes

- Fixes bug that occurs when checking if a symbol property exists on
`HTMLSelectElement` - By
**[@&#8203;Cherry](https://redirect.github.com/Cherry)** in task
[#&#8203;1526](https://redirect.github.com/capricorn86/happy-dom/issues/1526)

###
[`v15.7.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.1...v15.7.2)

##### 👷‍♂️ Patch fixes

- Fixes problem where it is not possible to observe again after
disconnecting in `MutationObserver` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1524](https://redirect.github.com/capricorn86/happy-dom/issues/1524)

###
[`v15.7.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.0...v15.7.1)

##### 👷‍♂️ Patch fixes

- Fixes selector validation and converts selectors to string (e.g.
`querySelector(['.class'])`) - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1507](https://redirect.github.com/capricorn86/happy-dom/issues/1507)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.4.3`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small543-2024-09-03-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v5.4.2...v5.4.3)

- fix: allow getting URL of JS files in publicDir
([#&#8203;17915](https://redirect.github.com/vitejs/vite/issues/17915))
([943ece1](https://redirect.github.com/vitejs/vite/commit/943ece177e7709b3ba574e810afce347c51d4442)),
closes
[#&#8203;17915](https://redirect.github.com/vitejs/vite/issues/17915)
- fix: cjs warning respect the logLevel flag
([#&#8203;17993](https://redirect.github.com/vitejs/vite/issues/17993))
([dc3c14f](https://redirect.github.com/vitejs/vite/commit/dc3c14f39fcd57867c8ae81b75ae768b53b4b880)),
closes
[#&#8203;17993](https://redirect.github.com/vitejs/vite/issues/17993)
- fix: improve CJS warning trace information
([#&#8203;17926](https://redirect.github.com/vitejs/vite/issues/17926))
([5c5f82c](https://redirect.github.com/vitejs/vite/commit/5c5f82c84bb64309875b42eee9d4dd525ab42e8c)),
closes
[#&#8203;17926](https://redirect.github.com/vitejs/vite/issues/17926)
- fix: only remove entry assets handled by Vite core
([#&#8203;17916](https://redirect.github.com/vitejs/vite/issues/17916))
([ebfaa7e](https://redirect.github.com/vitejs/vite/commit/ebfaa7e6019783f308db5e759a6a67abb7cc626c)),
closes
[#&#8203;17916](https://redirect.github.com/vitejs/vite/issues/17916)
- fix: waitForRequestIdle locked
([#&#8203;17982](https://redirect.github.com/vitejs/vite/issues/17982))
([ad13760](https://redirect.github.com/vitejs/vite/commit/ad1376018a94b42540a8488d897cc520849e1228)),
closes
[#&#8203;17982](https://redirect.github.com/vitejs/vite/issues/17982)
- fix(css): fix directory index import in sass modern api
([#&#8203;17960](https://redirect.github.com/vitejs/vite/issues/17960))
([9b001ba](https://redirect.github.com/vitejs/vite/commit/9b001baa70c8489ac5550107c110a5dca281cda4)),
closes
[#&#8203;17960](https://redirect.github.com/vitejs/vite/issues/17960)
- fix(css): fix sass `file://` reference
([#&#8203;17909](https://redirect.github.com/vitejs/vite/issues/17909))
([561b940](https://redirect.github.com/vitejs/vite/commit/561b940f6f963fbb78058a6e23b4adad53a2edb9)),
closes
[#&#8203;17909](https://redirect.github.com/vitejs/vite/issues/17909)
- fix(css): fix sass modern source map
([#&#8203;17938](https://redirect.github.com/vitejs/vite/issues/17938))
([d428e7e](https://redirect.github.com/vitejs/vite/commit/d428e7e3a05f8da5ea00bb1b6a0827a5cc225899)),
closes
[#&#8203;17938](https://redirect.github.com/vitejs/vite/issues/17938)
- fix(deps): bump tsconfck
([#&#8203;17990](https://redirect.github.com/vitejs/vite/issues/17990))
([8c661b2](https://redirect.github.com/vitejs/vite/commit/8c661b20e92f33eb2e3ba3841b20dd6f6076f1ef)),
closes
[#&#8203;17990](https://redirect.github.com/vitejs/vite/issues/17990)
- fix(html): rewrite assets url in <template>
([#&#8203;17988](https://redirect.github.com/vitejs/vite/issues/17988))
([413c86a](https://redirect.github.com/vitejs/vite/commit/413c86aa971bc1ad8958578c929f45a368799f74)),
closes
[#&#8203;17988](https://redirect.github.com/vitejs/vite/issues/17988)
- fix(preload): add crossorigin attribute in CSS link tags
([#&#8203;17930](https://redirect.github.com/vitejs/vite/issues/17930))
([15871c7](https://redirect.github.com/vitejs/vite/commit/15871c75e0722adeda23f771fd6c45fecba4d118)),
closes
[#&#8203;17930](https://redirect.github.com/vitejs/vite/issues/17930)
- chore: reduce diffs with v6 branch
([#&#8203;17942](https://redirect.github.com/vitejs/vite/issues/17942))
([bf9065a](https://redirect.github.com/vitejs/vite/commit/bf9065aa13da6a519014c3bc1d34cfb1cb49ccca)),
closes
[#&#8203;17942](https://redirect.github.com/vitejs/vite/issues/17942)
- chore(deps): update all non-major dependencies
([#&#8203;17945](https://redirect.github.com/vitejs/vite/issues/17945))
([cfb621e](https://redirect.github.com/vitejs/vite/commit/cfb621e7a5a3e24d710a9af156e6855e73caf891)),
closes
[#&#8203;17945](https://redirect.github.com/vitejs/vite/issues/17945)
- chore(deps): update all non-major dependencies
([#&#8203;17991](https://redirect.github.com/vitejs/vite/issues/17991))
([0ca53cf](https://redirect.github.com/vitejs/vite/commit/0ca53cff9ff49108fcec75ff01d2445f9c2f2a4c)),
closes
[#&#8203;17991](https://redirect.github.com/vitejs/vite/issues/17991)

</details>

<details>
<summary>qmhc/vite-plugin-dts (vite-plugin-dts)</summary>

###
[`v4.1.1`](https://redirect.github.com/qmhc/vite-plugin-dts/blob/HEAD/CHANGELOG.md#411-2024-09-06)

[Compare
Source](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.1.0...v4.1.1)

##### Bug Fixes

- correct resolve Vue when create program
([0621332](https://redirect.github.com/qmhc/vite-plugin-dts/commit/0621332f46606b20365f1b2efdd45ef826e32186)),
closes
[#&#8203;380](https://redirect.github.com/qmhc/vite-plugin-dts/issues/380)

###
[`v4.1.0`](https://redirect.github.com/qmhc/vite-plugin-dts/blob/HEAD/CHANGELOG.md#410-2024-09-01)

[Compare
Source](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.3...v4.1.0)

##### Bug Fixes

- correctly parse tsconfig paths with nested imports
([#&#8203;376](https://redirect.github.com/qmhc/vite-plugin-dts/issues/376))
([10118ae](https://redirect.github.com/qmhc/vite-plugin-dts/commit/10118aea62fa1ec70b4d93a9d02f05e8642bd891)),
closes
[#&#8203;330](https://redirect.github.com/qmhc/vite-plugin-dts/issues/330)
- only clean vue suffix when no duplicated name
([068e711](https://redirect.github.com/qmhc/vite-plugin-dts/commit/068e7119ef6d8e1c99ea18d6a0f56194f32be77d)),
closes
[#&#8203;372](https://redirect.github.com/qmhc/vite-plugin-dts/issues/372)

##### Features

- auto switch to original program if no Vue
([a04a191](https://redirect.github.com/qmhc/vite-plugin-dts/commit/a04a191566e996defc071344f59cc76414fce61d)),
closes
[#&#8203;363](https://redirect.github.com/qmhc/vite-plugin-dts/issues/363)

####
[4.0.3](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.2...v4.0.3)
(2024-08-14)

##### Bug Fixes

- normalize typescript lib path for rollup
([#&#8203;366](https://redirect.github.com/qmhc/vite-plugin-dts/issues/366))
([b0c63df](https://redirect.github.com/qmhc/vite-plugin-dts/commit/b0c63dfaf701dc11d2f9cbb2cef5079efe7402e7))

####
[4.0.2](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.1...v4.0.2)
(2024-08-09)

##### Bug Fixes

- ensure inserted index file be a module
([f93e98c](https://redirect.github.com/qmhc/vite-plugin-dts/commit/f93e98cd84b486ba426c25304c6ce891acec7745)),
closes
[#&#8203;365](https://redirect.github.com/qmhc/vite-plugin-dts/issues/365)

####
[4.0.1](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.0...v4.0.1)
(2024-08-07)

##### Bug Fixes

- correctly match normal export
([589901f](https://redirect.github.com/qmhc/vite-plugin-dts/commit/589901fead8b3aef589f0652b27277f6e0d0d2ac)),
closes
[#&#8203;362](https://redirect.github.com/qmhc/vite-plugin-dts/issues/362)

</details>

<details>
<summary>vuejs/core (vue)</summary>

###
[`v3.5.3`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#353-2024-09-06)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.2...v3.5.3)

##### Bug Fixes

- **hydration:** check \__asyncHydrate presence for vue3-lazy-hydration
compat
([#&#8203;11825](https://redirect.github.com/vuejs/core/issues/11825))
([8e6c337](https://redirect.github.com/vuejs/core/commit/8e6c3378676be05cea7f53664442acdfb86784f9)),
closes
[#&#8203;11793](https://redirect.github.com/vuejs/core/issues/11793)
- Revert "fix(reactivity): self-referencing computed should refresh"
([35c760f](https://redirect.github.com/vuejs/core/commit/35c760f82f749f7c6e3f9bfead8221ce498e892f))
- **ssr:** respect app.config.warnHandler during ssr
([bf3d9a2](https://redirect.github.com/vuejs/core/commit/bf3d9a2af41659a743706306fc798b3d215df5af)),
closes
[#&#8203;11830](https://redirect.github.com/vuejs/core/issues/11830)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11833](https://redirect.github.com/vuejs/core/issues/11833))
([6b7901d](https://redirect.github.com/vuejs/core/commit/6b7901d28ed3a6a9242c666cc1b8e3c0b0b0fe62)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **useId:** make generated IDs selector compatible
([babfb4c](https://redirect.github.com/vuejs/core/commit/babfb4cbcbf98601d76c1d7653eae8d250ce2710)),
closes
[#&#8203;11828](https://redirect.github.com/vuejs/core/issues/11828)

###
[`v3.5.2`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#352-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.1...v3.5.2)

##### Bug Fixes

- **reactivity:** make toRaw work on proxies created by proxyRef
([46c3ab1](https://redirect.github.com/vuejs/core/commit/46c3ab1d714024894fa1d33e495d5d35c7817d4d))
- **reactivity:** pass oldValue to computed getter
([#&#8203;11813](https://redirect.github.com/vuejs/core/issues/11813))
([98864a7](https://redirect.github.com/vuejs/core/commit/98864a7ef5c8080c407166c8221488a4eacbbc81)),
closes
[#&#8203;11812](https://redirect.github.com/vuejs/core/issues/11812)
- **reactivity:** prevent endless recursion in computed getters
([#&#8203;11797](https://redirect.github.com/vuejs/core/issues/11797))
([716275d](https://redirect.github.com/vuejs/core/commit/716275d1b1d2383d8ef0306fcd94558d4d9170f2))
- **reactivity:** self-referencing computed should refresh
([e84c4a6](https://redirect.github.com/vuejs/core/commit/e84c4a608e9dc96fb2a4a29d538bcc64f26103a2)),
closes
[/github.com/vuejs/core/pull/11797#issuecomment-2330738633](https://redirect.github.com//github.com/vuejs/core/pull/11797/issues/issuecomment-2330738633)
- **scheduler:** prevent duplicate jobs being queued
([#&#8203;11826](https://redirect.github.com/vuejs/core/issues/11826))
([df56cc5](https://redirect.github.com/vuejs/core/commit/df56cc528793b1d6131a1e64095dd5cb95c56bee)),
closes
[#&#8203;11712](https://redirect.github.com/vuejs/core/issues/11712)
[#&#8203;11807](https://redirect.github.com/vuejs/core/issues/11807)
- **suspense:** avoid updating anchor if activeBranch has not been
rendered to the actual container
([#&#8203;11818](https://redirect.github.com/vuejs/core/issues/11818))
([3c0d531](https://redirect.github.com/vuejs/core/commit/3c0d531fa7fe762bfe46fbe63f318adc95221795)),
closes
[#&#8203;11806](https://redirect.github.com/vuejs/core/issues/11806)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11778](https://redirect.github.com/vuejs/core/issues/11778))
([3116553](https://redirect.github.com/vuejs/core/commit/311655352931863dfcf520b8cf29cebc5b7e1e00)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **types:** add HTMLDialogElement missing close event
([#&#8203;11811](https://redirect.github.com/vuejs/core/issues/11811))
([3634f7a](https://redirect.github.com/vuejs/core/commit/3634f7a4c1649ad2e7e969eb4512512868c61d01))
- **types:** added name attribute support to details tag
([#&#8203;11823](https://redirect.github.com/vuejs/core/issues/11823))
([c74176e](https://redirect.github.com/vuejs/core/commit/c74176ec7b4d1d34159ce21d600c04b157ac5549)),
closes
[#&#8203;11821](https://redirect.github.com/vuejs/core/issues/11821)
- **types:** fix defineComponent props inference when setup() has
explicit annotation
([fca20a3](https://redirect.github.com/vuejs/core/commit/fca20a39aa4a6f98c8f972bd435ebb7dc535648a)),
closes
[#&#8203;11803](https://redirect.github.com/vuejs/core/issues/11803)
- **useTemplateRef:** properly fix readonly warning in dev and ensure
prod behavior consistency
([9b7797d](https://redirect.github.com/vuejs/core/commit/9b7797d0d1fc773e979e042673d5b9b3151c40fc)),
closes
[#&#8203;11808](https://redirect.github.com/vuejs/core/issues/11808)
[#&#8203;11816](https://redirect.github.com/vuejs/core/issues/11816)
[#&#8203;11810](https://redirect.github.com/vuejs/core/issues/11810)

##### Features

- **compiler-core:** parse modifiers as expression to provide location
data
([#&#8203;11819](https://redirect.github.com/vuejs/core/issues/11819))
([3f13203](https://redirect.github.com/vuejs/core/commit/3f13203564164eeb2945bdc0b9ef755c37477d75))

###
[`v3.5.1`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#351-2024-09-04)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.0...v3.5.1)

##### Bug Fixes

- **build:** improve built-in components treeshakability
([4eee630](https://redirect.github.com/vuejs/core/commit/4eee630b3122a10d0baf9b91358cfffa92d6fd81))
- **reactivity:** handle non-array arguments in reactive `concat` method
([#&#8203;11794](https://redirect.github.com/vuejs/core/issues/11794))
([475977a](https://redirect.github.com/vuejs/core/commit/475977a6f76b77392610e0a3ec2b0e076d1e1d59)),
closes
[#&#8203;11792](https://redirect.github.com/vuejs/core/issues/11792)
- **Transition:** avoid applying transition hooks on comment vnode
([#&#8203;11788](https://redirect.github.com/vuejs/core/issues/11788))
([51912f8](https://redirect.github.com/vuejs/core/commit/51912f8a02e35f172f6d30ed7a2f3a92c1407cf9)),
closes
[#&#8203;11782](https://redirect.github.com/vuejs/core/issues/11782)
- **types:** avoid using intersection type in `Readonly<...>` to fix
JSDoc emit
([#&#8203;11799](https://redirect.github.com/vuejs/core/issues/11799))
([7518bc1](https://redirect.github.com/vuejs/core/commit/7518bc19dc73ba46dcf1eef6e23f9e6e75552675))
- **useTemplateRef:** fix readonly warning when useTemplateRef has same
variable name as template ref
([bc63df0](https://redirect.github.com/vuejs/core/commit/bc63df01992fdbf0b6749ad234153725697ed896)),
closes
[#&#8203;11795](https://redirect.github.com/vuejs/core/issues/11795)
[#&#8203;11802](https://redirect.github.com/vuejs/core/issues/11802)
[#&#8203;11804](https://redirect.github.com/vuejs/core/issues/11804)

###
[`v3.5.0`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#350-2024-09-03)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.38...v3.5.0)

#### Aggregated Features List for 3.5 (alpha to stable)

##### Reactivity

- **reactivity**: Refactor reactivity system to use version counting and
doubly-linked list tracking
([#&#8203;10397](https://redirect.github.com/vuejs/core/pull/10397))
([05eb4e0](https://redirect.github.com/vuejs/core/commit/05eb4e0fefd585125dd60b7f8fe9c36928d921aa))
- **reactivity**: Optimize array tracking
([#&#8203;9511](https://redirect.github.com/vuejs/core/pull/9511))
([70196a4](https://redirect.github.com/vuejs/core/commit/70196a40cc078f50fcc1110c38c06fbcc70b205e))
- **compiler-sfc:** enable reactive props destructure by default
([d2dac0e](https://redirect.github.com/vuejs/core/commit/d2dac0e359c47d1ed0aa77eda488e76fd6466d2d))
- **reactivity:** `onEffectCleanup` API
([2cc5615](https://redirect.github.com/vuejs/core/commit/2cc5615590de77126e8df46136de0240dbde5004)),
closes
[#&#8203;10173](https://redirect.github.com/vuejs/core/issues/10173)
- **reactivity:** add `failSilently` argument for `onScopeDispose`
([9a936aa](https://redirect.github.com/vuejs/core/commit/9a936aaec489c79433a32791ecf5ddb1739a62bd))
- **reactivity/watch:** base `watch`, `getCurrentWatcher`, and
`onWatcherCleanup`
([#&#8203;9927](https://redirect.github.com/vuejs/core/issues/9927))
([205e5b5](https://redirect.github.com/vuejs/core/commit/205e5b5e277243c3af2c937d9bd46cf671296b72))
- **reactivity/watch:** add pause/resume for ReactiveEffect,
EffectScope, and WatchHandle
([#&#8203;9651](https://redirect.github.com/vuejs/core/issues/9651))
([267093c](https://redirect.github.com/vuejs/core/commit/267093c31490050bfcf3ff2b30a2aefee2dad582))
- **watch:** support passing number to `deep` option to control the
watch depth
([#&#8203;9572](https://redirect.github.com/vuejs/core/issues/9572))
([22f7d96](https://redirect.github.com/vuejs/core/commit/22f7d96757956ebe0baafe52256aa327908cc51c))
- **types:** export `MultiWatchSources` type
([#&#8203;9563](https://redirect.github.com/vuejs/core/issues/9563))
([998dca5](https://redirect.github.com/vuejs/core/commit/998dca59f140420280803233f41707580688562c))
- **types:** allow computed getter and setter types to be unrelated
([#&#8203;11472](https://redirect.github.com/vuejs/core/issues/11472))
([a01675e](https://redirect.github.com/vuejs/core/commit/a01675ef8f99b5acd6832c53051f4415b18609f2)),
closes
[#&#8203;7271](https://redirect.github.com/vuejs/core/issues/7271)

##### SSR

- **runtime-core:** `useId()` and `app.config.idPrefix`
([#&#8203;11404](https://redirect.github.com/vuejs/core/issues/11404))
([73ef156](https://redirect.github.com/vuejs/core/commit/73ef1561f6905d69f968c094d0180c61824f1247))
- **hydration:** lazy hydration strategies for async components
([#&#8203;11458](https://redirect.github.com/vuejs/core/issues/11458))
([d14a11c](https://redirect.github.com/vuejs/core/commit/d14a11c1cdcee88452f17ce97758743c863958f4))
- **hydration:** support suppressing hydration mismatch via
data-allow-mismatch
([94fb2b8](https://redirect.github.com/vuejs/core/commit/94fb2b8106a66bcca1a3f922a246a29fdd1274b1))

##### Custom Element

- **custom-element:** `useHost()` helper
([775103a](https://redirect.github.com/vuejs/core/commit/775103af37df69d34c79f12c4c1776c47d07f0a0))
- **custom-element:** `useShadowRoot()` helper
([5a1a89b](https://redirect.github.com/vuejs/core/commit/5a1a89bd6178cc2f84ba91da7d72aee4c6ec1282)),
closes
[#&#8203;6113](https://redirect.github.com/vuejs/core/issues/6113)
[#&#8203;8195](https://redirect.github.com/vuejs/core/issues/8195)
- **custom-element:** expose `this.$host` in Options API
([1ef8f46](https://redirect.github.com/vuejs/core/commit/1ef8f46af0cfdec2fed66376772409e0aa25ad50))
- **custom-element:** inject child components styles to custom element
shadow root
([#&#8203;11517](https://redirect.github.com/vuejs/core/issues/11517))
([56c76a8](https://redirect.github.com/vuejs/core/commit/56c76a8b05c45f782ed3a16ec77c6292b71a17f1)),
closes
[#&#8203;4662](https://redirect.github.com/vuejs/core/issues/4662)
[#&#8203;7941](https://redirect.github.com/vuejs/core/issues/7941)
[#&#8203;7942](https://redirect.github.com/vuejs/core/issues/7942)
- **custom-element:** support configurable app instance in
defineCustomElement
([6758c3c](https://redirect.github.com/vuejs/core/commit/6758c3cd0427f97394d95168c655dae3b7fa62cd)),
closes
[#&#8203;4356](https://redirect.github.com/vuejs/core/issues/4356)
[#&#8203;4635](https://redirect.github.com/vuejs/core/issues/4635)
- **custom-element:** support css `:host` selector by applying css vars
on host element
([#&#8203;8830](https://redirect.github.com/vuejs/core/issues/8830))
([03a9ea2](https://redirect.github.com/vuejs/core/commit/03a9ea2b88df0842a820e09f7445c4b9189e3fcb)),
closes
[#&#8203;8826](https://redirect.github.com/vuejs/core/issues/8826)
- **custom-element:** support emit with options
([e181bff](https://redirect.github.com/vuejs/core/commit/e181bff6dc39d5cef92000c10291243c7d6e4d08)),
closes
[#&#8203;7605](https://redirect.github.com/vuejs/core/issues/7605)
- **custom-element:** support expose on customElement
([#&#8203;6256](https://redirect.github.com/vuejs/core/issues/6256))
([af838c1](https://redirect.github.com/vuejs/core/commit/af838c1b5ec23552e52e64ffa7db0eb0246c3624)),
closes
[#&#8203;5540](https://redirect.github.com/vuejs/core/issues/5540)
- **custom-element:** support `nonce` option for injected style tags
([bb4a02a](https://redirect.github.com/vuejs/core/commit/bb4a02a70c30e739a3c705b3d96d09258d7d7ded)),
closes
[#&#8203;6530](https://redirect.github.com/vuejs/core/issues/6530)
- **custom-element:** support passing custom-element-specific options
via 2nd argument of defineCustomElement
([60a88a2](https://redirect.github.com/vuejs/core/commit/60a88a2b129714186cf6ba66f30f31d733d0311e))
- **custom-element:** support `shadowRoot: false` in
`defineCustomElement()`
([37d2ce5](https://redirect.github.com/vuejs/core/commit/37d2ce5d8e0fac4a00064f02b05f91f69b2d5d5e)),
closes
[#&#8203;4314](https://redirect.github.com/vuejs/core/issues/4314)
[#&#8203;4404](https://redirect.github.com/vuejs/core/issues/4404)

##### Teleport

- **teleport:** support deferred Teleport
([#&#8203;11387](https://redirect.github.com/vuejs/core/issues/11387))
([59a3e88](https://redirect.github.com/vuejs/core/commit/59a3e88903b10ac2278170a44d5a03f24fef23ef)),
closes
[#&#8203;2015](https://redirect.github.com/vuejs/core/issues/2015)
[#&#8203;11386](https://redirect.github.com/vuejs/core/issues/11386)
- **teleport/transition:** support directly nesting Teleport inside
Transition
([#&#8203;6548](https://redirect.github.com/vuejs/core/issues/6548))
([0e6e3c7](https://redirect.github.com/vuejs/core/commit/0e6e3c7eb0e5320b7c1818e025cb4a490fede9c0)),
closes
[#&#8203;5836](https://redirect.github.com/vuejs/core/issues/5836)

##### Misc

- **runtime-core:** `useTemplateRef()`
([3ba70e4](https://redirect.github.com/vuejs/core/commit/3ba70e49b5856c53611c314d4855d679a546a7df))
- **runtime-core:** add `app.onUnmount()` for registering cleanup
functions
([#&#8203;4619](https://redirect.github.com/vuejs/core/issues/4619))
([582a3a3](https://redirect.github.com/vuejs/core/commit/582a3a382b1adda565bac576b913a88d9e8d7a9e)),
closes
[#&#8203;4516](https://redirect.github.com/vuejs/core/issues/4516)
- **runtime-core:** add `app.config.throwUnhandledErrorInProduction`
([f476b7f](https://redirect.github.com/vuejs/core/commit/f476b7f030f2dd427ca655fcea36f4933a4b4da0)),
closes
[#&#8203;7876](https://redirect.github.com/vuejs/core/issues/7876)
- **runtime-dom:** Trusted Types compatibility
([#&#8203;10844](https://redirect.github.com/vuejs/core/issues/10844))
([6d4eb94](https://redirect.github.com/vuejs/core/commit/6d4eb94853ed1b2b1675bdd7d5ba9c75cc6daed5))
- **compiler-core:** support `Symbol` global in template expressions
([#&#8203;9069](https://redirect.github.com/vuejs/core/issues/9069))
([a501a85](https://redirect.github.com/vuejs/core/commit/a501a85a7c910868e01a5c70a2abea4e9d9e87f3))
- **types:** export more emit related types
([#&#8203;11017](https://redirect.github.com/vuejs/core/issues/11017))
([189573d](https://redirect.github.com/vuejs/core/commit/189573dcee2a16bd3ed36ff5589d43f535e5e733))

<!---->

- **types:** add loading prop to iframe
([#&#8203;11767](https://redirect.github.com/vuejs/core/issues/11767))
([d86fe0e](https://redirect.github.com/vuejs/core/commit/d86fe0ec002901dc359a0e85f3a421b4a8538d68))

##### Internals

- **reactivity:** store value cache on CustomRefs impls
([#&#8203;11539](https://redirect.github.com/vuejs/core/issues/11539))
([e044b6e](https://redirect.github.com/vuejs/core/commit/e044b6e737efc9433d1d84590036b82280da6292))
- **types:** provide internal options for directly using user types in
language tools
([#&#8203;10801](https://redirect.github.com/vuejs/core/issues/10801))
([75c8cf6](https://redirect.github.com/vuejs/core/commit/75c8cf63a1ef30ac84f91282d66ad3f57c6612e9))
- **types:** provide internal options for using refs type in language
tools
([#&#8203;11492](https://redirect.github.com/vuejs/core/issues/11492))
([5ffd1a8](https://redirect.github.com/vuejs/core/commit/5ffd1a89455807d5069eb2c28eba0379641dca76))

#### Bug Fixes

- **compiler-sfc:** fix import usage check for kebab-case same name
shorthand binding
([0f7c0e5](https://redirect.github.com/vuejs/core/commit/0f7c0e5dc0eedada7a5194db87fd0a7dbd1d3354)),
closes
[#&#8203;11745](https://redirect.github.com/vuejs/core/issues/11745)
[#&#8203;11754](https://redirect.github.com/vuejs/core/issues/11754)
- **cssVars:** correctly escape double quotes in SSR
([#&#8203;11784](https://redirect.github.com/vuejs/core/issues/11784))
([7b5b6e0](https://redirect.github.com/vuejs/core/commit/7b5b6e0275f35748dca6d7eb842f8ab2364c6b9a)),
closes
[#&#8203;11779](https://redirect.github.com/vuejs/core/issues/11779)
- **deps:** update dependency postcss to ^8.4.44
([#&#8203;11774](https://redirect.github.com/vuejs/core/issues/11774))
([cb843e0](https://redirect.github.com/vuejs/core/commit/cb843e0be31f9e563ccfc30eca0c06f2a224b505))
- **hydration:** escape css var name to avoid mismatch
([#&#8203;11739](https://redirect.github.com/vuejs/core/issues/11739))
([ca12e77](https://redirect.github.com/vuejs/core/commit/ca12e776bc53aaa31f2df6bb6edc6be1b2f10c37)),
closes
[#&#8203;11735](https://redirect.github.com/vuejs/core/issues/11735)
- **hydration:** handle text nodes with 0 during hydration
([#&#8203;11772](https://redirect.github.com/vuejs/core/issues/11772))
([c756da2](https://redirect.github.com/vuejs/core/commit/c756da24b2d8635cf52b4c7d3abf5bf938852cc5)),
closes
[#&#8203;11771](https://redirect.github.com/vuejs/core/issues/11771)
- **reactivity:** correctly handle method calls on user-extended arrays
([#&#8203;11760](https://redirect.github.com/vuejs/core/issues/11760))
([9817c80](https://redirect.github.com/vuejs/core/commit/9817c80187bec6a3344c74d65fac92262de0fcdd)),
closes
[#&#8203;11759](https://redirect.github.com/vuejs/core/issues/11759)
- **runtime-dom:** avoid unnecessary prop patch for checkbox
([#&#8203;11657](https://redirect.github.com/vuejs/core/issues/11657))
([c3ce9fe](https://redirect.github.com/vuejs/core/commit/c3ce9fe3d8fc27d864ce7148cd36da882cfc21ab)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **runtime-dom:** prevent unnecessary DOM update from v-model
([#&#8203;11656](https://redirect.github.com/vuejs/core/issues/11656))
([b1be9bd](https://redirect.github.com/vuejs/core/commit/b1be9bd64f2c7c4286fecb25bad5d5edd49efce9)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **server-renderer:** Fix call to serverPrefetch in server renderer
with an async setup
([#&#8203;10893](https://redirect.github.com/vuejs/core/issues/10893))
([6039e25](https://redirect.github.com/vuejs/core/commit/6039e25e04a8c1db5821955f011d57f1615807ab))
- **server-renderer:** render `className` during SSR
([#&#8203;11722](https://redirect.github.com/vuejs/core/issues/11722))
([52cdb0f](https://redirect.github.com/vuejs/core/commit/52cdb0f991dc154ae32a2900874d5dbc4e078565))
- **types/defineModel:** allow getter and setter types to be unrelated
([#&#8203;11699](https://redirect.github.com/vuejs/core/issues/11699))
([fe07f70](https://redirect.github.com/vuejs/core/commit/fe07f7073617df358c2f8cbc3de433359e873c96)),
closes
[#&#8203;11697](https://redirect.github.com/vuejs/core/issues/11697)

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.1.6`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#216-supofficialsup-217-supinsiderssup-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/a95b51ac0b0db8825f77fbba37e29932b5be61e4...v2.1.6)

##### Features

- **language-plugin-pug:** support initial indentation
([#&#8203;4774](https://redirect.github.com/vuejs/language-tools/issues/4774))
- **language-service:** JSDoc display support when typing props on
component template
([#&#8203;4796](https://redirect.github.com/vuejs/language-tools/issues/4796))
- Thanks to [@&#8203;joy-yu](https://redirect.github.com/joy-yu)!
- **language-core:** typed directives in template
([#&#8203;4807](https://redirect.github.com/vuejs/language-tools/issues/4807))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core:** wrap template refs with `unref` in interpolation
([#&#8203;4777](https://redirect.github.com/vuejs/language-tools/issues/4777))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ensure to pass tsc on inline global types
([#&#8203;4782](https://redirect.github.com/vuejs/language-tools/issues/4782))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer native template ref as build-in element
interface
([#&#8203;4786](https://redirect.github.com/vuejs/language-tools/issues/4786))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate `__VLS_StyleModules` after template
([#&#8203;4790](https://redirect.github.com/vuejs/language-tools/issues/4790))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** make `expose` of non-generic template ref required
([#&#8203;4795](https://redirect.github.com/vuejs/language-tools/issues/4795))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** avoid using `__typeProps` with runtime props
([#&#8203;4800](https://redirect.github.com/vuejs/language-tools/issues/4800))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ignore unknown attrs error when strictTemplates is
not enabled
([#&#8203;4785](https://redirect.github.com/vuejs/language-tools/issues/4785))
- **language-core:** prevent append globalTypes to virtual file
([#&#8203;4806](https://redirect.github.com/vuejs/language-tools/issues/4806))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** prevent type error when use defineSlots and
non-template
([#&#8203;4809](https://redirect.github.com/vuejs/language-tools/issues/4809))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **typescript-plugin:** disconnect socket on error
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))

##### Performance

- **language-core:** don't emit event lnlayhint when content is none
([#&#8203;4776](https://redirect.github.com/vuejs/language-tools/issues/4776))
- Thanks to [@&#8203;Gehbt](https://redirect.github.com/Gehbt)!

##### Other Changes

- **language-core:** split `__VLS_templateResult`
([#&#8203;4781](https://redirect.github.com/vuejs/language-tools/issues/4781))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** wrap template virtual code into a function
([#&#8203;4784](https://redirect.github.com/vuejs/language-tools/issues/4784))
- **language-core:** move `templateRef` into `composibles`
([#&#8203;4791](https://redirect.github.com/vuejs/language-tools/issues/4791))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate global types for the first parsed Vue
component if cannot write global types file

##### Tests

- **language-server:** add renaming case for template `ref()`
([#&#8203;4794](https://redirect.github.com/vuejs/language-tools/issues/4794))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **tsc:** update to Vue 3.5
([#&#8203;4725](https://redirect.github.com/vuejs/language-tools/issues/4725))
- **tsc:** unknown props on non-strict generic component
([#&#8203;4792](https://redirect.github.com/vuejs/language-tools/issues/4792))

###
[`v2.1.5`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#214-supofficialsup-215-supinsiderssup-2024-09-01)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.4...a95b51ac0b0db8825f77fbba37e29932b5be61e4)

##### Features

- **typescript-plugin, language-server:** generate global types file
into `node_modules/.vue-global-types`
([#&#8203;4752](https://redirect.github.com/vuejs/language-tools/issues/4752))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** navigation support for template-ref
([#&#8203;4726](https://redirect.github.com/vuejs/language-tools/issues/4726))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core, typescript-plugin, language-server:** apply snake
case on globalTypes filename
([#&#8203;4749](https://redirect.github.com/vuejs/language-tools/issues/4749))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** hoist `$refs` type
([#&#8203;4763](https://redirect.github.com/vuejs/language-tools/issues/4763))
- **language-core:** disable lib check on global types file
([#&#8203;4767](https://redirect.github.com/vuejs/language-tools/issues/4767))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent circular reference of templateRef
([#&#8203;4768](https://redirect.github.com/vuejs/language-tools/issues/4768))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
-   **language-core:** using interface merging for `GlobalComponents`
- **language-core:** `fallthroughAttributes` causes global components to
be self-referential
([#&#8203;4761](https://redirect.github.com/vuejs/language-tools/issues/4761))
- **language-core:** auto-completion for the last line of template block
([#&#8203;4771](https://redirect.github.com/vuejs/language-tools/issues/4771))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** update ast correctly on repeated `v-for`
modifications
([#&#8203;4772](https://redirect.github.com/vuejs/language-tools/issues/4772))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-server:** leaking named pipes
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))
- **typescript-plugin:** compatible with Yarn PnP
([#&#8203;4751](https://redirect.github.com/vuejs/language-tools/issues/4751))
- **vscode:** whitelist `ms-dynamics-smb.al` extension for Vue Hybrid
Mode.
([#&#8203;4765](https://redirect.github.com/vuejs/language-tools/issues/4765))
- Thanks to
[@&#8203;kyleweishaupt](https://redirect.github.com/kyleweishaupt)!

##### Other Changes

- Add optional "dependencies" textarea to issue template
([#&#8203;4758](https://redirect.github.com/vuejs/language-tools/issues/4758))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!

###
[`v2.1.4`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...5e197d08eaef57209ff2927c943ba1db3bf4eff6)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...v2.1.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/slipmatio/logger).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@yyx990803
Copy link
Member

Self-referencing computed is an anti-pattern. The behavior is not strictly defined and has fluctuated between versions in the past. If a change "fixes" a behavior for an anti-pattern but breaks other idiomatic usage, it will be reverted.

renovate bot added a commit to slipmatio/toolbelt that referenced this pull request Sep 9, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) | [`1.46.1`
->
`1.47.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.46.1/1.47.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.16.2` ->
`20.16.5`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.2/20.16.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.16.2/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.16.2/20.16.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`15.7.0` ->
`15.7.3`](https://renovatebot.com/diffs/npm/happy-dom/15.7.0/15.7.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/15.7.0/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/15.7.0/15.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vitejs.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`5.4.2` ->
`5.4.3`](https://renovatebot.com/diffs/npm/vite/5.4.2/5.4.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.2/5.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite-plugin-dts](https://redirect.github.com/qmhc/vite-plugin-dts) |
[`4.0.3` ->
`4.1.1`](https://renovatebot.com/diffs/npm/vite-plugin-dts/4.0.3/4.1.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-dts/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-dts/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-dts/4.0.3/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-dts/4.0.3/4.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://redirect.github.com/vuejs/core)) | [`3.4.38` ->
`3.5.3`](https://renovatebot.com/diffs/npm/vue/3.4.38/3.5.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.4.38/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.4.38/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.1.2` ->
`2.1.6`](https://renovatebot.com/diffs/npm/vue-tsc/2.1.2/2.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.1.2/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.1.2/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.47.0`](https://redirect.github.com/microsoft/playwright/compare/v1.46.1...d5943def35edadc6f9bd8daeed382559d2a55fbe)

[Compare
Source](https://redirect.github.com/microsoft/playwright/compare/v1.46.1...v1.47.0)

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

###
[`v15.7.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.2...v15.7.3)

##### 👷‍♂️ Patch fixes

- Fixes bug that occurs when checking if a symbol property exists on
`HTMLSelectElement` - By
**[@&#8203;Cherry](https://redirect.github.com/Cherry)** in task
[#&#8203;1526](https://redirect.github.com/capricorn86/happy-dom/issues/1526)

###
[`v15.7.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.1...v15.7.2)

##### 👷‍♂️ Patch fixes

- Fixes problem where it is not possible to observe again after
disconnecting in `MutationObserver` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1524](https://redirect.github.com/capricorn86/happy-dom/issues/1524)

###
[`v15.7.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.0...v15.7.1)

##### 👷‍♂️ Patch fixes

- Fixes selector validation and converts selectors to string (e.g.
`querySelector(['.class'])`) - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1507](https://redirect.github.com/capricorn86/happy-dom/issues/1507)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.4.3`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small543-2024-09-03-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v5.4.2...v5.4.3)

- fix: allow getting URL of JS files in publicDir
([#&#8203;17915](https://redirect.github.com/vitejs/vite/issues/17915))
([943ece1](https://redirect.github.com/vitejs/vite/commit/943ece177e7709b3ba574e810afce347c51d4442)),
closes
[#&#8203;17915](https://redirect.github.com/vitejs/vite/issues/17915)
- fix: cjs warning respect the logLevel flag
([#&#8203;17993](https://redirect.github.com/vitejs/vite/issues/17993))
([dc3c14f](https://redirect.github.com/vitejs/vite/commit/dc3c14f39fcd57867c8ae81b75ae768b53b4b880)),
closes
[#&#8203;17993](https://redirect.github.com/vitejs/vite/issues/17993)
- fix: improve CJS warning trace information
([#&#8203;17926](https://redirect.github.com/vitejs/vite/issues/17926))
([5c5f82c](https://redirect.github.com/vitejs/vite/commit/5c5f82c84bb64309875b42eee9d4dd525ab42e8c)),
closes
[#&#8203;17926](https://redirect.github.com/vitejs/vite/issues/17926)
- fix: only remove entry assets handled by Vite core
([#&#8203;17916](https://redirect.github.com/vitejs/vite/issues/17916))
([ebfaa7e](https://redirect.github.com/vitejs/vite/commit/ebfaa7e6019783f308db5e759a6a67abb7cc626c)),
closes
[#&#8203;17916](https://redirect.github.com/vitejs/vite/issues/17916)
- fix: waitForRequestIdle locked
([#&#8203;17982](https://redirect.github.com/vitejs/vite/issues/17982))
([ad13760](https://redirect.github.com/vitejs/vite/commit/ad1376018a94b42540a8488d897cc520849e1228)),
closes
[#&#8203;17982](https://redirect.github.com/vitejs/vite/issues/17982)
- fix(css): fix directory index import in sass modern api
([#&#8203;17960](https://redirect.github.com/vitejs/vite/issues/17960))
([9b001ba](https://redirect.github.com/vitejs/vite/commit/9b001baa70c8489ac5550107c110a5dca281cda4)),
closes
[#&#8203;17960](https://redirect.github.com/vitejs/vite/issues/17960)
- fix(css): fix sass `file://` reference
([#&#8203;17909](https://redirect.github.com/vitejs/vite/issues/17909))
([561b940](https://redirect.github.com/vitejs/vite/commit/561b940f6f963fbb78058a6e23b4adad53a2edb9)),
closes
[#&#8203;17909](https://redirect.github.com/vitejs/vite/issues/17909)
- fix(css): fix sass modern source map
([#&#8203;17938](https://redirect.github.com/vitejs/vite/issues/17938))
([d428e7e](https://redirect.github.com/vitejs/vite/commit/d428e7e3a05f8da5ea00bb1b6a0827a5cc225899)),
closes
[#&#8203;17938](https://redirect.github.com/vitejs/vite/issues/17938)
- fix(deps): bump tsconfck
([#&#8203;17990](https://redirect.github.com/vitejs/vite/issues/17990))
([8c661b2](https://redirect.github.com/vitejs/vite/commit/8c661b20e92f33eb2e3ba3841b20dd6f6076f1ef)),
closes
[#&#8203;17990](https://redirect.github.com/vitejs/vite/issues/17990)
- fix(html): rewrite assets url in <template>
([#&#8203;17988](https://redirect.github.com/vitejs/vite/issues/17988))
([413c86a](https://redirect.github.com/vitejs/vite/commit/413c86aa971bc1ad8958578c929f45a368799f74)),
closes
[#&#8203;17988](https://redirect.github.com/vitejs/vite/issues/17988)
- fix(preload): add crossorigin attribute in CSS link tags
([#&#8203;17930](https://redirect.github.com/vitejs/vite/issues/17930))
([15871c7](https://redirect.github.com/vitejs/vite/commit/15871c75e0722adeda23f771fd6c45fecba4d118)),
closes
[#&#8203;17930](https://redirect.github.com/vitejs/vite/issues/17930)
- chore: reduce diffs with v6 branch
([#&#8203;17942](https://redirect.github.com/vitejs/vite/issues/17942))
([bf9065a](https://redirect.github.com/vitejs/vite/commit/bf9065aa13da6a519014c3bc1d34cfb1cb49ccca)),
closes
[#&#8203;17942](https://redirect.github.com/vitejs/vite/issues/17942)
- chore(deps): update all non-major dependencies
([#&#8203;17945](https://redirect.github.com/vitejs/vite/issues/17945))
([cfb621e](https://redirect.github.com/vitejs/vite/commit/cfb621e7a5a3e24d710a9af156e6855e73caf891)),
closes
[#&#8203;17945](https://redirect.github.com/vitejs/vite/issues/17945)
- chore(deps): update all non-major dependencies
([#&#8203;17991](https://redirect.github.com/vitejs/vite/issues/17991))
([0ca53cf](https://redirect.github.com/vitejs/vite/commit/0ca53cff9ff49108fcec75ff01d2445f9c2f2a4c)),
closes
[#&#8203;17991](https://redirect.github.com/vitejs/vite/issues/17991)

</details>

<details>
<summary>qmhc/vite-plugin-dts (vite-plugin-dts)</summary>

###
[`v4.1.1`](https://redirect.github.com/qmhc/vite-plugin-dts/blob/HEAD/CHANGELOG.md#411-2024-09-06)

[Compare
Source](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.1.0...v4.1.1)

##### Bug Fixes

- correct resolve Vue when create program
([0621332](https://redirect.github.com/qmhc/vite-plugin-dts/commit/0621332f46606b20365f1b2efdd45ef826e32186)),
closes
[#&#8203;380](https://redirect.github.com/qmhc/vite-plugin-dts/issues/380)

###
[`v4.1.0`](https://redirect.github.com/qmhc/vite-plugin-dts/blob/HEAD/CHANGELOG.md#410-2024-09-01)

[Compare
Source](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.3...v4.1.0)

##### Bug Fixes

- correctly parse tsconfig paths with nested imports
([#&#8203;376](https://redirect.github.com/qmhc/vite-plugin-dts/issues/376))
([10118ae](https://redirect.github.com/qmhc/vite-plugin-dts/commit/10118aea62fa1ec70b4d93a9d02f05e8642bd891)),
closes
[#&#8203;330](https://redirect.github.com/qmhc/vite-plugin-dts/issues/330)
- only clean vue suffix when no duplicated name
([068e711](https://redirect.github.com/qmhc/vite-plugin-dts/commit/068e7119ef6d8e1c99ea18d6a0f56194f32be77d)),
closes
[#&#8203;372](https://redirect.github.com/qmhc/vite-plugin-dts/issues/372)

##### Features

- auto switch to original program if no Vue
([a04a191](https://redirect.github.com/qmhc/vite-plugin-dts/commit/a04a191566e996defc071344f59cc76414fce61d)),
closes
[#&#8203;363](https://redirect.github.com/qmhc/vite-plugin-dts/issues/363)

####
[4.0.3](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.2...v4.0.3)
(2024-08-14)

##### Bug Fixes

- normalize typescript lib path for rollup
([#&#8203;366](https://redirect.github.com/qmhc/vite-plugin-dts/issues/366))
([b0c63df](https://redirect.github.com/qmhc/vite-plugin-dts/commit/b0c63dfaf701dc11d2f9cbb2cef5079efe7402e7))

####
[4.0.2](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.1...v4.0.2)
(2024-08-09)

##### Bug Fixes

- ensure inserted index file be a module
([f93e98c](https://redirect.github.com/qmhc/vite-plugin-dts/commit/f93e98cd84b486ba426c25304c6ce891acec7745)),
closes
[#&#8203;365](https://redirect.github.com/qmhc/vite-plugin-dts/issues/365)

####
[4.0.1](https://redirect.github.com/qmhc/vite-plugin-dts/compare/v4.0.0...v4.0.1)
(2024-08-07)

##### Bug Fixes

- correctly match normal export
([589901f](https://redirect.github.com/qmhc/vite-plugin-dts/commit/589901fead8b3aef589f0652b27277f6e0d0d2ac)),
closes
[#&#8203;362](https://redirect.github.com/qmhc/vite-plugin-dts/issues/362)

</details>

<details>
<summary>vuejs/core (vue)</summary>

###
[`v3.5.3`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#353-2024-09-06)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.2...v3.5.3)

##### Bug Fixes

- **hydration:** check \__asyncHydrate presence for vue3-lazy-hydration
compat
([#&#8203;11825](https://redirect.github.com/vuejs/core/issues/11825))
([8e6c337](https://redirect.github.com/vuejs/core/commit/8e6c3378676be05cea7f53664442acdfb86784f9)),
closes
[#&#8203;11793](https://redirect.github.com/vuejs/core/issues/11793)
- Revert "fix(reactivity): self-referencing computed should refresh"
([35c760f](https://redirect.github.com/vuejs/core/commit/35c760f82f749f7c6e3f9bfead8221ce498e892f))
- **ssr:** respect app.config.warnHandler during ssr
([bf3d9a2](https://redirect.github.com/vuejs/core/commit/bf3d9a2af41659a743706306fc798b3d215df5af)),
closes
[#&#8203;11830](https://redirect.github.com/vuejs/core/issues/11830)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11833](https://redirect.github.com/vuejs/core/issues/11833))
([6b7901d](https://redirect.github.com/vuejs/core/commit/6b7901d28ed3a6a9242c666cc1b8e3c0b0b0fe62)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **useId:** make generated IDs selector compatible
([babfb4c](https://redirect.github.com/vuejs/core/commit/babfb4cbcbf98601d76c1d7653eae8d250ce2710)),
closes
[#&#8203;11828](https://redirect.github.com/vuejs/core/issues/11828)

###
[`v3.5.2`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#352-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.1...v3.5.2)

##### Bug Fixes

- **reactivity:** make toRaw work on proxies created by proxyRef
([46c3ab1](https://redirect.github.com/vuejs/core/commit/46c3ab1d714024894fa1d33e495d5d35c7817d4d))
- **reactivity:** pass oldValue to computed getter
([#&#8203;11813](https://redirect.github.com/vuejs/core/issues/11813))
([98864a7](https://redirect.github.com/vuejs/core/commit/98864a7ef5c8080c407166c8221488a4eacbbc81)),
closes
[#&#8203;11812](https://redirect.github.com/vuejs/core/issues/11812)
- **reactivity:** prevent endless recursion in computed getters
([#&#8203;11797](https://redirect.github.com/vuejs/core/issues/11797))
([716275d](https://redirect.github.com/vuejs/core/commit/716275d1b1d2383d8ef0306fcd94558d4d9170f2))
- **reactivity:** self-referencing computed should refresh
([e84c4a6](https://redirect.github.com/vuejs/core/commit/e84c4a608e9dc96fb2a4a29d538bcc64f26103a2)),
closes
[/github.com/vuejs/core/pull/11797#issuecomment-2330738633](https://redirect.github.com//github.com/vuejs/core/pull/11797/issues/issuecomment-2330738633)
- **scheduler:** prevent duplicate jobs being queued
([#&#8203;11826](https://redirect.github.com/vuejs/core/issues/11826))
([df56cc5](https://redirect.github.com/vuejs/core/commit/df56cc528793b1d6131a1e64095dd5cb95c56bee)),
closes
[#&#8203;11712](https://redirect.github.com/vuejs/core/issues/11712)
[#&#8203;11807](https://redirect.github.com/vuejs/core/issues/11807)
- **suspense:** avoid updating anchor if activeBranch has not been
rendered to the actual container
([#&#8203;11818](https://redirect.github.com/vuejs/core/issues/11818))
([3c0d531](https://redirect.github.com/vuejs/core/commit/3c0d531fa7fe762bfe46fbe63f318adc95221795)),
closes
[#&#8203;11806](https://redirect.github.com/vuejs/core/issues/11806)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11778](https://redirect.github.com/vuejs/core/issues/11778))
([3116553](https://redirect.github.com/vuejs/core/commit/311655352931863dfcf520b8cf29cebc5b7e1e00)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **types:** add HTMLDialogElement missing close event
([#&#8203;11811](https://redirect.github.com/vuejs/core/issues/11811))
([3634f7a](https://redirect.github.com/vuejs/core/commit/3634f7a4c1649ad2e7e969eb4512512868c61d01))
- **types:** added name attribute support to details tag
([#&#8203;11823](https://redirect.github.com/vuejs/core/issues/11823))
([c74176e](https://redirect.github.com/vuejs/core/commit/c74176ec7b4d1d34159ce21d600c04b157ac5549)),
closes
[#&#8203;11821](https://redirect.github.com/vuejs/core/issues/11821)
- **types:** fix defineComponent props inference when setup() has
explicit annotation
([fca20a3](https://redirect.github.com/vuejs/core/commit/fca20a39aa4a6f98c8f972bd435ebb7dc535648a)),
closes
[#&#8203;11803](https://redirect.github.com/vuejs/core/issues/11803)
- **useTemplateRef:** properly fix readonly warning in dev and ensure
prod behavior consistency
([9b7797d](https://redirect.github.com/vuejs/core/commit/9b7797d0d1fc773e979e042673d5b9b3151c40fc)),
closes
[#&#8203;11808](https://redirect.github.com/vuejs/core/issues/11808)
[#&#8203;11816](https://redirect.github.com/vuejs/core/issues/11816)
[#&#8203;11810](https://redirect.github.com/vuejs/core/issues/11810)

##### Features

- **compiler-core:** parse modifiers as expression to provide location
data
([#&#8203;11819](https://redirect.github.com/vuejs/core/issues/11819))
([3f13203](https://redirect.github.com/vuejs/core/commit/3f13203564164eeb2945bdc0b9ef755c37477d75))

###
[`v3.5.1`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#351-2024-09-04)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.0...v3.5.1)

##### Bug Fixes

- **build:** improve built-in components treeshakability
([4eee630](https://redirect.github.com/vuejs/core/commit/4eee630b3122a10d0baf9b91358cfffa92d6fd81))
- **reactivity:** handle non-array arguments in reactive `concat` method
([#&#8203;11794](https://redirect.github.com/vuejs/core/issues/11794))
([475977a](https://redirect.github.com/vuejs/core/commit/475977a6f76b77392610e0a3ec2b0e076d1e1d59)),
closes
[#&#8203;11792](https://redirect.github.com/vuejs/core/issues/11792)
- **Transition:** avoid applying transition hooks on comment vnode
([#&#8203;11788](https://redirect.github.com/vuejs/core/issues/11788))
([51912f8](https://redirect.github.com/vuejs/core/commit/51912f8a02e35f172f6d30ed7a2f3a92c1407cf9)),
closes
[#&#8203;11782](https://redirect.github.com/vuejs/core/issues/11782)
- **types:** avoid using intersection type in `Readonly<...>` to fix
JSDoc emit
([#&#8203;11799](https://redirect.github.com/vuejs/core/issues/11799))
([7518bc1](https://redirect.github.com/vuejs/core/commit/7518bc19dc73ba46dcf1eef6e23f9e6e75552675))
- **useTemplateRef:** fix readonly warning when useTemplateRef has same
variable name as template ref
([bc63df0](https://redirect.github.com/vuejs/core/commit/bc63df01992fdbf0b6749ad234153725697ed896)),
closes
[#&#8203;11795](https://redirect.github.com/vuejs/core/issues/11795)
[#&#8203;11802](https://redirect.github.com/vuejs/core/issues/11802)
[#&#8203;11804](https://redirect.github.com/vuejs/core/issues/11804)

###
[`v3.5.0`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#350-2024-09-03)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.38...v3.5.0)

#### Aggregated Features List for 3.5 (alpha to stable)

##### Reactivity

- **reactivity**: Refactor reactivity system to use version counting and
doubly-linked list tracking
([#&#8203;10397](https://redirect.github.com/vuejs/core/pull/10397))
([05eb4e0](https://redirect.github.com/vuejs/core/commit/05eb4e0fefd585125dd60b7f8fe9c36928d921aa))
- **reactivity**: Optimize array tracking
([#&#8203;9511](https://redirect.github.com/vuejs/core/pull/9511))
([70196a4](https://redirect.github.com/vuejs/core/commit/70196a40cc078f50fcc1110c38c06fbcc70b205e))
- **compiler-sfc:** enable reactive props destructure by default
([d2dac0e](https://redirect.github.com/vuejs/core/commit/d2dac0e359c47d1ed0aa77eda488e76fd6466d2d))
- **reactivity:** `onEffectCleanup` API
([2cc5615](https://redirect.github.com/vuejs/core/commit/2cc5615590de77126e8df46136de0240dbde5004)),
closes
[#&#8203;10173](https://redirect.github.com/vuejs/core/issues/10173)
- **reactivity:** add `failSilently` argument for `onScopeDispose`
([9a936aa](https://redirect.github.com/vuejs/core/commit/9a936aaec489c79433a32791ecf5ddb1739a62bd))
- **reactivity/watch:** base `watch`, `getCurrentWatcher`, and
`onWatcherCleanup`
([#&#8203;9927](https://redirect.github.com/vuejs/core/issues/9927))
([205e5b5](https://redirect.github.com/vuejs/core/commit/205e5b5e277243c3af2c937d9bd46cf671296b72))
- **reactivity/watch:** add pause/resume for ReactiveEffect,
EffectScope, and WatchHandle
([#&#8203;9651](https://redirect.github.com/vuejs/core/issues/9651))
([267093c](https://redirect.github.com/vuejs/core/commit/267093c31490050bfcf3ff2b30a2aefee2dad582))
- **watch:** support passing number to `deep` option to control the
watch depth
([#&#8203;9572](https://redirect.github.com/vuejs/core/issues/9572))
([22f7d96](https://redirect.github.com/vuejs/core/commit/22f7d96757956ebe0baafe52256aa327908cc51c))
- **types:** export `MultiWatchSources` type
([#&#8203;9563](https://redirect.github.com/vuejs/core/issues/9563))
([998dca5](https://redirect.github.com/vuejs/core/commit/998dca59f140420280803233f41707580688562c))
- **types:** allow computed getter and setter types to be unrelated
([#&#8203;11472](https://redirect.github.com/vuejs/core/issues/11472))
([a01675e](https://redirect.github.com/vuejs/core/commit/a01675ef8f99b5acd6832c53051f4415b18609f2)),
closes
[#&#8203;7271](https://redirect.github.com/vuejs/core/issues/7271)

##### SSR

- **runtime-core:** `useId()` and `app.config.idPrefix`
([#&#8203;11404](https://redirect.github.com/vuejs/core/issues/11404))
([73ef156](https://redirect.github.com/vuejs/core/commit/73ef1561f6905d69f968c094d0180c61824f1247))
- **hydration:** lazy hydration strategies for async components
([#&#8203;11458](https://redirect.github.com/vuejs/core/issues/11458))
([d14a11c](https://redirect.github.com/vuejs/core/commit/d14a11c1cdcee88452f17ce97758743c863958f4))
- **hydration:** support suppressing hydration mismatch via
data-allow-mismatch
([94fb2b8](https://redirect.github.com/vuejs/core/commit/94fb2b8106a66bcca1a3f922a246a29fdd1274b1))

##### Custom Element

- **custom-element:** `useHost()` helper
([775103a](https://redirect.github.com/vuejs/core/commit/775103af37df69d34c79f12c4c1776c47d07f0a0))
- **custom-element:** `useShadowRoot()` helper
([5a1a89b](https://redirect.github.com/vuejs/core/commit/5a1a89bd6178cc2f84ba91da7d72aee4c6ec1282)),
closes
[#&#8203;6113](https://redirect.github.com/vuejs/core/issues/6113)
[#&#8203;8195](https://redirect.github.com/vuejs/core/issues/8195)
- **custom-element:** expose `this.$host` in Options API
([1ef8f46](https://redirect.github.com/vuejs/core/commit/1ef8f46af0cfdec2fed66376772409e0aa25ad50))
- **custom-element:** inject child components styles to custom element
shadow root
([#&#8203;11517](https://redirect.github.com/vuejs/core/issues/11517))
([56c76a8](https://redirect.github.com/vuejs/core/commit/56c76a8b05c45f782ed3a16ec77c6292b71a17f1)),
closes
[#&#8203;4662](https://redirect.github.com/vuejs/core/issues/4662)
[#&#8203;7941](https://redirect.github.com/vuejs/core/issues/7941)
[#&#8203;7942](https://redirect.github.com/vuejs/core/issues/7942)
- **custom-element:** support configurable app instance in
defineCustomElement
([6758c3c](https://redirect.github.com/vuejs/core/commit/6758c3cd0427f97394d95168c655dae3b7fa62cd)),
closes
[#&#8203;4356](https://redirect.github.com/vuejs/core/issues/4356)
[#&#8203;4635](https://redirect.github.com/vuejs/core/issues/4635)
- **custom-element:** support css `:host` selector by applying css vars
on host element
([#&#8203;8830](https://redirect.github.com/vuejs/core/issues/8830))
([03a9ea2](https://redirect.github.com/vuejs/core/commit/03a9ea2b88df0842a820e09f7445c4b9189e3fcb)),
closes
[#&#8203;8826](https://redirect.github.com/vuejs/core/issues/8826)
- **custom-element:** support emit with options
([e181bff](https://redirect.github.com/vuejs/core/commit/e181bff6dc39d5cef92000c10291243c7d6e4d08)),
closes
[#&#8203;7605](https://redirect.github.com/vuejs/core/issues/7605)
- **custom-element:** support expose on customElement
([#&#8203;6256](https://redirect.github.com/vuejs/core/issues/6256))
([af838c1](https://redirect.github.com/vuejs/core/commit/af838c1b5ec23552e52e64ffa7db0eb0246c3624)),
closes
[#&#8203;5540](https://redirect.github.com/vuejs/core/issues/5540)
- **custom-element:** support `nonce` option for injected style tags
([bb4a02a](https://redirect.github.com/vuejs/core/commit/bb4a02a70c30e739a3c705b3d96d09258d7d7ded)),
closes
[#&#8203;6530](https://redirect.github.com/vuejs/core/issues/6530)
- **custom-element:** support passing custom-element-specific options
via 2nd argument of defineCustomElement
([60a88a2](https://redirect.github.com/vuejs/core/commit/60a88a2b129714186cf6ba66f30f31d733d0311e))
- **custom-element:** support `shadowRoot: false` in
`defineCustomElement()`
([37d2ce5](https://redirect.github.com/vuejs/core/commit/37d2ce5d8e0fac4a00064f02b05f91f69b2d5d5e)),
closes
[#&#8203;4314](https://redirect.github.com/vuejs/core/issues/4314)
[#&#8203;4404](https://redirect.github.com/vuejs/core/issues/4404)

##### Teleport

- **teleport:** support deferred Teleport
([#&#8203;11387](https://redirect.github.com/vuejs/core/issues/11387))
([59a3e88](https://redirect.github.com/vuejs/core/commit/59a3e88903b10ac2278170a44d5a03f24fef23ef)),
closes
[#&#8203;2015](https://redirect.github.com/vuejs/core/issues/2015)
[#&#8203;11386](https://redirect.github.com/vuejs/core/issues/11386)
- **teleport/transition:** support directly nesting Teleport inside
Transition
([#&#8203;6548](https://redirect.github.com/vuejs/core/issues/6548))
([0e6e3c7](https://redirect.github.com/vuejs/core/commit/0e6e3c7eb0e5320b7c1818e025cb4a490fede9c0)),
closes
[#&#8203;5836](https://redirect.github.com/vuejs/core/issues/5836)

##### Misc

- **runtime-core:** `useTemplateRef()`
([3ba70e4](https://redirect.github.com/vuejs/core/commit/3ba70e49b5856c53611c314d4855d679a546a7df))
- **runtime-core:** add `app.onUnmount()` for registering cleanup
functions
([#&#8203;4619](https://redirect.github.com/vuejs/core/issues/4619))
([582a3a3](https://redirect.github.com/vuejs/core/commit/582a3a382b1adda565bac576b913a88d9e8d7a9e)),
closes
[#&#8203;4516](https://redirect.github.com/vuejs/core/issues/4516)
- **runtime-core:** add `app.config.throwUnhandledErrorInProduction`
([f476b7f](https://redirect.github.com/vuejs/core/commit/f476b7f030f2dd427ca655fcea36f4933a4b4da0)),
closes
[#&#8203;7876](https://redirect.github.com/vuejs/core/issues/7876)
- **runtime-dom:** Trusted Types compatibility
([#&#8203;10844](https://redirect.github.com/vuejs/core/issues/10844))
([6d4eb94](https://redirect.github.com/vuejs/core/commit/6d4eb94853ed1b2b1675bdd7d5ba9c75cc6daed5))
- **compiler-core:** support `Symbol` global in template expressions
([#&#8203;9069](https://redirect.github.com/vuejs/core/issues/9069))
([a501a85](https://redirect.github.com/vuejs/core/commit/a501a85a7c910868e01a5c70a2abea4e9d9e87f3))
- **types:** export more emit related types
([#&#8203;11017](https://redirect.github.com/vuejs/core/issues/11017))
([189573d](https://redirect.github.com/vuejs/core/commit/189573dcee2a16bd3ed36ff5589d43f535e5e733))

<!---->

- **types:** add loading prop to iframe
([#&#8203;11767](https://redirect.github.com/vuejs/core/issues/11767))
([d86fe0e](https://redirect.github.com/vuejs/core/commit/d86fe0ec002901dc359a0e85f3a421b4a8538d68))

##### Internals

- **reactivity:** store value cache on CustomRefs impls
([#&#8203;11539](https://redirect.github.com/vuejs/core/issues/11539))
([e044b6e](https://redirect.github.com/vuejs/core/commit/e044b6e737efc9433d1d84590036b82280da6292))
- **types:** provide internal options for directly using user types in
language tools
([#&#8203;10801](https://redirect.github.com/vuejs/core/issues/10801))
([75c8cf6](https://redirect.github.com/vuejs/core/commit/75c8cf63a1ef30ac84f91282d66ad3f57c6612e9))
- **types:** provide internal options for using refs type in language
tools
([#&#8203;11492](https://redirect.github.com/vuejs/core/issues/11492))
([5ffd1a8](https://redirect.github.com/vuejs/core/commit/5ffd1a89455807d5069eb2c28eba0379641dca76))

#### Bug Fixes

- **compiler-sfc:** fix import usage check for kebab-case same name
shorthand binding
([0f7c0e5](https://redirect.github.com/vuejs/core/commit/0f7c0e5dc0eedada7a5194db87fd0a7dbd1d3354)),
closes
[#&#8203;11745](https://redirect.github.com/vuejs/core/issues/11745)
[#&#8203;11754](https://redirect.github.com/vuejs/core/issues/11754)
- **cssVars:** correctly escape double quotes in SSR
([#&#8203;11784](https://redirect.github.com/vuejs/core/issues/11784))
([7b5b6e0](https://redirect.github.com/vuejs/core/commit/7b5b6e0275f35748dca6d7eb842f8ab2364c6b9a)),
closes
[#&#8203;11779](https://redirect.github.com/vuejs/core/issues/11779)
- **deps:** update dependency postcss to ^8.4.44
([#&#8203;11774](https://redirect.github.com/vuejs/core/issues/11774))
([cb843e0](https://redirect.github.com/vuejs/core/commit/cb843e0be31f9e563ccfc30eca0c06f2a224b505))
- **hydration:** escape css var name to avoid mismatch
([#&#8203;11739](https://redirect.github.com/vuejs/core/issues/11739))
([ca12e77](https://redirect.github.com/vuejs/core/commit/ca12e776bc53aaa31f2df6bb6edc6be1b2f10c37)),
closes
[#&#8203;11735](https://redirect.github.com/vuejs/core/issues/11735)
- **hydration:** handle text nodes with 0 during hydration
([#&#8203;11772](https://redirect.github.com/vuejs/core/issues/11772))
([c756da2](https://redirect.github.com/vuejs/core/commit/c756da24b2d8635cf52b4c7d3abf5bf938852cc5)),
closes
[#&#8203;11771](https://redirect.github.com/vuejs/core/issues/11771)
- **reactivity:** correctly handle method calls on user-extended arrays
([#&#8203;11760](https://redirect.github.com/vuejs/core/issues/11760))
([9817c80](https://redirect.github.com/vuejs/core/commit/9817c80187bec6a3344c74d65fac92262de0fcdd)),
closes
[#&#8203;11759](https://redirect.github.com/vuejs/core/issues/11759)
- **runtime-dom:** avoid unnecessary prop patch for checkbox
([#&#8203;11657](https://redirect.github.com/vuejs/core/issues/11657))
([c3ce9fe](https://redirect.github.com/vuejs/core/commit/c3ce9fe3d8fc27d864ce7148cd36da882cfc21ab)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **runtime-dom:** prevent unnecessary DOM update from v-model
([#&#8203;11656](https://redirect.github.com/vuejs/core/issues/11656))
([b1be9bd](https://redirect.github.com/vuejs/core/commit/b1be9bd64f2c7c4286fecb25bad5d5edd49efce9)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **server-renderer:** Fix call to serverPrefetch in server renderer
with an async setup
([#&#8203;10893](https://redirect.github.com/vuejs/core/issues/10893))
([6039e25](https://redirect.github.com/vuejs/core/commit/6039e25e04a8c1db5821955f011d57f1615807ab))
- **server-renderer:** render `className` during SSR
([#&#8203;11722](https://redirect.github.com/vuejs/core/issues/11722))
([52cdb0f](https://redirect.github.com/vuejs/core/commit/52cdb0f991dc154ae32a2900874d5dbc4e078565))
- **types/defineModel:** allow getter and setter types to be unrelated
([#&#8203;11699](https://redirect.github.com/vuejs/core/issues/11699))
([fe07f70](https://redirect.github.com/vuejs/core/commit/fe07f7073617df358c2f8cbc3de433359e873c96)),
closes
[#&#8203;11697](https://redirect.github.com/vuejs/core/issues/11697)

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.1.6`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#216-supofficialsup-217-supinsiderssup-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/a95b51ac0b0db8825f77fbba37e29932b5be61e4...v2.1.6)

##### Features

- **language-plugin-pug:** support initial indentation
([#&#8203;4774](https://redirect.github.com/vuejs/language-tools/issues/4774))
- **language-service:** JSDoc display support when typing props on
component template
([#&#8203;4796](https://redirect.github.com/vuejs/language-tools/issues/4796))
- Thanks to [@&#8203;joy-yu](https://redirect.github.com/joy-yu)!
- **language-core:** typed directives in template
([#&#8203;4807](https://redirect.github.com/vuejs/language-tools/issues/4807))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core:** wrap template refs with `unref` in interpolation
([#&#8203;4777](https://redirect.github.com/vuejs/language-tools/issues/4777))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ensure to pass tsc on inline global types
([#&#8203;4782](https://redirect.github.com/vuejs/language-tools/issues/4782))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer native template ref as build-in element
interface
([#&#8203;4786](https://redirect.github.com/vuejs/language-tools/issues/4786))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate `__VLS_StyleModules` after template
([#&#8203;4790](https://redirect.github.com/vuejs/language-tools/issues/4790))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** make `expose` of non-generic template ref required
([#&#8203;4795](https://redirect.github.com/vuejs/language-tools/issues/4795))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** avoid using `__typeProps` with runtime props
([#&#8203;4800](https://redirect.github.com/vuejs/language-tools/issues/4800))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ignore unknown attrs error when strictTemplates is
not enabled
([#&#8203;4785](https://redirect.github.com/vuejs/language-tools/issues/4785))
- **language-core:** prevent append globalTypes to virtual file
([#&#8203;4806](https://redirect.github.com/vuejs/language-tools/issues/4806))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** prevent type error when use defineSlots and
non-template
([#&#8203;4809](https://redirect.github.com/vuejs/language-tools/issues/4809))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **typescript-plugin:** disconnect socket on error
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))

##### Performance

- **language-core:** don't emit event lnlayhint when content is none
([#&#8203;4776](https://redirect.github.com/vuejs/language-tools/issues/4776))
- Thanks to [@&#8203;Gehbt](https://redirect.github.com/Gehbt)!

##### Other Changes

- **language-core:** split `__VLS_templateResult`
([#&#8203;4781](https://redirect.github.com/vuejs/language-tools/issues/4781))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** wrap template virtual code into a function
([#&#8203;4784](https://redirect.github.com/vuejs/language-tools/issues/4784))
- **language-core:** move `templateRef` into `composibles`
([#&#8203;4791](https://redirect.github.com/vuejs/language-tools/issues/4791))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate global types for the first parsed Vue
component if cannot write global types file

##### Tests

- **language-server:** add renaming case for template `ref()`
([#&#8203;4794](https://redirect.github.com/vuejs/language-tools/issues/4794))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **tsc:** update to Vue 3.5
([#&#8203;4725](https://redirect.github.com/vuejs/language-tools/issues/4725))
- **tsc:** unknown props on non-strict generic component
([#&#8203;4792](https://redirect.github.com/vuejs/language-tools/issues/4792))

###
[`v2.1.5`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#214-supofficialsup-215-supinsiderssup-2024-09-01)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.4...a95b51ac0b0db8825f77fbba37e29932b5be61e4)

##### Features

- **typescript-plugin, language-server:** generate global types file
into `node_modules/.vue-global-types`
([#&#8203;4752](https://redirect.github.com/vuejs/language-tools/issues/4752))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** navigation support for template-ref
([#&#8203;4726](https://redirect.github.com/vuejs/language-tools/issues/4726))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core, typescript-plugin, language-server:** apply snake
case on globalTypes filename
([#&#8203;4749](https://redirect.github.com/vuejs/language-tools/issues/4749))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** hoist `$refs` type
([#&#8203;4763](https://redirect.github.com/vuejs/language-tools/issues/4763))
- **language-core:** disable lib check on global types file
([#&#8203;4767](https://redirect.github.com/vuejs/language-tools/issues/4767))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent circular reference of templateRef
([#&#8203;4768](https://redirect.github.com/vuejs/language-tools/issues/4768))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
-   **language-core:** using interface merging for `GlobalComponents`
- **language-core:** `fallthroughAttributes` causes global components to
be self-referential
([#&#8203;4761](https://redirect.github.com/vuejs/language-tools/issues/4761))
- **language-core:** auto-completion for the last line of template block
([#&#8203;4771](https://redirect.github.com/vuejs/language-tools/issues/4771))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** update ast correctly on repeated `v-for`
modifications
([#&#8203;4772](https://redirect.github.com/vuejs/language-tools/issues/4772))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-server:** leaking named pipes
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))
- **typescript-plugin:** compatible with Yarn PnP
([#&#8203;4751](https://redirect.github.com/vuejs/language-tools/issues/4751))
- **vscode:** whitelist `ms-dynamics-smb.al` extension for Vue Hybrid
Mode.
([#&#8203;4765](https://redirect.github.com/vuejs/language-tools/issues/4765))
- Thanks to
[@&#8203;kyleweishaupt](https://redirect.github.com/kyleweishaupt)!

##### Other Changes

- Add optional "dependencies" textarea to issue template
([#&#8203;4758](https://redirect.github.com/vuejs/language-tools/issues/4758))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!

###
[`v2.1.4`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...5e197d08eaef57209ff2927c943ba1db3bf4eff6)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...v2.1.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/slipmatio/toolbelt).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@lehni
Copy link
Contributor Author

lehni commented Sep 9, 2024

@yyx990803 fully agreeing with you here. But I'd like to point out that the change did not break other idiomatic usage. What I pointed out was another anti-pattern that it broke, leading to its reversal. I still think that leaving this change in would have been the better choice.

@yyx990803
Copy link
Member

@lehni ok in that case we should re-revert it then 😅

@lehni
Copy link
Contributor Author

lehni commented Sep 9, 2024

I'm ok with that if you are and no new issues come out of the woodwork because of it 😅

@charlesg99
Copy link

Thank you! Of course the real app is more complex and doesn't have a self referencing computed (directly that is, probably internally with object proxies or something). The computed causing problem with 3.5.3 uses a bunch of other computed and is passed throught props and such, so hard to pinpoint the exact cause and create a simple repro.

All I know is that this piece of code is 4 years old (originally Vue version 2, now version 3) and has worked fine till version 3.5 broke production. So "something" changed that has worked the last 4 years :)

renovate bot added a commit to JabRef/JabRefOnline that referenced this pull request Oct 2, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@he-tree/vue](https://hetree.phphe.com/)
([source](https://redirect.github.com/phphe/he-tree)) | [`2.8.3` ->
`2.8.6`](https://renovatebot.com/diffs/npm/@he-tree%2fvue/2.8.3/2.8.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@he-tree%2fvue/2.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@he-tree%2fvue/2.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@he-tree%2fvue/2.8.3/2.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@he-tree%2fvue/2.8.3/2.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tailwindcss/forms](https://redirect.github.com/tailwindlabs/tailwindcss-forms)
| [`0.5.7` ->
`0.5.9`](https://renovatebot.com/diffs/npm/@tailwindcss%2fforms/0.5.7/0.5.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fforms/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fforms/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fforms/0.5.7/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fforms/0.5.7/0.5.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@tailwindcss/typography](https://redirect.github.com/tailwindlabs/tailwindcss-typography)
| [`0.5.14` ->
`0.5.15`](https://renovatebot.com/diffs/npm/@tailwindcss%2ftypography/0.5.14/0.5.15)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2ftypography/0.5.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2ftypography/0.5.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2ftypography/0.5.14/0.5.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2ftypography/0.5.14/0.5.15?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@vue/apollo-composable](https://apollo.vuejs.org/)
([source](https://redirect.github.com/vuejs/vue-apollo/tree/HEAD/packages/vue-apollo-composable))
| [`4.0.2` ->
`4.2.1`](https://renovatebot.com/diffs/npm/@vue%2fapollo-composable/4.0.2/4.2.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fapollo-composable/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fapollo-composable/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fapollo-composable/4.0.2/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fapollo-composable/4.0.2/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vue/compiler-sfc](https://redirect.github.com/vuejs/core/tree/main/packages/compiler-sfc#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/compiler-sfc))
| [`3.4.37` ->
`3.5.10`](https://renovatebot.com/diffs/npm/@vue%2fcompiler-sfc/3.4.37/3.5.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fcompiler-sfc/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fcompiler-sfc/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fcompiler-sfc/3.4.37/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fcompiler-sfc/3.4.37/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vue/runtime-dom](https://redirect.github.com/vuejs/core/tree/main/packages/runtime-dom#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/runtime-dom))
| [`3.4.37` ->
`3.5.10`](https://renovatebot.com/diffs/npm/@vue%2fruntime-dom/3.4.37/3.5.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fruntime-dom/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fruntime-dom/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fruntime-dom/3.4.37/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fruntime-dom/3.4.37/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@yaireo/tagify](https://redirect.github.com/yairEO/tagify) |
[`4.27.0` ->
`4.31.3`](https://renovatebot.com/diffs/npm/@yaireo%2ftagify/4.27.0/4.31.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@yaireo%2ftagify/4.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@yaireo%2ftagify/4.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@yaireo%2ftagify/4.27.0/4.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@yaireo%2ftagify/4.27.0/4.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [tailwindcss](https://tailwindcss.com)
([source](https://redirect.github.com/tailwindlabs/tailwindcss)) |
[`3.4.9` ->
`3.4.13`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.9/3.4.13) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/3.4.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/3.4.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/3.4.9/3.4.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.9/3.4.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://redirect.github.com/vuejs/core)) | [`3.4.37` ->
`3.5.10`](https://renovatebot.com/diffs/npm/vue/3.4.37/3.5.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.4.37/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.4.37/3.5.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-router](https://redirect.github.com/vuejs/router) | [`4.4.3` ->
`4.4.5`](https://renovatebot.com/diffs/npm/vue-router/4.4.3/4.4.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-router/4.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-router/4.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-router/4.4.3/4.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-router/4.4.3/4.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.0.29` ->
`2.1.6`](https://renovatebot.com/diffs/npm/vue-tsc/2.0.29/2.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.0.29/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.0.29/2.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>phphe/he-tree (@&#8203;he-tree/vue)</summary>

###
[`v2.8.6`](https://redirect.github.com/phphe/he-tree/compare/@he-tree/vue@2.8.5...@he-tree/vue@2.8.6)

[Compare
Source](https://redirect.github.com/phphe/he-tree/compare/@he-tree/vue@2.8.5...@he-tree/vue@2.8.6)

###
[`v2.8.5`](https://redirect.github.com/phphe/he-tree/compare/@he-tree/vue@2.8.4...@he-tree/vue@2.8.5)

[Compare
Source](https://redirect.github.com/phphe/he-tree/compare/@he-tree/vue@2.8.4...@he-tree/vue@2.8.5)

###
[`v2.8.4`](https://redirect.github.com/phphe/he-tree/compare/@he-tree/vue@2.8.3...@he-tree/vue@2.8.4)

[Compare
Source](https://redirect.github.com/phphe/he-tree/compare/@he-tree/vue@2.8.3...@he-tree/vue@2.8.4)

</details>

<details>
<summary>tailwindlabs/tailwindcss-forms
(@&#8203;tailwindcss/forms)</summary>

###
[`v0.5.9`](https://redirect.github.com/tailwindlabs/tailwindcss-forms/blob/HEAD/CHANGELOG.md#059---2024-09-05)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.8...v0.5.9)

##### Fixed

- Fallback to static chevron color if theme is using variables
([#&#8203;167](https://redirect.github.com/tailwindlabs/tailwindcss-forms/pull/167))

###
[`v0.5.8`](https://redirect.github.com/tailwindlabs/tailwindcss-forms/blob/HEAD/CHANGELOG.md#058---2024-08-28)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.7...v0.5.8)

##### Fixed

- Support installing with alpha versions of Tailwind CSS v4
([#&#8203;163](https://redirect.github.com/tailwindlabs/tailwindcss-forms/pull/163))

</details>

<details>
<summary>tailwindlabs/tailwindcss-typography
(@&#8203;tailwindcss/typography)</summary>

###
[`v0.5.15`](https://redirect.github.com/tailwindlabs/tailwindcss-typography/blob/HEAD/CHANGELOG.md#0515---2024-08-28)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.14...v0.5.15)

##### Fixed

- Support installing with alpha versions of Tailwind CSS v4
([#&#8203;358](https://redirect.github.com/tailwindlabs/tailwindcss-typography/pull/358))

</details>

<details>
<summary>vuejs/vue-apollo (@&#8203;vue/apollo-composable)</summary>

###
[`v4.2.1`](https://redirect.github.com/vuejs/vue-apollo/blob/HEAD/CHANGELOG.md#v421)

[Compare
Source](https://redirect.github.com/vuejs/vue-apollo/compare/v4.2.0...v4.2.1)

##### 🩹 Fixes

- Improved pinia support
([#&#8203;1571](https://redirect.github.com/vuejs/vue-apollo/issues/1571))

##### 📖 Documentation

- Update broken circleci badge
([`9622392`](https://redirect.github.com/vuejs/vue-apollo/commit/9622392))
- Readme smaller logo
([`ff836ea`](https://redirect.github.com/vuejs/vue-apollo/commit/ff836ea))
- Use nightly.akryum.dev
([`7f3cf7d`](https://redirect.github.com/vuejs/vue-apollo/commit/7f3cf7d))

##### 🏡 Chore

- Specify pnpm version in package.json
([`732e66e`](https://redirect.github.com/vuejs/vue-apollo/commit/732e66e))

##### ❤️  Contributors

-   Nick Messing ([@&#8203;nickmessing](http://github.com/nickmessing))
-   Guillaume Chau ([@&#8203;Akryum](http://github.com/Akryum))

###
[`v4.2.0`](https://redirect.github.com/vuejs/vue-apollo/blob/HEAD/CHANGELOG.md#v420)

[Compare
Source](https://redirect.github.com/vuejs/vue-apollo/compare/v4.1.0...v4.2.0)

##### 🚀 Enhancements

- Add updateQuery to useQuery
([#&#8203;1552](https://redirect.github.com/vuejs/vue-apollo/issues/1552))

##### 🩹 Fixes

- UseMutations onDone Event hook gets triggered too early
([#&#8203;1559](https://redirect.github.com/vuejs/vue-apollo/issues/1559))
-
([@&#8203;vue/apollo-option](https://redirect.github.com/vue/apollo-option))
memory leak in wrapped ssrRender
([#&#8203;1553](https://redirect.github.com/vuejs/vue-apollo/issues/1553))
- Reuse previous result, fix
[#&#8203;1483](https://redirect.github.com/vuejs/vue-apollo/issues/1483)
([#&#8203;1569](https://redirect.github.com/vuejs/vue-apollo/issues/1569),
[#&#8203;1483](https://redirect.github.com/vuejs/vue-apollo/issues/1483))
- ResolveClient throwing too soon, fix
[#&#8203;1557](https://redirect.github.com/vuejs/vue-apollo/issues/1557)
([#&#8203;1570](https://redirect.github.com/vuejs/vue-apollo/issues/1570),
[#&#8203;1557](https://redirect.github.com/vuejs/vue-apollo/issues/1557))

##### 📖 Documentation

- Add github link to documentation
([#&#8203;1549](https://redirect.github.com/vuejs/vue-apollo/issues/1549))
- Note about continuous releases
([`51e09e7`](https://redirect.github.com/vuejs/vue-apollo/commit/51e09e7))

##### 🏡 Chore

- Switch some tests to script setup
([`c8e5106`](https://redirect.github.com/vuejs/vue-apollo/commit/c8e5106))

##### 🤖 CI

- Nightly releases
([`319f6ec`](https://redirect.github.com/vuejs/vue-apollo/commit/319f6ec))

##### ❤️  Contributors

-   Guillaume Chau ([@&#8203;Akryum](http://github.com/Akryum))
-   Matt Garrett <mattga@gmail.com>
-   Mobsean ([@&#8203;mobsean](http://github.com/mobsean))
-   Leonardo Santos ([@&#8203;syllomex](http://github.com/syllomex))
-   Alex Liu ([@&#8203;Mini-ghost](http://github.com/Mini-ghost))

###
[`v4.1.0`](https://redirect.github.com/vuejs/vue-apollo/blob/HEAD/CHANGELOG.md#v410)

[Compare
Source](https://redirect.github.com/vuejs/vue-apollo/compare/v4.0.2...v4.1.0)

##### 🩹 Fixes

- Change teardown to use onScopeDispose
([#&#8203;1545](https://redirect.github.com/vuejs/vue-apollo/issues/1545))

##### 📖 Documentation

- **useQuery:** Document refetch with new variables
([#&#8203;1564](https://redirect.github.com/vuejs/vue-apollo/issues/1564))

##### 🏡 Chore

- Updqte pnpm to v9
([`827ea6e`](https://redirect.github.com/vuejs/vue-apollo/commit/827ea6e))

##### ✅ Tests

- UseSubscription
([`0f5ae61`](https://redirect.github.com/vuejs/vue-apollo/commit/0f5ae61))
- Fix subscription test
([#&#8203;1547](https://redirect.github.com/vuejs/vue-apollo/issues/1547))

##### 🤖 CI

- Update versions
([`fe66840`](https://redirect.github.com/vuejs/vue-apollo/commit/fe66840))

##### ❤️  Contributors

-   Guillaume Chau ([@&#8203;Akryum](http://github.com/Akryum))
-   Nick Messing ([@&#8203;nickmessing](http://github.com/nickmessing))

</details>

<details>
<summary>vuejs/core (@&#8203;vue/compiler-sfc)</summary>

###
[`v3.5.10`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#3510-2024-09-27)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.9...v3.5.10)

##### Bug Fixes

- **custom-element:** properly set kebab-case props on Vue custom
elements
([ea3efa0](https://redirect.github.com/vuejs/core/commit/ea3efa09e008918c1d9ba7226833a8b1a7a57244)),
closes
[#&#8203;12030](https://redirect.github.com/vuejs/core/issues/12030)
[#&#8203;12032](https://redirect.github.com/vuejs/core/issues/12032)
- **reactivity:** fix nested batch edge case
([93c95dd](https://redirect.github.com/vuejs/core/commit/93c95dd4cd416503f43a98a1455f62658d22b0b2))
- **reactivity:** only clear notified flags for computed in first batch
iteration
([aa9ef23](https://redirect.github.com/vuejs/core/commit/aa9ef2386a0cd39a174e5a887ec2b1a3525034fc)),
closes
[#&#8203;12045](https://redirect.github.com/vuejs/core/issues/12045)
- **types/ref:** handle nested refs in UnwrapRef
([#&#8203;12049](https://redirect.github.com/vuejs/core/issues/12049))
([e2c19c2](https://redirect.github.com/vuejs/core/commit/e2c19c20cfee9788519a80c0e53e216b78505994)),
closes
[#&#8203;12044](https://redirect.github.com/vuejs/core/issues/12044)

###
[`v3.5.9`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#359-2024-09-26)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.8...v3.5.9)

##### Bug Fixes

- **reactivity:** fix property dep removal regression
([6001e5c](https://redirect.github.com/vuejs/core/commit/6001e5c81a05c894586f9287fbd991677bdd0455)),
closes
[#&#8203;12020](https://redirect.github.com/vuejs/core/issues/12020)
[#&#8203;12021](https://redirect.github.com/vuejs/core/issues/12021)
- **reactivity:** fix recursive sync watcher on computed edge case
([10ff159](https://redirect.github.com/vuejs/core/commit/10ff15924053d9bd95ad706f78ce09e288213fcf)),
closes
[#&#8203;12033](https://redirect.github.com/vuejs/core/issues/12033)
[#&#8203;12037](https://redirect.github.com/vuejs/core/issues/12037)
- **runtime-core:** avoid rendering plain object as VNode
([#&#8203;12038](https://redirect.github.com/vuejs/core/issues/12038))
([cb34b28](https://redirect.github.com/vuejs/core/commit/cb34b28a4a9bf868be4785b001c526163eda342e)),
closes
[#&#8203;12035](https://redirect.github.com/vuejs/core/issues/12035)
[vitejs/vite-plugin-vue#353](https://redirect.github.com/vitejs/vite-plugin-vue/issues/353)
- **runtime-core:** make useId() always return a string
([a177092](https://redirect.github.com/vuejs/core/commit/a177092754642af2f98c33a4feffe8f198c3c950))
- **types:** correct type inference of union event names
([#&#8203;12022](https://redirect.github.com/vuejs/core/issues/12022))
([4da6881](https://redirect.github.com/vuejs/core/commit/4da688141d9e7c15b622c289deaa81b11845b2c7))
- **vue:** properly cache runtime compilation
([#&#8203;12019](https://redirect.github.com/vuejs/core/issues/12019))
([fa0ba24](https://redirect.github.com/vuejs/core/commit/fa0ba24b3ace02d7ecab65e57c2bea89a2550dcb))

###
[`v3.5.8`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#358-2024-09-22)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.7...v3.5.8)

##### Bug Fixes

- **reactivity:** do not remove dep from depsMap when cleaning up deps
of computed
([#&#8203;11995](https://redirect.github.com/vuejs/core/issues/11995))
([0267a58](https://redirect.github.com/vuejs/core/commit/0267a588017eee4951ac2a877fe1ccae84cad905))

###
[`v3.5.7`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#357-2024-09-20)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.6...v3.5.7)

##### Bug Fixes

- **compile-core:** fix v-model with newlines edge case
([#&#8203;11960](https://redirect.github.com/vuejs/core/issues/11960))
([6224288](https://redirect.github.com/vuejs/core/commit/62242886d705ece88dbcad45bb78072ecccad0ca)),
closes
[#&#8203;8306](https://redirect.github.com/vuejs/core/issues/8306)
- **compiler-sfc:** initialize scope with null prototype object
([#&#8203;11963](https://redirect.github.com/vuejs/core/issues/11963))
([215e154](https://redirect.github.com/vuejs/core/commit/215e15407294bf667261360218f975b88c99c2e5))
- **hydration:** avoid observing non-Element node
([#&#8203;11954](https://redirect.github.com/vuejs/core/issues/11954))
([7257e6a](https://redirect.github.com/vuejs/core/commit/7257e6a34200409b3fc347d3bb807e11e2785974)),
closes
[#&#8203;11952](https://redirect.github.com/vuejs/core/issues/11952)
- **reactivity:** do not remove dep from depsMap when unsubbed by
computed
([960706e](https://redirect.github.com/vuejs/core/commit/960706eebf73f08ebc9d5dd853a05def05e2c153))
- **reactivity:** fix dev-only memory leak by updating dep.subsHead on
sub removal
([5c8b76e](https://redirect.github.com/vuejs/core/commit/5c8b76ed6cfbbcee4cbaac0b72beab7291044e4f)),
closes
[#&#8203;11956](https://redirect.github.com/vuejs/core/issues/11956)
- **reactivity:** fix memory leak from dep instances of garbage
collected objects
([235ea47](https://redirect.github.com/vuejs/core/commit/235ea4772ed2972914cf142da8b7ac1fb04f7585)),
closes
[#&#8203;11979](https://redirect.github.com/vuejs/core/issues/11979)
[#&#8203;11971](https://redirect.github.com/vuejs/core/issues/11971)
- **reactivity:** fix triggerRef call on ObjectRefImpl returned by toRef
([#&#8203;11986](https://redirect.github.com/vuejs/core/issues/11986))
([b030c8b](https://redirect.github.com/vuejs/core/commit/b030c8bc7327877efb98aa3d9a58eb287a6ff07a)),
closes
[#&#8203;11982](https://redirect.github.com/vuejs/core/issues/11982)
- **scheduler:** ensure recursive jobs can't be queued twice
([#&#8203;11955](https://redirect.github.com/vuejs/core/issues/11955))
([d18d6aa](https://redirect.github.com/vuejs/core/commit/d18d6aa1b20dc57a8103c51ec4d61e8e53ed936d))
- **ssr:** don't render comments in TransitionGroup
([#&#8203;11961](https://redirect.github.com/vuejs/core/issues/11961))
([a2f6ede](https://redirect.github.com/vuejs/core/commit/a2f6edeb02faedbb673c4bc5c6a59d9a79a37d07)),
closes
[#&#8203;11958](https://redirect.github.com/vuejs/core/issues/11958)
- **transition:** respect `duration` setting even when it is `0`
([#&#8203;11967](https://redirect.github.com/vuejs/core/issues/11967))
([f927a4a](https://redirect.github.com/vuejs/core/commit/f927a4ae6f7c453f70ba89498ee0c737dc9866fd))
- **types:** correct type inference of all-optional props
([#&#8203;11644](https://redirect.github.com/vuejs/core/issues/11644))
([9eca65e](https://redirect.github.com/vuejs/core/commit/9eca65ee9871d1ac878755afa9a3eb1b02030350)),
closes
[#&#8203;11733](https://redirect.github.com/vuejs/core/issues/11733)
[vuejs/language-tools#4704](https://redirect.github.com/vuejs/language-tools/issues/4704)

##### Performance Improvements

- **hydration:** avoid observer if element is in viewport
([#&#8203;11639](https://redirect.github.com/vuejs/core/issues/11639))
([e075dfa](https://redirect.github.com/vuejs/core/commit/e075dfad5c7649c6045e3711687ec888e7aa1a39))

###
[`v3.5.6`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#356-2024-09-16)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.5...v3.5.6)

##### Bug Fixes

- **compile-dom:** should be able to stringify mathML
([#&#8203;11891](https://redirect.github.com/vuejs/core/issues/11891))
([85c138c](https://redirect.github.com/vuejs/core/commit/85c138ced108268f7656b568dfd3036a1e0aae34))
- **compiler-sfc:** preserve old behavior when using withDefaults with
desutructure
([8492c3c](https://redirect.github.com/vuejs/core/commit/8492c3c49a922363d6c77ef192c133a8fbce6514)),
closes
[#&#8203;11930](https://redirect.github.com/vuejs/core/issues/11930)
- **reactivity:** avoid exponential perf cost and reduce call stack
depth for deeply chained computeds
([#&#8203;11944](https://redirect.github.com/vuejs/core/issues/11944))
([c74bb8c](https://redirect.github.com/vuejs/core/commit/c74bb8c2dd9e82aaabb0a2a2b368e900929b513b)),
closes
[#&#8203;11928](https://redirect.github.com/vuejs/core/issues/11928)
- **reactivity:** rely on dirty check only when computed has deps
([#&#8203;11931](https://redirect.github.com/vuejs/core/issues/11931))
([aa5dafd](https://redirect.github.com/vuejs/core/commit/aa5dafd2b55d42d6a29316a3bc91aea85c676a0b)),
closes
[#&#8203;11929](https://redirect.github.com/vuejs/core/issues/11929)
- **watch:** `once` option should be ignored by watchEffect
([#&#8203;11884](https://redirect.github.com/vuejs/core/issues/11884))
([49fa673](https://redirect.github.com/vuejs/core/commit/49fa673493d93b77ddba2165ab6545bae84fd1ae))
- **watch:** unwatch should be callable during SSR
([#&#8203;11925](https://redirect.github.com/vuejs/core/issues/11925))
([2d6adf7](https://redirect.github.com/vuejs/core/commit/2d6adf78a047eed091db277ffbd9df0822fb0bdd)),
closes
[#&#8203;11924](https://redirect.github.com/vuejs/core/issues/11924)

###
[`v3.5.5`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#355-2024-09-13)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.4...v3.5.5)

##### Bug Fixes

- **compiler-core:** fix handling of delimiterOpen in VPre
([#&#8203;11915](https://redirect.github.com/vuejs/core/issues/11915))
([706d4ac](https://redirect.github.com/vuejs/core/commit/706d4ac1d0210b2d9134b3228280187fe02fc971)),
closes
[#&#8203;11913](https://redirect.github.com/vuejs/core/issues/11913)
- **compiler-dom:** fix stringify static edge for partially eligible
chunks in cached parent
([1d99d61](https://redirect.github.com/vuejs/core/commit/1d99d61c1bd77f9ea6743f6214a82add8346a121)),
closes
[#&#8203;11879](https://redirect.github.com/vuejs/core/issues/11879)
[#&#8203;11890](https://redirect.github.com/vuejs/core/issues/11890)
- **compiler-dom:** should ignore leading newline in <textarea> per spec
([3c4bf76](https://redirect.github.com/vuejs/core/commit/3c4bf7627649ec1e3220f8c4e4163c20d2afb367))
- **compiler-sfc:** nested css supports atrule and comment
([#&#8203;11899](https://redirect.github.com/vuejs/core/issues/11899))
([0e7bc71](https://redirect.github.com/vuejs/core/commit/0e7bc717e6640644f062957ec5031506f0dab215)),
closes
[#&#8203;11896](https://redirect.github.com/vuejs/core/issues/11896)
- **custom-element:** handle nested customElement mount w/ shadowRoot
false
([#&#8203;11861](https://redirect.github.com/vuejs/core/issues/11861))
([f2d8019](https://redirect.github.com/vuejs/core/commit/f2d801918841e7673ff3f048d0d895592a2f7e23)),
closes
[#&#8203;11851](https://redirect.github.com/vuejs/core/issues/11851)
[#&#8203;11871](https://redirect.github.com/vuejs/core/issues/11871)
- **hmr:** reload async child wrapped in Suspense + KeepAlive
([#&#8203;11907](https://redirect.github.com/vuejs/core/issues/11907))
([10a2c60](https://redirect.github.com/vuejs/core/commit/10a2c6053bd30d160d0214bb3566f540187e6874)),
closes
[#&#8203;11868](https://redirect.github.com/vuejs/core/issues/11868)
- **hydration:** fix mismatch of leading newline in `<textarea>` and
`<pre>`
([a5f3c2e](https://redirect.github.com/vuejs/core/commit/a5f3c2eb4d2e7fae93ff93ce865b269f01cc825e)),
closes
[#&#8203;11873](https://redirect.github.com/vuejs/core/issues/11873)
[#&#8203;11874](https://redirect.github.com/vuejs/core/issues/11874)
- **reactivity:** properly clean up deps, fix memory leak
([8ea5d6d](https://redirect.github.com/vuejs/core/commit/8ea5d6d6981ab7febda0be43c3c92b18869c3a2a)),
closes
[#&#8203;11901](https://redirect.github.com/vuejs/core/issues/11901)
- **runtime-core:** properly update async component nested in KeepAlive
([#&#8203;11917](https://redirect.github.com/vuejs/core/issues/11917))
([7fe6c79](https://redirect.github.com/vuejs/core/commit/7fe6c795a1fc7ddcea5ad91a56141561192373ac)),
closes
[#&#8203;11916](https://redirect.github.com/vuejs/core/issues/11916)
- **TransitionGroup:** not warn unkeyed text children with whitespece
preserve
([#&#8203;11888](https://redirect.github.com/vuejs/core/issues/11888))
([7571f20](https://redirect.github.com/vuejs/core/commit/7571f20bc3d1854377a146f41d211e05bb68cd47)),
closes
[#&#8203;11885](https://redirect.github.com/vuejs/core/issues/11885)

###
[`v3.5.4`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#354-2024-09-10)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.3...v3.5.4)

##### Bug Fixes

- **compiler-sfc:** correct scoped injection for nesting selector
([#&#8203;11854](https://redirect.github.com/vuejs/core/issues/11854))
([b1de75e](https://redirect.github.com/vuejs/core/commit/b1de75ed04626b6423085dfde91fb0cb481a25e8)),
closes
[#&#8203;10567](https://redirect.github.com/vuejs/core/issues/10567)
- **reactivity:** fix markRaw error on already marked object
([#&#8203;11864](https://redirect.github.com/vuejs/core/issues/11864))
([67d6596](https://redirect.github.com/vuejs/core/commit/67d6596d40b1807b9cd8eb0d9282932ea77be3c0)),
closes
[#&#8203;11862](https://redirect.github.com/vuejs/core/issues/11862)
- Revert "fix: Revert "fix(reactivity): self-referencing computed should
refresh""
([e596378](https://redirect.github.com/vuejs/core/commit/e596378e0be728dad7d60938449f3fa557ca2ec9))
- **runtime-core:** handle shallow reactive arrays in renderList
correctly
([#&#8203;11870](https://redirect.github.com/vuejs/core/issues/11870))
([ced59ab](https://redirect.github.com/vuejs/core/commit/ced59ab8f2f2e89c13119bab3a0c25a1a1f1c3d6)),
closes
[#&#8203;11869](https://redirect.github.com/vuejs/core/issues/11869)
- **types:** correctly infer `TypeEmits` with both tuple and function
syntax
([#&#8203;11840](https://redirect.github.com/vuejs/core/issues/11840))
([dad6738](https://redirect.github.com/vuejs/core/commit/dad673809929c084dcb8e42640eb7daa675d4ea4)),
closes
[#&#8203;11836](https://redirect.github.com/vuejs/core/issues/11836)

##### Performance Improvements

- **reactivity:** trigger deps directly instead of storing in an array
first
([#&#8203;11695](https://redirect.github.com/vuejs/core/issues/11695))
([f80d447](https://redirect.github.com/vuejs/core/commit/f80d447c17662556e9e3f99f6d199967f4c8cf3d))

###
[`v3.5.3`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#353-2024-09-06)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.2...v3.5.3)

##### Bug Fixes

- **hydration:** check \__asyncHydrate presence for vue3-lazy-hydration
compat
([#&#8203;11825](https://redirect.github.com/vuejs/core/issues/11825))
([8e6c337](https://redirect.github.com/vuejs/core/commit/8e6c3378676be05cea7f53664442acdfb86784f9)),
closes
[#&#8203;11793](https://redirect.github.com/vuejs/core/issues/11793)
- Revert "fix(reactivity): self-referencing computed should refresh"
([35c760f](https://redirect.github.com/vuejs/core/commit/35c760f82f749f7c6e3f9bfead8221ce498e892f))
- **ssr:** respect app.config.warnHandler during ssr
([bf3d9a2](https://redirect.github.com/vuejs/core/commit/bf3d9a2af41659a743706306fc798b3d215df5af)),
closes
[#&#8203;11830](https://redirect.github.com/vuejs/core/issues/11830)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11833](https://redirect.github.com/vuejs/core/issues/11833))
([6b7901d](https://redirect.github.com/vuejs/core/commit/6b7901d28ed3a6a9242c666cc1b8e3c0b0b0fe62)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **useId:** make generated IDs selector compatible
([babfb4c](https://redirect.github.com/vuejs/core/commit/babfb4cbcbf98601d76c1d7653eae8d250ce2710)),
closes
[#&#8203;11828](https://redirect.github.com/vuejs/core/issues/11828)

###
[`v3.5.2`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#352-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.1...v3.5.2)

##### Bug Fixes

- **reactivity:** make toRaw work on proxies created by proxyRef
([46c3ab1](https://redirect.github.com/vuejs/core/commit/46c3ab1d714024894fa1d33e495d5d35c7817d4d))
- **reactivity:** pass oldValue to computed getter
([#&#8203;11813](https://redirect.github.com/vuejs/core/issues/11813))
([98864a7](https://redirect.github.com/vuejs/core/commit/98864a7ef5c8080c407166c8221488a4eacbbc81)),
closes
[#&#8203;11812](https://redirect.github.com/vuejs/core/issues/11812)
- **reactivity:** prevent endless recursion in computed getters
([#&#8203;11797](https://redirect.github.com/vuejs/core/issues/11797))
([716275d](https://redirect.github.com/vuejs/core/commit/716275d1b1d2383d8ef0306fcd94558d4d9170f2))
- **reactivity:** self-referencing computed should refresh
([e84c4a6](https://redirect.github.com/vuejs/core/commit/e84c4a608e9dc96fb2a4a29d538bcc64f26103a2)),
closes
[/github.com/vuejs/core/pull/11797#issuecomment-2330738633](https://redirect.github.com//github.com/vuejs/core/pull/11797/issues/issuecomment-2330738633)
- **scheduler:** prevent duplicate jobs being queued
([#&#8203;11826](https://redirect.github.com/vuejs/core/issues/11826))
([df56cc5](https://redirect.github.com/vuejs/core/commit/df56cc528793b1d6131a1e64095dd5cb95c56bee)),
closes
[#&#8203;11712](https://redirect.github.com/vuejs/core/issues/11712)
[#&#8203;11807](https://redirect.github.com/vuejs/core/issues/11807)
- **suspense:** avoid updating anchor if activeBranch has not been
rendered to the actual container
([#&#8203;11818](https://redirect.github.com/vuejs/core/issues/11818))
([3c0d531](https://redirect.github.com/vuejs/core/commit/3c0d531fa7fe762bfe46fbe63f318adc95221795)),
closes
[#&#8203;11806](https://redirect.github.com/vuejs/core/issues/11806)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11778](https://redirect.github.com/vuejs/core/issues/11778))
([3116553](https://redirect.github.com/vuejs/core/commit/311655352931863dfcf520b8cf29cebc5b7e1e00)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **types:** add HTMLDialogElement missing close event
([#&#8203;11811](https://redirect.github.com/vuejs/core/issues/11811))
([3634f7a](https://redirect.github.com/vuejs/core/commit/3634f7a4c1649ad2e7e969eb4512512868c61d01))
- **types:** added name attribute support to details tag
([#&#8203;11823](https://redirect.github.com/vuejs/core/issues/11823))
([c74176e](https://redirect.github.com/vuejs/core/commit/c74176ec7b4d1d34159ce21d600c04b157ac5549)),
closes
[#&#8203;11821](https://redirect.github.com/vuejs/core/issues/11821)
- **types:** fix defineComponent props inference when setup() has
explicit annotation
([fca20a3](https://redirect.github.com/vuejs/core/commit/fca20a39aa4a6f98c8f972bd435ebb7dc535648a)),
closes
[#&#8203;11803](https://redirect.github.com/vuejs/core/issues/11803)
- **useTemplateRef:** properly fix readonly warning in dev and ensure
prod behavior consistency
([9b7797d](https://redirect.github.com/vuejs/core/commit/9b7797d0d1fc773e979e042673d5b9b3151c40fc)),
closes
[#&#8203;11808](https://redirect.github.com/vuejs/core/issues/11808)
[#&#8203;11816](https://redirect.github.com/vuejs/core/issues/11816)
[#&#8203;11810](https://redirect.github.com/vuejs/core/issues/11810)

##### Features

- **compiler-core:** parse modifiers as expression to provide location
data
([#&#8203;11819](https://redirect.github.com/vuejs/core/issues/11819))
([3f13203](https://redirect.github.com/vuejs/core/commit/3f13203564164eeb2945bdc0b9ef755c37477d75))

###
[`v3.5.1`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#351-2024-09-04)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.0...v3.5.1)

##### Bug Fixes

- **build:** improve built-in components treeshakability
([4eee630](https://redirect.github.com/vuejs/core/commit/4eee630b3122a10d0baf9b91358cfffa92d6fd81))
- **reactivity:** handle non-array arguments in reactive `concat` method
([#&#8203;11794](https://redirect.github.com/vuejs/core/issues/11794))
([475977a](https://redirect.github.com/vuejs/core/commit/475977a6f76b77392610e0a3ec2b0e076d1e1d59)),
closes
[#&#8203;11792](https://redirect.github.com/vuejs/core/issues/11792)
- **Transition:** avoid applying transition hooks on comment vnode
([#&#8203;11788](https://redirect.github.com/vuejs/core/issues/11788))
([51912f8](https://redirect.github.com/vuejs/core/commit/51912f8a02e35f172f6d30ed7a2f3a92c1407cf9)),
closes
[#&#8203;11782](https://redirect.github.com/vuejs/core/issues/11782)
- **types:** avoid using intersection type in `Readonly<...>` to fix
JSDoc emit
([#&#8203;11799](https://redirect.github.com/vuejs/core/issues/11799))
([7518bc1](https://redirect.github.com/vuejs/core/commit/7518bc19dc73ba46dcf1eef6e23f9e6e75552675))
- **useTemplateRef:** fix readonly warning when useTemplateRef has same
variable name as template ref
([bc63df0](https://redirect.github.com/vuejs/core/commit/bc63df01992fdbf0b6749ad234153725697ed896)),
closes
[#&#8203;11795](https://redirect.github.com/vuejs/core/issues/11795)
[#&#8203;11802](https://redirect.github.com/vuejs/core/issues/11802)
[#&#8203;11804](https://redirect.github.com/vuejs/core/issues/11804)

###
[`v3.5.0`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#350-2024-09-03)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.38...v3.5.0)

#### Aggregated Features List for 3.5 (alpha to stable)

##### Reactivity

- **reactivity**: Refactor reactivity system to use version counting and
doubly-linked list tracking
([#&#8203;10397](https://redirect.github.com/vuejs/core/pull/10397))
([05eb4e0](https://redirect.github.com/vuejs/core/commit/05eb4e0fefd585125dd60b7f8fe9c36928d921aa))
- **reactivity**: Optimize array tracking
([#&#8203;9511](https://redirect.github.com/vuejs/core/pull/9511))
([70196a4](https://redirect.github.com/vuejs/core/commit/70196a40cc078f50fcc1110c38c06fbcc70b205e))
- **compiler-sfc:** enable reactive props destructure by default
([d2dac0e](https://redirect.github.com/vuejs/core/commit/d2dac0e359c47d1ed0aa77eda488e76fd6466d2d))
- **reactivity:** `onEffectCleanup` API
([2cc5615](https://redirect.github.com/vuejs/core/commit/2cc5615590de77126e8df46136de0240dbde5004)),
closes
[#&#8203;10173](https://redirect.github.com/vuejs/core/issues/10173)
- **reactivity:** add `failSilently` argument for `onScopeDispose`
([9a936aa](https://redirect.github.com/vuejs/core/commit/9a936aaec489c79433a32791ecf5ddb1739a62bd))
- **reactivity/watch:** base `watch`, `getCurrentWatcher`, and
`onWatcherCleanup`
([#&#8203;9927](https://redirect.github.com/vuejs/core/issues/9927))
([205e5b5](https://redirect.github.com/vuejs/core/commit/205e5b5e277243c3af2c937d9bd46cf671296b72))
- **reactivity/watch:** add pause/resume for ReactiveEffect,
EffectScope, and WatchHandle
([#&#8203;9651](https://redirect.github.com/vuejs/core/issues/9651))
([267093c](https://redirect.github.com/vuejs/core/commit/267093c31490050bfcf3ff2b30a2aefee2dad582))
- **watch:** support passing number to `deep` option to control the
watch depth
([#&#8203;9572](https://redirect.github.com/vuejs/core/issues/9572))
([22f7d96](https://redirect.github.com/vuejs/core/commit/22f7d96757956ebe0baafe52256aa327908cc51c))
- **types:** export `MultiWatchSources` type
([#&#8203;9563](https://redirect.github.com/vuejs/core/issues/9563))
([998dca5](https://redirect.github.com/vuejs/core/commit/998dca59f140420280803233f41707580688562c))
- **types:** allow computed getter and setter types to be unrelated
([#&#8203;11472](https://redirect.github.com/vuejs/core/issues/11472))
([a01675e](https://redirect.github.com/vuejs/core/commit/a01675ef8f99b5acd6832c53051f4415b18609f2)),
closes
[#&#8203;7271](https://redirect.github.com/vuejs/core/issues/7271)

##### SSR

- **runtime-core:** `useId()` and `app.config.idPrefix`
([#&#8203;11404](https://redirect.github.com/vuejs/core/issues/11404))
([73ef156](https://redirect.github.com/vuejs/core/commit/73ef1561f6905d69f968c094d0180c61824f1247))
- **hydration:** lazy hydration strategies for async components
([#&#8203;11458](https://redirect.github.com/vuejs/core/issues/11458))
([d14a11c](https://redirect.github.com/vuejs/core/commit/d14a11c1cdcee88452f17ce97758743c863958f4))
- **hydration:** support suppressing hydration mismatch via
data-allow-mismatch
([94fb2b8](https://redirect.github.com/vuejs/core/commit/94fb2b8106a66bcca1a3f922a246a29fdd1274b1))

##### Custom Element

- **custom-element:** `useHost()` helper
([775103a](https://redirect.github.com/vuejs/core/commit/775103af37df69d34c79f12c4c1776c47d07f0a0))
- **custom-element:** `useShadowRoot()` helper
([5a1a89b](https://redirect.github.com/vuejs/core/commit/5a1a89bd6178cc2f84ba91da7d72aee4c6ec1282)),
closes
[#&#8203;6113](https://redirect.github.com/vuejs/core/issues/6113)
[#&#8203;8195](https://redirect.github.com/vuejs/core/issues/8195)
- **custom-element:** expose `this.$host` in Options API
([1ef8f46](https://redirect.github.com/vuejs/core/commit/1ef8f46af0cfdec2fed66376772409e0aa25ad50))
- **custom-element:** inject child components styles to custom element
shadow root
([#&#8203;11517](https://redirect.github.com/vuejs/core/issues/11517))
([56c76a8](https://redirect.github.com/vuejs/core/commit/56c76a8b05c45f782ed3a16ec77c6292b71a17f1)),
closes
[#&#8203;4662](https://redirect.github.com/vuejs/core/issues/4662)
[#&#8203;7941](https://redirect.github.com/vuejs/core/issues/7941)
[#&#8203;7942](https://redirect.github.com/vuejs/core/issues/7942)
- **custom-element:** support configurable app instance in
defineCustomElement
([6758c3c](https://redirect.github.com/vuejs/core/commit/6758c3cd0427f97394d95168c655dae3b7fa62cd)),
closes
[#&#8203;4356](https://redirect.github.com/vuejs/core/issues/4356)
[#&#8203;4635](https://redirect.github.com/vuejs/core/issues/4635)
- **custom-element:** support css `:host` selector by applying css vars
on host element
([#&#8203;8830](https://redirect.github.com/vuejs/core/issues/8830))
([03a9ea2](https://redirect.github.com/vuejs/core/commit/03a9ea2b88df0842a820e09f7445c4b9189e3fcb)),
closes
[#&#8203;8826](https://redirect.github.com/vuejs/core/issues/8826)
- **custom-element:** support emit with options
([e181bff](https://redirect.github.com/vuejs/core/commit/e181bff6dc39d5cef92000c10291243c7d6e4d08)),
closes
[#&#8203;7605](https://redirect.github.com/vuejs/core/issues/7605)
- **custom-element:** support expose on customElement
([#&#8203;6256](https://redirect.github.com/vuejs/core/issues/6256))
([af838c1](https://redirect.github.com/vuejs/core/commit/af838c1b5ec23552e52e64ffa7db0eb0246c3624)),
closes
[#&#8203;5540](https://redirect.github.com/vuejs/core/issues/5540)
- **custom-element:** support `nonce` option for injected style tags
([bb4a02a](https://redirect.github.com/vuejs/core/commit/bb4a02a70c30e739a3c705b3d96d09258d7d7ded)),
closes
[#&#8203;6530](https://redirect.github.com/vuejs/core/issues/6530)
- **custom-element:** support passing custom-element-specific options
via 2nd argument of defineCustomElement
([60a88a2](https://redirect.github.com/vuejs/core/commit/60a88a2b129714186cf6ba66f30f31d733d0311e))
- **custom-element:** support `shadowRoot: false` in
`defineCustomElement()`
([37d2ce5](https://redirect.github.com/vuejs/core/commit/37d2ce5d8e0fac4a00064f02b05f91f69b2d5d5e)),
closes
[#&#8203;4314](https://redirect.github.com/vuejs/core/issues/4314)
[#&#8203;4404](https://redirect.github.com/vuejs/core/issues/4404)

##### Teleport

- **teleport:** support deferred Teleport
([#&#8203;11387](https://redirect.github.com/vuejs/core/issues/11387))
([59a3e88](https://redirect.github.com/vuejs/core/commit/59a3e88903b10ac2278170a44d5a03f24fef23ef)),
closes
[#&#8203;2015](https://redirect.github.com/vuejs/core/issues/2015)
[#&#8203;11386](https://redirect.github.com/vuejs/core/issues/11386)
- **teleport/transition:** support directly nesting Teleport inside
Transition
([#&#8203;6548](https://redirect.github.com/vuejs/core/issues/6548))
([0e6e3c7](https://redirect.github.com/vuejs/core/commit/0e6e3c7eb0e5320b7c1818e025cb4a490fede9c0)),
closes
[#&#8203;5836](https://redirect.github.com/vuejs/core/issues/5836)

##### Misc

- **runtime-core:** `useTemplateRef()`
([3ba70e4](https://redirect.github.com/vuejs/core/commit/3ba70e49b5856c53611c314d4855d679a546a7df))
- **runtime-core:** add `app.onUnmount()` for registering cleanup
functions
([#&#8203;4619](https://redirect.github.com/vuejs/core/issues/4619))
([582a3a3](https://redirect.github.com/vuejs/core/commit/582a3a382b1adda565bac576b913a88d9e8d7a9e)),
closes
[#&#8203;4516](https://redirect.github.com/vuejs/core/issues/4516)
- **runtime-core:** add `app.config.throwUnhandledErrorInProduction`
([f476b7f](https://redirect.github.com/vuejs/core/commit/f476b7f030f2dd427ca655fcea36f4933a4b4da0)),
closes
[#&#8203;7876](https://redirect.github.com/vuejs/core/issues/7876)
- **runtime-dom:** Trusted Types compatibility
([#&#8203;10844](https://redirect.github.com/vuejs/core/issues/10844))
([6d4eb94](https://redirect.github.com/vuejs/core/commit/6d4eb94853ed1b2b1675bdd7d5ba9c75cc6daed5))
- **compiler-core:** support `Symbol` global in template expressions
([#&#8203;9069](https://redirect.github.com/vuejs/core/issues/9069))
([a501a85](https://redirect.github.com/vuejs/core/commit/a501a85a7c910868e01a5c70a2abea4e9d9e87f3))
- **types:** export more emit related types
([#&#8203;11017](https://redirect.github.com/vuejs/core/issues/11017))
([189573d](https://redirect.github.com/vuejs/core/commit/189573dcee2a16bd3ed36ff5589d43f535e5e733))

<!---->

- **types:** add loading prop to iframe
([#&#8203;11767](https://redirect.github.com/vuejs/core/issues/11767))
([d86fe0e](https://redirect.github.com/vuejs/core/commit/d86fe0ec002901dc359a0e85f3a421b4a8538d68))

##### Internals

- **reactivity:** store value cache on CustomRefs impls
([#&#8203;11539](https://redirect.github.com/vuejs/core/issues/11539))
([e044b6e](https://redirect.github.com/vuejs/core/commit/e044b6e737efc9433d1d84590036b82280da6292))
- **types:** provide internal options for directly using user types in
language tools
([#&#8203;10801](https://redirect.github.com/vuejs/core/issues/10801))
([75c8cf6](https://redirect.github.com/vuejs/core/commit/75c8cf63a1ef30ac84f91282d66ad3f57c6612e9))
- **types:** provide internal options for using refs type in language
tools
([#&#8203;11492](https://redirect.github.com/vuejs/core/issues/11492))
([5ffd1a8](https://redirect.github.com/vuejs/core/commit/5ffd1a89455807d5069eb2c28eba0379641dca76))

#### Bug Fixes

- **compiler-sfc:** fix import usage check for kebab-case same name
shorthand binding
([0f7c0e5](https://redirect.github.com/vuejs/core/commit/0f7c0e5dc0eedada7a5194db87fd0a7dbd1d3354)),
closes
[#&#8203;11745](https://redirect.github.com/vuejs/core/issues/11745)
[#&#8203;11754](https://redirect.github.com/vuejs/core/issues/11754)
- **cssVars:** correctly escape double quotes in SSR
([#&#8203;11784](https://redirect.github.com/vuejs/core/issues/11784))
([7b5b6e0](https://redirect.github.com/vuejs/core/commit/7b5b6e0275f35748dca6d7eb842f8ab2364c6b9a)),
closes
[#&#8203;11779](https://redirect.github.com/vuejs/core/issues/11779)
- **deps:** update dependency postcss to ^8.4.44
([#&#8203;11774](https://redirect.github.com/vuejs/core/issues/11774))
([cb843e0](https://redirect.github.com/vuejs/core/commit/cb843e0be31f9e563ccfc30eca0c06f2a224b505))
- **hydration:** escape css var name to avoid mismatch
([#&#8203;11739](https://redirect.github.com/vuejs/core/issues/11739))
([ca12e77](https://redirect.github.com/vuejs/core/commit/ca12e776bc53aaa31f2df6bb6edc6be1b2f10c37)),
closes
[#&#8203;11735](https://redirect.github.com/vuejs/core/issues/11735)
- **hydration:** handle text nodes with 0 during hydration
([#&#8203;11772](https://redirect.github.com/vuejs/core/issues/11772))
([c756da2](https://redirect.github.com/vuejs/core/commit/c756da24b2d8635cf52b4c7d3abf5bf938852cc5)),
closes
[#&#8203;11771](https://redirect.github.com/vuejs/core/issues/11771)
- **reactivity:** correctly handle method calls on user-extended arrays
([#&#8203;11760](https://redirect.github.com/vuejs/core/issues/11760))
([9817c80](https://redirect.github.com/vuejs/core/commit/9817c80187bec6a3344c74d65fac92262de0fcdd)),
closes
[#&#8203;11759](https://redirect.github.com/vuejs/core/issues/11759)
- **runtime-dom:** avoid unnecessary prop patch for checkbox
([#&#8203;11657](https://redirect.github.com/vuejs/core/issues/11657))
([c3ce9fe](https://redirect.github.com/vuejs/core/commit/c3ce9fe3d8fc27d864ce7148cd36da882cfc21ab)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **runtime-dom:** prevent unnecessary DOM update from v-model
([#&#8203;11656](https://redirect.github.com/vuejs/core/issues/11656))
([b1be9bd](https://redirect.github.com/vuejs/core/commit/b1be9bd64f2c7c4286fecb25bad5d5edd49efce9)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **server-renderer:** Fix call to serverPrefetch in server renderer
with an async setup
([#&#8203;10893](https://redirect.github.com/vuejs/core/issues/10893))
([6039e25](https://redirect.github.com/vuejs/core/commit/6039e25e04a8c1db5821955f011d57f1615807ab))
- **server-renderer:** render `className` during SSR
([#&#8203;11722](https://redirect.github.com/vuejs/core/issues/11722))
([52cdb0f](https://redirect.github.com/vuejs/core/commit/52cdb0f991dc154ae32a2900874d5dbc4e078565))
- **types/defineModel:** allow getter and setter types to be unrelated
([#&#8203;11699](https://redirect.github.com/vuejs/core/issues/11699))
([fe07f70](https://redirect.github.com/vuejs/core/commit/fe07f7073617df358c2f8cbc3de433359e873c96)),
closes
[#&#8203;11697](https://redirect.github.com/vuejs/core/issues/11697)

###
[`v3.4.38`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.38)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.37...v3.4.38)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

</details>

<details>
<summary>yairEO/tagify (@&#8203;yaireo/tagify)</summary>

###
[`v4.31.3`](https://redirect.github.com/yairEO/tagify/releases/tag/v4.31.3)

[Compare
Source](https://redirect.github.com/yairEO/tagify/compare/v4.31.2...v4.31.3)

- fixes
[#&#8203;1372](https://redirect.github.com/yairEO/tagify/issues/1372) -
`this.value` was updated twice needlessly. It should only be updated
within the `postProcessNewTagNode` method
[`7cce53d`](https://redirect.github.com/yairEO/tagify/commit/7cce53d)

###
[`v4.31.2`](https://redirect.github.com/yairEO/tagify/releases/tag/v4.31.2)

[Compare
Source](https://redirect.github.com/yairEO/tagify/compare/v4.31.1...v4.31.2)

- fixes
[#&#8203;1371](https://redirect.github.com/yairEO/tagify/issues/1371) -
`add` event should fire ASAP without any delay. Also should include
invalid added tags
[`f7c7a84`](https://redirect.github.com/yairEO/tagify/commit/f7c7a84)

###
[`v4.31.1`](https://redirect.github.com/yairEO/tagify/releases/tag/v4.31.1)

[Compare
Source](https://redirect.github.com/yairEO/tagify/compare/v4.31.0...v4.31.1)

- fixes
[#&#8203;1369](https://redirect.github.com/yairEO/tagify/issues/1369) &
[#&#8203;450](https://redirect.github.com/yairEO/tagify/issues/450)
[`66c8a7f`](https://redirect.github.com/yairEO/tagify/commit/66c8a7f)
- minor refactor
[`05c1b05`](https://redirect.github.com/yairEO/tagify/commit/05c1b05)

###
[`v4.31.0`](https://redirect.github.com/yairEO/tagify/compare/v4.27.0...v4.31.0)

[Compare
Source](https://redirect.github.com/yairEO/tagify/compare/v4.27.0...v4.31.0)

</details>

<details>
<summary>tailwindlabs/tailwindcss (tailwindcss)</summary>

###
[`v3.4.13`](https://redirect.github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.13)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.12...v3.4.13)

##### Fixed

- Improve source glob verification performance
([#&#8203;14481](https://redirect.github.com/tailwindlabs/tailwindcss/pull/14481))

###
[`v3.4.12`](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.11...v3.4.12)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.11...v3.4.12)

###
[`v3.4.11`](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.11)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.11)

###
[`v3.4.10`](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.9...v3.4.10)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.9...v3.4.10)

</details>

<details>
<summary>vuejs/router (vue-router)</summary>

###
[`v4.4.5`](https://redirect.github.com/vuejs/router/releases/tag/v4.4.5)

[Compare
Source](https://redirect.github.com/vuejs/router/compare/v4.4.4...v4.4.5)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md)
for details.

###
[`v4.4.4`](https://redirect.github.com/vuejs/router/releases/tag/v4.4.4)

[Compare
Source](https://redirect.github.com/vuejs/router/compare/v4.4.3...v4.4.4)

Please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md)
for details.

</details>

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.1.6`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#216-supofficialsup-217-supinsiderssup-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/a95b51ac0b0db8825f77fbba37e29932b5be61e4...v2.1.6)

##### Features

- **language-plugin-pug:** support initial indentation
([#&#8203;4774](https://redirect.github.com/vuejs/language-tools/issues/4774))
- **language-service:** JSDoc display support when typing props on
component template
([#&#8203;4796](https://redirect.github.com/vuejs/language-tools/issues/4796))
- Thanks to [@&#8203;joy-yu](https://redirect.github.com/joy-yu)!
- **language-core:** typed directives in template
([#&#8203;4807](https://redirect.github.com/vuejs/language-tools/issues/4807))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core:** wrap template refs with `unref` in interpolation
([#&#8203;4777](https://redirect.github.com/vuejs/language-tools/issues/4777))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ensure to pass tsc on inline global types
([#&#8203;4782](https://redirect.github.com/vuejs/language-tools/issues/4782))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer native template ref as build-in element
interface
([#&#8203;4786](https://redirect.github.com/vuejs/language-tools/issues/4786))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate `__VLS_StyleModules` after template
([#&#8203;4790](https://redirect.github.com/vuejs/language-tools/issues/4790))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** make `expose` of non-generic template ref required
([#&#8203;4795](https://redirect.github.com/vuejs/language-tools/issues/4795))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** avoid using `__typeProps` with runtime props
([#&#8203;4800](https://redirect.github.com/vuejs/language-tools/issues/4800))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ignore unknown attrs error when strictTemplates is
not enabled
([#&#8203;4785](https://redirect.github.com/vuejs/language-tools/issues/4785))
- **language-core:** prevent append globalTypes to virtual file
([#&#8203;4806](https://redirect.github.com/vuejs/language-tools/issues/4806))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** prevent type error when use defineSlots and
non-template
([#&#8203;4809](https://redirect.github.com/vuejs/language-tools/issues/4809))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **typescript-plugin:** disconnect socket on error
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))

##### Performance

- **language-core:** don't emit event lnlayhint when content is none
([#&#8203;4776](https://redirect.github.com/vuejs/language-tools/issues/4776))
- Thanks to [@&#8203;Gehbt](https://redirect.github.com/Gehbt)!

##### Other Changes

- **language-core:** split `__VLS_templateResult`
([#&#8203;4781](https://redirect.github.com/vuejs/language-tools/issues/4781))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** wrap template virtual code into a function
([#&#8203;4784](https://redirect.github.com/vuejs/language-tools/issues/4784))
- **language-core:** move `templateRef` into `composibles`
([#&#8203;4791](https://redirect.github.com/vuejs/language-tools/issues/4791))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate global types for the first parsed Vue
component if cannot write global types file

##### Tests

- **language-server:** add renaming case for template `ref()`
([#&#8203;4794](https://redirect.github.com/vuejs/language-tools/issues/4794))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **tsc:** update to Vue 3.5
([#&#8203;4725](https://redirect.github.com/vuejs/language-tools/issues/4725))
- **tsc:** unknown props on non-strict generic component
([#&#8203;4792](https://redirect.github.com/vuejs/language-tools/issues/4792))

###
[`v2.1.5`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#214-supofficialsup-215-supinsiderssup-2024-09-01)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.4...a95b51ac0b0db8825f77fbba37e29932b5be61e4)

##### Features

- **typescript-plugin, language-server:** generate global types file
into `node_modules/.vue-global-types`
([#&#8203;4752](https://redirect.github.com/vuejs/language-tools/issues/4752))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** navigation support for template-ref
([#&#8203;4726](https://redirect.github.com/vuejs/language-tools/issues/4726))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core, typescript-plugin, language-server:** apply snake
case on globalTypes filename
([#&#8203;4749](https://redirect.github.com/vuejs/language-tools/issues/4749))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** hoist `$refs` type
([#&#8203;4763](https://redirect.github.com/vuejs/language-tools/issues/4763))
- **language-core:** disable lib check on global types file
([#&#8203;4767](https://redirect.github.com/vuejs/language-tools/issues/4767))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent circular reference of templateRef
([#&#8203;4768](https://redirect.github.com/vuejs/language-tools/issues/4768))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
-   **language-core:** using interface merging for `GlobalComponents`
- **language-core:** `fallthroughAttributes` causes global components to
be self-referential
([#&#8203;4761](https://redirect.github.com/vuejs/language-tools/issues/4761))
- **language-core:** auto-completion for the last line of template block
([#&#8203;4771](https://redirect.github.com/vuejs/language-tools/issues/4771))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
-   **language-

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on the 2nd through 5th day of the
month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/JabRef/JabRefOnline).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tobias Diez <code@tobiasdiez.de>
Co-authored-by: Tobias Diez <code@tobiasdiez.com>
renovate bot added a commit to fwouts/previewjs that referenced this pull request Oct 24, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vue/compiler-core](https://redirect.github.com/vuejs/core/tree/main/packages/compiler-core#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/compiler-core))
| [`^3.4.29` ->
`^3.5.12`](https://renovatebot.com/diffs/npm/@vue%2fcompiler-core/3.4.29/3.5.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fcompiler-core/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fcompiler-core/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fcompiler-core/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fcompiler-core/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vue/compiler-sfc](https://redirect.github.com/vuejs/core/tree/main/packages/compiler-sfc#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/compiler-sfc))
| [`^3.4.29` ->
`^3.5.12`](https://renovatebot.com/diffs/npm/@vue%2fcompiler-sfc/3.4.29/3.5.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fcompiler-sfc/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fcompiler-sfc/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fcompiler-sfc/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fcompiler-sfc/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vue/reactivity](https://redirect.github.com/vuejs/core/tree/main/packages/reactivity#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/reactivity))
| [`^3.4.29` ->
`^3.5.12`](https://renovatebot.com/diffs/npm/@vue%2freactivity/3.4.29/3.5.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2freactivity/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2freactivity/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2freactivity/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2freactivity/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vue/runtime-core](https://redirect.github.com/vuejs/core/tree/main/packages/runtime-core#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/runtime-core))
| [`^3.4.29` ->
`^3.5.12`](https://renovatebot.com/diffs/npm/@vue%2fruntime-core/3.4.29/3.5.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fruntime-core/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fruntime-core/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fruntime-core/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fruntime-core/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vue/runtime-dom](https://redirect.github.com/vuejs/core/tree/main/packages/runtime-dom#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/runtime-dom))
| [`^3.4.29` ->
`^3.5.12`](https://renovatebot.com/diffs/npm/@vue%2fruntime-dom/3.4.29/3.5.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fruntime-dom/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fruntime-dom/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fruntime-dom/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fruntime-dom/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vue/shared](https://redirect.github.com/vuejs/core/tree/main/packages/shared#readme)
([source](https://redirect.github.com/vuejs/core/tree/HEAD/packages/shared))
| [`^3.4.29` ->
`^3.5.12`](https://renovatebot.com/diffs/npm/@vue%2fshared/3.4.29/3.5.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fshared/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fshared/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fshared/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fshared/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://redirect.github.com/vuejs/core)) | [`^3.4.29` ->
`^3.5.12`](https://renovatebot.com/diffs/npm/vue/3.4.29/3.5.12) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.4.29/3.5.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vuejs/core (@&#8203;vue/compiler-core)</summary>

###
[`v3.5.12`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#3512-2024-10-11)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.11...v3.5.12)

##### Bug Fixes

- **compiler-dom:** avoid stringify option with null value
([#&#8203;12096](https://redirect.github.com/vuejs/core/issues/12096))
([f6d9926](https://redirect.github.com/vuejs/core/commit/f6d99262364b7444ebab8742158599e8cdd79eaa)),
closes
[#&#8203;12093](https://redirect.github.com/vuejs/core/issues/12093)
- **compiler-sfc:** do not skip TSInstantiationExpression when
transforming props destructure
([#&#8203;12064](https://redirect.github.com/vuejs/core/issues/12064))
([d3ecde8](https://redirect.github.com/vuejs/core/commit/d3ecde8a696ff62c8d0ab067fd1d7ee0565b63c5))
- **compiler-sfc:** use sass modern api if available and avoid
deprecation warning
([#&#8203;11992](https://redirect.github.com/vuejs/core/issues/11992))
([4474c11](https://redirect.github.com/vuejs/core/commit/4474c113d1fb1c26298dd6794275d5b5c7cc4d93))
- **compiler:** clone loc to `ifNode`
([#&#8203;12131](https://redirect.github.com/vuejs/core/issues/12131))
([cde2c06](https://redirect.github.com/vuejs/core/commit/cde2c0671b00d4f6111fcbd7aa76e45872f20b0c)),
closes
[vuejs/language-tools#4911](https://redirect.github.com/vuejs/language-tools/issues/4911)
- **custom-element:** properly remove hyphenated attribute
([#&#8203;12143](https://redirect.github.com/vuejs/core/issues/12143))
([e16e9a7](https://redirect.github.com/vuejs/core/commit/e16e9a7341e7cfb3c443da4e5e5b06e8158712c3)),
closes
[#&#8203;12139](https://redirect.github.com/vuejs/core/issues/12139)
- **defineModel:** handle kebab-case model correctly
([#&#8203;12063](https://redirect.github.com/vuejs/core/issues/12063))
([c0418a3](https://redirect.github.com/vuejs/core/commit/c0418a3b8fa96a0b108ab71b7aab5d3388f90557)),
closes
[#&#8203;12060](https://redirect.github.com/vuejs/core/issues/12060)
- **deps:** update dependency monaco-editor to ^0.52.0
([#&#8203;12119](https://redirect.github.com/vuejs/core/issues/12119))
([f7cbea2](https://redirect.github.com/vuejs/core/commit/f7cbea2111c7770a180b640f36f6a5d4d6abc698))
- **hydration:** provide compat fallback for idle callback hydration
strategy
([#&#8203;11935](https://redirect.github.com/vuejs/core/issues/11935))
([1ae545a](https://redirect.github.com/vuejs/core/commit/1ae545a3786abef983be1c969726489685569c92))
- **reactivity:** trigger reactivity for Map key `undefined`
([#&#8203;12055](https://redirect.github.com/vuejs/core/issues/12055))
([7ad289e](https://redirect.github.com/vuejs/core/commit/7ad289e1e7fea654524008ff91e43a8b8a55ef22)),
closes
[#&#8203;12054](https://redirect.github.com/vuejs/core/issues/12054)
- **runtime-core:** allow symbol values for slot prop key
([#&#8203;12069](https://redirect.github.com/vuejs/core/issues/12069))
([d9d4d4e](https://redirect.github.com/vuejs/core/commit/d9d4d4e158cd51a9ddda249f29de8467f60b2792)),
closes
[#&#8203;12068](https://redirect.github.com/vuejs/core/issues/12068)
- **runtime-core:** fix required prop check false positive for
kebab-case edge cases
([#&#8203;12034](https://redirect.github.com/vuejs/core/issues/12034))
([9da1ac1](https://redirect.github.com/vuejs/core/commit/9da1ac156552ac449754e1373aac7e349841becb)),
closes
[#&#8203;12011](https://redirect.github.com/vuejs/core/issues/12011)
- **runtime-dom:** prevent unnecessary updates in v-model checkbox when
value is unchanged
([#&#8203;12146](https://redirect.github.com/vuejs/core/issues/12146))
([ea943af](https://redirect.github.com/vuejs/core/commit/ea943afe404c4ca4b729906c5e8daf7aa2ccde9b)),
closes
[#&#8203;12144](https://redirect.github.com/vuejs/core/issues/12144)
- **teleport:** handle disabled teleport with updateCssVars
([#&#8203;12113](https://redirect.github.com/vuejs/core/issues/12113))
([76a8223](https://redirect.github.com/vuejs/core/commit/76a8223199c148b79a5c0ea19e235164809760cd)),
closes
[#&#8203;12112](https://redirect.github.com/vuejs/core/issues/12112)
- **transition/ssr:** make transition appear work with Suspense in SSR
([#&#8203;12047](https://redirect.github.com/vuejs/core/issues/12047))
([f1a4f67](https://redirect.github.com/vuejs/core/commit/f1a4f67aedfe83e440c54222213f070774faa421)),
closes
[#&#8203;12046](https://redirect.github.com/vuejs/core/issues/12046)
- **types:** ensure `this.$props` type does not include `string`
([#&#8203;12123](https://redirect.github.com/vuejs/core/issues/12123))
([704173e](https://redirect.github.com/vuejs/core/commit/704173e24276706de672cca6c9507e4dd9651197)),
closes
[#&#8203;12122](https://redirect.github.com/vuejs/core/issues/12122)
- **types:** retain union type narrowing with defaults applied
([#&#8203;12108](https://redirect.github.com/vuejs/core/issues/12108))
([05685a9](https://redirect.github.com/vuejs/core/commit/05685a9d7c42d4cd37169b867833776b91154fed)),
closes
[#&#8203;12106](https://redirect.github.com/vuejs/core/issues/12106)
- **useId:** ensure useId consistency when using serverPrefetch
([#&#8203;12128](https://redirect.github.com/vuejs/core/issues/12128))
([b4d3534](https://redirect.github.com/vuejs/core/commit/b4d35349d8bc39aa15bd3f1094d230e5928b177c)),
closes
[#&#8203;12102](https://redirect.github.com/vuejs/core/issues/12102)
- **watch:** watchEffect clean-up with SSR
([#&#8203;12097](https://redirect.github.com/vuejs/core/issues/12097))
([b094c72](https://redirect.github.com/vuejs/core/commit/b094c72b3d40c52c7124f145a9db028509a11202)),
closes
[#&#8203;11956](https://redirect.github.com/vuejs/core/issues/11956)

##### Performance Improvements

- **reactivity:** avoid unnecessary recursion in removeSub
([#&#8203;12135](https://redirect.github.com/vuejs/core/issues/12135))
([ec917cf](https://redirect.github.com/vuejs/core/commit/ec917cfdb9d0169cd0835d3a0e28244242657dc9))

###
[`v3.5.11`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#3511-2024-10-03)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.10...v3.5.11)

##### Bug Fixes

- **compiler-sfc:** do not skip `TSSatisfiesExpression` when
transforming props destructure
([#&#8203;12062](https://redirect.github.com/vuejs/core/issues/12062))
([2328b05](https://redirect.github.com/vuejs/core/commit/2328b051f4efa1f1394b7d4e73b7c3f76e430e7c)),
closes
[#&#8203;12061](https://redirect.github.com/vuejs/core/issues/12061)
- **reactivity:** prevent overwriting `next` property during batch
processing
([#&#8203;12075](https://redirect.github.com/vuejs/core/issues/12075))
([d3f5e6e](https://redirect.github.com/vuejs/core/commit/d3f5e6e5319b4ffaa55ca9a2ea3d95d78e76fa58)),
closes
[#&#8203;12072](https://redirect.github.com/vuejs/core/issues/12072)
- **scheduler:** job ordering when the post queue is flushing
([#&#8203;12090](https://redirect.github.com/vuejs/core/issues/12090))
([577edca](https://redirect.github.com/vuejs/core/commit/577edca8e7795436efd710d1c289ea8ea2642b0e))
- **types:** correctly infer `TypeProps` when it is `any`
([#&#8203;12073](https://redirect.github.com/vuejs/core/issues/12073))
([57315ab](https://redirect.github.com/vuejs/core/commit/57315ab9688c9741a271d1075bbd28cbe5f71e2f)),
closes
[#&#8203;12058](https://redirect.github.com/vuejs/core/issues/12058)
- **types:** should not intersect `PublicProps` with `Props`
([#&#8203;12077](https://redirect.github.com/vuejs/core/issues/12077))
([6f85894](https://redirect.github.com/vuejs/core/commit/6f8589437635706f825ccec51800effba1d2bf5f))
- **types:** infer the first generic type of `Ref` correctly
([#&#8203;12094](https://redirect.github.com/vuejs/core/issues/12094))
([c97bb84](https://redirect.github.com/vuejs/core/commit/c97bb84d0b0a16b012f886b6498e924415ed63e5))

###
[`v3.5.10`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#3510-2024-09-27)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.9...v3.5.10)

##### Bug Fixes

- **custom-element:** properly set kebab-case props on Vue custom
elements
([ea3efa0](https://redirect.github.com/vuejs/core/commit/ea3efa09e008918c1d9ba7226833a8b1a7a57244)),
closes
[#&#8203;12030](https://redirect.github.com/vuejs/core/issues/12030)
[#&#8203;12032](https://redirect.github.com/vuejs/core/issues/12032)
- **reactivity:** fix nested batch edge case
([93c95dd](https://redirect.github.com/vuejs/core/commit/93c95dd4cd416503f43a98a1455f62658d22b0b2))
- **reactivity:** only clear notified flags for computed in first batch
iteration
([aa9ef23](https://redirect.github.com/vuejs/core/commit/aa9ef2386a0cd39a174e5a887ec2b1a3525034fc)),
closes
[#&#8203;12045](https://redirect.github.com/vuejs/core/issues/12045)
- **types/ref:** handle nested refs in UnwrapRef
([#&#8203;12049](https://redirect.github.com/vuejs/core/issues/12049))
([e2c19c2](https://redirect.github.com/vuejs/core/commit/e2c19c20cfee9788519a80c0e53e216b78505994)),
closes
[#&#8203;12044](https://redirect.github.com/vuejs/core/issues/12044)

###
[`v3.5.9`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#359-2024-09-26)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.8...v3.5.9)

##### Bug Fixes

- **reactivity:** fix property dep removal regression
([6001e5c](https://redirect.github.com/vuejs/core/commit/6001e5c81a05c894586f9287fbd991677bdd0455)),
closes
[#&#8203;12020](https://redirect.github.com/vuejs/core/issues/12020)
[#&#8203;12021](https://redirect.github.com/vuejs/core/issues/12021)
- **reactivity:** fix recursive sync watcher on computed edge case
([10ff159](https://redirect.github.com/vuejs/core/commit/10ff15924053d9bd95ad706f78ce09e288213fcf)),
closes
[#&#8203;12033](https://redirect.github.com/vuejs/core/issues/12033)
[#&#8203;12037](https://redirect.github.com/vuejs/core/issues/12037)
- **runtime-core:** avoid rendering plain object as VNode
([#&#8203;12038](https://redirect.github.com/vuejs/core/issues/12038))
([cb34b28](https://redirect.github.com/vuejs/core/commit/cb34b28a4a9bf868be4785b001c526163eda342e)),
closes
[#&#8203;12035](https://redirect.github.com/vuejs/core/issues/12035)
[vitejs/vite-plugin-vue#353](https://redirect.github.com/vitejs/vite-plugin-vue/issues/353)
- **runtime-core:** make useId() always return a string
([a177092](https://redirect.github.com/vuejs/core/commit/a177092754642af2f98c33a4feffe8f198c3c950))
- **types:** correct type inference of union event names
([#&#8203;12022](https://redirect.github.com/vuejs/core/issues/12022))
([4da6881](https://redirect.github.com/vuejs/core/commit/4da688141d9e7c15b622c289deaa81b11845b2c7))
- **vue:** properly cache runtime compilation
([#&#8203;12019](https://redirect.github.com/vuejs/core/issues/12019))
([fa0ba24](https://redirect.github.com/vuejs/core/commit/fa0ba24b3ace02d7ecab65e57c2bea89a2550dcb))

###
[`v3.5.8`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#358-2024-09-22)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.7...v3.5.8)

##### Bug Fixes

- **reactivity:** do not remove dep from depsMap when cleaning up deps
of computed
([#&#8203;11995](https://redirect.github.com/vuejs/core/issues/11995))
([0267a58](https://redirect.github.com/vuejs/core/commit/0267a588017eee4951ac2a877fe1ccae84cad905))

###
[`v3.5.7`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#357-2024-09-20)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.6...v3.5.7)

##### Bug Fixes

- **compile-core:** fix v-model with newlines edge case
([#&#8203;11960](https://redirect.github.com/vuejs/core/issues/11960))
([6224288](https://redirect.github.com/vuejs/core/commit/62242886d705ece88dbcad45bb78072ecccad0ca)),
closes
[#&#8203;8306](https://redirect.github.com/vuejs/core/issues/8306)
- **compiler-sfc:** initialize scope with null prototype object
([#&#8203;11963](https://redirect.github.com/vuejs/core/issues/11963))
([215e154](https://redirect.github.com/vuejs/core/commit/215e15407294bf667261360218f975b88c99c2e5))
- **hydration:** avoid observing non-Element node
([#&#8203;11954](https://redirect.github.com/vuejs/core/issues/11954))
([7257e6a](https://redirect.github.com/vuejs/core/commit/7257e6a34200409b3fc347d3bb807e11e2785974)),
closes
[#&#8203;11952](https://redirect.github.com/vuejs/core/issues/11952)
- **reactivity:** do not remove dep from depsMap when unsubbed by
computed
([960706e](https://redirect.github.com/vuejs/core/commit/960706eebf73f08ebc9d5dd853a05def05e2c153))
- **reactivity:** fix dev-only memory leak by updating dep.subsHead on
sub removal
([5c8b76e](https://redirect.github.com/vuejs/core/commit/5c8b76ed6cfbbcee4cbaac0b72beab7291044e4f)),
closes
[#&#8203;11956](https://redirect.github.com/vuejs/core/issues/11956)
- **reactivity:** fix memory leak from dep instances of garbage
collected objects
([235ea47](https://redirect.github.com/vuejs/core/commit/235ea4772ed2972914cf142da8b7ac1fb04f7585)),
closes
[#&#8203;11979](https://redirect.github.com/vuejs/core/issues/11979)
[#&#8203;11971](https://redirect.github.com/vuejs/core/issues/11971)
- **reactivity:** fix triggerRef call on ObjectRefImpl returned by toRef
([#&#8203;11986](https://redirect.github.com/vuejs/core/issues/11986))
([b030c8b](https://redirect.github.com/vuejs/core/commit/b030c8bc7327877efb98aa3d9a58eb287a6ff07a)),
closes
[#&#8203;11982](https://redirect.github.com/vuejs/core/issues/11982)
- **scheduler:** ensure recursive jobs can't be queued twice
([#&#8203;11955](https://redirect.github.com/vuejs/core/issues/11955))
([d18d6aa](https://redirect.github.com/vuejs/core/commit/d18d6aa1b20dc57a8103c51ec4d61e8e53ed936d))
- **ssr:** don't render comments in TransitionGroup
([#&#8203;11961](https://redirect.github.com/vuejs/core/issues/11961))
([a2f6ede](https://redirect.github.com/vuejs/core/commit/a2f6edeb02faedbb673c4bc5c6a59d9a79a37d07)),
closes
[#&#8203;11958](https://redirect.github.com/vuejs/core/issues/11958)
- **transition:** respect `duration` setting even when it is `0`
([#&#8203;11967](https://redirect.github.com/vuejs/core/issues/11967))
([f927a4a](https://redirect.github.com/vuejs/core/commit/f927a4ae6f7c453f70ba89498ee0c737dc9866fd))
- **types:** correct type inference of all-optional props
([#&#8203;11644](https://redirect.github.com/vuejs/core/issues/11644))
([9eca65e](https://redirect.github.com/vuejs/core/commit/9eca65ee9871d1ac878755afa9a3eb1b02030350)),
closes
[#&#8203;11733](https://redirect.github.com/vuejs/core/issues/11733)
[vuejs/language-tools#4704](https://redirect.github.com/vuejs/language-tools/issues/4704)

##### Performance Improvements

- **hydration:** avoid observer if element is in viewport
([#&#8203;11639](https://redirect.github.com/vuejs/core/issues/11639))
([e075dfa](https://redirect.github.com/vuejs/core/commit/e075dfad5c7649c6045e3711687ec888e7aa1a39))

###
[`v3.5.6`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#356-2024-09-16)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.5...v3.5.6)

##### Bug Fixes

- **compile-dom:** should be able to stringify mathML
([#&#8203;11891](https://redirect.github.com/vuejs/core/issues/11891))
([85c138c](https://redirect.github.com/vuejs/core/commit/85c138ced108268f7656b568dfd3036a1e0aae34))
- **compiler-sfc:** preserve old behavior when using withDefaults with
desutructure
([8492c3c](https://redirect.github.com/vuejs/core/commit/8492c3c49a922363d6c77ef192c133a8fbce6514)),
closes
[#&#8203;11930](https://redirect.github.com/vuejs/core/issues/11930)
- **reactivity:** avoid exponential perf cost and reduce call stack
depth for deeply chained computeds
([#&#8203;11944](https://redirect.github.com/vuejs/core/issues/11944))
([c74bb8c](https://redirect.github.com/vuejs/core/commit/c74bb8c2dd9e82aaabb0a2a2b368e900929b513b)),
closes
[#&#8203;11928](https://redirect.github.com/vuejs/core/issues/11928)
- **reactivity:** rely on dirty check only when computed has deps
([#&#8203;11931](https://redirect.github.com/vuejs/core/issues/11931))
([aa5dafd](https://redirect.github.com/vuejs/core/commit/aa5dafd2b55d42d6a29316a3bc91aea85c676a0b)),
closes
[#&#8203;11929](https://redirect.github.com/vuejs/core/issues/11929)
- **watch:** `once` option should be ignored by watchEffect
([#&#8203;11884](https://redirect.github.com/vuejs/core/issues/11884))
([49fa673](https://redirect.github.com/vuejs/core/commit/49fa673493d93b77ddba2165ab6545bae84fd1ae))
- **watch:** unwatch should be callable during SSR
([#&#8203;11925](https://redirect.github.com/vuejs/core/issues/11925))
([2d6adf7](https://redirect.github.com/vuejs/core/commit/2d6adf78a047eed091db277ffbd9df0822fb0bdd)),
closes
[#&#8203;11924](https://redirect.github.com/vuejs/core/issues/11924)

###
[`v3.5.5`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#355-2024-09-13)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.4...v3.5.5)

##### Bug Fixes

- **compiler-core:** fix handling of delimiterOpen in VPre
([#&#8203;11915](https://redirect.github.com/vuejs/core/issues/11915))
([706d4ac](https://redirect.github.com/vuejs/core/commit/706d4ac1d0210b2d9134b3228280187fe02fc971)),
closes
[#&#8203;11913](https://redirect.github.com/vuejs/core/issues/11913)
- **compiler-dom:** fix stringify static edge for partially eligible
chunks in cached parent
([1d99d61](https://redirect.github.com/vuejs/core/commit/1d99d61c1bd77f9ea6743f6214a82add8346a121)),
closes
[#&#8203;11879](https://redirect.github.com/vuejs/core/issues/11879)
[#&#8203;11890](https://redirect.github.com/vuejs/core/issues/11890)
- **compiler-dom:** should ignore leading newline in <textarea> per spec
([3c4bf76](https://redirect.github.com/vuejs/core/commit/3c4bf7627649ec1e3220f8c4e4163c20d2afb367))
- **compiler-sfc:** nested css supports atrule and comment
([#&#8203;11899](https://redirect.github.com/vuejs/core/issues/11899))
([0e7bc71](https://redirect.github.com/vuejs/core/commit/0e7bc717e6640644f062957ec5031506f0dab215)),
closes
[#&#8203;11896](https://redirect.github.com/vuejs/core/issues/11896)
- **custom-element:** handle nested customElement mount w/ shadowRoot
false
([#&#8203;11861](https://redirect.github.com/vuejs/core/issues/11861))
([f2d8019](https://redirect.github.com/vuejs/core/commit/f2d801918841e7673ff3f048d0d895592a2f7e23)),
closes
[#&#8203;11851](https://redirect.github.com/vuejs/core/issues/11851)
[#&#8203;11871](https://redirect.github.com/vuejs/core/issues/11871)
- **hmr:** reload async child wrapped in Suspense + KeepAlive
([#&#8203;11907](https://redirect.github.com/vuejs/core/issues/11907))
([10a2c60](https://redirect.github.com/vuejs/core/commit/10a2c6053bd30d160d0214bb3566f540187e6874)),
closes
[#&#8203;11868](https://redirect.github.com/vuejs/core/issues/11868)
- **hydration:** fix mismatch of leading newline in `<textarea>` and
`<pre>`
([a5f3c2e](https://redirect.github.com/vuejs/core/commit/a5f3c2eb4d2e7fae93ff93ce865b269f01cc825e)),
closes
[#&#8203;11873](https://redirect.github.com/vuejs/core/issues/11873)
[#&#8203;11874](https://redirect.github.com/vuejs/core/issues/11874)
- **reactivity:** properly clean up deps, fix memory leak
([8ea5d6d](https://redirect.github.com/vuejs/core/commit/8ea5d6d6981ab7febda0be43c3c92b18869c3a2a)),
closes
[#&#8203;11901](https://redirect.github.com/vuejs/core/issues/11901)
- **runtime-core:** properly update async component nested in KeepAlive
([#&#8203;11917](https://redirect.github.com/vuejs/core/issues/11917))
([7fe6c79](https://redirect.github.com/vuejs/core/commit/7fe6c795a1fc7ddcea5ad91a56141561192373ac)),
closes
[#&#8203;11916](https://redirect.github.com/vuejs/core/issues/11916)
- **TransitionGroup:** not warn unkeyed text children with whitespece
preserve
([#&#8203;11888](https://redirect.github.com/vuejs/core/issues/11888))
([7571f20](https://redirect.github.com/vuejs/core/commit/7571f20bc3d1854377a146f41d211e05bb68cd47)),
closes
[#&#8203;11885](https://redirect.github.com/vuejs/core/issues/11885)

###
[`v3.5.4`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#354-2024-09-10)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.3...v3.5.4)

##### Bug Fixes

- **compiler-sfc:** correct scoped injection for nesting selector
([#&#8203;11854](https://redirect.github.com/vuejs/core/issues/11854))
([b1de75e](https://redirect.github.com/vuejs/core/commit/b1de75ed04626b6423085dfde91fb0cb481a25e8)),
closes
[#&#8203;10567](https://redirect.github.com/vuejs/core/issues/10567)
- **reactivity:** fix markRaw error on already marked object
([#&#8203;11864](https://redirect.github.com/vuejs/core/issues/11864))
([67d6596](https://redirect.github.com/vuejs/core/commit/67d6596d40b1807b9cd8eb0d9282932ea77be3c0)),
closes
[#&#8203;11862](https://redirect.github.com/vuejs/core/issues/11862)
- Revert "fix: Revert "fix(reactivity): self-referencing computed should
refresh""
([e596378](https://redirect.github.com/vuejs/core/commit/e596378e0be728dad7d60938449f3fa557ca2ec9))
- **runtime-core:** handle shallow reactive arrays in renderList
correctly
([#&#8203;11870](https://redirect.github.com/vuejs/core/issues/11870))
([ced59ab](https://redirect.github.com/vuejs/core/commit/ced59ab8f2f2e89c13119bab3a0c25a1a1f1c3d6)),
closes
[#&#8203;11869](https://redirect.github.com/vuejs/core/issues/11869)
- **types:** correctly infer `TypeEmits` with both tuple and function
syntax
([#&#8203;11840](https://redirect.github.com/vuejs/core/issues/11840))
([dad6738](https://redirect.github.com/vuejs/core/commit/dad673809929c084dcb8e42640eb7daa675d4ea4)),
closes
[#&#8203;11836](https://redirect.github.com/vuejs/core/issues/11836)

##### Performance Improvements

- **reactivity:** trigger deps directly instead of storing in an array
first
([#&#8203;11695](https://redirect.github.com/vuejs/core/issues/11695))
([f80d447](https://redirect.github.com/vuejs/core/commit/f80d447c17662556e9e3f99f6d199967f4c8cf3d))

###
[`v3.5.3`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#353-2024-09-06)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.2...v3.5.3)

##### Bug Fixes

- **hydration:** check \__asyncHydrate presence for vue3-lazy-hydration
compat
([#&#8203;11825](https://redirect.github.com/vuejs/core/issues/11825))
([8e6c337](https://redirect.github.com/vuejs/core/commit/8e6c3378676be05cea7f53664442acdfb86784f9)),
closes
[#&#8203;11793](https://redirect.github.com/vuejs/core/issues/11793)
- Revert "fix(reactivity): self-referencing computed should refresh"
([35c760f](https://redirect.github.com/vuejs/core/commit/35c760f82f749f7c6e3f9bfead8221ce498e892f))
- **ssr:** respect app.config.warnHandler during ssr
([bf3d9a2](https://redirect.github.com/vuejs/core/commit/bf3d9a2af41659a743706306fc798b3d215df5af)),
closes
[#&#8203;11830](https://redirect.github.com/vuejs/core/issues/11830)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11833](https://redirect.github.com/vuejs/core/issues/11833))
([6b7901d](https://redirect.github.com/vuejs/core/commit/6b7901d28ed3a6a9242c666cc1b8e3c0b0b0fe62)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **useId:** make generated IDs selector compatible
([babfb4c](https://redirect.github.com/vuejs/core/commit/babfb4cbcbf98601d76c1d7653eae8d250ce2710)),
closes
[#&#8203;11828](https://redirect.github.com/vuejs/core/issues/11828)

###
[`v3.5.2`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#352-2024-09-05)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.1...v3.5.2)

##### Bug Fixes

- **reactivity:** make toRaw work on proxies created by proxyRef
([46c3ab1](https://redirect.github.com/vuejs/core/commit/46c3ab1d714024894fa1d33e495d5d35c7817d4d))
- **reactivity:** pass oldValue to computed getter
([#&#8203;11813](https://redirect.github.com/vuejs/core/issues/11813))
([98864a7](https://redirect.github.com/vuejs/core/commit/98864a7ef5c8080c407166c8221488a4eacbbc81)),
closes
[#&#8203;11812](https://redirect.github.com/vuejs/core/issues/11812)
- **reactivity:** prevent endless recursion in computed getters
([#&#8203;11797](https://redirect.github.com/vuejs/core/issues/11797))
([716275d](https://redirect.github.com/vuejs/core/commit/716275d1b1d2383d8ef0306fcd94558d4d9170f2))
- **reactivity:** self-referencing computed should refresh
([e84c4a6](https://redirect.github.com/vuejs/core/commit/e84c4a608e9dc96fb2a4a29d538bcc64f26103a2)),
closes
[/github.com/vuejs/core/pull/11797#issuecomment-2330738633](https://redirect.github.com//github.com/vuejs/core/pull/11797/issues/issuecomment-2330738633)
- **scheduler:** prevent duplicate jobs being queued
([#&#8203;11826](https://redirect.github.com/vuejs/core/issues/11826))
([df56cc5](https://redirect.github.com/vuejs/core/commit/df56cc528793b1d6131a1e64095dd5cb95c56bee)),
closes
[#&#8203;11712](https://redirect.github.com/vuejs/core/issues/11712)
[#&#8203;11807](https://redirect.github.com/vuejs/core/issues/11807)
- **suspense:** avoid updating anchor if activeBranch has not been
rendered to the actual container
([#&#8203;11818](https://redirect.github.com/vuejs/core/issues/11818))
([3c0d531](https://redirect.github.com/vuejs/core/commit/3c0d531fa7fe762bfe46fbe63f318adc95221795)),
closes
[#&#8203;11806](https://redirect.github.com/vuejs/core/issues/11806)
- **Transition:** handle KeepAlive child unmount in Transition out-in
mode
([#&#8203;11778](https://redirect.github.com/vuejs/core/issues/11778))
([3116553](https://redirect.github.com/vuejs/core/commit/311655352931863dfcf520b8cf29cebc5b7e1e00)),
closes
[#&#8203;11775](https://redirect.github.com/vuejs/core/issues/11775)
- **types:** add HTMLDialogElement missing close event
([#&#8203;11811](https://redirect.github.com/vuejs/core/issues/11811))
([3634f7a](https://redirect.github.com/vuejs/core/commit/3634f7a4c1649ad2e7e969eb4512512868c61d01))
- **types:** added name attribute support to details tag
([#&#8203;11823](https://redirect.github.com/vuejs/core/issues/11823))
([c74176e](https://redirect.github.com/vuejs/core/commit/c74176ec7b4d1d34159ce21d600c04b157ac5549)),
closes
[#&#8203;11821](https://redirect.github.com/vuejs/core/issues/11821)
- **types:** fix defineComponent props inference when setup() has
explicit annotation
([fca20a3](https://redirect.github.com/vuejs/core/commit/fca20a39aa4a6f98c8f972bd435ebb7dc535648a)),
closes
[#&#8203;11803](https://redirect.github.com/vuejs/core/issues/11803)
- **useTemplateRef:** properly fix readonly warning in dev and ensure
prod behavior consistency
([9b7797d](https://redirect.github.com/vuejs/core/commit/9b7797d0d1fc773e979e042673d5b9b3151c40fc)),
closes
[#&#8203;11808](https://redirect.github.com/vuejs/core/issues/11808)
[#&#8203;11816](https://redirect.github.com/vuejs/core/issues/11816)
[#&#8203;11810](https://redirect.github.com/vuejs/core/issues/11810)

##### Features

- **compiler-core:** parse modifiers as expression to provide location
data
([#&#8203;11819](https://redirect.github.com/vuejs/core/issues/11819))
([3f13203](https://redirect.github.com/vuejs/core/commit/3f13203564164eeb2945bdc0b9ef755c37477d75))

###
[`v3.5.1`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#3511-2024-10-03)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.5.0...v3.5.1)

##### Bug Fixes

- **compiler-sfc:** do not skip `TSSatisfiesExpression` when
transforming props destructure
([#&#8203;12062](https://redirect.github.com/vuejs/core/issues/12062))
([2328b05](https://redirect.github.com/vuejs/core/commit/2328b051f4efa1f1394b7d4e73b7c3f76e430e7c)),
closes
[#&#8203;12061](https://redirect.github.com/vuejs/core/issues/12061)
- **reactivity:** prevent overwriting `next` property during batch
processing
([#&#8203;12075](https://redirect.github.com/vuejs/core/issues/12075))
([d3f5e6e](https://redirect.github.com/vuejs/core/commit/d3f5e6e5319b4ffaa55ca9a2ea3d95d78e76fa58)),
closes
[#&#8203;12072](https://redirect.github.com/vuejs/core/issues/12072)
- **scheduler:** job ordering when the post queue is flushing
([#&#8203;12090](https://redirect.github.com/vuejs/core/issues/12090))
([577edca](https://redirect.github.com/vuejs/core/commit/577edca8e7795436efd710d1c289ea8ea2642b0e))
- **types:** correctly infer `TypeProps` when it is `any`
([#&#8203;12073](https://redirect.github.com/vuejs/core/issues/12073))
([57315ab](https://redirect.github.com/vuejs/core/commit/57315ab9688c9741a271d1075bbd28cbe5f71e2f)),
closes
[#&#8203;12058](https://redirect.github.com/vuejs/core/issues/12058)
- **types:** should not intersect `PublicProps` with `Props`
([#&#8203;12077](https://redirect.github.com/vuejs/core/issues/12077))
([6f85894](https://redirect.github.com/vuejs/core/commit/6f8589437635706f825ccec51800effba1d2bf5f))
- **types:** infer the first generic type of `Ref` correctly
([#&#8203;12094](https://redirect.github.com/vuejs/core/issues/12094))
([c97bb84](https://redirect.github.com/vuejs/core/commit/c97bb84d0b0a16b012f886b6498e924415ed63e5))

###
[`v3.5.0`](https://redirect.github.com/vuejs/core/blob/HEAD/CHANGELOG.md#350-2024-09-03)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.38...v3.5.0)

#### Aggregated Features List for 3.5 (alpha to stable)

##### Reactivity

- **reactivity**: Refactor reactivity system to use version counting and
doubly-linked list tracking
([#&#8203;10397](https://redirect.github.com/vuejs/core/pull/10397))
([05eb4e0](https://redirect.github.com/vuejs/core/commit/05eb4e0fefd585125dd60b7f8fe9c36928d921aa))
- **reactivity**: Optimize array tracking
([#&#8203;9511](https://redirect.github.com/vuejs/core/pull/9511))
([70196a4](https://redirect.github.com/vuejs/core/commit/70196a40cc078f50fcc1110c38c06fbcc70b205e))
- **compiler-sfc:** enable reactive props destructure by default
([d2dac0e](https://redirect.github.com/vuejs/core/commit/d2dac0e359c47d1ed0aa77eda488e76fd6466d2d))
- **reactivity:** `onEffectCleanup` API
([2cc5615](https://redirect.github.com/vuejs/core/commit/2cc5615590de77126e8df46136de0240dbde5004)),
closes
[#&#8203;10173](https://redirect.github.com/vuejs/core/issues/10173)
- **reactivity:** add `failSilently` argument for `onScopeDispose`
([9a936aa](https://redirect.github.com/vuejs/core/commit/9a936aaec489c79433a32791ecf5ddb1739a62bd))
- **reactivity/watch:** base `watch`, `getCurrentWatcher`, and
`onWatcherCleanup`
([#&#8203;9927](https://redirect.github.com/vuejs/core/issues/9927))
([205e5b5](https://redirect.github.com/vuejs/core/commit/205e5b5e277243c3af2c937d9bd46cf671296b72))
- **reactivity/watch:** add pause/resume for ReactiveEffect,
EffectScope, and WatchHandle
([#&#8203;9651](https://redirect.github.com/vuejs/core/issues/9651))
([267093c](https://redirect.github.com/vuejs/core/commit/267093c31490050bfcf3ff2b30a2aefee2dad582))
- **watch:** support passing number to `deep` option to control the
watch depth
([#&#8203;9572](https://redirect.github.com/vuejs/core/issues/9572))
([22f7d96](https://redirect.github.com/vuejs/core/commit/22f7d96757956ebe0baafe52256aa327908cc51c))
- **types:** export `MultiWatchSources` type
([#&#8203;9563](https://redirect.github.com/vuejs/core/issues/9563))
([998dca5](https://redirect.github.com/vuejs/core/commit/998dca59f140420280803233f41707580688562c))
- **types:** allow computed getter and setter types to be unrelated
([#&#8203;11472](https://redirect.github.com/vuejs/core/issues/11472))
([a01675e](https://redirect.github.com/vuejs/core/commit/a01675ef8f99b5acd6832c53051f4415b18609f2)),
closes
[#&#8203;7271](https://redirect.github.com/vuejs/core/issues/7271)

##### SSR

- **runtime-core:** `useId()` and `app.config.idPrefix`
([#&#8203;11404](https://redirect.github.com/vuejs/core/issues/11404))
([73ef156](https://redirect.github.com/vuejs/core/commit/73ef1561f6905d69f968c094d0180c61824f1247))
- **hydration:** lazy hydration strategies for async components
([#&#8203;11458](https://redirect.github.com/vuejs/core/issues/11458))
([d14a11c](https://redirect.github.com/vuejs/core/commit/d14a11c1cdcee88452f17ce97758743c863958f4))
- **hydration:** support suppressing hydration mismatch via
data-allow-mismatch
([94fb2b8](https://redirect.github.com/vuejs/core/commit/94fb2b8106a66bcca1a3f922a246a29fdd1274b1))

##### Custom Element

- **custom-element:** `useHost()` helper
([775103a](https://redirect.github.com/vuejs/core/commit/775103af37df69d34c79f12c4c1776c47d07f0a0))
- **custom-element:** `useShadowRoot()` helper
([5a1a89b](https://redirect.github.com/vuejs/core/commit/5a1a89bd6178cc2f84ba91da7d72aee4c6ec1282)),
closes
[#&#8203;6113](https://redirect.github.com/vuejs/core/issues/6113)
[#&#8203;8195](https://redirect.github.com/vuejs/core/issues/8195)
- **custom-element:** expose `this.$host` in Options API
([1ef8f46](https://redirect.github.com/vuejs/core/commit/1ef8f46af0cfdec2fed66376772409e0aa25ad50))
- **custom-element:** inject child components styles to custom element
shadow root
([#&#8203;11517](https://redirect.github.com/vuejs/core/issues/11517))
([56c76a8](https://redirect.github.com/vuejs/core/commit/56c76a8b05c45f782ed3a16ec77c6292b71a17f1)),
closes
[#&#8203;4662](https://redirect.github.com/vuejs/core/issues/4662)
[#&#8203;7941](https://redirect.github.com/vuejs/core/issues/7941)
[#&#8203;7942](https://redirect.github.com/vuejs/core/issues/7942)
- **custom-element:** support configurable app instance in
defineCustomElement
([6758c3c](https://redirect.github.com/vuejs/core/commit/6758c3cd0427f97394d95168c655dae3b7fa62cd)),
closes
[#&#8203;4356](https://redirect.github.com/vuejs/core/issues/4356)
[#&#8203;4635](https://redirect.github.com/vuejs/core/issues/4635)
- **custom-element:** support css `:host` selector by applying css vars
on host element
([#&#8203;8830](https://redirect.github.com/vuejs/core/issues/8830))
([03a9ea2](https://redirect.github.com/vuejs/core/commit/03a9ea2b88df0842a820e09f7445c4b9189e3fcb)),
closes
[#&#8203;8826](https://redirect.github.com/vuejs/core/issues/8826)
- **custom-element:** support emit with options
([e181bff](https://redirect.github.com/vuejs/core/commit/e181bff6dc39d5cef92000c10291243c7d6e4d08)),
closes
[#&#8203;7605](https://redirect.github.com/vuejs/core/issues/7605)
- **custom-element:** support expose on customElement
([#&#8203;6256](https://redirect.github.com/vuejs/core/issues/6256))
([af838c1](https://redirect.github.com/vuejs/core/commit/af838c1b5ec23552e52e64ffa7db0eb0246c3624)),
closes
[#&#8203;5540](https://redirect.github.com/vuejs/core/issues/5540)
- **custom-element:** support `nonce` option for injected style tags
([bb4a02a](https://redirect.github.com/vuejs/core/commit/bb4a02a70c30e739a3c705b3d96d09258d7d7ded)),
closes
[#&#8203;6530](https://redirect.github.com/vuejs/core/issues/6530)
- **custom-element:** support passing custom-element-specific options
via 2nd argument of defineCustomElement
([60a88a2](https://redirect.github.com/vuejs/core/commit/60a88a2b129714186cf6ba66f30f31d733d0311e))
- **custom-element:** support `shadowRoot: false` in
`defineCustomElement()`
([37d2ce5](https://redirect.github.com/vuejs/core/commit/37d2ce5d8e0fac4a00064f02b05f91f69b2d5d5e)),
closes
[#&#8203;4314](https://redirect.github.com/vuejs/core/issues/4314)
[#&#8203;4404](https://redirect.github.com/vuejs/core/issues/4404)

##### Teleport

- **teleport:** support deferred Teleport
([#&#8203;11387](https://redirect.github.com/vuejs/core/issues/11387))
([59a3e88](https://redirect.github.com/vuejs/core/commit/59a3e88903b10ac2278170a44d5a03f24fef23ef)),
closes
[#&#8203;2015](https://redirect.github.com/vuejs/core/issues/2015)
[#&#8203;11386](https://redirect.github.com/vuejs/core/issues/11386)
- **teleport/transition:** support directly nesting Teleport inside
Transition
([#&#8203;6548](https://redirect.github.com/vuejs/core/issues/6548))
([0e6e3c7](https://redirect.github.com/vuejs/core/commit/0e6e3c7eb0e5320b7c1818e025cb4a490fede9c0)),
closes
[#&#8203;5836](https://redirect.github.com/vuejs/core/issues/5836)

##### Misc

- **runtime-core:** `useTemplateRef()`
([3ba70e4](https://redirect.github.com/vuejs/core/commit/3ba70e49b5856c53611c314d4855d679a546a7df))
- **runtime-core:** add `app.onUnmount()` for registering cleanup
functions
([#&#8203;4619](https://redirect.github.com/vuejs/core/issues/4619))
([582a3a3](https://redirect.github.com/vuejs/core/commit/582a3a382b1adda565bac576b913a88d9e8d7a9e)),
closes
[#&#8203;4516](https://redirect.github.com/vuejs/core/issues/4516)
- **runtime-core:** add `app.config.throwUnhandledErrorInProduction`
([f476b7f](https://redirect.github.com/vuejs/core/commit/f476b7f030f2dd427ca655fcea36f4933a4b4da0)),
closes
[#&#8203;7876](https://redirect.github.com/vuejs/core/issues/7876)
- **runtime-dom:** Trusted Types compatibility
([#&#8203;10844](https://redirect.github.com/vuejs/core/issues/10844))
([6d4eb94](https://redirect.github.com/vuejs/core/commit/6d4eb94853ed1b2b1675bdd7d5ba9c75cc6daed5))
- **compiler-core:** support `Symbol` global in template expressions
([#&#8203;9069](https://redirect.github.com/vuejs/core/issues/9069))
([a501a85](https://redirect.github.com/vuejs/core/commit/a501a85a7c910868e01a5c70a2abea4e9d9e87f3))
- **types:** export more emit related types
([#&#8203;11017](https://redirect.github.com/vuejs/core/issues/11017))
([189573d](https://redirect.github.com/vuejs/core/commit/189573dcee2a16bd3ed36ff5589d43f535e5e733))

<!---->

- **types:** add loading prop to iframe
([#&#8203;11767](https://redirect.github.com/vuejs/core/issues/11767))
([d86fe0e](https://redirect.github.com/vuejs/core/commit/d86fe0ec002901dc359a0e85f3a421b4a8538d68))

##### Internals

- **reactivity:** store value cache on CustomRefs impls
([#&#8203;11539](https://redirect.github.com/vuejs/core/issues/11539))
([e044b6e](https://redirect.github.com/vuejs/core/commit/e044b6e737efc9433d1d84590036b82280da6292))
- **types:** provide internal options for directly using user types in
language tools
([#&#8203;10801](https://redirect.github.com/vuejs/core/issues/10801))
([75c8cf6](https://redirect.github.com/vuejs/core/commit/75c8cf63a1ef30ac84f91282d66ad3f57c6612e9))
- **types:** provide internal options for using refs type in language
tools
([#&#8203;11492](https://redirect.github.com/vuejs/core/issues/11492))
([5ffd1a8](https://redirect.github.com/vuejs/core/commit/5ffd1a89455807d5069eb2c28eba0379641dca76))

#### Bug Fixes

- **compiler-sfc:** fix import usage check for kebab-case same name
shorthand binding
([0f7c0e5](https://redirect.github.com/vuejs/core/commit/0f7c0e5dc0eedada7a5194db87fd0a7dbd1d3354)),
closes
[#&#8203;11745](https://redirect.github.com/vuejs/core/issues/11745)
[#&#8203;11754](https://redirect.github.com/vuejs/core/issues/11754)
- **cssVars:** correctly escape double quotes in SSR
([#&#8203;11784](https://redirect.github.com/vuejs/core/issues/11784))
([7b5b6e0](https://redirect.github.com/vuejs/core/commit/7b5b6e0275f35748dca6d7eb842f8ab2364c6b9a)),
closes
[#&#8203;11779](https://redirect.github.com/vuejs/core/issues/11779)
- **deps:** update dependency postcss to ^8.4.44
([#&#8203;11774](https://redirect.github.com/vuejs/core/issues/11774))
([cb843e0](https://redirect.github.com/vuejs/core/commit/cb843e0be31f9e563ccfc30eca0c06f2a224b505))
- **hydration:** escape css var name to avoid mismatch
([#&#8203;11739](https://redirect.github.com/vuejs/core/issues/11739))
([ca12e77](https://redirect.github.com/vuejs/core/commit/ca12e776bc53aaa31f2df6bb6edc6be1b2f10c37)),
closes
[#&#8203;11735](https://redirect.github.com/vuejs/core/issues/11735)
- **hydration:** handle text nodes with 0 during hydration
([#&#8203;11772](https://redirect.github.com/vuejs/core/issues/11772))
([c756da2](https://redirect.github.com/vuejs/core/commit/c756da24b2d8635cf52b4c7d3abf5bf938852cc5)),
closes
[#&#8203;11771](https://redirect.github.com/vuejs/core/issues/11771)
- **reactivity:** correctly handle method calls on user-extended arrays
([#&#8203;11760](https://redirect.github.com/vuejs/core/issues/11760))
([9817c80](https://redirect.github.com/vuejs/core/commit/9817c80187bec6a3344c74d65fac92262de0fcdd)),
closes
[#&#8203;11759](https://redirect.github.com/vuejs/core/issues/11759)
- **runtime-dom:** avoid unnecessary prop patch for checkbox
([#&#8203;11657](https://redirect.github.com/vuejs/core/issues/11657))
([c3ce9fe](https://redirect.github.com/vuejs/core/commit/c3ce9fe3d8fc27d864ce7148cd36da882cfc21ab)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **runtime-dom:** prevent unnecessary DOM update from v-model
([#&#8203;11656](https://redirect.github.com/vuejs/core/issues/11656))
([b1be9bd](https://redirect.github.com/vuejs/core/commit/b1be9bd64f2c7c4286fecb25bad5d5edd49efce9)),
closes
[#&#8203;11647](https://redirect.github.com/vuejs/core/issues/11647)
- **server-renderer:** Fix call to serverPrefetch in server renderer
with an async setup
([#&#8203;10893](https://redirect.github.com/vuejs/core/issues/10893))
([6039e25](https://redirect.github.com/vuejs/core/commit/6039e25e04a8c1db5821955f011d57f1615807ab))
- **server-renderer:** render `className` during SSR
([#&#8203;11722](https://redirect.github.com/vuejs/core/issues/11722))
([52cdb0f](https://redirect.github.com/vuejs/core/commit/52cdb0f991dc154ae32a2900874d5dbc4e078565))
- **types/defineModel:** allow getter and setter types to be unrelated
([#&#8203;11699](https://redirect.github.com/vuejs/core/issues/11699))
([fe07f70](https://redirect.github.com/vuejs/core/commit/fe07f7073617df358c2f8cbc3de433359e873c96)),
closes
[#&#8203;11697](https://redirect.github.com/vuejs/core/issues/11697)

###
[`v3.4.38`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.38)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.37...v3.4.38)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.37`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.37)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.36...v3.4.37)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.36`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.36)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.35...v3.4.36)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.35`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.35)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.34...v3.4.35)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.34`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.34)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.33...v3.4.34)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.33`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.33)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.32...v3.4.33)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.32`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.32)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.31...v3.4.32)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.31`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.31)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.30...v3.4.31)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

###
[`v3.4.30`](https://redirect.github.com/vuejs/core/releases/tag/v3.4.30)

[Compare
Source](https://redirect.github.com/vuejs/core/compare/v3.4.29...v3.4.30)

For stable releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/main/CHANGELOG.md)
for details.
For pre-releases, please refer to
[CHANGELOG.md](https://redirect.github.com/vuejs/core/blob/minor/CHANGELOG.md)
of the `minor` branch.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/fwouts/previewjs).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTMuMiIsInVwZGF0ZWRJblZlciI6IjM4LjExNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need test The PR has missing test cases. scope: reactivity
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants