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

Directory named "constructor" could crash #65

Closed
Dmitrigar opened this issue Sep 22, 2023 · 1 comment · Fixed by #59
Closed

Directory named "constructor" could crash #65

Dmitrigar opened this issue Sep 22, 2023 · 1 comment · Fixed by #59
Labels
bug Something isn't working good reproduction ✨

Comments

@Dmitrigar
Copy link

If a project have a directory named "constructor" it could crash with error like
TypeError: Cannot read properties of undefined (reading '<something>')

I found it happening because of a bug in the file packages/typescript/src/sys.ts , function getDirFromDir

	function getDirFromDir(dir: Dir, name: string) {
		let target = dir.dirs[name]; // <-------------- BUGGY LINE
		if (!target) {
			target = {
				dirs: {},
				files: {},
			};
			dir.dirs[name] = target;
		}
		return target;
	}

The function getDirFromDir gets called in a loop iterating through some directory path.
If there are a directory named "constructor" in the middle of the path then it will crash.

Getting name "constructor" of an empty object (which dir.dirs could be) returns the actual object constructor instead of a Dir object or undefined.
Then the object constructor gets returned as if it was a Dir found.
On the next call of getDirFromDir function there will be the object constructor used as the dir: Dir argument.
So if there is next call then the function throws a null-refference error because there is no dirs in the object constructor.

I kind of reproduced the bug and it seems like changing the buggy line would fix the issue:

let target = name in dir.dirs ? dir.dirs[name] : undefined;
@johnsoncodehk johnsoncodehk added bug Something isn't working good reproduction ✨ labels Sep 22, 2023
@johnsoncodehk
Copy link
Member

Thanks for looking into this!

@johnsoncodehk johnsoncodehk linked a pull request Oct 6, 2023 that will close this issue
renovate bot added a commit to slipmatio/logger that referenced this issue Oct 9, 2023
[![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://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`20.7.2` ->
`20.8.3`](https://renovatebot.com/diffs/npm/@types%2fnode/20.7.2/20.8.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.7.2/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.7.2/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://togithub.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://togithub.com/vitejs/vite-plugin-vue)) | [`4.3.4` ->
`4.4.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://togithub.com/capricorn86/happy-dom) | [`12.2.1` ->
`12.9.0`](https://renovatebot.com/diffs/npm/happy-dom/12.2.1/12.9.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/12.2.1/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/12.2.1/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://togithub.com/vitejs/vite/tree/main/#readme)
([source](https://togithub.com/vitejs/vite)) | [`4.4.9` ->
`4.4.11`](https://renovatebot.com/diffs/npm/vite/4.4.9/4.4.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.4.9/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.4.9/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://togithub.com/vuejs/language-tools) | [`1.8.15` ->
`1.8.16`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.15/1.8.16) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.15/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.15/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v4.4.0`](https://togithub.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#440-2023-10-02)

- fix(plugin-vue): re-create filters after updating options
([#&#8203;246](https://togithub.com/vitejs/vite-plugin-vue/issues/246))
([c383503](https://togithub.com/vitejs/vite-plugin-vue/commit/c383503)),
closes
[#&#8203;246](https://togithub.com/vitejs/vite-plugin-vue/issues/246)
- feat: support generated JS imports for external scoped style
([#&#8203;196](https://togithub.com/vitejs/vite-plugin-vue/issues/196))
([bd5055d](https://togithub.com/vitejs/vite-plugin-vue/commit/bd5055d)),
closes
[#&#8203;196](https://togithub.com/vitejs/vite-plugin-vue/issues/196)
- chore: add `@ts-ignore` when accessing
`legacy?.buildSsrCjsExternalHeuristics`
([#&#8203;255](https://togithub.com/vitejs/vite-plugin-vue/issues/255))
([04c3b0b](https://togithub.com/vitejs/vite-plugin-vue/commit/04c3b0b)),
closes
[#&#8203;255](https://togithub.com/vitejs/vite-plugin-vue/issues/255)
- refactor(plugin-vue): deprecate reactivity transform
([38f8ea5](https://togithub.com/vitejs/vite-plugin-vue/commit/38f8ea5))
- refactor(plugin-vue): use source-map-js
([#&#8203;247](https://togithub.com/vitejs/vite-plugin-vue/issues/247))
([b43690d](https://togithub.com/vitejs/vite-plugin-vue/commit/b43690d)),
closes
[#&#8203;247](https://togithub.com/vitejs/vite-plugin-vue/issues/247)

</details>

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

###
[`v12.9.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.9.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.8.1...v12.9.0)

##### 🎨 Features

- Improves performance of the async task manager. This will improve
performance of timers in general as they have less logic executed
related to the async task manager.
([#&#8203;1114](https://togithub.com/capricorn86/happy-dom/issues/1114))

###
[`v12.8.1`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.8.1)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.8.0...v12.8.1)

##### 👷‍♂️ Patch fixes

- Adds missing second parameter in callbacks from `MutationObserver`.
([#&#8203;1113](https://togithub.com/capricorn86/happy-dom/issues/1113))

***

Thank you [@&#8203;wojtekmaj](https://togithub.com/wojtekmaj) for your
contribution!

###
[`v12.8.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.8.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.7.0...v12.8.0)

##### 🎨 Features

- Adds support for `Clipboard`, `ClipboardItem`, `Permissions` and
`PermissionStatus`, which are used by the `Window.navigator.clipboard`
and `Window.navigator.permissions` properties.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Adds support for `ClipboardEvent`.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Improves support for `DataTransfer`, `DataTransferItemList` and
`DataTransferItem`.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Adds `MutationRecord` class to `Window` as a property.
([#&#8203;1112](https://togithub.com/capricorn86/happy-dom/issues/1112))

##### 👷‍♂️ Patch fixes

- Restores `HTMLInputElement.checked` state when
`Event.preventDefault()` is called on a dispatched "click" event.

###
[`v12.7.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.7.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.6.0...v12.7.0)

##### 🎨 Features

- Adds support for `Element.scrollWidth`.
([#&#8203;1109](https://togithub.com/capricorn86/happy-dom/issues/1109))

###
[`v12.6.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.6.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.5.1...v12.6.0)

##### 🎨 Features

- Adds support for dispatching a click event on the control element when
clicking on a label.
([#&#8203;1023](https://togithub.com/capricorn86/happy-dom/issues/1023))

###
[`v12.5.1`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.5.1)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.5.0...v12.5.1)

##### 🎨 Features

- Adds support for `DocumentFragment` as a constructor (e.g. `new
DocumentFragment()`).
([#&#8203;940](https://togithub.com/capricorn86/happy-dom/issues/940))

##### 👷‍♂️ Patch fixes

- Fixes issue related to `ownerDocument` being null when executing
`ownerDocument.createElement()` in React 18. The error occurred when
rendering a Radix UI component. The root cause was that React 18 uses
`DocumentFragment` as a constructor which was not supported.
([#&#8203;940](https://togithub.com/capricorn86/happy-dom/issues/940))

###
[`v12.5.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.5.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.4.0...v12.5.0)

##### 🎨 Features

- Add `FocusEvent.relatedTarget` to blur and focus events.
([#&#8203;1094](https://togithub.com/capricorn86/happy-dom/issues/1094))

***

Thank you [@&#8203;artursvonda](https://togithub.com/artursvonda) for
your contribution!

###
[`v12.4.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.4.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.3.0...v12.4.0)

##### 🎨 Features

- Add support for `Document.currentScript`.
([#&#8203;1099](https://togithub.com/capricorn86/happy-dom/issues/1099))

***

Thank you [@&#8203;ckhampus](https://togithub.com/ckhampus) for your
contribution!

###
[`v12.3.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.3.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.2.2...v12.3.0)

##### 🎨 Features

- Uses `vm.Script` for setting globals instead of a string to improve
performance.
([#&#8203;1102](https://togithub.com/capricorn86/happy-dom/issues/1102))

##### 👷‍♂️ Patch fixes

- Improves logic in `Window.happyDOM.whenAsyncComplete()`.
([#&#8203;1102](https://togithub.com/capricorn86/happy-dom/issues/1102))

###
[`v12.2.2`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.2.2)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.2.1...v12.2.2)

##### 👷‍♂️ Patch fixes

- Makes `PointerEvent` implementation more specification compliant.
([#&#8203;1092](https://togithub.com/capricorn86/happy-dom/issues/1092))

***

Thank you [@&#8203;tkrotoff](https://togithub.com/tkrotoff) for your
contribution!

</details>

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

### [`v4.4.11`](https://togithub.com/vitejs/vite/releases/tag/v4.4.11)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v4.4.10...v4.4.11)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.11/packages/vite/CHANGELOG.md)
for details.

### [`v4.4.10`](https://togithub.com/vitejs/vite/releases/tag/v4.4.10)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v4.4.9...v4.4.10)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.10/packages/vite/CHANGELOG.md)
for details.

</details>

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

###
[`v1.8.16`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#1816-2023107)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v1.8.15...f9e281db3f47f9a3f94c79dbbf81102cba01eb5d)

- fix: merge default export's properties properly
([#&#8203;3600](https://togithub.com/vuejs/language-tools/issues/3600))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: accurate exposed type with refs in generic component
([#&#8203;3604](https://togithub.com/vuejs/language-tools/issues/3604))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: make emits type correct when user assigns emit function a custom
name
([#&#8203;3624](https://togithub.com/vuejs/language-tools/issues/3624))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)

##### Volar.js 1.10.3 updates:

- fix: performance issue with o(n^2) complexity of `directoryExists()`
([volarjs/volar.js#66)
- thanks [@&#8203;Akryum](https://togithub.com/Akryum)
- fix: directory named "constructor" could crash
([volarjs/volar.js#65)
- thanks [@&#8203;Dmitrigar](https://togithub.com/Dmitrigar),
[@&#8203;franz-bendezu](https://togithub.com/franz-bendezu)

##### Full-time Support by

<table>
<tbody>
  <tr>
    <td>
<a href="https://stackblitz.com/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/StackBlitz.png"
height="80" /></a>
	</td>
<td><h4><a
href="https://blog.stackblitz.com/posts/webcontainer-api-is-here/">WebContainer
API is here.</a></h4></td>
  </tr>
</tbody>
</table>

##### Our Platinum Sponsors

<table>
<tbody>
  <tr>
    <td>
<a href="https://nuxt.com/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/nuxt.svg"
height="60" /></a>
	</td>
    <td>The Intuitive Web Framework</td>
  </tr>
  <tr>
    <td>
<a href="https://vuejs.org/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/vue.png"
height="80" /></a>
	</td>
    <td>The Progressive JavaScript Framework</td>
  </tr>
</tbody>
</table>

##### Our Silver Sponsors

<table>
<tbody>
  <tr>
    <td>
		<p align="center">
<a href="https://www.prefect.io/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/prefect.svg"
height="40" /></a>
</p>
	</td>
  </tr>
</tbody>
</table>

<h5>
	Add you via
<a href="https://togithub.com/sponsors/johnsoncodehk">GitHub
Sponsors</a>
	or
	<a href="https://opencollective.com/volarjs">Open Collective</a>
</h5>

</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://togithub.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:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to slipmatio/toolbelt that referenced this issue Oct 9, 2023
[![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://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`20.7.2` ->
`20.8.3`](https://renovatebot.com/diffs/npm/@types%2fnode/20.7.2/20.8.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.7.2/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.7.2/20.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://togithub.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://togithub.com/vitejs/vite-plugin-vue)) | [`4.3.4` ->
`4.4.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://togithub.com/capricorn86/happy-dom) | [`12.2.1` ->
`12.9.0`](https://renovatebot.com/diffs/npm/happy-dom/12.2.1/12.9.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/12.2.1/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/12.2.1/12.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://togithub.com/vitejs/vite/tree/main/#readme)
([source](https://togithub.com/vitejs/vite)) | [`4.4.9` ->
`4.4.11`](https://renovatebot.com/diffs/npm/vite/4.4.9/4.4.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.4.9/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.4.9/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://togithub.com/vuejs/language-tools) | [`1.8.15` ->
`1.8.16`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.15/1.8.16) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.15/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.15/1.8.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v4.4.0`](https://togithub.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#440-2023-10-02)

- fix(plugin-vue): re-create filters after updating options
([#&#8203;246](https://togithub.com/vitejs/vite-plugin-vue/issues/246))
([c383503](https://togithub.com/vitejs/vite-plugin-vue/commit/c383503)),
closes
[#&#8203;246](https://togithub.com/vitejs/vite-plugin-vue/issues/246)
- feat: support generated JS imports for external scoped style
([#&#8203;196](https://togithub.com/vitejs/vite-plugin-vue/issues/196))
([bd5055d](https://togithub.com/vitejs/vite-plugin-vue/commit/bd5055d)),
closes
[#&#8203;196](https://togithub.com/vitejs/vite-plugin-vue/issues/196)
- chore: add `@ts-ignore` when accessing
`legacy?.buildSsrCjsExternalHeuristics`
([#&#8203;255](https://togithub.com/vitejs/vite-plugin-vue/issues/255))
([04c3b0b](https://togithub.com/vitejs/vite-plugin-vue/commit/04c3b0b)),
closes
[#&#8203;255](https://togithub.com/vitejs/vite-plugin-vue/issues/255)
- refactor(plugin-vue): deprecate reactivity transform
([38f8ea5](https://togithub.com/vitejs/vite-plugin-vue/commit/38f8ea5))
- refactor(plugin-vue): use source-map-js
([#&#8203;247](https://togithub.com/vitejs/vite-plugin-vue/issues/247))
([b43690d](https://togithub.com/vitejs/vite-plugin-vue/commit/b43690d)),
closes
[#&#8203;247](https://togithub.com/vitejs/vite-plugin-vue/issues/247)

</details>

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

###
[`v12.9.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.9.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.8.1...v12.9.0)

##### 🎨 Features

- Improves performance of the async task manager. This will improve
performance of timers in general as they have less logic executed
related to the async task manager.
([#&#8203;1114](https://togithub.com/capricorn86/happy-dom/issues/1114))

###
[`v12.8.1`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.8.1)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.8.0...v12.8.1)

##### 👷‍♂️ Patch fixes

- Adds missing second parameter in callbacks from `MutationObserver`.
([#&#8203;1113](https://togithub.com/capricorn86/happy-dom/issues/1113))

***

Thank you [@&#8203;wojtekmaj](https://togithub.com/wojtekmaj) for your
contribution!

###
[`v12.8.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.8.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.7.0...v12.8.0)

##### 🎨 Features

- Adds support for `Clipboard`, `ClipboardItem`, `Permissions` and
`PermissionStatus`, which are used by the `Window.navigator.clipboard`
and `Window.navigator.permissions` properties.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Adds support for `ClipboardEvent`.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Improves support for `DataTransfer`, `DataTransferItemList` and
`DataTransferItem`.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Adds `MutationRecord` class to `Window` as a property.
([#&#8203;1112](https://togithub.com/capricorn86/happy-dom/issues/1112))

##### 👷‍♂️ Patch fixes

- Restores `HTMLInputElement.checked` state when
`Event.preventDefault()` is called on a dispatched "click" event.

###
[`v12.7.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.7.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.6.0...v12.7.0)

##### 🎨 Features

- Adds support for `Element.scrollWidth`.
([#&#8203;1109](https://togithub.com/capricorn86/happy-dom/issues/1109))

###
[`v12.6.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.6.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.5.1...v12.6.0)

##### 🎨 Features

- Adds support for dispatching a click event on the control element when
clicking on a label.
([#&#8203;1023](https://togithub.com/capricorn86/happy-dom/issues/1023))

###
[`v12.5.1`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.5.1)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.5.0...v12.5.1)

##### 🎨 Features

- Adds support for `DocumentFragment` as a constructor (e.g. `new
DocumentFragment()`).
([#&#8203;940](https://togithub.com/capricorn86/happy-dom/issues/940))

##### 👷‍♂️ Patch fixes

- Fixes issue related to `ownerDocument` being null when executing
`ownerDocument.createElement()` in React 18. The error occurred when
rendering a Radix UI component. The root cause was that React 18 uses
`DocumentFragment` as a constructor which was not supported.
([#&#8203;940](https://togithub.com/capricorn86/happy-dom/issues/940))

###
[`v12.5.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.5.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.4.0...v12.5.0)

##### 🎨 Features

- Add `FocusEvent.relatedTarget` to blur and focus events.
([#&#8203;1094](https://togithub.com/capricorn86/happy-dom/issues/1094))

***

Thank you [@&#8203;artursvonda](https://togithub.com/artursvonda) for
your contribution!

###
[`v12.4.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.4.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.3.0...v12.4.0)

##### 🎨 Features

- Add support for `Document.currentScript`.
([#&#8203;1099](https://togithub.com/capricorn86/happy-dom/issues/1099))

***

Thank you [@&#8203;ckhampus](https://togithub.com/ckhampus) for your
contribution!

###
[`v12.3.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.3.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.2.2...v12.3.0)

##### 🎨 Features

- Uses `vm.Script` for setting globals instead of a string to improve
performance.
([#&#8203;1102](https://togithub.com/capricorn86/happy-dom/issues/1102))

##### 👷‍♂️ Patch fixes

- Improves logic in `Window.happyDOM.whenAsyncComplete()`.
([#&#8203;1102](https://togithub.com/capricorn86/happy-dom/issues/1102))

###
[`v12.2.2`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.2.2)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.2.1...v12.2.2)

##### 👷‍♂️ Patch fixes

- Makes `PointerEvent` implementation more specification compliant.
([#&#8203;1092](https://togithub.com/capricorn86/happy-dom/issues/1092))

***

Thank you [@&#8203;tkrotoff](https://togithub.com/tkrotoff) for your
contribution!

</details>

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

### [`v4.4.11`](https://togithub.com/vitejs/vite/releases/tag/v4.4.11)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v4.4.10...v4.4.11)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.11/packages/vite/CHANGELOG.md)
for details.

### [`v4.4.10`](https://togithub.com/vitejs/vite/releases/tag/v4.4.10)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v4.4.9...v4.4.10)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.10/packages/vite/CHANGELOG.md)
for details.

</details>

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

###
[`v1.8.16`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#1816-2023107)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v1.8.15...f9e281db3f47f9a3f94c79dbbf81102cba01eb5d)

- fix: merge default export's properties properly
([#&#8203;3600](https://togithub.com/vuejs/language-tools/issues/3600))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: accurate exposed type with refs in generic component
([#&#8203;3604](https://togithub.com/vuejs/language-tools/issues/3604))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: make emits type correct when user assigns emit function a custom
name
([#&#8203;3624](https://togithub.com/vuejs/language-tools/issues/3624))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)

##### Volar.js 1.10.3 updates:

- fix: performance issue with o(n^2) complexity of `directoryExists()`
([volarjs/volar.js#66)
- thanks [@&#8203;Akryum](https://togithub.com/Akryum)
- fix: directory named "constructor" could crash
([volarjs/volar.js#65)
- thanks [@&#8203;Dmitrigar](https://togithub.com/Dmitrigar),
[@&#8203;franz-bendezu](https://togithub.com/franz-bendezu)

##### Full-time Support by

<table>
<tbody>
  <tr>
    <td>
<a href="https://stackblitz.com/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/StackBlitz.png"
height="80" /></a>
	</td>
<td><h4><a
href="https://blog.stackblitz.com/posts/webcontainer-api-is-here/">WebContainer
API is here.</a></h4></td>
  </tr>
</tbody>
</table>

##### Our Platinum Sponsors

<table>
<tbody>
  <tr>
    <td>
<a href="https://nuxt.com/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/nuxt.svg"
height="60" /></a>
	</td>
    <td>The Intuitive Web Framework</td>
  </tr>
  <tr>
    <td>
<a href="https://vuejs.org/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/vue.png"
height="80" /></a>
	</td>
    <td>The Progressive JavaScript Framework</td>
  </tr>
</tbody>
</table>

##### Our Silver Sponsors

<table>
<tbody>
  <tr>
    <td>
		<p align="center">
<a href="https://www.prefect.io/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/prefect.svg"
height="40" /></a>
</p>
	</td>
  </tr>
</tbody>
</table>

<h5>
	Add you via
<a href="https://togithub.com/sponsors/johnsoncodehk">GitHub
Sponsors</a>
	or
	<a href="https://opencollective.com/volarjs">Open Collective</a>
</h5>

</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://togithub.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:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

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

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://togithub.com/microsoft/playwright)) | [`1.38.1` ->
`1.39.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.38.1/1.39.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.38.1/1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.38.1/1.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`20.7.2` ->
`20.8.6`](https://renovatebot.com/diffs/npm/@types%2fnode/20.7.2/20.8.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.7.2/20.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.7.2/20.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://togithub.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://togithub.com/vitejs/vite-plugin-vue)) | [`4.3.4` ->
`4.4.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.3.4/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://togithub.com/capricorn86/happy-dom) | [`12.2.1` ->
`12.9.1`](https://renovatebot.com/diffs/npm/happy-dom/12.2.1/12.9.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/12.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/12.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/12.2.1/12.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/12.2.1/12.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://togithub.com/vitejs/vite/tree/main/#readme)
([source](https://togithub.com/vitejs/vite)) | [`4.4.9` ->
`4.4.11`](https://renovatebot.com/diffs/npm/vite/4.4.9/4.4.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.4.9/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.4.9/4.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://togithub.com/vuejs/language-tools) | [`1.8.15` ->
`1.8.19`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.15/1.8.19) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/1.8.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/1.8.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.15/1.8.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.15/1.8.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v1.39.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.39.0)

[Compare
Source](https://togithub.com/microsoft/playwright/compare/v1.38.1...v1.39.0)

#### Add custom matchers to your expect

You can extend Playwright assertions by providing custom matchers. These
matchers will be available on the expect object.

```js
import { expect as baseExpect } from '@&#8203;playwright/test';
export const expect = baseExpect.extend({
  async toHaveAmount(locator: Locator, expected: number, options?: { timeout?: number }) {
    // ... see documentation for how to write matchers.
  },
});

test('pass', async ({ page }) => {
  await expect(page.getByTestId('cart')).toHaveAmount(5);
});
```

See the documentation [for a full
example](https://playwright.dev/docs/test-configuration#add-custom-matchers-using-expectextend).

#### Merge test fixtures

You can now merge test fixtures from multiple files or modules:

```js
import { mergeTests } from '@&#8203;playwright/test';
import { test as dbTest } from 'database-test-utils';
import { test as a11yTest } from 'a11y-test-utils';

export const test = mergeTests(dbTest, a11yTest);
```

```js
import { test } from './fixtures';

test('passes', async ({ database, page, a11y }) => {
  // use database and a11y fixtures.
});
```

#### Merge custom expect matchers

You can now merge custom expect matchers from multiple files or modules:

```js
import { mergeTests, mergeExpects } from '@&#8203;playwright/test';
import { test as dbTest, expect as dbExpect } from 'database-test-utils';
import { test as a11yTest, expect as a11yExpect } from 'a11y-test-utils';

export const test = mergeTests(dbTest, a11yTest);
export const expect = mergeExpects(dbExpect, a11yExpect);
```

```js
import { test, expect } from './fixtures';

test('passes', async ({ page, database }) => {
  await expect(database).toHaveDatabaseUser('admin');
  await expect(page).toPassA11yAudit();
});
```

#### Hide implementation details: box test steps

You can mark a
[`test.step()`](https://playwright.dev/docs/api/class-test#test-step) as
"boxed" so that errors inside it point to the step call site.

```js
async function login(page) {
  await test.step('login', async () => {
    // ...
  }, { box: true });  // Note the "box" option here.
}
```

```txt
Error: Timed out 5000ms waiting for expect(locator).toBeVisible()
  ... error details omitted ...

  14 |   await page.goto('https://github.com/login');
> 15 |   await login(page);
     |         ^
  16 | });
```

See
[`test.step()`](https://playwright.dev/docs/api/class-test#test-step)
documentation for a full example.

#### New APIs

-
[`expect(locator).toHaveAttribute(name)`](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-attribute-2)

#### Browser Versions

-   Chromium 119.0.6045.9
-   Mozilla Firefox 118.0.1
-   WebKit 17.4

This version was also tested against the following stable channels:

-   Google Chrome 118
-   Microsoft Edge 118

</details>

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

###
[`v4.4.0`](https://togithub.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#440-2023-10-02)

- fix(plugin-vue): re-create filters after updating options
([#&#8203;246](https://togithub.com/vitejs/vite-plugin-vue/issues/246))
([c383503](https://togithub.com/vitejs/vite-plugin-vue/commit/c383503)),
closes
[#&#8203;246](https://togithub.com/vitejs/vite-plugin-vue/issues/246)
- feat: support generated JS imports for external scoped style
([#&#8203;196](https://togithub.com/vitejs/vite-plugin-vue/issues/196))
([bd5055d](https://togithub.com/vitejs/vite-plugin-vue/commit/bd5055d)),
closes
[#&#8203;196](https://togithub.com/vitejs/vite-plugin-vue/issues/196)
- chore: add `@ts-ignore` when accessing
`legacy?.buildSsrCjsExternalHeuristics`
([#&#8203;255](https://togithub.com/vitejs/vite-plugin-vue/issues/255))
([04c3b0b](https://togithub.com/vitejs/vite-plugin-vue/commit/04c3b0b)),
closes
[#&#8203;255](https://togithub.com/vitejs/vite-plugin-vue/issues/255)
- refactor(plugin-vue): deprecate reactivity transform
([38f8ea5](https://togithub.com/vitejs/vite-plugin-vue/commit/38f8ea5))
- refactor(plugin-vue): use source-map-js
([#&#8203;247](https://togithub.com/vitejs/vite-plugin-vue/issues/247))
([b43690d](https://togithub.com/vitejs/vite-plugin-vue/commit/b43690d)),
closes
[#&#8203;247](https://togithub.com/vitejs/vite-plugin-vue/issues/247)

</details>

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

###
[`v12.9.1`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.9.1)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.9.0...v12.9.1)

##### 👷‍♂️ Patch fixes

- Fixes typo in documentation.
([#&#8203;1123](https://togithub.com/capricorn86/happy-dom/issues/1123))

***

Thank you [@&#8203;goring](https://togithub.com/goring) for your
contribution!

###
[`v12.9.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.9.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.8.1...v12.9.0)

##### 🎨 Features

- Improves performance of the async task manager. This will improve
performance of timers in general as they have less logic executed
related to the async task manager.
([#&#8203;1114](https://togithub.com/capricorn86/happy-dom/issues/1114))

###
[`v12.8.1`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.8.1)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.8.0...v12.8.1)

##### 👷‍♂️ Patch fixes

- Adds missing second parameter in callbacks from `MutationObserver`.
([#&#8203;1113](https://togithub.com/capricorn86/happy-dom/issues/1113))

***

Thank you [@&#8203;wojtekmaj](https://togithub.com/wojtekmaj) for your
contribution!

###
[`v12.8.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.8.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.7.0...v12.8.0)

##### 🎨 Features

- Adds support for `Clipboard`, `ClipboardItem`, `Permissions` and
`PermissionStatus`, which are used by the `Window.navigator.clipboard`
and `Window.navigator.permissions` properties.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Adds support for `ClipboardEvent`.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Improves support for `DataTransfer`, `DataTransferItemList` and
`DataTransferItem`.
([#&#8203;833](https://togithub.com/capricorn86/happy-dom/issues/833))
- Adds `MutationRecord` class to `Window` as a property.
([#&#8203;1112](https://togithub.com/capricorn86/happy-dom/issues/1112))

##### 👷‍♂️ Patch fixes

- Restores `HTMLInputElement.checked` state when
`Event.preventDefault()` is called on a dispatched "click" event.

###
[`v12.7.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.7.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.6.0...v12.7.0)

##### 🎨 Features

- Adds support for `Element.scrollWidth`.
([#&#8203;1109](https://togithub.com/capricorn86/happy-dom/issues/1109))

###
[`v12.6.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.6.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.5.1...v12.6.0)

##### 🎨 Features

- Adds support for dispatching a click event on the control element when
clicking on a label.
([#&#8203;1023](https://togithub.com/capricorn86/happy-dom/issues/1023))

###
[`v12.5.1`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.5.1)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.5.0...v12.5.1)

##### 🎨 Features

- Adds support for `DocumentFragment` as a constructor (e.g. `new
DocumentFragment()`).
([#&#8203;940](https://togithub.com/capricorn86/happy-dom/issues/940))

##### 👷‍♂️ Patch fixes

- Fixes issue related to `ownerDocument` being null when executing
`ownerDocument.createElement()` in React 18. The error occurred when
rendering a Radix UI component. The root cause was that React 18 uses
`DocumentFragment` as a constructor which was not supported.
([#&#8203;940](https://togithub.com/capricorn86/happy-dom/issues/940))

###
[`v12.5.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.5.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.4.0...v12.5.0)

##### 🎨 Features

- Add `FocusEvent.relatedTarget` to blur and focus events.
([#&#8203;1094](https://togithub.com/capricorn86/happy-dom/issues/1094))

***

Thank you [@&#8203;artursvonda](https://togithub.com/artursvonda) for
your contribution!

###
[`v12.4.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.4.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.3.0...v12.4.0)

##### 🎨 Features

- Add support for `Document.currentScript`.
([#&#8203;1099](https://togithub.com/capricorn86/happy-dom/issues/1099))

***

Thank you [@&#8203;ckhampus](https://togithub.com/ckhampus) for your
contribution!

###
[`v12.3.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.3.0)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.2.2...v12.3.0)

##### 🎨 Features

- Uses `vm.Script` for setting globals instead of a string to improve
performance.
([#&#8203;1102](https://togithub.com/capricorn86/happy-dom/issues/1102))

##### 👷‍♂️ Patch fixes

- Improves logic in `Window.happyDOM.whenAsyncComplete()`.
([#&#8203;1102](https://togithub.com/capricorn86/happy-dom/issues/1102))

###
[`v12.2.2`](https://togithub.com/capricorn86/happy-dom/releases/tag/v12.2.2)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v12.2.1...v12.2.2)

##### 👷‍♂️ Patch fixes

- Makes `PointerEvent` implementation more specification compliant.
([#&#8203;1092](https://togithub.com/capricorn86/happy-dom/issues/1092))

***

Thank you [@&#8203;tkrotoff](https://togithub.com/tkrotoff) for your
contribution!

</details>

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

### [`v4.4.11`](https://togithub.com/vitejs/vite/releases/tag/v4.4.11)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v4.4.10...v4.4.11)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.11/packages/vite/CHANGELOG.md)
for details.

### [`v4.4.10`](https://togithub.com/vitejs/vite/releases/tag/v4.4.10)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v4.4.9...v4.4.10)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.4.10/packages/vite/CHANGELOG.md)
for details.

</details>

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

###
[`v1.8.19`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#1819-20231011)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/46ef0d608f43569a8e370d1105bfcf334fcaec13...2e17f3c9cfa827c71e1ed07331730b3ee2596b76)

- feat: no longer checking save time
([#&#8203;3650](https://togithub.com/vuejs/language-tools/issues/3650))
- fix(ts-plugin): tsserver doesnt have updated list of external files
when new vue files are added (required TS 5.3)
([#&#8203;3555](https://togithub.com/vuejs/language-tools/issues/3555))
([#&#8203;3649](https://togithub.com/vuejs/language-tools/issues/3649))
- fix: false positive error when accessing local variables in
defineProps parameter
([#&#8203;3643](https://togithub.com/vuejs/language-tools/issues/3643))
([#&#8203;3644](https://togithub.com/vuejs/language-tools/issues/3644))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)

##### Full-time Support by

<table>
<tbody>
  <tr>
    <td>
<a href="https://stackblitz.com/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/StackBlitz.png"
height="80" /></a>
	</td>
<td><h4><a
href="https://blog.stackblitz.com/posts/webcontainer-api-is-here/">WebContainer
API is here.</a></h4></td>
  </tr>
</tbody>
</table>

##### Our Platinum Sponsors

<table>
<tbody>
  <tr>
    <td>
<a href="https://nuxt.com/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/nuxt.svg"
height="60" /></a>
	</td>
    <td>The Intuitive Web Framework</td>
  </tr>
  <tr>
    <td>
<a href="https://vuejs.org/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/vue.png"
height="80" /></a>
	</td>
    <td>The Progressive JavaScript Framework</td>
  </tr>
</tbody>
</table>

##### Our Silver Sponsors

<table>
<tbody>
  <tr>
    <td>
		<p align="center">
<a href="https://www.prefect.io/"><img
src="https://raw.githubusercontent.com/vuejs/language-tools/HEAD/.github/sponsors/prefect.svg"
height="40" /></a>
</p>
	</td>
  </tr>
</tbody>
</table>

<h5>
	Add you via
<a href="https://togithub.com/sponsors/johnsoncodehk">GitHub
Sponsors</a>
	or
	<a href="https://opencollective.com/volarjs">Open Collective</a>
</h5>

###
[`v1.8.18`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#1818-2023109)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v1.8.17...46ef0d608f43569a8e370d1105bfcf334fcaec13)

##### Upgrade required VSCode version to 1.82.0
([#&#8203;3642](https://togithub.com/vuejs/language-tools/issues/3642))

###
[`v1.8.17`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#1817-2023109)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/f9e281db3f47f9a3f94c79dbbf81102cba01eb5d...v1.8.17)

- fix: extension cannot run on vscode versions lower than 1.82.0
([#&#8203;3631](https://togithub.com/vuejs/language-tools/issues/3631))
([#&#8203;3635](https://togithub.com/vuejs/language-tools/issues/3635))
- fix: make `defineProps` work when reading a property from
`defineProps()`
([#&#8203;3633](https://togithub.com/vuejs/language-tools/issues/3633))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: avoid reading `props` from `__VLS_ctx`
([#&#8203;3636](https://togithub.com/vuejs/language-tools/issues/3636))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: regression with `defineExpose`
([#&#8203;3639](https://togithub.com/vuejs/language-tools/issues/3639))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)

###
[`v1.8.16`](https://togithub.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#1816-2023107)

[Compare
Source](https://togithub.com/vuejs/language-tools/compare/v1.8.15...f9e281db3f47f9a3f94c79dbbf81102cba01eb5d)

- fix: merge default export's properties properly
([#&#8203;3600](https://togithub.com/vuejs/language-tools/issues/3600))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: accurate exposed type with refs in generic component
([#&#8203;3604](https://togithub.com/vuejs/language-tools/issues/3604))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)
- fix: make emits type correct when user assigns emit function a custom
name
([#&#8203;3624](https://togithub.com/vuejs/language-tools/issues/3624))
- thanks [@&#8203;so1ve](https://togithub.com/so1ve)

##### Volar.js 1.10.3 updates:

- fix: performance issue with o(n^2) complexity of `directoryExists()`
([volarjs/volar.js#66)
- thanks [@&#8203;Akryum](https://togithub.com/Akryum)
- fix: directory named "constructor" could crash
([volarjs/volar.js#65)
- thanks [@&#8203;Dmitrigar](https://togithub.com/Dmitrigar),
[@&#8203;franz-bendezu](https://togithub.com/franz-bendezu)

</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://togithub.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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

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
bug Something isn't working good reproduction ✨
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants