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

Treeshaking issue with conflicting enum value and type name #22416

Closed
art-boer opened this issue Jul 31, 2023 · 1 comment
Closed

Treeshaking issue with conflicting enum value and type name #22416

art-boer opened this issue Jul 31, 2023 · 1 comment

Comments

@art-boer
Copy link

Environment

Any environment with vite and latest nuxt version, see default sandbox repro

Reproduction

https://codesandbox.io/p/sandbox/damp-cache-4fvnwg?file=%2Fapp.vue%3A4%2C1

Describe the bug

Possible treeshaking issue?

If you are importing a type and use an enum value that has a conflicting name within a component, the export of the type seems to be broken.

<template>
  <div>
   {{TestEnum.**Test**}}
  </div>
</template>
import {**Test**, TestEnum} from 'test.ts';

defineProps<{
  test: Test[]
}>();

Given error:

The requested module '/_nuxt/test.ts' does not provide an export named 'Test'

Additional context

No response

Logs

No response

@ah-dc
Copy link
Contributor

ah-dc commented Aug 1, 2023

this is a bug of vue, i will create a pr to fix it later

yyx990803 added a commit to vuejs/core that referenced this issue Nov 30, 2023
sxzz pushed a commit to vuejs/vue-vapor that referenced this issue Dec 4, 2023
renovate bot added a commit to slipmatio/ui that referenced this issue Jan 1, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue))
| [`4.5.2` ->
`5.0.1`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.5.2/5.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.5.2/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.5.2/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite-plugin-dts](https://github.com/qmhc/vite-plugin-dts) |
[`3.6.4` ->
`3.7.0`](https://renovatebot.com/diffs/npm/vite-plugin-dts/3.6.4/3.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-dts/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-dts/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-dts/3.6.4/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-dts/3.6.4/3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue](https://github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://github.com/vuejs/core)) | [`3.3.13` ->
`3.4.0`](https://renovatebot.com/diffs/npm/vue/3.3.13/3.4.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.3.13/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.3.13/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://github.com/vuejs/language-tools)
([source](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`1.8.26` ->
`1.8.27`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.26/1.8.27) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.26/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.26/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitejs/vite-plugin-vue (@&#8203;vitejs/plugin-vue)</summary>

###
[`v5.0.1`](https://github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#small501-2023-12-29-small)

- fix: Revert "feat: support template AST reuse from Vue 3.4 parser"
([5d68fbd](https://github.com/vitejs/vite-plugin-vue/commit/5d68fbd)),
closes
[#&#8203;322](https://github.com/vitejs/vite-plugin-vue/issues/322)
[/github.com/vuejs/core/blob/a41c5f1f4367a9f41bcdb8c4e02f54b2378e577d/packages/compiler-sfc/src/parse.ts#L133-L139](https://github.com//github.com/vuejs/core/blob/a41c5f1f4367a9f41bcdb8c4e02f54b2378e577d/packages/compiler-sfc/src/parse.ts/issues/L133-L139)
[/github.com/vitejs/vite-plugin-vue/blob/f75de2e5284af6036efa45d5c9ec37757485e3a0/packages/plugin-vue/src/template.ts#L186-L190](https://github.com//github.com/vitejs/vite-plugin-vue/blob/f75de2e5284af6036efa45d5c9ec37757485e3a0/packages/plugin-vue/src/template.ts/issues/L186-L190)
- chore: aggregated changelog for 5.0 \[ci skip]
([2b33c32](https://github.com/vitejs/vite-plugin-vue/commit/2b33c32))

###
[`v5.0.0`](https://github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#500-2023-12-25)

-   **Breaking:** drop `reactivityTransform` support
-   **Breaking:** drop Node 14/16 support
-   **Breaking:** drop Vite 4.x support
-   Vue 3.4 template AST reuse support
- Vue 3.4 compile-time flag `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`
support
-   Added `customElement` option
-   Deprecated `defineModel` option

</details>

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

###
[`v3.7.0`](https://github.com/qmhc/vite-plugin-dts/blob/HEAD/CHANGELOG.md#370-2023-12-25)

[Compare
Source](https://github.com/qmhc/vite-plugin-dts/compare/v3.6.4...v3.7.0)

##### Bug Fixes

- incorrect alias transform if using a regexp that ends with slash
([213aa39](https://github.com/qmhc/vite-plugin-dts/commit/213aa39eb7de988afc8a188b485d2656c66a317a)),
closes
[#&#8203;290](https://github.com/qmhc/vite-plugin-dts/issues/290)

##### Features

- add emittedFiles parameter for afterBuild hook
([b06d2c4](https://github.com/qmhc/vite-plugin-dts/commit/b06d2c4ba9bf3f2a4e75f6b2f61308faedb42a84))

####
[3.6.4](https://github.com/qmhc/vite-plugin-dts/compare/v3.6.3...v3.6.4)
(2023-11-30)

##### Bug Fixes

- should match `as default` export syntax
([6e2d16d](https://github.com/qmhc/vite-plugin-dts/commit/6e2d16dadf5ef90002e9f26ece14cf4e3d587db9)),
closes
[#&#8203;285](https://github.com/qmhc/vite-plugin-dts/issues/285)
- using more noticeable diagnostics log
([4ad9a81](https://github.com/qmhc/vite-plugin-dts/commit/4ad9a810d0f42cefc489d2754638baf8cf5f9919))

####
[3.6.3](https://github.com/qmhc/vite-plugin-dts/compare/v3.6.2...v3.6.3)
(2023-10-30)

##### Bug Fixes

- make inject moduleResolution as patch for Vue
([a6f12dc](https://github.com/qmhc/vite-plugin-dts/commit/a6f12dcb52d10941c41a67ca18a3da01d57a4fda)),
closes
[#&#8203;280](https://github.com/qmhc/vite-plugin-dts/issues/280)

####
[3.6.2](https://github.com/qmhc/vite-plugin-dts/compare/v3.6.1...v3.6.2)
(2023-10-27)

##### Bug Fixes

- remove passing projectReferences to program
([fc1209c](https://github.com/qmhc/vite-plugin-dts/commit/fc1209c42b9ce2fc0ad4d8227c2cd594500e95f0)),
closes
[#&#8203;279](https://github.com/qmhc/vite-plugin-dts/issues/279)

####
[3.6.1](https://github.com/qmhc/vite-plugin-dts/compare/v3.6.0...v3.6.1)
(2023-10-24)

##### Bug Fixes

- ensure `moduleResolution` option in compilerOptions
([01528a4](https://github.com/qmhc/vite-plugin-dts/commit/01528a45050ecae81ff2b2a836839e0e3d468824)),
closes
[#&#8203;277](https://github.com/qmhc/vite-plugin-dts/issues/277)
- ensure `rollupTypes` work with `cleanVueFileName`
([261f7bc](https://github.com/qmhc/vite-plugin-dts/commit/261f7bc9579787c7a09dbeef4ef5eb60905a0b8c)),
closes
[#&#8203;276](https://github.com/qmhc/vite-plugin-dts/issues/276)

</details>

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

###
[`v3.4.0`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#340-Slam-Dunk-2023-12-29)

[Compare
Source](https://github.com/vuejs/core/compare/v3.3.13...v3.4.0)

> Read [this blog post](https://blog.vuejs.org/posts/vue-3-4) for an
overview of the release highlights.

##### Potential Actions Needed

1. To fully leverage new features in 3.4, it is recommended to also
update the following dependencies when upgrading to 3.4:

    -   Volar / vue-tsc@^1.8.27 (**required**)
-
[@&#8203;vitejs/plugin-vue](https://github.com/vitejs/plugin-vue)@&#8203;^5.0.0
(if using Vite)
    -   nuxt@^3.9.0 (if using Nuxt)
    -   vue-loader@^17.4.0 (if using webpack or vue-cli)

2. If using TSX with Vue, check actions needed in [Removed: Global JSX
Namespace](https://blog.vuejs.org/posts/vue-3-4#global-jsx-namespace).

3. Make sure you are no longer using any deprecated features (if you
are, you should have warnings in the console telling you so). They may
have been [removed in
3.4](https://blog.vuejs.org/posts/vue-3-4#other-removed-features).

##### Features

- **general:** MathML support
([#&#8203;7836](https://github.com/vuejs/core/issues/7836))
([d42b6ba](https://github.com/vuejs/core/commit/d42b6ba3f530746eb1221eb7a4be0f44eb56f7d3)),
closes [#&#8203;7820](https://github.com/vuejs/core/issues/7820)
- **reactivity:** more efficient reactivity system
([#&#8203;5912](https://github.com/vuejs/core/issues/5912))
([16e06ca](https://github.com/vuejs/core/commit/16e06ca08f5a1e2af3fc7fb35de153dbe0c3087d)),
closes [#&#8203;311](https://github.com/vuejs/core/issues/311)
[#&#8203;1811](https://github.com/vuejs/core/issues/1811)
[#&#8203;6018](https://github.com/vuejs/core/issues/6018)
[#&#8203;7160](https://github.com/vuejs/core/issues/7160)
[#&#8203;8714](https://github.com/vuejs/core/issues/8714)
[#&#8203;9149](https://github.com/vuejs/core/issues/9149)
[#&#8203;9419](https://github.com/vuejs/core/issues/9419)
[#&#8203;9464](https://github.com/vuejs/core/issues/9464)
- **reactivity:** expose last result for computed getter
([#&#8203;9497](https://github.com/vuejs/core/issues/9497))
([48b47a1](https://github.com/vuejs/core/commit/48b47a1ab63577e2dbd91947eea544e3ef185b85))
- **runtime-core / dx:** link errors to docs in prod build
([#&#8203;9165](https://github.com/vuejs/core/issues/9165))
([9f8ba98](https://github.com/vuejs/core/commit/9f8ba9821fe166f77e63fa940e9e7e13ec3344fa))
- **runtime-core:** add `once` option to watch
([#&#8203;9034](https://github.com/vuejs/core/issues/9034))
([a645e7a](https://github.com/vuejs/core/commit/a645e7aa51006516ba668b3a4365d296eb92ee7d))
- **runtime-core:** provide full props to props validator functions
([#&#8203;3258](https://github.com/vuejs/core/issues/3258))
([8e27692](https://github.com/vuejs/core/commit/8e27692029a4645cd54287f776c0420f2b82740b))
- **compiler-core:** export error message
([#&#8203;8729](https://github.com/vuejs/core/issues/8729))
([f7e80ee](https://github.com/vuejs/core/commit/f7e80ee4a065a9eaba98720abf415d9e87756cbd))
- **compiler-core:** support specifying root namespace when parsing
([40f72d5](https://github.com/vuejs/core/commit/40f72d5e50b389cb11b7ca13461aa2a75ddacdb4))
- **compiler-core:** support v-bind shorthand for key and value with the
same name ([#&#8203;9451](https://github.com/vuejs/core/issues/9451))
([26399aa](https://github.com/vuejs/core/commit/26399aa6fac1596b294ffeba06bb498d86f5508c))
- **compiler-core:** improve parsing tolerance for language-tools
([41ff68e](https://github.com/vuejs/core/commit/41ff68ea579d933333392146625560359acb728a))
- **compiler-core:** support accessing Error as global in template
expressions
([#&#8203;7018](https://github.com/vuejs/core/issues/7018))
([bcca475](https://github.com/vuejs/core/commit/bcca475dbc58d76434cd8120b94929758cee2825))
- **compiler-core:** lift vnode hooks deprecation warning to error
([8abc754](https://github.com/vuejs/core/commit/8abc754d5d86d9dfd5a7927b846f1a743f352364))
- **compiler-core:** export runtime error strings
([#&#8203;9301](https://github.com/vuejs/core/issues/9301))
([feb2f2e](https://github.com/vuejs/core/commit/feb2f2edce2d91218a5e9a52c81e322e4033296b))
- **compiler-core:** add current filename to TransformContext
([#&#8203;8950](https://github.com/vuejs/core/issues/8950))
([638f1ab](https://github.com/vuejs/core/commit/638f1abbb632000553e2b7d75e87c95d8ca192d6))
- **compiler-sfc:** analyze import usage in template via AST
([#&#8203;9729](https://github.com/vuejs/core/issues/9729))
([e8bbc94](https://github.com/vuejs/core/commit/e8bbc946cba6bf74c9da56f938b67d2a04c340ba)),
closes [#&#8203;8897](https://github.com/vuejs/core/issues/8897)
[nuxt/nuxt#22416](https://github.com/nuxt/nuxt/issues/22416)
- **compiler-sfc:** expose resolve type-based props and emits
([#&#8203;8874](https://github.com/vuejs/core/issues/8874))
([9e77580](https://github.com/vuejs/core/commit/9e77580c0c2f0d977bd0031a1d43cc334769d433))
- **compiler-sfc:** bump postcss-modules to v6
([2a507e3](https://github.com/vuejs/core/commit/2a507e32f0e2ef73813705a568b8633f68bda7a9))
- **compiler-sfc:** promote defineModel stable
([#&#8203;9598](https://github.com/vuejs/core/issues/9598))
([ef688ba](https://github.com/vuejs/core/commit/ef688ba92bfccbc8b7ea3997eb297665d13e5249))
- **compiler-sfc:** support import attributes and `using` syntax
([#&#8203;8786](https://github.com/vuejs/core/issues/8786))
([5b2bd1d](https://github.com/vuejs/core/commit/5b2bd1df78e8ff524c3a184adaa284681aba6574))
- **compiler-sfc:** `defineModel` support local mutation by default,
remove local option
([f74785b](https://github.com/vuejs/core/commit/f74785bc4ad351102dde17fdfd2c7276b823111f)),
closes
[/github.com/vuejs/rfcs/discussions/503#discussioncomment-7566278](https://github.com//github.com/vuejs/rfcs/discussions/503/issues/discussioncomment-7566278)
- **ssr:** add `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` feature flag
([#&#8203;9550](https://github.com/vuejs/core/issues/9550))
([bc7698d](https://github.com/vuejs/core/commit/bc7698dbfed9b5327a93565f9df336ae5a94d605))
- **ssr:** improve ssr hydration mismatch checks
([#&#8203;5953](https://github.com/vuejs/core/issues/5953))
([2ffc1e8](https://github.com/vuejs/core/commit/2ffc1e8cfdc6ec9c45c4a4dd8e3081b2aa138f1e)),
closes [#&#8203;5063](https://github.com/vuejs/core/issues/5063)
- **types:** use enum to replace const enum
([#&#8203;9261](https://github.com/vuejs/core/issues/9261))
([fff7b86](https://github.com/vuejs/core/commit/fff7b864f4292d0430ba2bda7098ad43876b0210)),
closes [#&#8203;1228](https://github.com/vuejs/core/issues/1228)
- **types:** add emits and slots type to `FunctionalComponent`
([#&#8203;8644](https://github.com/vuejs/core/issues/8644))
([927ab17](https://github.com/vuejs/core/commit/927ab17cfc645e82d061fdf227c34689491268e1))
- **types:** export `AriaAttributes` type
([#&#8203;8909](https://github.com/vuejs/core/issues/8909))
([fd0b6ba](https://github.com/vuejs/core/commit/fd0b6ba01660499fa07b0cf360eefaac8cca8287))
- **types:** export `ObjectPlugin` and `FunctionPlugin` types
([#&#8203;8946](https://github.com/vuejs/core/issues/8946))
([fa4969e](https://github.com/vuejs/core/commit/fa4969e7a3aefa6863203f9294fc5e769ddf6d8f)),
closes [#&#8203;8577](https://github.com/vuejs/core/issues/8577)
- **types:** expose `DefineProps` type
([096ba81](https://github.com/vuejs/core/commit/096ba81817b7da15f61bc55fc1a93f72ac9586e0))
- **types:** expose `PublicProps` type
([#&#8203;2403](https://github.com/vuejs/core/issues/2403))
([44135dc](https://github.com/vuejs/core/commit/44135dc95fb8fea26b84d1433839d28b8c21f708))
- **types:** improve event type inference when using `h` with native
elements ([#&#8203;9756](https://github.com/vuejs/core/issues/9756))
([a625376](https://github.com/vuejs/core/commit/a625376ac8901eea81bf3c66cb531f2157f073ef))
- **types:** provide `ComponentInstance` type
([#&#8203;5408](https://github.com/vuejs/core/issues/5408))
([bfb8565](https://github.com/vuejs/core/commit/bfb856565d3105db4b18991ae9e404e7cc989b25))
- **types:** support passing generics when registering global directives
([#&#8203;9660](https://github.com/vuejs/core/issues/9660))
([a41409e](https://github.com/vuejs/core/commit/a41409ed02a8c7220e637f56caf6813edeb077f8))

##### Performance Improvements

- **compiler-sfc:** avoid sfc source map unnecessary serialization and
parsing
([f15d2f6](https://github.com/vuejs/core/commit/f15d2f6cf69c0c39f8dfb5c33122790c68bf92e2))
- **compiler-sfc:** remove magic-string trim on script
([e8e3ec6](https://github.com/vuejs/core/commit/e8e3ec6ca7392e43975c75b56eaaa711d5ea9410))
- **compiler-sfc:** use faster source map addMapping
([50cde7c](https://github.com/vuejs/core/commit/50cde7cfbcc49022ba88f5f69fa9b930b483c282))
- **compiler-core:** optimize away isBuiltInType
([66c0ed0](https://github.com/vuejs/core/commit/66c0ed0a3c1c6f37dafc6b1c52b75c6bf60e3136))
- **compiler-core:** optimize position cloning
([2073236](https://github.com/vuejs/core/commit/20732366b9b3530d33b842cf1fc985919afb9317))
- **codegen:** optimize line / column calculation during codegen
([3be53d9](https://github.com/vuejs/core/commit/3be53d9b974dae1a10eb795cade71ae765e17574))
- **codegen:** optimize source map generation
([c11002f](https://github.com/vuejs/core/commit/c11002f16afd243a2b15b546816e73882eea9e4d))
- **shared:** optimize makeMap
([ae6fba9](https://github.com/vuejs/core/commit/ae6fba94954bac6430902f77b0d1113a98a75b18))

##### BREAKING CHANGES

##### Global JSX Registration Removed

Starting in 3.4, Vue no longer registers the global `JSX` namespace by
default. This is necessary to avoid global namespace collision with
React so that TSX of both libs can co-exist in the same project. This
should not affect SFC-only users with latest version of Volar.

If you are using TSX, there are two options:

1. Explicitly set
[jsxImportSource](https://www.typescriptlang.org/tsconfig#jsxImportSource)
to `'vue'` in `tsconfig.json` before upgrading to 3.4. You can also
opt-in per file by adding a `/* @&#8203;jsxImportSource vue */` comment
at the top of the file.

2. If you have code that depends on the presence of the global `JSX`
namespace, e.g. usage of types like `JSX.Element` etc., you can retain
the exact pre-3.4 global behavior by explicitly referencing `vue/jsx`,
which registers the global `JSX` namespace.

Note that this is a type-only breaking change in a minor release, which
adheres to our [release
policy](https://vuejs.org/about/releases.html#semantic-versioning-edge-cases).

##### Deprecated Features Removed

- [Reactivity
Transform](https://vuejs.org/guide/extras/reactivity-transform.html) was
marked deprecated in 3.3 and is now removed in 3.4. This change does not
require a major due to the feature being experimental. Users who wish to
continue using the feature can do so via the [Vue Macros
plugin](https://vue-macros.dev/features/reactivity-transform.html).
- `app.config.unwrapInjectedRef` has been removed. It was deprecated and
enabled by default in 3.3. In 3.4 it is no longer possible to disable
this behavior.
- `@vnodeXXX` event listeners in templates are now a compiler error
instead of a deprecation warning. Use `@vue:XXX` listeners instead.
- `v-is` directive has been removed. It was deprecated in 3.3. Use the
[`is` attribute with `vue:`
prefix](https://vuejs.org/api/built-in-special-attributes.html#is)
instead.

</details>

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

###
[`v1.8.27`](https://github.com/vuejs/language-tools/compare/5849cada166bbd3faa03f21efd4d3cc2a2836d11...v1.8.27)

[Compare
Source](https://github.com/vuejs/language-tools/compare/5849cada166bbd3faa03f21efd4d3cc2a2836d11...v1.8.27)

</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 becomes conflicted, or you tick the
rebase/retry checkbox.

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

---

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

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slipmatio/ui).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to slipmatio/logger that referenced this issue Jan 1, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.10.5` ->
`20.10.6`](https://renovatebot.com/diffs/npm/@types%2fnode/20.10.5/20.10.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.10.5/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.10.5/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue))
| [`4.5.2` ->
`5.0.1`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.5.2/5.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.5.2/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.5.2/5.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue](https://github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://github.com/vuejs/core)) | [`3.3.13` ->
`3.4.1`](https://renovatebot.com/diffs/npm/vue/3.3.13/3.4.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.3.13/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.3.13/3.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://github.com/vuejs/language-tools)
([source](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`1.8.26` ->
`1.8.27`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.26/1.8.27) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.26/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.26/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitejs/vite-plugin-vue (@&#8203;vitejs/plugin-vue)</summary>

###
[`v5.0.1`](https://github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#small501-2023-12-29-small)

- fix: Revert "feat: support template AST reuse from Vue 3.4 parser"
([5d68fbd](https://github.com/vitejs/vite-plugin-vue/commit/5d68fbd)),
closes
[#&#8203;322](https://github.com/vitejs/vite-plugin-vue/issues/322)
[/github.com/vuejs/core/blob/a41c5f1f4367a9f41bcdb8c4e02f54b2378e577d/packages/compiler-sfc/src/parse.ts#L133-L139](https://github.com//github.com/vuejs/core/blob/a41c5f1f4367a9f41bcdb8c4e02f54b2378e577d/packages/compiler-sfc/src/parse.ts/issues/L133-L139)
[/github.com/vitejs/vite-plugin-vue/blob/f75de2e5284af6036efa45d5c9ec37757485e3a0/packages/plugin-vue/src/template.ts#L186-L190](https://github.com//github.com/vitejs/vite-plugin-vue/blob/f75de2e5284af6036efa45d5c9ec37757485e3a0/packages/plugin-vue/src/template.ts/issues/L186-L190)
- chore: aggregated changelog for 5.0 \[ci skip]
([2b33c32](https://github.com/vitejs/vite-plugin-vue/commit/2b33c32))

###
[`v5.0.0`](https://github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#500-2023-12-25)

-   **Breaking:** drop `reactivityTransform` support
-   **Breaking:** drop Node 14/16 support
-   **Breaking:** drop Vite 4.x support
-   Vue 3.4 template AST reuse support
- Vue 3.4 compile-time flag `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`
support
-   Added `customElement` option
-   Deprecated `defineModel` option

</details>

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

###
[`v3.4.1`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#341-2023-12-30)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.0...v3.4.1)

##### Bug Fixes

- **compat:** correct enum value for COMPILER_FILTERS feature
([#&#8203;9875](https://github.com/vuejs/core/issues/9875))
([77d33e2](https://github.com/vuejs/core/commit/77d33e263cf19983caf4e5c53a0eb0bee374843c))
- **defineModel:** always default modifiers to empty object
([9bc3c7e](https://github.com/vuejs/core/commit/9bc3c7e29cf15f5ca96703542d10cfd786a3fc55)),
closes [#&#8203;9945](https://github.com/vuejs/core/issues/9945)
- **defineModel:** support local mutation when only prop but no listener
is passed
([97ce041](https://github.com/vuejs/core/commit/97ce041910b6ca4bef10f939493d6b5a06ea5b07))
- **types:** fix defineModel watch type error
([#&#8203;9942](https://github.com/vuejs/core/issues/9942))
([4af8583](https://github.com/vuejs/core/commit/4af85835f7e593a7dffa7dc7e99f14877eb70fd1)),
closes [#&#8203;9939](https://github.com/vuejs/core/issues/9939)

##### Features

- **compiler-sfc:** support passing template parsing options when
parsing sfc
([6fab855](https://github.com/vuejs/core/commit/6fab8551e4aeef4610987640de8b435b1ae321bb))
(necessary to fix
[https://github.com/vitejs/vite-plugin-vue/issues/322](https://github.com/vitejs/vite-plugin-vue/issues/322))

###
[`v3.4.0`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#340-Slam-Dunk-2023-12-29)

[Compare
Source](https://github.com/vuejs/core/compare/v3.3.13...v3.4.0)

> Read [this blog post](https://blog.vuejs.org/posts/vue-3-4) for an
overview of the release highlights.

##### Potential Actions Needed

1. To fully leverage new features in 3.4, it is recommended to also
update the following dependencies when upgrading to 3.4:

    -   Volar / vue-tsc@^1.8.27 (**required**)
-
[@&#8203;vitejs/plugin-vue](https://github.com/vitejs/plugin-vue)@&#8203;^5.0.0
(if using Vite)
    -   nuxt@^3.9.0 (if using Nuxt)
    -   vue-loader@^17.4.0 (if using webpack or vue-cli)

2. If using TSX with Vue, check actions needed in [Removed: Global JSX
Namespace](https://blog.vuejs.org/posts/vue-3-4#global-jsx-namespace).

3. Make sure you are no longer using any deprecated features (if you
are, you should have warnings in the console telling you so). They may
have been [removed in
3.4](https://blog.vuejs.org/posts/vue-3-4#other-removed-features).

##### Features

- **general:** MathML support
([#&#8203;7836](https://github.com/vuejs/core/issues/7836))
([d42b6ba](https://github.com/vuejs/core/commit/d42b6ba3f530746eb1221eb7a4be0f44eb56f7d3)),
closes [#&#8203;7820](https://github.com/vuejs/core/issues/7820)
- **reactivity:** more efficient reactivity system
([#&#8203;5912](https://github.com/vuejs/core/issues/5912))
([16e06ca](https://github.com/vuejs/core/commit/16e06ca08f5a1e2af3fc7fb35de153dbe0c3087d)),
closes [#&#8203;311](https://github.com/vuejs/core/issues/311)
[#&#8203;1811](https://github.com/vuejs/core/issues/1811)
[#&#8203;6018](https://github.com/vuejs/core/issues/6018)
[#&#8203;7160](https://github.com/vuejs/core/issues/7160)
[#&#8203;8714](https://github.com/vuejs/core/issues/8714)
[#&#8203;9149](https://github.com/vuejs/core/issues/9149)
[#&#8203;9419](https://github.com/vuejs/core/issues/9419)
[#&#8203;9464](https://github.com/vuejs/core/issues/9464)
- **reactivity:** expose last result for computed getter
([#&#8203;9497](https://github.com/vuejs/core/issues/9497))
([48b47a1](https://github.com/vuejs/core/commit/48b47a1ab63577e2dbd91947eea544e3ef185b85))
- **runtime-core / dx:** link errors to docs in prod build
([#&#8203;9165](https://github.com/vuejs/core/issues/9165))
([9f8ba98](https://github.com/vuejs/core/commit/9f8ba9821fe166f77e63fa940e9e7e13ec3344fa))
- **runtime-core:** add `once` option to watch
([#&#8203;9034](https://github.com/vuejs/core/issues/9034))
([a645e7a](https://github.com/vuejs/core/commit/a645e7aa51006516ba668b3a4365d296eb92ee7d))
- **runtime-core:** provide full props to props validator functions
([#&#8203;3258](https://github.com/vuejs/core/issues/3258))
([8e27692](https://github.com/vuejs/core/commit/8e27692029a4645cd54287f776c0420f2b82740b))
- **compiler-core:** export error message
([#&#8203;8729](https://github.com/vuejs/core/issues/8729))
([f7e80ee](https://github.com/vuejs/core/commit/f7e80ee4a065a9eaba98720abf415d9e87756cbd))
- **compiler-core:** support specifying root namespace when parsing
([40f72d5](https://github.com/vuejs/core/commit/40f72d5e50b389cb11b7ca13461aa2a75ddacdb4))
- **compiler-core:** support v-bind shorthand for key and value with the
same name ([#&#8203;9451](https://github.com/vuejs/core/issues/9451))
([26399aa](https://github.com/vuejs/core/commit/26399aa6fac1596b294ffeba06bb498d86f5508c))
- **compiler-core:** improve parsing tolerance for language-tools
([41ff68e](https://github.com/vuejs/core/commit/41ff68ea579d933333392146625560359acb728a))
- **compiler-core:** support accessing Error as global in template
expressions
([#&#8203;7018](https://github.com/vuejs/core/issues/7018))
([bcca475](https://github.com/vuejs/core/commit/bcca475dbc58d76434cd8120b94929758cee2825))
- **compiler-core:** lift vnode hooks deprecation warning to error
([8abc754](https://github.com/vuejs/core/commit/8abc754d5d86d9dfd5a7927b846f1a743f352364))
- **compiler-core:** export runtime error strings
([#&#8203;9301](https://github.com/vuejs/core/issues/9301))
([feb2f2e](https://github.com/vuejs/core/commit/feb2f2edce2d91218a5e9a52c81e322e4033296b))
- **compiler-core:** add current filename to TransformContext
([#&#8203;8950](https://github.com/vuejs/core/issues/8950))
([638f1ab](https://github.com/vuejs/core/commit/638f1abbb632000553e2b7d75e87c95d8ca192d6))
- **compiler-sfc:** analyze import usage in template via AST
([#&#8203;9729](https://github.com/vuejs/core/issues/9729))
([e8bbc94](https://github.com/vuejs/core/commit/e8bbc946cba6bf74c9da56f938b67d2a04c340ba)),
closes [#&#8203;8897](https://github.com/vuejs/core/issues/8897)
[nuxt/nuxt#22416](https://github.com/nuxt/nuxt/issues/22416)
- **compiler-sfc:** expose resolve type-based props and emits
([#&#8203;8874](https://github.com/vuejs/core/issues/8874))
([9e77580](https://github.com/vuejs/core/commit/9e77580c0c2f0d977bd0031a1d43cc334769d433))
- **compiler-sfc:** bump postcss-modules to v6
([2a507e3](https://github.com/vuejs/core/commit/2a507e32f0e2ef73813705a568b8633f68bda7a9))
- **compiler-sfc:** promote defineModel stable
([#&#8203;9598](https://github.com/vuejs/core/issues/9598))
([ef688ba](https://github.com/vuejs/core/commit/ef688ba92bfccbc8b7ea3997eb297665d13e5249))
- **compiler-sfc:** support import attributes and `using` syntax
([#&#8203;8786](https://github.com/vuejs/core/issues/8786))
([5b2bd1d](https://github.com/vuejs/core/commit/5b2bd1df78e8ff524c3a184adaa284681aba6574))
- **compiler-sfc:** `defineModel` support local mutation by default,
remove local option
([f74785b](https://github.com/vuejs/core/commit/f74785bc4ad351102dde17fdfd2c7276b823111f)),
closes
[/github.com/vuejs/rfcs/discussions/503#discussioncomment-7566278](https://github.com//github.com/vuejs/rfcs/discussions/503/issues/discussioncomment-7566278)
- **ssr:** add `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` feature flag
([#&#8203;9550](https://github.com/vuejs/core/issues/9550))
([bc7698d](https://github.com/vuejs/core/commit/bc7698dbfed9b5327a93565f9df336ae5a94d605))
- **ssr:** improve ssr hydration mismatch checks
([#&#8203;5953](https://github.com/vuejs/core/issues/5953))
([2ffc1e8](https://github.com/vuejs/core/commit/2ffc1e8cfdc6ec9c45c4a4dd8e3081b2aa138f1e)),
closes [#&#8203;5063](https://github.com/vuejs/core/issues/5063)
- **types:** use enum to replace const enum
([#&#8203;9261](https://github.com/vuejs/core/issues/9261))
([fff7b86](https://github.com/vuejs/core/commit/fff7b864f4292d0430ba2bda7098ad43876b0210)),
closes [#&#8203;1228](https://github.com/vuejs/core/issues/1228)
- **types:** add emits and slots type to `FunctionalComponent`
([#&#8203;8644](https://github.com/vuejs/core/issues/8644))
([927ab17](https://github.com/vuejs/core/commit/927ab17cfc645e82d061fdf227c34689491268e1))
- **types:** export `AriaAttributes` type
([#&#8203;8909](https://github.com/vuejs/core/issues/8909))
([fd0b6ba](https://github.com/vuejs/core/commit/fd0b6ba01660499fa07b0cf360eefaac8cca8287))
- **types:** export `ObjectPlugin` and `FunctionPlugin` types
([#&#8203;8946](https://github.com/vuejs/core/issues/8946))
([fa4969e](https://github.com/vuejs/core/commit/fa4969e7a3aefa6863203f9294fc5e769ddf6d8f)),
closes [#&#8203;8577](https://github.com/vuejs/core/issues/8577)
- **types:** expose `DefineProps` type
([096ba81](https://github.com/vuejs/core/commit/096ba81817b7da15f61bc55fc1a93f72ac9586e0))
- **types:** expose `PublicProps` type
([#&#8203;2403](https://github.com/vuejs/core/issues/2403))
([44135dc](https://github.com/vuejs/core/commit/44135dc95fb8fea26b84d1433839d28b8c21f708))
- **types:** improve event type inference when using `h` with native
elements ([#&#8203;9756](https://github.com/vuejs/core/issues/9756))
([a625376](https://github.com/vuejs/core/commit/a625376ac8901eea81bf3c66cb531f2157f073ef))
- **types:** provide `ComponentInstance` type
([#&#8203;5408](https://github.com/vuejs/core/issues/5408))
([bfb8565](https://github.com/vuejs/core/commit/bfb856565d3105db4b18991ae9e404e7cc989b25))
- **types:** support passing generics when registering global directives
([#&#8203;9660](https://github.com/vuejs/core/issues/9660))
([a41409e](https://github.com/vuejs/core/commit/a41409ed02a8c7220e637f56caf6813edeb077f8))

##### Performance Improvements

- **compiler-sfc:** avoid sfc source map unnecessary serialization and
parsing
([f15d2f6](https://github.com/vuejs/core/commit/f15d2f6cf69c0c39f8dfb5c33122790c68bf92e2))
- **compiler-sfc:** remove magic-string trim on script
([e8e3ec6](https://github.com/vuejs/core/commit/e8e3ec6ca7392e43975c75b56eaaa711d5ea9410))
- **compiler-sfc:** use faster source map addMapping
([50cde7c](https://github.com/vuejs/core/commit/50cde7cfbcc49022ba88f5f69fa9b930b483c282))
- **compiler-core:** optimize away isBuiltInType
([66c0ed0](https://github.com/vuejs/core/commit/66c0ed0a3c1c6f37dafc6b1c52b75c6bf60e3136))
- **compiler-core:** optimize position cloning
([2073236](https://github.com/vuejs/core/commit/20732366b9b3530d33b842cf1fc985919afb9317))
- **codegen:** optimize line / column calculation during codegen
([3be53d9](https://github.com/vuejs/core/commit/3be53d9b974dae1a10eb795cade71ae765e17574))
- **codegen:** optimize source map generation
([c11002f](https://github.com/vuejs/core/commit/c11002f16afd243a2b15b546816e73882eea9e4d))
- **shared:** optimize makeMap
([ae6fba9](https://github.com/vuejs/core/commit/ae6fba94954bac6430902f77b0d1113a98a75b18))

##### BREAKING CHANGES

##### Global JSX Registration Removed

Starting in 3.4, Vue no longer registers the global `JSX` namespace by
default. This is necessary to avoid global namespace collision with
React so that TSX of both libs can co-exist in the same project. This
should not affect SFC-only users with latest version of Volar.

If you are using TSX, there are two options:

1. Explicitly set
[jsxImportSource](https://www.typescriptlang.org/tsconfig#jsxImportSource)
to `'vue'` in `tsconfig.json` before upgrading to 3.4. You can also
opt-in per file by adding a `/* @&#8203;jsxImportSource vue */` comment
at the top of the file.

2. If you have code that depends on the presence of the global `JSX`
namespace, e.g. usage of types like `JSX.Element` etc., you can retain
the exact pre-3.4 global behavior by explicitly referencing `vue/jsx`,
which registers the global `JSX` namespace.

Note that this is a type-only breaking change in a minor release, which
adheres to our [release
policy](https://vuejs.org/about/releases.html#semantic-versioning-edge-cases).

##### Deprecated Features Removed

- [Reactivity
Transform](https://vuejs.org/guide/extras/reactivity-transform.html) was
marked deprecated in 3.3 and is now removed in 3.4. This change does not
require a major due to the feature being experimental. Users who wish to
continue using the feature can do so via the [Vue Macros
plugin](https://vue-macros.dev/features/reactivity-transform.html).
- `app.config.unwrapInjectedRef` has been removed. It was deprecated and
enabled by default in 3.3. In 3.4 it is no longer possible to disable
this behavior.
- `@vnodeXXX` event listeners in templates are now a compiler error
instead of a deprecation warning. Use `@vue:XXX` listeners instead.
- `v-is` directive has been removed. It was deprecated in 3.3. Use the
[`is` attribute with `vue:`
prefix](https://vuejs.org/api/built-in-special-attributes.html#is)
instead.

</details>

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

###
[`v1.8.27`](https://github.com/vuejs/language-tools/compare/5849cada166bbd3faa03f21efd4d3cc2a2836d11...v1.8.27)

[Compare
Source](https://github.com/vuejs/language-tools/compare/5849cada166bbd3faa03f21efd4d3cc2a2836d11...v1.8.27)

</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 becomes conflicted, or you tick the
rebase/retry checkbox.

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

---

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

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slipmatio/logger).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to slipmatio/toolbelt that referenced this issue Jan 1, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.10.5` ->
`20.10.6`](https://renovatebot.com/diffs/npm/@types%2fnode/20.10.5/20.10.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.10.5/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.10.5/20.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue))
| [`4.5.2` ->
`5.0.2`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.5.2/5.0.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/5.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/5.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.5.2/5.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.5.2/5.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue](https://github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://github.com/vuejs/core)) | [`3.3.13` ->
`3.4.3`](https://renovatebot.com/diffs/npm/vue/3.3.13/3.4.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.3.13/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.3.13/3.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://github.com/vuejs/language-tools)
([source](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`1.8.26` ->
`1.8.27`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.26/1.8.27) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.26/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.26/1.8.27?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitejs/vite-plugin-vue (@&#8203;vitejs/plugin-vue)</summary>

###
[`v5.0.2`](https://github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#small502-2023-12-30-small)

- fix: ensure consistent user template options when reusing AST
([bc0ad64](https://github.com/vitejs/vite-plugin-vue/commit/bc0ad64)),
closes
[#&#8203;322](https://github.com/vitejs/vite-plugin-vue/issues/322)
- fix: only enable ast reuse for vue 3.4.3+
([4a53b6f](https://github.com/vitejs/vite-plugin-vue/commit/4a53b6f))
- chore: bump vue to 3.4.2
([97002e1](https://github.com/vitejs/vite-plugin-vue/commit/97002e1))

###
[`v5.0.1`](https://github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#small501-2023-12-29-small)

- fix: Revert "feat: support template AST reuse from Vue 3.4 parser"
([5d68fbd](https://github.com/vitejs/vite-plugin-vue/commit/5d68fbd)),
closes
[#&#8203;322](https://github.com/vitejs/vite-plugin-vue/issues/322)
[/github.com/vuejs/core/blob/a41c5f1f4367a9f41bcdb8c4e02f54b2378e577d/packages/compiler-sfc/src/parse.ts#L133-L139](https://github.com//github.com/vuejs/core/blob/a41c5f1f4367a9f41bcdb8c4e02f54b2378e577d/packages/compiler-sfc/src/parse.ts/issues/L133-L139)
[/github.com/vitejs/vite-plugin-vue/blob/f75de2e5284af6036efa45d5c9ec37757485e3a0/packages/plugin-vue/src/template.ts#L186-L190](https://github.com//github.com/vitejs/vite-plugin-vue/blob/f75de2e5284af6036efa45d5c9ec37757485e3a0/packages/plugin-vue/src/template.ts/issues/L186-L190)
- chore: aggregated changelog for 5.0 \[ci skip]
([2b33c32](https://github.com/vitejs/vite-plugin-vue/commit/2b33c32))

###
[`v5.0.0`](https://github.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#500-2023-12-25)

-   **Breaking:** drop `reactivityTransform` support
-   **Breaking:** drop Node 14/16 support
-   **Breaking:** drop Vite 4.x support
-   Vue 3.4 template AST reuse support
- Vue 3.4 compile-time flag `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`
support
-   Added `customElement` option
-   Deprecated `defineModel` option

</details>

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

###
[`v3.4.3`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#343-2023-12-30)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.2...v3.4.3)

##### Bug Fixes

- **compiler-sfc:** respect sfc parse options in cache key
([b8d58ec](https://github.com/vuejs/core/commit/b8d58ec4f42cbeb9443bf06138add46158db9af0))

###
[`v3.4.2`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#342-2023-12-30)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.1...v3.4.2)

##### Bug Fixes

- **compiler-sfc:** fix dev regression for dot / namespace component
usage
([dce99c1](https://github.com/vuejs/core/commit/dce99c12df981ca45a4d848c37ba8b16496025f0)),
closes [#&#8203;9947](https://github.com/vuejs/core/issues/9947)
- **runtime-core:** support deep: false when watch reactive
([#&#8203;9928](https://github.com/vuejs/core/issues/9928))
([4f703d1](https://github.com/vuejs/core/commit/4f703d120d76d711084346f73ea295c73e6ef6b6)),
closes [#&#8203;9916](https://github.com/vuejs/core/issues/9916)
- **ssr:** fix hydration error for slot outlet inside transition-group
([#&#8203;9937](https://github.com/vuejs/core/issues/9937))
([6cb00ed](https://github.com/vuejs/core/commit/6cb00ed0f9b64428ec18fada0f68467d6a813fde)),
closes [#&#8203;9933](https://github.com/vuejs/core/issues/9933)

###
[`v3.4.1`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#341-2023-12-30)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.0...v3.4.1)

##### Bug Fixes

- **compat:** correct enum value for COMPILER_FILTERS feature
([#&#8203;9875](https://github.com/vuejs/core/issues/9875))
([77d33e2](https://github.com/vuejs/core/commit/77d33e263cf19983caf4e5c53a0eb0bee374843c))
- **defineModel:** always default modifiers to empty object
([9bc3c7e](https://github.com/vuejs/core/commit/9bc3c7e29cf15f5ca96703542d10cfd786a3fc55)),
closes [#&#8203;9945](https://github.com/vuejs/core/issues/9945)
- **defineModel:** support local mutation when only prop but no listener
is passed
([97ce041](https://github.com/vuejs/core/commit/97ce041910b6ca4bef10f939493d6b5a06ea5b07))
- **types:** fix defineModel watch type error
([#&#8203;9942](https://github.com/vuejs/core/issues/9942))
([4af8583](https://github.com/vuejs/core/commit/4af85835f7e593a7dffa7dc7e99f14877eb70fd1)),
closes [#&#8203;9939](https://github.com/vuejs/core/issues/9939)

##### Features

- **compiler-sfc:** support passing template parsing options when
parsing sfc
([6fab855](https://github.com/vuejs/core/commit/6fab8551e4aeef4610987640de8b435b1ae321bb))
(necessary to fix
[https://github.com/vitejs/vite-plugin-vue/issues/322](https://github.com/vitejs/vite-plugin-vue/issues/322))

###
[`v3.4.0`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#340-Slam-Dunk-2023-12-29)

[Compare
Source](https://github.com/vuejs/core/compare/v3.3.13...v3.4.0)

> Read [this blog post](https://blog.vuejs.org/posts/vue-3-4) for an
overview of the release highlights.

##### Potential Actions Needed

1. To fully leverage new features in 3.4, it is recommended to also
update the following dependencies when upgrading to 3.4:

    -   Volar / vue-tsc@^1.8.27 (**required**)
-
[@&#8203;vitejs/plugin-vue](https://github.com/vitejs/plugin-vue)@&#8203;^5.0.0
(if using Vite)
    -   nuxt@^3.9.0 (if using Nuxt)
    -   vue-loader@^17.4.0 (if using webpack or vue-cli)

2. If using TSX with Vue, check actions needed in [Removed: Global JSX
Namespace](https://blog.vuejs.org/posts/vue-3-4#global-jsx-namespace).

3. Make sure you are no longer using any deprecated features (if you
are, you should have warnings in the console telling you so). They may
have been [removed in
3.4](https://blog.vuejs.org/posts/vue-3-4#other-removed-features).

##### Features

- **general:** MathML support
([#&#8203;7836](https://github.com/vuejs/core/issues/7836))
([d42b6ba](https://github.com/vuejs/core/commit/d42b6ba3f530746eb1221eb7a4be0f44eb56f7d3)),
closes [#&#8203;7820](https://github.com/vuejs/core/issues/7820)
- **reactivity:** more efficient reactivity system
([#&#8203;5912](https://github.com/vuejs/core/issues/5912))
([16e06ca](https://github.com/vuejs/core/commit/16e06ca08f5a1e2af3fc7fb35de153dbe0c3087d)),
closes [#&#8203;311](https://github.com/vuejs/core/issues/311)
[#&#8203;1811](https://github.com/vuejs/core/issues/1811)
[#&#8203;6018](https://github.com/vuejs/core/issues/6018)
[#&#8203;7160](https://github.com/vuejs/core/issues/7160)
[#&#8203;8714](https://github.com/vuejs/core/issues/8714)
[#&#8203;9149](https://github.com/vuejs/core/issues/9149)
[#&#8203;9419](https://github.com/vuejs/core/issues/9419)
[#&#8203;9464](https://github.com/vuejs/core/issues/9464)
- **reactivity:** expose last result for computed getter
([#&#8203;9497](https://github.com/vuejs/core/issues/9497))
([48b47a1](https://github.com/vuejs/core/commit/48b47a1ab63577e2dbd91947eea544e3ef185b85))
- **runtime-core / dx:** link errors to docs in prod build
([#&#8203;9165](https://github.com/vuejs/core/issues/9165))
([9f8ba98](https://github.com/vuejs/core/commit/9f8ba9821fe166f77e63fa940e9e7e13ec3344fa))
- **runtime-core:** add `once` option to watch
([#&#8203;9034](https://github.com/vuejs/core/issues/9034))
([a645e7a](https://github.com/vuejs/core/commit/a645e7aa51006516ba668b3a4365d296eb92ee7d))
- **runtime-core:** provide full props to props validator functions
([#&#8203;3258](https://github.com/vuejs/core/issues/3258))
([8e27692](https://github.com/vuejs/core/commit/8e27692029a4645cd54287f776c0420f2b82740b))
- **compiler-core:** export error message
([#&#8203;8729](https://github.com/vuejs/core/issues/8729))
([f7e80ee](https://github.com/vuejs/core/commit/f7e80ee4a065a9eaba98720abf415d9e87756cbd))
- **compiler-core:** support specifying root namespace when parsing
([40f72d5](https://github.com/vuejs/core/commit/40f72d5e50b389cb11b7ca13461aa2a75ddacdb4))
- **compiler-core:** support v-bind shorthand for key and value with the
same name ([#&#8203;9451](https://github.com/vuejs/core/issues/9451))
([26399aa](https://github.com/vuejs/core/commit/26399aa6fac1596b294ffeba06bb498d86f5508c))
- **compiler-core:** improve parsing tolerance for language-tools
([41ff68e](https://github.com/vuejs/core/commit/41ff68ea579d933333392146625560359acb728a))
- **compiler-core:** support accessing Error as global in template
expressions
([#&#8203;7018](https://github.com/vuejs/core/issues/7018))
([bcca475](https://github.com/vuejs/core/commit/bcca475dbc58d76434cd8120b94929758cee2825))
- **compiler-core:** lift vnode hooks deprecation warning to error
([8abc754](https://github.com/vuejs/core/commit/8abc754d5d86d9dfd5a7927b846f1a743f352364))
- **compiler-core:** export runtime error strings
([#&#8203;9301](https://github.com/vuejs/core/issues/9301))
([feb2f2e](https://github.com/vuejs/core/commit/feb2f2edce2d91218a5e9a52c81e322e4033296b))
- **compiler-core:** add current filename to TransformContext
([#&#8203;8950](https://github.com/vuejs/core/issues/8950))
([638f1ab](https://github.com/vuejs/core/commit/638f1abbb632000553e2b7d75e87c95d8ca192d6))
- **compiler-sfc:** analyze import usage in template via AST
([#&#8203;9729](https://github.com/vuejs/core/issues/9729))
([e8bbc94](https://github.com/vuejs/core/commit/e8bbc946cba6bf74c9da56f938b67d2a04c340ba)),
closes [#&#8203;8897](https://github.com/vuejs/core/issues/8897)
[nuxt/nuxt#22416](https://github.com/nuxt/nuxt/issues/22416)
- **compiler-sfc:** expose resolve type-based props and emits
([#&#8203;8874](https://github.com/vuejs/core/issues/8874))
([9e77580](https://github.com/vuejs/core/commit/9e77580c0c2f0d977bd0031a1d43cc334769d433))
- **compiler-sfc:** bump postcss-modules to v6
([2a507e3](https://github.com/vuejs/core/commit/2a507e32f0e2ef73813705a568b8633f68bda7a9))
- **compiler-sfc:** promote defineModel stable
([#&#8203;9598](https://github.com/vuejs/core/issues/9598))
([ef688ba](https://github.com/vuejs/core/commit/ef688ba92bfccbc8b7ea3997eb297665d13e5249))
- **compiler-sfc:** support import attributes and `using` syntax
([#&#8203;8786](https://github.com/vuejs/core/issues/8786))
([5b2bd1d](https://github.com/vuejs/core/commit/5b2bd1df78e8ff524c3a184adaa284681aba6574))
- **compiler-sfc:** `defineModel` support local mutation by default,
remove local option
([f74785b](https://github.com/vuejs/core/commit/f74785bc4ad351102dde17fdfd2c7276b823111f)),
closes
[/github.com/vuejs/rfcs/discussions/503#discussioncomment-7566278](https://github.com//github.com/vuejs/rfcs/discussions/503/issues/discussioncomment-7566278)
- **ssr:** add `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` feature flag
([#&#8203;9550](https://github.com/vuejs/core/issues/9550))
([bc7698d](https://github.com/vuejs/core/commit/bc7698dbfed9b5327a93565f9df336ae5a94d605))
- **ssr:** improve ssr hydration mismatch checks
([#&#8203;5953](https://github.com/vuejs/core/issues/5953))
([2ffc1e8](https://github.com/vuejs/core/commit/2ffc1e8cfdc6ec9c45c4a4dd8e3081b2aa138f1e)),
closes [#&#8203;5063](https://github.com/vuejs/core/issues/5063)
- **types:** use enum to replace const enum
([#&#8203;9261](https://github.com/vuejs/core/issues/9261))
([fff7b86](https://github.com/vuejs/core/commit/fff7b864f4292d0430ba2bda7098ad43876b0210)),
closes [#&#8203;1228](https://github.com/vuejs/core/issues/1228)
- **types:** add emits and slots type to `FunctionalComponent`
([#&#8203;8644](https://github.com/vuejs/core/issues/8644))
([927ab17](https://github.com/vuejs/core/commit/927ab17cfc645e82d061fdf227c34689491268e1))
- **types:** export `AriaAttributes` type
([#&#8203;8909](https://github.com/vuejs/core/issues/8909))
([fd0b6ba](https://github.com/vuejs/core/commit/fd0b6ba01660499fa07b0cf360eefaac8cca8287))
- **types:** export `ObjectPlugin` and `FunctionPlugin` types
([#&#8203;8946](https://github.com/vuejs/core/issues/8946))
([fa4969e](https://github.com/vuejs/core/commit/fa4969e7a3aefa6863203f9294fc5e769ddf6d8f)),
closes [#&#8203;8577](https://github.com/vuejs/core/issues/8577)
- **types:** expose `DefineProps` type
([096ba81](https://github.com/vuejs/core/commit/096ba81817b7da15f61bc55fc1a93f72ac9586e0))
- **types:** expose `PublicProps` type
([#&#8203;2403](https://github.com/vuejs/core/issues/2403))
([44135dc](https://github.com/vuejs/core/commit/44135dc95fb8fea26b84d1433839d28b8c21f708))
- **types:** improve event type inference when using `h` with native
elements ([#&#8203;9756](https://github.com/vuejs/core/issues/9756))
([a625376](https://github.com/vuejs/core/commit/a625376ac8901eea81bf3c66cb531f2157f073ef))
- **types:** provide `ComponentInstance` type
([#&#8203;5408](https://github.com/vuejs/core/issues/5408))
([bfb8565](https://github.com/vuejs/core/commit/bfb856565d3105db4b18991ae9e404e7cc989b25))
- **types:** support passing generics when registering global directives
([#&#8203;9660](https://github.com/vuejs/core/issues/9660))
([a41409e](https://github.com/vuejs/core/commit/a41409ed02a8c7220e637f56caf6813edeb077f8))

##### Performance Improvements

- **compiler-sfc:** avoid sfc source map unnecessary serialization and
parsing
([f15d2f6](https://github.com/vuejs/core/commit/f15d2f6cf69c0c39f8dfb5c33122790c68bf92e2))
- **compiler-sfc:** remove magic-string trim on script
([e8e3ec6](https://github.com/vuejs/core/commit/e8e3ec6ca7392e43975c75b56eaaa711d5ea9410))
- **compiler-sfc:** use faster source map addMapping
([50cde7c](https://github.com/vuejs/core/commit/50cde7cfbcc49022ba88f5f69fa9b930b483c282))
- **compiler-core:** optimize away isBuiltInType
([66c0ed0](https://github.com/vuejs/core/commit/66c0ed0a3c1c6f37dafc6b1c52b75c6bf60e3136))
- **compiler-core:** optimize position cloning
([2073236](https://github.com/vuejs/core/commit/20732366b9b3530d33b842cf1fc985919afb9317))
- **codegen:** optimize line / column calculation during codegen
([3be53d9](https://github.com/vuejs/core/commit/3be53d9b974dae1a10eb795cade71ae765e17574))
- **codegen:** optimize source map generation
([c11002f](https://github.com/vuejs/core/commit/c11002f16afd243a2b15b546816e73882eea9e4d))
- **shared:** optimize makeMap
([ae6fba9](https://github.com/vuejs/core/commit/ae6fba94954bac6430902f77b0d1113a98a75b18))

##### BREAKING CHANGES

##### Global JSX Registration Removed

Starting in 3.4, Vue no longer registers the global `JSX` namespace by
default. This is necessary to avoid global namespace collision with
React so that TSX of both libs can co-exist in the same project. This
should not affect SFC-only users with latest version of Volar.

If you are using TSX, there are two options:

1. Explicitly set
[jsxImportSource](https://www.typescriptlang.org/tsconfig#jsxImportSource)
to `'vue'` in `tsconfig.json` before upgrading to 3.4. You can also
opt-in per file by adding a `/* @&#8203;jsxImportSource vue */` comment
at the top of the file.

2. If you have code that depends on the presence of the global `JSX`
namespace, e.g. usage of types like `JSX.Element` etc., you can retain
the exact pre-3.4 global behavior by explicitly referencing `vue/jsx`,
which registers the global `JSX` namespace.

Note that this is a type-only breaking change in a minor release, which
adheres to our [release
policy](https://vuejs.org/about/releases.html#semantic-versioning-edge-cases).

##### Deprecated Features Removed

- [Reactivity
Transform](https://vuejs.org/guide/extras/reactivity-transform.html) was
marked deprecated in 3.3 and is now removed in 3.4. This change does not
require a major due to the feature being experimental. Users who wish to
continue using the feature can do so via the [Vue Macros
plugin](https://vue-macros.dev/features/reactivity-transform.html).
- `app.config.unwrapInjectedRef` has been removed. It was deprecated and
enabled by default in 3.3. In 3.4 it is no longer possible to disable
this behavior.
- `@vnodeXXX` event listeners in templates are now a compiler error
instead of a deprecation warning. Use `@vue:XXX` listeners instead.
- `v-is` directive has been removed. It was deprecated in 3.3. Use the
[`is` attribute with `vue:`
prefix](https://vuejs.org/api/built-in-special-attributes.html#is)
instead.

</details>

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

###
[`v1.8.27`](https://github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#1827-20231226)

[Compare
Source](https://github.com/vuejs/language-tools/compare/5849cada166bbd3faa03f21efd4d3cc2a2836d11...v1.8.27)

- fix(language-core): remove misuse of `JSX.Element` for compatible with
vue 3.4
([https://github.com/vuejs/core/issues/9923](https://github.com/vuejs/core/issues/9923))

</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 becomes conflicted, or you tick the
rebase/retry checkbox.

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

---

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

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/slipmatio/toolbelt).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fwouts added a commit to fwouts/previewjs that referenced this issue Jan 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

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

---

### Release Notes

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

###
[`v3.4.4`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#344-2024-01-03)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.3...v3.4.4)

##### Bug Fixes

- **compiler-sfc:** fix scss source map regression
([71d3121](https://github.com/vuejs/core/commit/71d3121b72c449351e718ee1539bdfa35b68bb32)),
closes [#&#8203;9970](https://github.com/vuejs/core/issues/9970)
[#&#8203;9969](https://github.com/vuejs/core/issues/9969)
- **compiler-sfc:** use compilerOptions when re-parsing consumed AST
([d94d8d4](https://github.com/vuejs/core/commit/d94d8d4bffd1daf171a655b292745ffc3e63052d))
- **defineModel:** support kebab-case/camelCase mismatches
([#&#8203;9950](https://github.com/vuejs/core/issues/9950))
([10ccb9b](https://github.com/vuejs/core/commit/10ccb9bfa0f5f3016207fc32b9611bab98e6f090))
- **runtime-core:** correctly assign suspenseId to avoid conflicts with
the default id
([#&#8203;9966](https://github.com/vuejs/core/issues/9966))
([0648804](https://github.com/vuejs/core/commit/06488047c184dae3070d0008379716690edceb46)),
closes [#&#8203;9944](https://github.com/vuejs/core/issues/9944)
- **ssr:** avoid rendering transition-group slot content as a fragment
([#&#8203;9961](https://github.com/vuejs/core/issues/9961))
([0160264](https://github.com/vuejs/core/commit/0160264d677478ee928e8e851f39a9e94f97e337)),
closes [#&#8203;9933](https://github.com/vuejs/core/issues/9933)
- **watch:** remove instance unmounted short circuit in getter of
`watchEffect`
([#&#8203;9948](https://github.com/vuejs/core/issues/9948))
([f300a40](https://github.com/vuejs/core/commit/f300a4001ec40cadef2520267eb5841ab48cf005))
- **watch:** revert watch behavior when watching shallow reactive
objects
([a9f781a](https://github.com/vuejs/core/commit/a9f781a92cbc7de7b25c9e3d5b1295ca99eb6d86)),
closes [#&#8203;9965](https://github.com/vuejs/core/issues/9965)

##### Performance Improvements

- **watch:** avoid double traverse for reactive source
([24d77c2](https://github.com/vuejs/core/commit/24d77c25ce5d5356adb5367beef1d23e6e340b35))

###
[`v3.4.3`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#343-2023-12-30)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.2...v3.4.3)

##### Bug Fixes

- **compiler-sfc:** respect sfc parse options in cache key
([b8d58ec](https://github.com/vuejs/core/commit/b8d58ec4f42cbeb9443bf06138add46158db9af0))

###
[`v3.4.2`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#342-2023-12-30)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.1...v3.4.2)

##### Bug Fixes

- **compiler-sfc:** fix dev regression for dot / namespace component
usage
([dce99c1](https://github.com/vuejs/core/commit/dce99c12df981ca45a4d848c37ba8b16496025f0)),
closes [#&#8203;9947](https://github.com/vuejs/core/issues/9947)
- **runtime-core:** support deep: false when watch reactive
([#&#8203;9928](https://github.com/vuejs/core/issues/9928))
([4f703d1](https://github.com/vuejs/core/commit/4f703d120d76d711084346f73ea295c73e6ef6b6)),
closes [#&#8203;9916](https://github.com/vuejs/core/issues/9916)
- **ssr:** fix hydration error for slot outlet inside transition-group
([#&#8203;9937](https://github.com/vuejs/core/issues/9937))
([6cb00ed](https://github.com/vuejs/core/commit/6cb00ed0f9b64428ec18fada0f68467d6a813fde)),
closes [#&#8203;9933](https://github.com/vuejs/core/issues/9933)

###
[`v3.4.1`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#341-2023-12-30)

[Compare
Source](https://github.com/vuejs/core/compare/v3.4.0...v3.4.1)

##### Bug Fixes

- **compat:** correct enum value for COMPILER_FILTERS feature
([#&#8203;9875](https://github.com/vuejs/core/issues/9875))
([77d33e2](https://github.com/vuejs/core/commit/77d33e263cf19983caf4e5c53a0eb0bee374843c))
- **defineModel:** always default modifiers to empty object
([9bc3c7e](https://github.com/vuejs/core/commit/9bc3c7e29cf15f5ca96703542d10cfd786a3fc55)),
closes [#&#8203;9945](https://github.com/vuejs/core/issues/9945)
- **defineModel:** support local mutation when only prop but no listener
is passed
([97ce041](https://github.com/vuejs/core/commit/97ce041910b6ca4bef10f939493d6b5a06ea5b07))
- **types:** fix defineModel watch type error
([#&#8203;9942](https://github.com/vuejs/core/issues/9942))
([4af8583](https://github.com/vuejs/core/commit/4af85835f7e593a7dffa7dc7e99f14877eb70fd1)),
closes [#&#8203;9939](https://github.com/vuejs/core/issues/9939)

##### Features

- **compiler-sfc:** support passing template parsing options when
parsing sfc
([6fab855](https://github.com/vuejs/core/commit/6fab8551e4aeef4610987640de8b435b1ae321bb))
(necessary to fix
[https://github.com/vitejs/vite-plugin-vue/issues/322](https://github.com/vitejs/vite-plugin-vue/issues/322))

###
[`v3.4.0`](https://github.com/vuejs/core/blob/HEAD/CHANGELOG.md#340-Slam-Dunk-2023-12-29)

[Compare
Source](https://github.com/vuejs/core/compare/v3.3.13...v3.4.0)

> Read [this blog post](https://blog.vuejs.org/posts/vue-3-4) for an
overview of the release highlights.

##### Potential Actions Needed

1. To fully leverage new features in 3.4, it is recommended to also
update the following dependencies when upgrading to 3.4:

    -   Volar / vue-tsc@^1.8.27 (**required**)
-
[@&#8203;vitejs/plugin-vue](https://github.com/vitejs/plugin-vue)@&#8203;^5.0.0
(if using Vite)
    -   nuxt@^3.9.0 (if using Nuxt)
    -   vue-loader@^17.4.0 (if using webpack or vue-cli)

2. If using TSX with Vue, check actions needed in [Removed: Global JSX
Namespace](https://blog.vuejs.org/posts/vue-3-4#global-jsx-namespace).

3. Make sure you are no longer using any deprecated features (if you
are, you should have warnings in the console telling you so). They may
have been [removed in
3.4](https://blog.vuejs.org/posts/vue-3-4#other-removed-features).

##### Features

- **general:** MathML support
([#&#8203;7836](https://github.com/vuejs/core/issues/7836))
([d42b6ba](https://github.com/vuejs/core/commit/d42b6ba3f530746eb1221eb7a4be0f44eb56f7d3)),
closes [#&#8203;7820](https://github.com/vuejs/core/issues/7820)
- **reactivity:** more efficient reactivity system
([#&#8203;5912](https://github.com/vuejs/core/issues/5912))
([16e06ca](https://github.com/vuejs/core/commit/16e06ca08f5a1e2af3fc7fb35de153dbe0c3087d)),
closes [#&#8203;311](https://github.com/vuejs/core/issues/311)
[#&#8203;1811](https://github.com/vuejs/core/issues/1811)
[#&#8203;6018](https://github.com/vuejs/core/issues/6018)
[#&#8203;7160](https://github.com/vuejs/core/issues/7160)
[#&#8203;8714](https://github.com/vuejs/core/issues/8714)
[#&#8203;9149](https://github.com/vuejs/core/issues/9149)
[#&#8203;9419](https://github.com/vuejs/core/issues/9419)
[#&#8203;9464](https://github.com/vuejs/core/issues/9464)
- **reactivity:** expose last result for computed getter
([#&#8203;9497](https://github.com/vuejs/core/issues/9497))
([48b47a1](https://github.com/vuejs/core/commit/48b47a1ab63577e2dbd91947eea544e3ef185b85))
- **runtime-core / dx:** link errors to docs in prod build
([#&#8203;9165](https://github.com/vuejs/core/issues/9165))
([9f8ba98](https://github.com/vuejs/core/commit/9f8ba9821fe166f77e63fa940e9e7e13ec3344fa))
- **runtime-core:** add `once` option to watch
([#&#8203;9034](https://github.com/vuejs/core/issues/9034))
([a645e7a](https://github.com/vuejs/core/commit/a645e7aa51006516ba668b3a4365d296eb92ee7d))
- **runtime-core:** provide full props to props validator functions
([#&#8203;3258](https://github.com/vuejs/core/issues/3258))
([8e27692](https://github.com/vuejs/core/commit/8e27692029a4645cd54287f776c0420f2b82740b))
- **compiler-core:** export error message
([#&#8203;8729](https://github.com/vuejs/core/issues/8729))
([f7e80ee](https://github.com/vuejs/core/commit/f7e80ee4a065a9eaba98720abf415d9e87756cbd))
- **compiler-core:** support specifying root namespace when parsing
([40f72d5](https://github.com/vuejs/core/commit/40f72d5e50b389cb11b7ca13461aa2a75ddacdb4))
- **compiler-core:** support v-bind shorthand for key and value with the
same name ([#&#8203;9451](https://github.com/vuejs/core/issues/9451))
([26399aa](https://github.com/vuejs/core/commit/26399aa6fac1596b294ffeba06bb498d86f5508c))
- **compiler-core:** improve parsing tolerance for language-tools
([41ff68e](https://github.com/vuejs/core/commit/41ff68ea579d933333392146625560359acb728a))
- **compiler-core:** support accessing Error as global in template
expressions
([#&#8203;7018](https://github.com/vuejs/core/issues/7018))
([bcca475](https://github.com/vuejs/core/commit/bcca475dbc58d76434cd8120b94929758cee2825))
- **compiler-core:** lift vnode hooks deprecation warning to error
([8abc754](https://github.com/vuejs/core/commit/8abc754d5d86d9dfd5a7927b846f1a743f352364))
- **compiler-core:** export runtime error strings
([#&#8203;9301](https://github.com/vuejs/core/issues/9301))
([feb2f2e](https://github.com/vuejs/core/commit/feb2f2edce2d91218a5e9a52c81e322e4033296b))
- **compiler-core:** add current filename to TransformContext
([#&#8203;8950](https://github.com/vuejs/core/issues/8950))
([638f1ab](https://github.com/vuejs/core/commit/638f1abbb632000553e2b7d75e87c95d8ca192d6))
- **compiler-sfc:** analyze import usage in template via AST
([#&#8203;9729](https://github.com/vuejs/core/issues/9729))
([e8bbc94](https://github.com/vuejs/core/commit/e8bbc946cba6bf74c9da56f938b67d2a04c340ba)),
closes [#&#8203;8897](https://github.com/vuejs/core/issues/8897)
[nuxt/nuxt#22416](https://github.com/nuxt/nuxt/issues/22416)
- **compiler-sfc:** expose resolve type-based props and emits
([#&#8203;8874](https://github.com/vuejs/core/issues/8874))
([9e77580](https://github.com/vuejs/core/commit/9e77580c0c2f0d977bd0031a1d43cc334769d433))
- **compiler-sfc:** bump postcss-modules to v6
([2a507e3](https://github.com/vuejs/core/commit/2a507e32f0e2ef73813705a568b8633f68bda7a9))
- **compiler-sfc:** promote defineModel stable
([#&#8203;9598](https://github.com/vuejs/core/issues/9598))
([ef688ba](https://github.com/vuejs/core/commit/ef688ba92bfccbc8b7ea3997eb297665d13e5249))
- **compiler-sfc:** support import attributes and `using` syntax
([#&#8203;8786](https://github.com/vuejs/core/issues/8786))
([5b2bd1d](https://github.com/vuejs/core/commit/5b2bd1df78e8ff524c3a184adaa284681aba6574))
- **compiler-sfc:** `defineModel` support local mutation by default,
remove local option
([f74785b](https://github.com/vuejs/core/commit/f74785bc4ad351102dde17fdfd2c7276b823111f)),
closes
[/github.com/vuejs/rfcs/discussions/503#discussioncomment-7566278](https://github.com//github.com/vuejs/rfcs/discussions/503/issues/discussioncomment-7566278)
- **ssr:** add `__VUE_PROD_HYDRATION_MISMATCH_DETAILS__` feature flag
([#&#8203;9550](https://github.com/vuejs/core/issues/9550))
([bc7698d](https://github.com/vuejs/core/commit/bc7698dbfed9b5327a93565f9df336ae5a94d605))
- **ssr:** improve ssr hydration mismatch checks
([#&#8203;5953](https://github.com/vuejs/core/issues/5953))
([2ffc1e8](https://github.com/vuejs/core/commit/2ffc1e8cfdc6ec9c45c4a4dd8e3081b2aa138f1e)),
closes [#&#8203;5063](https://github.com/vuejs/core/issues/5063)
- **types:** use enum to replace const enum
([#&#8203;9261](https://github.com/vuejs/core/issues/9261))
([fff7b86](https://github.com/vuejs/core/commit/fff7b864f4292d0430ba2bda7098ad43876b0210)),
closes [#&#8203;1228](https://github.com/vuejs/core/issues/1228)
- **types:** add emits and slots type to `FunctionalComponent`
([#&#8203;8644](https://github.com/vuejs/core/issues/8644))
([927ab17](https://github.com/vuejs/core/commit/927ab17cfc645e82d061fdf227c34689491268e1))
- **types:** export `AriaAttributes` type
([#&#8203;8909](https://github.com/vuejs/core/issues/8909))
([fd0b6ba](https://github.com/vuejs/core/commit/fd0b6ba01660499fa07b0cf360eefaac8cca8287))
- **types:** export `ObjectPlugin` and `FunctionPlugin` types
([#&#8203;8946](https://github.com/vuejs/core/issues/8946))
([fa4969e](https://github.com/vuejs/core/commit/fa4969e7a3aefa6863203f9294fc5e769ddf6d8f)),
closes [#&#8203;8577](https://github.com/vuejs/core/issues/8577)
- **types:** expose `DefineProps` type
([096ba81](https://github.com/vuejs/core/commit/096ba81817b7da15f61bc55fc1a93f72ac9586e0))
- **types:** expose `PublicProps` type
([#&#8203;2403](https://github.com/vuejs/core/issues/2403))
([44135dc](https://github.com/vuejs/core/commit/44135dc95fb8fea26b84d1433839d28b8c21f708))
- **types:** improve event type inference when using `h` with native
elements ([#&#8203;9756](https://github.com/vuejs/core/issues/9756))
([a625376](https://github.com/vuejs/core/commit/a625376ac8901eea81bf3c66cb531f2157f073ef))
- **types:** provide `ComponentInstance` type
([#&#8203;5408](https://github.com/vuejs/core/issues/5408))
([bfb8565](https://github.com/vuejs/core/commit/bfb856565d3105db4b18991ae9e404e7cc989b25))
- **types:** support passing generics when registering global directives
([#&#8203;9660](https://github.com/vuejs/core/issues/9660))
([a41409e](https://github.com/vuejs/core/commit/a41409ed02a8c7220e637f56caf6813edeb077f8))

##### Performance Improvements

- **compiler-sfc:** avoid sfc source map unnecessary serialization and
parsing
([f15d2f6](https://github.com/vuejs/core/commit/f15d2f6cf69c0c39f8dfb5c33122790c68bf92e2))
- **compiler-sfc:** remove magic-string trim on script
([e8e3ec6](https://github.com/vuejs/core/commit/e8e3ec6ca7392e43975c75b56eaaa711d5ea9410))
- **compiler-sfc:** use faster source map addMapping
([50cde7c](https://github.com/vuejs/core/commit/50cde7cfbcc49022ba88f5f69fa9b930b483c282))
- **compiler-core:** optimize away isBuiltInType
([66c0ed0](https://github.com/vuejs/core/commit/66c0ed0a3c1c6f37dafc6b1c52b75c6bf60e3136))
- **compiler-core:** optimize position cloning
([2073236](https://github.com/vuejs/core/commit/20732366b9b3530d33b842cf1fc985919afb9317))
- **codegen:** optimize line / column calculation during codegen
([3be53d9](https://github.com/vuejs/core/commit/3be53d9b974dae1a10eb795cade71ae765e17574))
- **codegen:** optimize source map generation
([c11002f](https://github.com/vuejs/core/commit/c11002f16afd243a2b15b546816e73882eea9e4d))
- **shared:** optimize makeMap
([ae6fba9](https://github.com/vuejs/core/commit/ae6fba94954bac6430902f77b0d1113a98a75b18))

##### BREAKING CHANGES

##### Global JSX Registration Removed

Starting in 3.4, Vue no longer registers the global `JSX` namespace by
default. This is necessary to avoid global namespace collision with
React so that TSX of both libs can co-exist in the same project. This
should not affect SFC-only users with latest version of Volar.

If you are using TSX, there are two options:

1. Explicitly set
[jsxImportSource](https://www.typescriptlang.org/tsconfig#jsxImportSource)
to `'vue'` in `tsconfig.json` before upgrading to 3.4. You can also
opt-in per file by adding a `/* @&#8203;jsxImportSource vue */` comment
at the top of the file.

2. If you have code that depends on the presence of the global `JSX`
namespace, e.g. usage of types like `JSX.Element` etc., you can retain
the exact pre-3.4 global behavior by explicitly referencing `vue/jsx`,
which registers the global `JSX` namespace.

Note that this is a type-only breaking change in a minor release, which
adheres to our [release
policy](https://vuejs.org/about/releases.html#semantic-versioning-edge-cases).

##### Deprecated Features Removed

- [Reactivity
Transform](https://vuejs.org/guide/extras/reactivity-transform.html) was
marked deprecated in 3.3 and is now removed in 3.4. This change does not
require a major due to the feature being experimental. Users who wish to
continue using the feature can do so via the [Vue Macros
plugin](https://vue-macros.dev/features/reactivity-transform.html).
- `app.config.unwrapInjectedRef` has been removed. It was deprecated and
enabled by default in 3.3. In 3.4 it is no longer possible to disable
this behavior.
- `@vnodeXXX` event listeners in templates are now a compiler error
instead of a deprecation warning. Use `@vue:XXX` listeners instead.
- `v-is` directive has been removed. It was deprecated in 3.3. Use the
[`is` attribute with `vue:`
prefix](https://vuejs.org/api/built-in-special-attributes.html#is)
instead.

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, 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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/fwouts/previewjs).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: François Wouts <f@zenc.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants