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

Issue with vi.spyOn while trying to mock classes #2365

Closed
6 tasks done
darksinge opened this issue Nov 22, 2022 · 3 comments
Closed
6 tasks done

Issue with vi.spyOn while trying to mock classes #2365

darksinge opened this issue Nov 22, 2022 · 3 comments
Labels
documentation Improvements or additions to documentation

Comments

@darksinge
Copy link

darksinge commented Nov 22, 2022

Describe the bug

I'm getting weird behavior with vi.spyOn(...).mockImplementation[Once](...) when spying on a class. I created a minimal example which follows the example in the docs almost exactly.

Typescript is giving me an error on the following snippet of code:

import * as exports from '../src/foo'
vi.spyOn(exports, 'Foo').mockImplementation(() => {
                         ^ typescript: Property 'mockImplementation' does not exist on type 'never'. [2339]
  const Foo = vi.fn()
  Foo.prototype.hello = vi.fn(() => 'world!')
  return { Foo }
})

Vitest happily runs the test anyway and fails with the following error:

TypeError: mock.hello is not a function
 ❯ test/foo.test.ts:13:17
     11|
     12|     const mock = new exports.Foo()
     13|     expect(mock.hello('asdf')).toEqual('hello world!')
       |                 ^
     14|   })
     15| })

Not ruling out user error, but I'm fairly certain the test is set up correctly. I even tried a few variations of the mocked function. Typescript says vi.spyOn(...) is returning the never type, which I think indicates mockImplementation() shouldn't be callable and therefore shouldn't cause any side effects. However, the Foo class still seems to get modified with the removal of its hello() method. I can get around the problem by mocking the entire class, but the docs seem to indicate the repro should work.

Reproduction

https://stackblitz.com/edit/vitest-dev-vitest-avbfj9?file=test/foo.test.ts

System Info

System:
    OS: macOS 13.0.1
    CPU: (8) arm64 Apple M1 Pro
    Memory: 3.16 GB / 32.00 GB
    Shell: 3.5.1 - /opt/homebrew/bin/fish
  Binaries:
    Node: 16.17.1 - ~/.asdf/installs/nodejs/lts/bin/node
    Yarn: 2.4.3 - ~/.nvm/versions/node/v16.3.0/bin/yarn
    npm: 8.15.0 - ~/.asdf/plugins/nodejs/shims/npm
  Browsers:
    Chrome: 107.0.5304.110
    Firefox: 107.0
    Safari: 16.1
  npmPackages:
    vitest: ^0.25.2 => 0.25.2

Used Package Manager

npm

Validations

@sheremet-va
Copy link
Member

sheremet-va commented Nov 22, 2022

almost exactly

What do you mean by almost exactly? mockImplementation expects returned object to be the same shape as the one you are mocking.

I think you are mixing vi.spyOn and vi.mock. The first one spies on an object in runtime, the second one mocks the whole module, so when you import it it exports the object you defined. Maybe we are not clear enough in the documentation about it. But there is also API reference for spyOn.

You need to invoke new class:

vi.spyOn(foo, 'Foo').mockImplementation(() => {
  const Foo = function () {} // there is no reason to return nested mock
  Foo.prototype.hello = vi.fn(() => 'goodbye world');
  return new Foo();
});
// or just
vi.spyOn(foo, 'Foo').mockImplementation(() => {
  return { hello: vi.fn(() => 'goodbye world') }
});

"whatever suites you from first two examples" was referencing different approaches - with prototype or just an object with methods, not factories, and we need to make it more clear.

Typescript is giving me an error on the following snippet of code

This might be a bug, indeed.

@sheremet-va sheremet-va added bug documentation Improvements or additions to documentation labels Nov 22, 2022
@darksinge
Copy link
Author

What do you mean by almost exactly?

Meaning I replaced import * as exports from 'some-path' by importing an actual class with import * as foo from '../src/foo', and replaced // whatever suites you from first two examples with code taken from the two examples, but using return { Foo } instead of return { SomeClass }.

And yes, I got mixed up by the "whatever suites you from first two examples" comment, which both use vi.mock. My example test passed after returning an object like shown in your example, so that part was user error. It didn't feel intuitive that mockImplementation should take a factory method, essentially mocking the behavior of the constructor, rather than mocking the class itself. I can see it now in the API reference, but the examples in the guide threw me off, so I'd agree that clearer documentation would be helpful.

That aside, I still see this error in my editor, even with passing tests:

typescript: Property 'mockImplementation' does not exist on type 'never'. [2339]

@samkevin1
Copy link
Contributor

typescript: Property 'mockImplementation' does not exist on type 'never'. [2339]

Hey! I opened a PR for this typescript bug. Could you please check it @sheremet-va?

renovate bot added a commit to fwouts/previewjs that referenced this issue Jan 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 |
|---|---|---|---|---|---|
| [vitest](https://togithub.com/vitest-dev/vitest) | [`^0.26.3` ->
`^0.27.1`](https://renovatebot.com/diffs/npm/vitest/0.26.3/0.27.1) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/compatibility-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/confidence-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.27.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.1)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

#####    🚀 Features

- Show error, when process.exit is called  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2643
[<samp>(866f4)</samp>](https://togithub.com/vitest-dev/vitest/commit/866f4494)
- Add more information about unhandler error  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2642
[<samp>(1ffb0)</samp>](https://togithub.com/vitest-dev/vitest/commit/1ffb0ef5)
- Display running processes, if vitest closes with timeout  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2633
[<samp>(94968)</samp>](https://togithub.com/vitest-dev/vitest/commit/94968a6f)

#####    🐞 Bug Fixes

- Type issue with spyOn method  -  by
[@&#8203;samkevin1](https://togithub.com/samkevin1) in
[vitest-dev/vitest#2365
and
[vitest-dev/vitest#2582
[<samp>(1aaa7)</samp>](https://togithub.com/vitest-dev/vitest/commit/1aaa79d7)
- Add missing types in TS project when global is true  -  by
[@&#8203;Sneaken](https://togithub.com/Sneaken) in
[vitest-dev/vitest#2631
[<samp>(4745e)</samp>](https://togithub.com/vitest-dev/vitest/commit/4745eaa2)
- Always report failed test in junit reporter  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2632
[<samp>(83da2)</samp>](https://togithub.com/vitest-dev/vitest/commit/83da2ec4)
- Change Vite root, if test.root is used  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2637
[<samp>(efbff)</samp>](https://togithub.com/vitest-dev/vitest/commit/efbff2a2)
- Don't use ownKeys, when interoping a module  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2629
[<samp>(a186a)</samp>](https://togithub.com/vitest-dev/vitest/commit/a186a7e1)
- Cut duplicate error in negated toHaveBeenCalled  -  by
[@&#8203;richardboehme](https://togithub.com/richardboehme) in
[vitest-dev/vitest#2638
[<samp>(09d62)</samp>](https://togithub.com/vitest-dev/vitest/commit/09d62226)
- Always update last HMR ms on a module  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(99676)</samp>](https://togithub.com/vitest-dev/vitest/commit/9967645a)
- Terminate workers, when closing process  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2645
[<samp>(ece43)</samp>](https://togithub.com/vitest-dev/vitest/commit/ece434a3)
-   **coverage**:
- Prevent c8 from crashing on invalid sourcemaps  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[vitest-dev/vitest#2634
[<samp>(0163d)</samp>](https://togithub.com/vitest-dev/vitest/commit/0163dc80)
- Istanbul provider to use `coverage.extension`  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[vitest-dev/vitest#2641
[<samp>(7e388)</samp>](https://togithub.com/vitest-dev/vitest/commit/7e388903)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

###
[`v0.27.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.0)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.26.3...v0.27.0)

#####    🚨 Breaking Changes

- Deprecate "error" on result, store errors in "errors"  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2586
[<samp>(e641a)</samp>](https://togithub.com/vitest-dev/vitest/commit/e641a110)
- Split vitest into separate packages, but still bundle them for the
time being  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2575
[<samp>(c8e6f)</samp>](https://togithub.com/vitest-dev/vitest/commit/c8e6fb69)

#####    🚀 Features

- **coverage**: report only changed files when using istanbul coverage
with watch mode  -  by [@&#8203;g4rry420](https://togithub.com/g4rry420)
in
[vitest-dev/vitest#2385
[<samp>(bf872)</samp>](https://togithub.com/vitest-dev/vitest/commit/bf87282c)

#####    🐞 Bug Fixes

- Return mock path only when mocked  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2619
[<samp>(f8ac2)</samp>](https://togithub.com/vitest-dev/vitest/commit/f8ac2094)
- Allow mocking CJS module with interoped default  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2598
[<samp>(6b3e3)</samp>](https://togithub.com/vitest-dev/vitest/commit/6b3e36d4)
- Avoid random ENOTEMPTY errors  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[vitest-dev/vitest#2620
[<samp>(59766)</samp>](https://togithub.com/vitest-dev/vitest/commit/59766fa4)
- Always inline assets and modules with special Vite queries  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2617
[<samp>(fed1c)</samp>](https://togithub.com/vitest-dev/vitest/commit/fed1cd60)
-   **cli**:
- Allow overrides reporter via cli option  -  by
[@&#8203;mysteryven](https://togithub.com/mysteryven) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2573
[<samp>(894f1)</samp>](https://togithub.com/vitest-dev/vitest/commit/894f155a)
-   **coverage**:
- Flaky c8 coverage caused by parallel sourcemap constructing  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2591
[<samp>(9a29f)</samp>](https://togithub.com/vitest-dev/vitest/commit/9a29f984)
- Validate extension, when reporting c8 coverage  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2626
[<samp>(74463)</samp>](https://togithub.com/vitest-dev/vitest/commit/7446370c)

#####    🏎 Performance

- Improve vi.mock performance  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2594
[<samp>(09d19)</samp>](https://togithub.com/vitest-dev/vitest/commit/09d19892)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.26.3...v0.27.0)

</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 this update
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://app.renovatebot.com/dashboard#github/fwouts/previewjs).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to Unleash/unleash that referenced this issue Jan 19, 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 |
|---|---|---|---|---|---|
| [vitest](https://togithub.com/vitest-dev/vitest) | [`0.27.0` ->
`0.27.1`](https://renovatebot.com/diffs/npm/vitest/0.27.0/0.27.1) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/compatibility-slim/0.27.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.27.1/confidence-slim/0.27.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.27.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.1)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

#####    🚀 Features

- Show error, when process.exit is called  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2643
[<samp>(866f4)</samp>](https://togithub.com/vitest-dev/vitest/commit/866f4494)
- Add more information about unhandler error  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2642
[<samp>(1ffb0)</samp>](https://togithub.com/vitest-dev/vitest/commit/1ffb0ef5)
- Display running processes, if vitest closes with timeout  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2633
[<samp>(94968)</samp>](https://togithub.com/vitest-dev/vitest/commit/94968a6f)

#####    🐞 Bug Fixes

- Type issue with spyOn method  -  by
[@&#8203;samkevin1](https://togithub.com/samkevin1) in
[vitest-dev/vitest#2365
and
[vitest-dev/vitest#2582
[<samp>(1aaa7)</samp>](https://togithub.com/vitest-dev/vitest/commit/1aaa79d7)
- Add missing types in TS project when global is true  -  by
[@&#8203;Sneaken](https://togithub.com/Sneaken) in
[vitest-dev/vitest#2631
[<samp>(4745e)</samp>](https://togithub.com/vitest-dev/vitest/commit/4745eaa2)
- Always report failed test in junit reporter  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2632
[<samp>(83da2)</samp>](https://togithub.com/vitest-dev/vitest/commit/83da2ec4)
- Change Vite root, if test.root is used  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2637
[<samp>(efbff)</samp>](https://togithub.com/vitest-dev/vitest/commit/efbff2a2)
- Don't use ownKeys, when interoping a module  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2629
[<samp>(a186a)</samp>](https://togithub.com/vitest-dev/vitest/commit/a186a7e1)
- Cut duplicate error in negated toHaveBeenCalled  -  by
[@&#8203;richardboehme](https://togithub.com/richardboehme) in
[vitest-dev/vitest#2638
[<samp>(09d62)</samp>](https://togithub.com/vitest-dev/vitest/commit/09d62226)
- Always update last HMR ms on a module  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(99676)</samp>](https://togithub.com/vitest-dev/vitest/commit/9967645a)
- Terminate workers, when closing process  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[vitest-dev/vitest#2645
[<samp>(ece43)</samp>](https://togithub.com/vitest-dev/vitest/commit/ece434a3)
-   **coverage**:
- Prevent c8 from crashing on invalid sourcemaps  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[vitest-dev/vitest#2634
[<samp>(0163d)</samp>](https://togithub.com/vitest-dev/vitest/commit/0163dc80)
- Istanbul provider to use `coverage.extension`  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[vitest-dev/vitest#2641
[<samp>(7e388)</samp>](https://togithub.com/vitest-dev/vitest/commit/7e388903)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

</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 this update
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://app.renovatebot.com/dashboard#github/Unleash/unleash).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
andipaetzold pushed a commit to andipaetzold/react-firehooks that referenced this issue Feb 10, 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 |
|---|---|---|---|---|---|
| [@tsconfig/recommended](https://togithub.com/tsconfig/bases) |
[`1.0.1` ->
`1.0.2`](https://renovatebot.com/diffs/npm/@tsconfig%2frecommended/1.0.1/1.0.2)
|
[![age](https://badges.renovateapi.com/packages/npm/@tsconfig%2frecommended/1.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@tsconfig%2frecommended/1.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@tsconfig%2frecommended/1.0.2/compatibility-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@tsconfig%2frecommended/1.0.2/confidence-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.0.26` ->
`18.0.27`](https://renovatebot.com/diffs/npm/@types%2freact/18.0.26/18.0.27)
|
[![age](https://badges.renovateapi.com/packages/npm/@types%2freact/18.0.27/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@types%2freact/18.0.27/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@types%2freact/18.0.27/compatibility-slim/18.0.26)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@types%2freact/18.0.27/confidence-slim/18.0.26)](https://docs.renovatebot.com/merge-confidence/)
|
| [@vitest/coverage-c8](https://togithub.com/vitest-dev/vitest) |
[`0.26.3` ->
`0.28.4`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-c8/0.26.3/0.28.4)
|
[![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.28.4/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.28.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.28.4/compatibility-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.28.4/confidence-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://togithub.com/capricorn86/happy-dom) | [`8.1.1` ->
`8.2.6`](https://renovatebot.com/diffs/npm/happy-dom/8.1.1/8.2.6) |
[![age](https://badges.renovateapi.com/packages/npm/happy-dom/8.2.6/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/happy-dom/8.2.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/happy-dom/8.2.6/compatibility-slim/8.1.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/happy-dom/8.2.6/confidence-slim/8.1.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [lint-staged](https://togithub.com/okonet/lint-staged) | [`13.1.0` ->
`13.1.1`](https://renovatebot.com/diffs/npm/lint-staged/13.1.0/13.1.1) |
[![age](https://badges.renovateapi.com/packages/npm/lint-staged/13.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/lint-staged/13.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/lint-staged/13.1.1/compatibility-slim/13.1.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/lint-staged/13.1.1/confidence-slim/13.1.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [prettier](https://prettier.io)
([source](https://togithub.com/prettier/prettier)) | [`2.8.1` ->
`2.8.4`](https://renovatebot.com/diffs/npm/prettier/2.8.1/2.8.4) |
[![age](https://badges.renovateapi.com/packages/npm/prettier/2.8.4/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/prettier/2.8.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/prettier/2.8.4/compatibility-slim/2.8.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/prettier/2.8.4/confidence-slim/2.8.1)](https://docs.renovatebot.com/merge-confidence/)
|
|
[semantic-release](https://togithub.com/semantic-release/semantic-release)
| [`20.0.0` ->
`20.1.0`](https://renovatebot.com/diffs/npm/semantic-release/20.0.0/20.1.0)
|
[![age](https://badges.renovateapi.com/packages/npm/semantic-release/20.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/semantic-release/20.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/semantic-release/20.1.0/compatibility-slim/20.0.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/semantic-release/20.1.0/confidence-slim/20.0.0)](https://docs.renovatebot.com/merge-confidence/)
|
| [typedoc](https://typedoc.org)
([source](https://togithub.com/TypeStrong/TypeDoc)) | [`0.23.23` ->
`0.23.24`](https://renovatebot.com/diffs/npm/typedoc/0.23.23/0.23.24) |
[![age](https://badges.renovateapi.com/packages/npm/typedoc/0.23.24/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/typedoc/0.23.24/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/typedoc/0.23.24/compatibility-slim/0.23.23)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/typedoc/0.23.24/confidence-slim/0.23.23)](https://docs.renovatebot.com/merge-confidence/)
|
| [typescript](https://www.typescriptlang.org/)
([source](https://togithub.com/Microsoft/TypeScript)) | [`4.9.4` ->
`4.9.5`](https://renovatebot.com/diffs/npm/typescript/4.9.4/4.9.5) |
[![age](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/compatibility-slim/4.9.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/confidence-slim/4.9.4)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://togithub.com/vitest-dev/vitest) | [`0.26.3` ->
`0.28.4`](https://renovatebot.com/diffs/npm/vitest/0.26.3/0.28.4) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.28.4/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.28.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.28.4/compatibility-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.28.4/confidence-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.28.4`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.4)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.3...v0.28.4)

#####    🐞 Bug Fixes

- Setup correct utils inside asymmetric matchers  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2768](https://togithub.com/vitest-dev/vitest/issues/2768)
[<samp>(415c8)</samp>](https://togithub.com/vitest-dev/vitest/commit/415c8a93)
- Cjs exports has Object.prototype instead of null  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2769](https://togithub.com/vitest-dev/vitest/issues/2769)
[<samp>(4fc49)</samp>](https://togithub.com/vitest-dev/vitest/commit/4fc492c6)
- Duplicate callbacks in vite-node HMR  -  by
[@&#8203;jgoux](https://togithub.com/jgoux) in
[https://github.com/vitest-dev/vitest/issues/2792](https://togithub.com/vitest-dev/vitest/issues/2792)
[<samp>(f0333)</samp>](https://togithub.com/vitest-dev/vitest/commit/f03337ae)
- Do not include source files in `onWatcherStart` when
`typecheck.ignoreSourceErrors` is true  -  by
[@&#8203;mascii](https://togithub.com/mascii) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2774](https://togithub.com/vitest-dev/vitest/issues/2774)
[<samp>(d612e)</samp>](https://togithub.com/vitest-dev/vitest/commit/d612efdf)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.3...v0.28.4)

###
[`v0.28.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.3)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.2...v0.28.3)

#####    🚀 Features

- Allow using atomics to communicate between threads  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2758](https://togithub.com/vitest-dev/vitest/issues/2758)
[<samp>(3679c)</samp>](https://togithub.com/vitest-dev/vitest/commit/3679cf25)
- Show active filename pattern on CLI  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio)
[<samp>(a0455)</samp>](https://togithub.com/vitest-dev/vitest/commit/a0455917)
- Show active test name pattern on CLI  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio)
[<samp>(df7c4)</samp>](https://togithub.com/vitest-dev/vitest/commit/df7c410a)
- Allow `config` option to be false  -  by
[@&#8203;antfu](https://togithub.com/antfu) in
[https://github.com/vitest-dev/vitest/issues/2749](https://togithub.com/vitest-dev/vitest/issues/2749)
[<samp>(c66e3)</samp>](https://togithub.com/vitest-dev/vitest/commit/c66e335b)

#####    🐞 Bug Fixes

- Watch mode's filename pattern to persist on unrelated file changes  - 
by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio)
[<samp>(712ac)</samp>](https://togithub.com/vitest-dev/vitest/commit/712ac15b)
- Watch mode's filename pattern to persist re-run of failed tests,
snapshot updates and testname filter changes  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio)
[<samp>(1c65a)</samp>](https://togithub.com/vitest-dev/vitest/commit/1c65ac48)
- Dont incorrectly mark run failed if filename pattern excludes
previously failed tests  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio)
[<samp>(61cf9)</samp>](https://togithub.com/vitest-dev/vitest/commit/61cf9a7a)
- **coverage**: Istanbul crashes when no tests were run  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/2753](https://togithub.com/vitest-dev/vitest/issues/2753)
[<samp>(ebc95)</samp>](https://togithub.com/vitest-dev/vitest/commit/ebc95add)

#####    🏎 Performance

- Don't import vite in worker  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2759](https://togithub.com/vitest-dev/vitest/issues/2759)
[<samp>(e49c1)</samp>](https://togithub.com/vitest-dev/vitest/commit/e49c13fa)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.2...v0.28.3)

###
[`v0.28.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.2)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.1...v0.28.2)

#####    🐞 Bug Fixes

- Send stderr header log to stderr  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2736](https://togithub.com/vitest-dev/vitest/issues/2736)
[<samp>(998ea)</samp>](https://togithub.com/vitest-dev/vitest/commit/998ea804)
- Call afterAll, if beforeAll failed  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2737](https://togithub.com/vitest-dev/vitest/issues/2737)
[<samp>(1904c)</samp>](https://togithub.com/vitest-dev/vitest/commit/1904c9c4)
- **vite-node**: Don't cache modules with `timestamp: 0`  -  by
[@&#8203;danielroe](https://togithub.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/2747](https://togithub.com/vitest-dev/vitest/issues/2747)
[<samp>(e88c0)</samp>](https://togithub.com/vitest-dev/vitest/commit/e88c04c4)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.1...v0.28.2)

###
[`v0.28.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.1)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.0...v0.28.1)

#####    🐞 Bug Fixes

- Remove UI from Vitest dependencies  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(b120c)</samp>](https://togithub.com/vitest-dev/vitest/commit/b120ca3f)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.0...v0.28.1)

###
[`v0.28.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.0)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.3...v0.28.0)

#####    🚨 Breaking Changes

- Don't rely on environment for interopDefault  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2682](https://togithub.com/vitest-dev/vitest/issues/2682)
[<samp>(3f20c)</samp>](https://togithub.com/vitest-dev/vitest/commit/3f20cf5a)
- Move test runner into a separate package  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2721](https://togithub.com/vitest-dev/vitest/issues/2721)
[<samp>(482b7)</samp>](https://togithub.com/vitest-dev/vitest/commit/482b72fc)
- To extend text context, you need to augment `@vitet/runner` package
instead of `vitest`

#####    🐞 Bug Fixes

- **coverage**: C8 to log warning when run in Stackblitz  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/2735](https://togithub.com/vitest-dev/vitest/issues/2735)
[<samp>(b6c41)</samp>](https://togithub.com/vitest-dev/vitest/commit/b6c41caa)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.3...v0.28.0)

###
[`v0.27.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.3)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.2...v0.27.3)

#####    🚀 Features

- Throw unhandled exception, if code throws "error" event  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2691](https://togithub.com/vitest-dev/vitest/issues/2691)
[<samp>(6a30c)</samp>](https://togithub.com/vitest-dev/vitest/commit/6a30cdd3)
- New `environmentMatchGlobs` option to auto infer env based on glob  - 
by [@&#8203;antfu](https://togithub.com/antfu) in
[https://github.com/vitest-dev/vitest/issues/2714](https://togithub.com/vitest-dev/vitest/issues/2714)
[<samp>(3e142)</samp>](https://togithub.com/vitest-dev/vitest/commit/3e1429e5)
- Add basic reporter which allow user to use reporter in ci  -  by
[@&#8203;trim21](https://togithub.com/trim21) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2612](https://togithub.com/vitest-dev/vitest/issues/2612)
[<samp>(5df52)</samp>](https://togithub.com/vitest-dev/vitest/commit/5df522f7)
- Improve "isCI" check  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2705](https://togithub.com/vitest-dev/vitest/issues/2705)
[<samp>(e6457)</samp>](https://togithub.com/vitest-dev/vitest/commit/e64570df)

#####    🐞 Bug Fixes

- Show error in the terminal, if "only" flag is used  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2696](https://togithub.com/vitest-dev/vitest/issues/2696)
[<samp>(24d63)</samp>](https://togithub.com/vitest-dev/vitest/commit/24d63809)
- Cpu and heap profiling options for workers  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/2702](https://togithub.com/vitest-dev/vitest/issues/2702)
[<samp>(c31a0)</samp>](https://togithub.com/vitest-dev/vitest/commit/c31a0b20)
- Show correct number of tests in test summary  -  by
[@&#8203;poyoho](https://togithub.com/poyoho) in
[https://github.com/vitest-dev/vitest/issues/2703](https://togithub.com/vitest-dev/vitest/issues/2703)
[<samp>(859e7)</samp>](https://togithub.com/vitest-dev/vitest/commit/859e7f01)
- Don't terminate workers on Node 14 to not trigger fatal error  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2697](https://togithub.com/vitest-dev/vitest/issues/2697)
[<samp>(db9b6)</samp>](https://togithub.com/vitest-dev/vitest/commit/db9b6bb7)
- Allow custom async matchers  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2707](https://togithub.com/vitest-dev/vitest/issues/2707)
[<samp>(b5669)</samp>](https://togithub.com/vitest-dev/vitest/commit/b566912d)
- Remove setup files from coverage  -  by
[@&#8203;g4rry420](https://togithub.com/g4rry420) in
[https://github.com/vitest-dev/vitest/issues/2574](https://togithub.com/vitest-dev/vitest/issues/2574)
[<samp>(488e4)</samp>](https://togithub.com/vitest-dev/vitest/commit/488e4b9f)
- `reportCoverage` context can be optional  -  by
[@&#8203;antfu](https://togithub.com/antfu)
[<samp>(4cd1e)</samp>](https://togithub.com/vitest-dev/vitest/commit/4cd1e5d7)
- ENOENT assets when htmldir exists  -  by
[@&#8203;everett1992](https://togithub.com/everett1992) in
[https://github.com/vitest-dev/vitest/issues/2701](https://togithub.com/vitest-dev/vitest/issues/2701)
[<samp>(5a656)</samp>](https://togithub.com/vitest-dev/vitest/commit/5a656753)
- Correctly resolve paths relative to root, when used outside of root
directory  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va)
in
[https://github.com/vitest-dev/vitest/issues/2687](https://togithub.com/vitest-dev/vitest/issues/2687)
[<samp>(703aa)</samp>](https://togithub.com/vitest-dev/vitest/commit/703aab46)
- **typecheck**: Store tmp tsconfig close to original one  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2660](https://togithub.com/vitest-dev/vitest/issues/2660)
[<samp>(26f91)</samp>](https://togithub.com/vitest-dev/vitest/commit/26f915ad)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.2...v0.27.3)

###
[`v0.27.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.2)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.1...v0.27.2)

#####    🚀 Features

- Add runAllTimersAsync from sinonjs  -  by
[@&#8203;guillaumeduboc](https://togithub.com/guillaumeduboc) in
[https://github.com/vitest-dev/vitest/issues/2209](https://togithub.com/vitest-dev/vitest/issues/2209)
[<samp>(40187)</samp>](https://togithub.com/vitest-dev/vitest/commit/40187bdb)

#####    🐞 Bug Fixes

- Document.defaultView references the same window as the global one  - 
by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2649](https://togithub.com/vitest-dev/vitest/issues/2649)
[<samp>(1ac4b)</samp>](https://togithub.com/vitest-dev/vitest/commit/1ac4bb8d)
- Trim input filename and test name  -  by
[@&#8203;btea](https://togithub.com/btea) in
[https://github.com/vitest-dev/vitest/issues/2650](https://togithub.com/vitest-dev/vitest/issues/2650)
[<samp>(d3dcb)</samp>](https://togithub.com/vitest-dev/vitest/commit/d3dcbdc8)
- Increase default teardownTimeout  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(13e53)</samp>](https://togithub.com/vitest-dev/vitest/commit/13e53ac7)
- Mock css files imported with "require"  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2679](https://togithub.com/vitest-dev/vitest/issues/2679)
[<samp>(6c1a2)</samp>](https://togithub.com/vitest-dev/vitest/commit/6c1a26a6)
- Don't start watching files in "run" mode  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2680](https://togithub.com/vitest-dev/vitest/issues/2680)
[<samp>(0a31e)</samp>](https://togithub.com/vitest-dev/vitest/commit/0a31e85c)
- Rerun tests, when setup file is edited  -  by
[@&#8203;mysteryven](https://togithub.com/mysteryven) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2625](https://togithub.com/vitest-dev/vitest/issues/2625)
[<samp>(019a6)</samp>](https://togithub.com/vitest-dev/vitest/commit/019a6d57)
- Always show filename for unhandled errors  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2689](https://togithub.com/vitest-dev/vitest/issues/2689)
[<samp>(15aa0)</samp>](https://togithub.com/vitest-dev/vitest/commit/15aa0156)
- Define property instead of assigning it in vi.stubGlobal  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2685](https://togithub.com/vitest-dev/vitest/issues/2685)
[<samp>(8a1d7)</samp>](https://togithub.com/vitest-dev/vitest/commit/8a1d7590)
- **coverage**: Watch mode to use `coverage.all` only when all tests are
run  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/2665](https://togithub.com/vitest-dev/vitest/issues/2665)
[<samp>(85096)</samp>](https://togithub.com/vitest-dev/vitest/commit/85096281)
- **typecheck**: Log tests with verbose reporter, correctly show "pass"
tests  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2656](https://togithub.com/vitest-dev/vitest/issues/2656)
[<samp>(61dde)</samp>](https://togithub.com/vitest-dev/vitest/commit/61ddebae)
- **ui**: Don't show "connecting" screen in html reporter  -  by
[@&#8203;poyoho](https://togithub.com/poyoho) in
[https://github.com/vitest-dev/vitest/issues/2693](https://togithub.com/vitest-dev/vitest/issues/2693)
[<samp>(d8548)</samp>](https://togithub.com/vitest-dev/vitest/commit/d8548c69)

#####    🏎 Performance

- Don't resolve import path, if it was already resolved  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2659](https://togithub.com/vitest-dev/vitest/issues/2659)
[<samp>(45cc3)</samp>](https://togithub.com/vitest-dev/vitest/commit/45cc3423)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.1...v0.27.2)

###
[`v0.27.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.1)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

#####    🚀 Features

- Show error, when process.exit is called  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2643](https://togithub.com/vitest-dev/vitest/issues/2643)
[<samp>(866f4)</samp>](https://togithub.com/vitest-dev/vitest/commit/866f4494)
- Add more information about unhandler error  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2642](https://togithub.com/vitest-dev/vitest/issues/2642)
[<samp>(1ffb0)</samp>](https://togithub.com/vitest-dev/vitest/commit/1ffb0ef5)
- Display running processes, if vitest closes with timeout  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2633](https://togithub.com/vitest-dev/vitest/issues/2633)
[<samp>(94968)</samp>](https://togithub.com/vitest-dev/vitest/commit/94968a6f)

#####    🐞 Bug Fixes

- Type issue with spyOn method  -  by
[@&#8203;samkevin1](https://togithub.com/samkevin1) in
[https://github.com/vitest-dev/vitest/issues/2365](https://togithub.com/vitest-dev/vitest/issues/2365)
and
[https://github.com/vitest-dev/vitest/issues/2582](https://togithub.com/vitest-dev/vitest/issues/2582)
[<samp>(1aaa7)</samp>](https://togithub.com/vitest-dev/vitest/commit/1aaa79d7)
- Add missing types in TS project when global is true  -  by
[@&#8203;Sneaken](https://togithub.com/Sneaken) in
[https://github.com/vitest-dev/vitest/issues/2631](https://togithub.com/vitest-dev/vitest/issues/2631)
[<samp>(4745e)</samp>](https://togithub.com/vitest-dev/vitest/commit/4745eaa2)
- Always report failed test in junit reporter  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2632](https://togithub.com/vitest-dev/vitest/issues/2632)
[<samp>(83da2)</samp>](https://togithub.com/vitest-dev/vitest/commit/83da2ec4)
- Change Vite root, if test.root is used  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2637](https://togithub.com/vitest-dev/vitest/issues/2637)
[<samp>(efbff)</samp>](https://togithub.com/vitest-dev/vitest/commit/efbff2a2)
- Don't use ownKeys, when interoping a module  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2629](https://togithub.com/vitest-dev/vitest/issues/2629)
[<samp>(a186a)</samp>](https://togithub.com/vitest-dev/vitest/commit/a186a7e1)
- Cut duplicate error in negated toHaveBeenCalled  -  by
[@&#8203;richardboehme](https://togithub.com/richardboehme) in
[https://github.com/vitest-dev/vitest/issues/2638](https://togithub.com/vitest-dev/vitest/issues/2638)
[<samp>(09d62)</samp>](https://togithub.com/vitest-dev/vitest/commit/09d62226)
- Always update last HMR ms on a module  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va)
[<samp>(99676)</samp>](https://togithub.com/vitest-dev/vitest/commit/9967645a)
- Terminate workers, when closing process  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2645](https://togithub.com/vitest-dev/vitest/issues/2645)
[<samp>(ece43)</samp>](https://togithub.com/vitest-dev/vitest/commit/ece434a3)
-   **coverage**:
- Prevent c8 from crashing on invalid sourcemaps  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/2634](https://togithub.com/vitest-dev/vitest/issues/2634)
[<samp>(0163d)</samp>](https://togithub.com/vitest-dev/vitest/commit/0163dc80)
- Istanbul provider to use `coverage.extension`  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/2641](https://togithub.com/vitest-dev/vitest/issues/2641)
[<samp>(7e388)</samp>](https://togithub.com/vitest-dev/vitest/commit/7e388903)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

###
[`v0.27.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.0)

[Compare
Source](https://togithub.com/vitest-dev/vitest/compare/v0.26.3...v0.27.0)

#####    🚨 Breaking Changes

- Deprecate "error" on result, store errors in "errors"  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2586](https://togithub.com/vitest-dev/vitest/issues/2586)
[<samp>(e641a)</samp>](https://togithub.com/vitest-dev/vitest/commit/e641a110)
- Split vitest into separate packages, but still bundle them for the
time being  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2575](https://togithub.com/vitest-dev/vitest/issues/2575)
[<samp>(c8e6f)</samp>](https://togithub.com/vitest-dev/vitest/commit/c8e6fb69)

#####    🚀 Features

- **coverage**: report only changed files when using istanbul coverage
with watch mode  -  by [@&#8203;g4rry420](https://togithub.com/g4rry420)
in
[https://github.com/vitest-dev/vitest/issues/2385](https://togithub.com/vitest-dev/vitest/issues/2385)
[<samp>(bf872)</samp>](https://togithub.com/vitest-dev/vitest/commit/bf87282c)

#####    🐞 Bug Fixes

- Return mock path only when mocked  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2619](https://togithub.com/vitest-dev/vitest/issues/2619)
[<samp>(f8ac2)</samp>](https://togithub.com/vitest-dev/vitest/commit/f8ac2094)
- Allow mocking CJS module with interoped default  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2598](https://togithub.com/vitest-dev/vitest/issues/2598)
[<samp>(6b3e3)</samp>](https://togithub.com/vitest-dev/vitest/commit/6b3e36d4)
- Avoid random ENOTEMPTY errors  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/2620](https://togithub.com/vitest-dev/vitest/issues/2620)
[<samp>(59766)</samp>](https://togithub.com/vitest-dev/vitest/commit/59766fa4)
- Always inline assets and modules with special Vite queries  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2617](https://togithub.com/vitest-dev/vitest/issues/2617)
[<samp>(fed1c)</samp>](https://togithub.com/vitest-dev/vitest/commit/fed1cd60)
-   **cli**:
- Allow overrides reporter via cli option  -  by
[@&#8203;mysteryven](https://togithub.com/mysteryven) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2573](https://togithub.com/vitest-dev/vitest/issues/2573)
[<samp>(894f1)</samp>](https://togithub.com/vitest-dev/vitest/commit/894f155a)
-   **coverage**:
- Flaky c8 coverage caused by parallel sourcemap constructing  -  by
[@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) and
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2591](https://togithub.com/vitest-dev/vitest/issues/2591)
[<samp>(9a29f)</samp>](https://togithub.com/vitest-dev/vitest/commit/9a29f984)
- Validate extension, when reporting c8 coverage  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2626](https://togithub.com/vitest-dev/vitest/issues/2626)
[<samp>(74463)</samp>](https://togithub.com/vitest-dev/vitest/commit/7446370c)

#####    🏎 Performance

- Improve vi.mock performance  -  by
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2594](https://togithub.com/vitest-dev/vitest/issues/2594)
[<samp>(09d19)</samp>](https://togithub.com/vitest-dev/vitest/commit/09d19892)

#####     [View changes on
GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.26.3...v0.27.0)

</details>

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

###
[`v8.2.6`](https://togithub.com/capricorn86/happy-dom/compare/v8.2.5...v8.2.6)

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.2.5...v8.2.6)

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

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.2.4...v8.2.5)

##### :construction_worker_man: Patch fixes

- Adds support for passing arguments to the callback in
`Window.setTimeout()` and `Window.setInterval()`.
([#&#8203;712](https://togithub.com/capricorn86/happy-dom/issues/712))

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

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.2.3...v8.2.4)

##### :construction_worker_man: Patch fixes

- Fixes handling of falsy values in `CustomEvent.detail`.
([#&#8203;701](https://togithub.com/capricorn86/happy-dom/issues/701))

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

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

##### :construction_worker_man: Patch fixes

- Properly detect ShadowRoot boundary when constructing composed path in
`Event.composedPath()`.
([#&#8203;709](https://togithub.com/capricorn86/happy-dom/issues/709))

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

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

##### :construction_worker_man: Patch fixes

- Fixes an issue in `MutationObserver.disconnect()` where it throws an
error if `MutationObserver.observe()` has not been called first.
([#&#8203;659](https://togithub.com/capricorn86/happy-dom/issues/659))

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

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

##### :construction_worker_man: Patch fixes

- Upgrades Jest dependencies to 29.4.0.
([#&#8203;697](https://togithub.com/capricorn86/happy-dom/issues/697))

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

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.1.5...v8.2.0)

##### :art: Features

- Renames `NodeUtility.nodeEquals()` to `NodeUtility.isEqualNode()` to
make it easier to find, as `isEqualNode` is how it is named in the spec.
([#&#8203;656](https://togithub.com/capricorn86/happy-dom/issues/656))

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

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.1.4...v8.1.5)

##### :construction_worker_man: Patch fixes

- Renames the `conditionalText` property to `conditionText` in
`CSSContainerRule` and `CSSMediaRule` according to spec.
([#&#8203;692](https://togithub.com/capricorn86/happy-dom/issues/692))

##### :art: Features

- Adds support for `CSSSupportsRule` (`@supports`) to the CSS parser.
([#&#8203;693](https://togithub.com/capricorn86/happy-dom/issues/693))

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

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.1.3...v8.1.4)

##### :construction_worker_man: Patch fixes

- Returns the correct result when deleting a property in
`HTMLElement.dataset`.
([#&#8203;652](https://togithub.com/capricorn86/happy-dom/issues/652))

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

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.1.2...v8.1.3)

##### :construction_worker_man: Patch fixes

- Fixed infinite loop bug when there is no number before "n" in an
":nth-child" query selector.
([#&#8203;686](https://togithub.com/capricorn86/happy-dom/issues/686))

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

[Compare
Source](https://togithub.com/capricorn86/happy-dom/compare/v8.1.1...v8.1.2)

##### :construction_worker_man: Patch fixes

- Adds support for `Window.scrollX`, `Window.scrollY`,
`Window.pageXOffset` and `Window.pageYOffset`.
([#&#8203;681](https://togithub.com/capricorn86/happy-dom/issues/681))

</details>

<details>
<summary>okonet/lint-staged</summary>

###
[`v13.1.1`](https://togithub.com/okonet/lint-staged/releases/tag/v13.1.1)

[Compare
Source](https://togithub.com/okonet/lint-staged/compare/v13.1.0...v13.1.1)

##### Bug Fixes

- allow re-enabling `--stash` when using the `--diff` option
([99390c3](https://togithub.com/okonet/lint-staged/commit/99390c31a856154e380f04d5c3603d2e6428f1e5))

</details>

<details>
<summary>prettier/prettier</summary>

###
[`v2.8.4`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;284)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.3...2.8.4)

[diff](https://togithub.com/prettier/prettier/compare/2.8.3...2.8.4)

##### Fix leading comments in mapped types with `readonly`
([#&#8203;13427](https://togithub.com/prettier/prettier/pull/13427) by
[@&#8203;thorn0](https://togithub.com/thorn0),
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```tsx
// Input
type Type = {
  // comment
  readonly [key in Foo];
};

// Prettier 2.8.3
type Type = {
  readonly // comment
  [key in Foo];
};

// Prettier 2.8.4
type Type = {
  // comment
  readonly [key in Foo];
};
```

##### Group params in opening block statements
([#&#8203;14067](https://togithub.com/prettier/prettier/pull/14067) by
[@&#8203;jamescdavis](https://togithub.com/jamescdavis))

This is a follow-up to
[#&#8203;13930](https://togithub.com/prettier/prettier/issues/13930) to
establish wrapping consistency between opening block statements and else
blocks by
grouping params in opening blocks. This causes params to break to a new
line together and not be split across lines
unless the length of params exceeds the print width. This also updates
the else block wrapping to behave exactly the
same as opening blocks.

<!-- prettier-ignore -->

```hbs
{{! Input }}
{{#block param param param param param param param param param param as |blockParam|}}
  Hello
{{else block param param param param param param param param param param as |blockParam|}}
  There
{{/block}}

{{! Prettier 2.8.3 }}
{{#block
  param
  param
  param
  param
  param
  param
  param
  param
  param
  param
  as |blockParam|
}}
  Hello
{{else block param
param
param
param
param
param
param
param
param
param}}
  There
{{/block}}

{{! Prettier 2.8.4 }}
{{#block
  param param param param param param param param param param
  as |blockParam|
}}
  Hello
{{else block
  param param param param param param param param param param
  as |blockParam|
}}
  There
{{/block}}
```

##### Ignore files in `.sl/`
([#&#8203;14206](https://togithub.com/prettier/prettier/pull/14206) by
[@&#8203;bolinfest](https://togithub.com/bolinfest))

In [Sapling SCM](https://sapling-scm.com/), `.sl/` is the folder where
it stores its state, analogous to `.git/` in Git. It should be ignored
in Prettier like the other SCM folders.

##### Recognize `@satisfies` in Closure-style type casts
([#&#8203;14262](https://togithub.com/prettier/prettier/pull/14262) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});

// Prettier 2.8.3
const a = /** @&#8203;satisfies {Record<string, string>} */ { hello: 1337 };
const b = /** @&#8203;type {Record<string, string>} */ ({ hello: 1337 });

// Prettier 2.8.4
const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});
```

##### Fix parens in inferred function return types with `extends`
([#&#8203;14279](https://togithub.com/prettier/prettier/pull/14279) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```ts
// Input
type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;

// Prettier 2.8.3 (First format)
type Foo<T> = T extends (a) => a is infer R extends string ? R : never;

// Prettier 2.8.3 (Second format)
SyntaxError: '?' expected. 

// Prettier 2.8.4
type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;
```

###
[`v2.8.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;283)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.2...2.8.3)

[diff](https://togithub.com/prettier/prettier/compare/2.8.2...2.8.3)

##### Allow self-closing tags on custom elements
([#&#8203;14170](https://togithub.com/prettier/prettier/pull/14170) by
[@&#8203;fisker](https://togithub.com/fisker))

See [Angular v15.1.0 release
note](https://togithub.com/angular/angular/releases/tag/15.1.0) for
details.

<!-- prettier-ignore -->

```html
// Input
<app-test/>

// Prettier 2.8.2
SyntaxError: Only void and foreign elements can be self closed "app-test" (1:1)
> 1 | <app-test/>
    | ^^^^^^^^^
  2 |

// Prettier 2.8.3
<app-test />
```

###
[`v2.8.2`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#&#8203;282)

[Compare
Source](https://togithub.com/prettier/prettier/compare/2.8.1...2.8.2)

[diff](https://togithub.com/prettier/prettier/compare/2.8.1...2.8.2)

##### Don't lowercase link references
([#&#8203;13155](https://togithub.com/prettier/prettier/pull/13155) by
[@&#8203;DerekNonGeneric](https://togithub.com/DerekNonGeneric) &
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```markdown
<!-- Input -->
We now don't strictly follow the release notes format suggested by [Keep a Changelog].

[Keep a Changelog]: https://example.com/

<!-- Prettier 2.8.1 -->
We now don't strictly follow the release notes format suggested by [Keep a Changelog].

[keep a changelog]: https://example.com/
<!--
^^^^^^^^^^^^^^^^^^ lowercased
-->

<!-- Prettier 2.8.2 -->
<Same as input>
```

##### Preserve self-closing tags
([#&#8203;13691](https://togithub.com/prettier/prettier/pull/13691) by
[@&#8203;dcyriller](https://togithub.com/dcyriller))

<!-- prettier-ignore -->

```hbs
{{! Input }}
<div />
<div></div>
<custom-component />
<custom-component></custom-component>
<i />
<i></i>
<Component />
<Component></Component>

{{! Prettier 2.8.1 }}
<div></div>
<div></div>
<custom-component></custom-component>
<custom-component></custom-component>
<i></i>
<i></i>
<Component />
<Component />

{{! Prettier 2.8.2 }}
<div />
<div></div>
<custom-component />
<custom-component></custom-component>
<i />
<i></i>
<Component />
<Component />
```

##### Allow custom "else if"-like blocks with block params
([#&#8203;13930](https://togithub.com/prettier/prettier/pull/13930) by
[@&#8203;jamescdavis](https://togithub.com/jamescdavis))

[#&#8203;13507](https://togithub.com/prettier/prettier/issues/13507)
added support for custom block keywords used with `else`, but failed to
allow block params. This updates printer-glimmer to allow block params
with custom "else if"-like blocks.

<!-- prettier-ignore -->

```hbs
{{! Input }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading as |book|}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}

{{! Prettier 2.8.1 }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}

{{! Prettier 2.8.2 }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading as |book|}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}
```

##### Preserve empty lines between nested SCSS maps
([#&#8203;13931](https://togithub.com/prettier/prettier/pull/13931) by
[@&#8203;jneander](https://togithub.com/jneander))

<!-- prettier-ignore -->

```scss
/* Input */
$map: (
  'one': (
     'key': 'value',
  ),

  'two': (
     'key': 'value',
  ),
)

/* Prettier 2.8.1 */
$map: (
  'one': (
     'key': 'value',
  ),
  'two': (
     'key': 'value',
  ),
)

/* Prettier 2.8.2 */
$map: (
  'one': (
     'key': 'value',
  ),

  'two': (
     'key': 'value',
  ),
)
```

##### Fix missing parentheses when an expression statement starts with
`let[`
([#&#8203;14000](https://togithub.com/prettier/prettier/pull/14000),
[#&#8203;14044](https://togithub.com/prettier/prettier/pull/14044) by
[@&#8203;fisker](https://togithub.com/fisker),
[@&#8203;thorn0](https://togithub.com/thorn0))

<!-- prettier-ignore -->

```jsx
// Input
(let[0] = 2);

// Prettier 2.8.1
let[0] = 2;

// Prettier 2.8.1 (second format)
SyntaxError: Unexpected token (1:5)
> 1 | let[0] = 2;
    |     ^
  2 |

// Prettier 2.8.2
(let)[0] = 2;
```

##### Fix semicolon duplicated at the end of LESS file
([#&#8203;14007](https://togithub.com/prettier/prettier/pull/14007) by
[@&#8203;mvorisek](https://togithub.com/mvorisek))

<!-- prettier-ignore -->

```less
// Input
@&#8203;variable: {
  field: something;
};

// Prettier 2.8.1
@&#8203;variable: {
  field: something;
}; ;

// Prettier 2.8.2
@&#8203;variable: {
  field: something;
};
```

##### Fix no space after unary minus when followed by opening
parenthesis in LESS
([#&#8203;14008](https://togithub.com/prettier/prettier/pull/14008) by
[@&#8203;mvorisek](https://togithub.com/mvorisek))

<!-- prettier-ignore -->

```less
// Input
.unary_minus_single {
  margin: -(@&#8203;a);
}

.unary_minus_multi {
  margin: 0 -(@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}

// Prettier 2.8.1
.unary_minus_single {
  margin: - (@&#8203;a);
}

.unary_minus_multi {
  margin: 0 - (@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}

// Prettier 2.8.2
.unary_minus_single {
  margin: -(@&#8203;a);
}

.unary_minus_multi {
  margin: 0 -(@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}
```

##### Do not change case of property name if inside a variable
declaration in LESS
([#&#8203;14034](https://togithub.com/prettier/prettier/pull/14034) by
[@&#8203;mvorisek](https://togithub.com/mvorisek))

<!-- prettier-ignore -->

```less
// Input
@&#8203;var: {
  preserveCase: 0;
};

// Prettier 2.8.1
@&#8203;var: {
  preservecase: 0;
};

// Prettier 2.8.2
@&#8203;var: {
  preserveCase: 0;
};
```

##### Fix formatting for auto-accessors with comments
([#&#8203;14038](https://togithub.com/prettier/prettier/pull/14038) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
class A {
  @&#8203;dec()
  // comment
  accessor b;
}

// Prettier 2.8.1
class A {
  @&#8203;dec()
  accessor // comment
  b;
}

// Prettier 2.8.1 (second format)
class A {
  @&#8203;dec()
  accessor; // comment
  b;
}

// Prettier 2.8.2
class A {
  @&#8203;dec()
  // comment
  accessor b;
}
```

##### Add parentheses for TSTypeQuery to improve readability
([#&#8203;14042](https://togithub.com/prettier/prettier/pull/14042) by
[@&#8203;onishi-kohei](https://togithub.com/onishi-kohei))

<!-- prettier-ignore -->

```tsx
// Input
a as (typeof node.children)[number]
a as (typeof node.children)[]
a as ((typeof node.children)[number])[]

// Prettier 2.8.1
a as typeof node.children[number];
a as typeof node.children[];
a as typeof node.children[number][];

// Prettier 2.8.2
a as (typeof node.children)[number];
a as (typeof node.children)[];
a as (typeof node.children)[number][];
```

##### Fix displacing of comments in default switch case
([#&#8203;14047](https://togithub.com/prettier/prettier/pull/14047) by
[@&#8203;thorn0](https://togithub.com/thorn0))

It was a regression in Prettier 2.6.0.

<!-- prettier-ignore -->

```jsx
// Input
switch (state) {
  default:
    result = state; // no change
    break;
}

// Prettier 2.8.1
switch (state) {
  default: // no change
    result = state;
    break;
}

// Prettier 2.8.2
switch (state) {
  default:
    result = state; // no change
    break;
}
```

##### Support type annotations on auto accessors via `babel-ts`
([#&#8203;14049](https://togithub.com/prettier/prettier/pull/14049) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

[The bug that `@babel/parser` cannot parse auto accessors with type
annotations](https://togithub.com/babel/babel/issues/15205) has been
fixed. So we now support it via `babel-ts` parser.

<!-- prettier-ignore -->

```tsx
class Foo {
  accessor prop: number;
}
```

##### Fix formatting of empty type parameters
([#&#8203;14073](https://togithub.com/prettier/prettier/pull/14073) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
const foo: bar</* comment */> = () => baz;

// Prettier 2.8.1
Error: Comment "comment" was not printed. Please report this error!

// Prettier 2.8.2
const foo: bar</* comment */> = () => baz;
```

##### Add parentheses to head of `ExpressionStatement` instead of the
whole statement
([#&#8203;14077](https://togithub.com/prettier/prettier/pull/14077) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
({}).toString.call(foo) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo);

// Prettier 2.8.1
({}.toString.call(foo) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo));

// Prettier 2.8.2
({}).toString.call(foo.forEach) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo);
```

##### Fix comments after directive
([#&#8203;14081](https://togithub.com/prettier/prettier/pull/14081) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
"use strict" /* comment */;

// Prettier 2.8.1 (with other js parsers except `babel`)
Error: Comment "comment" was not printed. Please report this error!

// Prettier 2.8.2
<Same as input>
```

##### Fix formatting for comments inside JSX attribute
([#&#8203;14082](https://togithub.com/prettier/prettier/pull/14082) with
by [@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
function MyFunctionComponent() {
  <button label=/*old*/"new">button</button>
}

// Prettier 2.8.1
Error: Comment "old" was not printed. Please report this error!

// Prettier 2.8.2
function MyFunctionComponent() {
  <button label=/*old*/ "new">button</button>;
}
```

##### Quote numeric keys for json-stringify parser
([#&#8203;14083](https://togithub.com/prettier/prettier/pull/14083) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
{0: 'value'}

// Prettier 2.8.1
{
  0: "value"
}

// Prettier 2.8.2
{
  "0": "value"
}
```

##### Fix removing commas from function arguments in maps
([#&#8203;14089](https://togithub.com/prettier/prettier/pull/14089) by
[@&#8203;sosukesuzuki](https://togithub.com/sosukesuzuki))

<!-- prettier-ignore -->

```scss
/* Input */
$foo: map-fn(
  (
    "#{prop}": inner-fn($first, $second),
  )
);

/* Prettier 2.8.1 */
$foo: map-fn(("#{prop}": inner-fn($first $second)));

/* Prettier 2.8.2 */
$foo: map-fn(
  (
    "#{prop}": inner-fn($first, $second),
  )
);

```

##### Do not insert space in LESS property access
([#&#8203;14103](https://togithub.com/prettier/prettier/pull/14103) by
[@&#8203;fisker](https://togithub.com/fisker))

<!-- prettier-ignore -->

```less
// Input
a {
  color: @&#8203;colors[@&#8203;white];
}

// Prettier 2.8.1
a {
  color: @&#8203;colors[ @&#8203;white];
}

// Prettier 2.8.2
<Same as input>
```

</details>

<details>
<summary>semantic-release/semantic-release</summary>

###
[`v20.1.0`](https://togithub.com/semantic-release/semantic-release/releases/tag/v20.1.0)

[Compare
Source](https://togithub.com/semantic-release/semantic-release/compare/v20.0.4...v20.1.0)

##### Features

- **plugins:** add support for loading ESM plugins
([#&#8203;2688](https://togithub.com/semantic-release/semantic-release/issues/2688))
([d170f73](https://togithub.com/semantic-release/semantic-release/commit/d170f73e0b2a8a853a7bc58977a6b4b0887d8f17))

###
[`v20.0.4`](https://togithub.com/semantic-release/semantic-release/releases/tag/v20.0.4)

[Compare
Source](https://togithub.com/semantic-release/semantic-release/compare/v20.0.3...v20.0.4)

##### Bug Fixes

- **windows:** fixed issues preventing execution from windows
([#&#8203;2672](https://togithub.com/semantic-release/semantic-release/issues/2672))
([5df624c](https://togithub.com/semantic-release/semantic-release/commit/5df624c6e50304743ca40e82958cae825452574f))

###
[`v20.0.3`](https://togithub.com/semantic-release/semantic-release/releases/tag/v20.0.3)

[Compare
Source](https://togithub.com/semantic-release/semantic-release/compare/v20.0.2...v20.0.3)

##### Reverts

- Revert "chore(deps): update dependency ava to v5.1.1"
([#&#8203;2682](https://togithub.com/semantic-release/semantic-release/issues/2682))
([914b0a2](https://togithub.com/semantic-release/semantic-release/commit/914b0a26424065e036c792f48c0179fb888ad810)),
closes
[#&#8203;2682](https://togithub.com/semantic-release/semantic-release/issues/2682)

###
[`v20.0.2`](https://togithub.com/semantic-release/semantic-release/releases/tag/v20.0.2)

[Compare
Source](https://togithub.com/semantic-release/semantic-release/compare/v20.0.1...v20.0.2)

##### Bug Fixes

- **deps:** update dependency semver-diff to v4
([#&#8203;1915](https://togithub.com/semantic-release/semantic-release/issues/1915))
([cb45d27](https://togithub.com/semantic-release/semantic-release/commit/cb45d27726418f27b20c9b7f2d50225c7a0028f6))

###
[`v20.0.1`](https://togithub.com/semantic-release/semantic-release/releases/tag/v20.0.1)

[Compare
Source](https://togithub.com/semantic-release/semantic-release/compare/v20.0.0...v20.0.1)

##### Bug Fixes

- **deps:** update dependency cosmiconfig to v8
([f914c1e](https://togithub.com/semantic-release/semantic-release/commit/f914c1ed86d6b1a8b797664d84c1bd095a21ddb4))
- **deps:** update dependency hosted-git-info to v6
([c4da008](https://togithub.com/semantic-release/semantic-release/commit/c4da008e29ccb3976385c446b317f7732218035a))

</details>

<details>
<summary>TypeStrong/TypeDoc</summary>

###
[`v0.23.24`](https://togithub.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v02324-2023-01-07)

[Compare
Source](https://togithub.com/TypeStrong/TypeDoc/compare/v0.23.23...v0.23.24)

##### Bug Fixes

- Fixed an issue where signature comments were preferred over property
comments for indirectly created function-properties,
[#&#8203;2135](https://togithub.com/TypeStrong/TypeDoc/issues/2135).
- Fixed symlink handling when expanding entry points,
[#&#8203;2130](https://togithub.com/TypeStrong/TypeDoc/issues/2130).

##### Thanks!

-   [@&#8203;boneskull](https://togithub.com/boneskull)

</details>

<details>
<summary>Microsoft/TypeScript</summary>

###
[`v4.9.5`](https://togithub.com/microsoft/TypeScript/releases/tag/v4.9.5):
TypeScript 4.9.5

[Compare
Source](https://togithub.com/Microsoft/TypeScript/compare/v4.9.4...v4.9.5)

For release notes, check out the [release
announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/).

Downloads are available on:

-   [npm](https://www.npmjs.com/package/typescript)
- [NuGet
package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

#### Changes:

-
[`69e88ef`](https://togithub.com/Microsoft/TypeScript/commit/69e88ef5513a81acf69ec78f4af1f927da0d0584)
Port ignore deprecations to 4.9
([#&#8203;52419](https://togithub.com/Microsoft/TypeScript/issues/52419))
-
[`daf4e81`](https://togithub.com/Microsoft/TypeScript/commit/daf4e817a18def96b70ac34703b158ff0e6d58df)
Port timestamp fix to 4.9
([#&#8203;52426](https://togithub.com/Microsoft/TypeScript/issues/52426))

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **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://app.renovatebot.com/dashboard#github/andipaetzold/react-firehooks).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
kodiakhq bot pushed a commit to mheob/changeset-changelog that referenced this issue Apr 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 |
|---|---|---|---|---|---|
| [@changesets/cli](https://togithub.com/changesets/changesets/tree/main#readme) ([source](https://togithub.com/changesets/changesets)) | [`^2.26.0` -> `^2.26.1`](https://renovatebot.com/diffs/npm/@changesets%2fcli/2.26.0/2.26.1) | [![age](https://badges.renovateapi.com/packages/npm/@changesets%2fcli/2.26.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@changesets%2fcli/2.26.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@changesets%2fcli/2.26.1/compatibility-slim/2.26.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@changesets%2fcli/2.26.1/confidence-slim/2.26.0)](https://docs.renovatebot.com/merge-confidence/) |
| [@commitlint/cli](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`^17.3.0` -> `^17.5.0`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/17.3.0/17.5.0) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/17.5.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/17.5.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/17.5.0/compatibility-slim/17.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fcli/17.5.0/confidence-slim/17.3.0)](https://docs.renovatebot.com/merge-confidence/) |
| [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://togithub.com/conventional-changelog/commitlint)) | [`^17.3.0` -> `^17.4.4`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/17.3.0/17.4.4) | [![age](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/17.4.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/17.4.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/17.4.4/compatibility-slim/17.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@commitlint%2fconfig-conventional/17.4.4/confidence-slim/17.3.0)](https://docs.renovatebot.com/merge-confidence/) |
| [@mheob/eslint-config](https://togithub.com/mheob/config/tree/main/packages/eslint-config) ([source](https://togithub.com/mheob/config)) | [`^4.0.0` -> `^4.2.1`](https://renovatebot.com/diffs/npm/@mheob%2feslint-config/4.0.0/4.2.1) | [![age](https://badges.renovateapi.com/packages/npm/@mheob%2feslint-config/4.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@mheob%2feslint-config/4.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@mheob%2feslint-config/4.2.1/compatibility-slim/4.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@mheob%2feslint-config/4.2.1/confidence-slim/4.0.0)](https://docs.renovatebot.com/merge-confidence/) |
| [@mheob/prettier-config](https://togithub.com/mheob/config/tree/main/packages/prettier-config) ([source](https://togithub.com/mheob/config)) | [`^3.0.0` -> `^3.0.1`](https://renovatebot.com/diffs/npm/@mheob%2fprettier-config/3.0.0/3.0.1) | [![age](https://badges.renovateapi.com/packages/npm/@mheob%2fprettier-config/3.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@mheob%2fprettier-config/3.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@mheob%2fprettier-config/3.0.1/compatibility-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@mheob%2fprettier-config/3.0.1/confidence-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) |
| [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`^18.11.18` -> `^18.15.9`](https://renovatebot.com/diffs/npm/@types%2fnode/18.11.18/18.15.9) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.15.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.15.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.15.9/compatibility-slim/18.11.18)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.15.9/confidence-slim/18.11.18)](https://docs.renovatebot.com/merge-confidence/) |
| [@vitest/coverage-istanbul](https://togithub.com/vitest-dev/vitest) | [`^0.26.3` -> `^0.29.7`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/0.26.3/0.29.7) | [![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.29.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.29.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.29.7/compatibility-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.29.7/confidence-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/) |
| [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`^8.31.0` -> `^8.36.0`](https://renovatebot.com/diffs/npm/eslint/8.31.0/8.36.0) | [![age](https://badges.renovateapi.com/packages/npm/eslint/8.36.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/eslint/8.36.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/eslint/8.36.0/compatibility-slim/8.31.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/eslint/8.36.0/confidence-slim/8.31.0)](https://docs.renovatebot.com/merge-confidence/) |
| [lint-staged](https://togithub.com/okonet/lint-staged) | [`^13.1.0` -> `^13.2.0`](https://renovatebot.com/diffs/npm/lint-staged/13.1.0/13.2.0) | [![age](https://badges.renovateapi.com/packages/npm/lint-staged/13.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/lint-staged/13.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/lint-staged/13.2.0/compatibility-slim/13.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/lint-staged/13.2.0/confidence-slim/13.1.0)](https://docs.renovatebot.com/merge-confidence/) |
| [tsup](https://tsup.egoist.dev/) ([source](https://togithub.com/egoist/tsup)) | [`^6.5.0` -> `^6.7.0`](https://renovatebot.com/diffs/npm/tsup/6.5.0/6.7.0) | [![age](https://badges.renovateapi.com/packages/npm/tsup/6.7.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/tsup/6.7.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/tsup/6.7.0/compatibility-slim/6.5.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/tsup/6.7.0/confidence-slim/6.5.0)](https://docs.renovatebot.com/merge-confidence/) |
| [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`^4.9.4` -> `^4.9.5`](https://renovatebot.com/diffs/npm/typescript/4.9.4/4.9.5) | [![age](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/compatibility-slim/4.9.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/typescript/4.9.5/confidence-slim/4.9.4)](https://docs.renovatebot.com/merge-confidence/) |
| [vite](https://togithub.com/vitejs/vite/tree/main/#readme) ([source](https://togithub.com/vitejs/vite)) | [`^4.0.4` -> `^4.2.1`](https://renovatebot.com/diffs/npm/vite/4.0.4/4.2.1) | [![age](https://badges.renovateapi.com/packages/npm/vite/4.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vite/4.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vite/4.2.1/compatibility-slim/4.0.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vite/4.2.1/confidence-slim/4.0.4)](https://docs.renovatebot.com/merge-confidence/) |
| [vitest](https://togithub.com/vitest-dev/vitest) | [`^0.26.3` -> `^0.29.7`](https://renovatebot.com/diffs/npm/vitest/0.26.3/0.29.7) | [![age](https://badges.renovateapi.com/packages/npm/vitest/0.29.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.29.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vitest/0.29.7/compatibility-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.29.7/confidence-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>changesets/changesets</summary>

### [`v2.26.1`](https://togithub.com/changesets/changesets/releases/tag/%40changesets/cli%402.26.1)

[Compare Source](https://togithub.com/changesets/changesets/compare/@changesets/cli@2.26.0...@changesets/cli@2.26.1)

##### Patch Changes

-   [#&#8203;1115](https://togithub.com/changesets/changesets/pull/1115) [`feddc88`](https://togithub.com/changesets/changesets/commit/feddc88d74781a448855a5a0b0ffa50917489b15) Thanks [@&#8203;Andarist](https://togithub.com/Andarist)! - Call `pnpm publish` directly from the directory of the published package. This allows `pnpm` to correctly handle configured `publishConfig.directory`.

</details>

<details>
<summary>conventional-changelog/commitlint (@&#8203;commitlint/cli)</summary>

### [`v17.5.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#&#8203;1750-httpsgithubcomconventional-changelogcommitlintcomparev1744v1750-2023-03-22)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.4...v17.5.0)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

#### [17.4.4](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.3...v17.4.4) (2023-02-17)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

#### [17.4.3](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.2...v17.4.3) (2023-02-13)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

#### [17.4.2](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.1...v17.4.2) (2023-01-12)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

#### [17.4.1](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.0...v17.4.1) (2023-01-09)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

### [`v17.4.4`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#&#8203;1744-httpsgithubcomconventional-changelogcommitlintcomparev1743v1744-2023-02-17)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.3...v17.4.4)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

### [`v17.4.3`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#&#8203;1743-httpsgithubcomconventional-changelogcommitlintcomparev1742v1743-2023-02-13)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.2...v17.4.3)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

### [`v17.4.2`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#&#8203;1742-httpsgithubcomconventional-changelogcommitlintcomparev1741v1742-2023-01-12)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.1...v17.4.2)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

### [`v17.4.1`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#&#8203;1741-httpsgithubcomconventional-changelogcommitlintcomparev1740v1741-2023-01-09)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.0...v17.4.1)

**Note:** Version bump only for package [@&#8203;commitlint/cli](https://togithub.com/commitlint/cli)

### [`v17.4.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#&#8203;1740-httpsgithubcomconventional-changelogcommitlintcomparev1730v1740-2023-01-04)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.3.0...v17.4.0)

##### Bug Fixes

-   update dependency fs-extra to v11 ([#&#8203;3460](https://togithub.com/conventional-changelog/commitlint/issues/3460)) ([a437923](https://togithub.com/conventional-changelog/commitlint/commit/a43792388e0d9707da770b26592c5e31553384a1))

</details>

<details>
<summary>conventional-changelog/commitlint (@&#8203;commitlint/config-conventional)</summary>

### [`v17.4.4`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#&#8203;1744-httpsgithubcomconventional-changelogcommitlintcomparev1743v1744-2023-02-17)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.3...v17.4.4)

**Note:** Version bump only for package [@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

### [`v17.4.3`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#&#8203;1743-httpsgithubcomconventional-changelogcommitlintcomparev1742v1743-2023-02-13)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.2...v17.4.3)

**Note:** Version bump only for package [@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

### [`v17.4.2`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#&#8203;1742-httpsgithubcomconventional-changelogcommitlintcomparev1741v1742-2023-01-12)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.4.0...v17.4.2)

**Note:** Version bump only for package [@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

### [`v17.4.0`](https://togithub.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#&#8203;1740-httpsgithubcomconventional-changelogcommitlintcomparev1730v1740-2023-01-04)

[Compare Source](https://togithub.com/conventional-changelog/commitlint/compare/v17.3.0...v17.4.0)

**Note:** Version bump only for package [@&#8203;commitlint/config-conventional](https://togithub.com/commitlint/config-conventional)

</details>

<details>
<summary>mheob/config</summary>

### [`v4.2.1`](https://togithub.com/mheob/config/releases/tag/%40mheob/eslint-config%404.2.1)

[Compare Source](https://togithub.com/mheob/config/compare/@mheob/eslint-config@4.2.0...@mheob/eslint-config@4.2.1)

##### Patch Changes

-   update dependencies --> ([#&#8203;121](https://togithub.com/mheob/config/pull/121)) by
    [@&#8203;mheob](https://togithub.com/mheob)

### [`v4.2.0`](https://togithub.com/mheob/config/releases/tag/%40mheob/eslint-config%404.2.0)

[Compare Source](https://togithub.com/mheob/config/compare/@mheob/eslint-config@4.1.0...@mheob/eslint-config@4.2.0)

##### Minor Changes

-   remove explicit return rule --> ([#&#8203;113](https://togithub.com/mheob/config/pull/113)) by
    [@&#8203;mheob](https://togithub.com/mheob)

-   move `explicit-function-return-type` rule to base config -->
    ([#&#8203;116](https://togithub.com/mheob/config/pull/116)) by [@&#8203;mheob](https://togithub.com/mheob)

##### Patch Changes

-   update dependencies --> ([#&#8203;112](https://togithub.com/mheob/config/pull/112)) by
    [@&#8203;mheob](https://togithub.com/mheob)

-   fix the README files after the change of using ESLint to fix the imports -->
    ([#&#8203;109](https://togithub.com/mheob/config/pull/109)) by [@&#8203;mheob](https://togithub.com/mheob)

### [`v4.1.0`](https://togithub.com/mheob/config/releases/tag/%40mheob/eslint-config%404.1.0)

[Compare Source](https://togithub.com/mheob/config/compare/@mheob/eslint-config@4.0.0...@mheob/eslint-config@4.1.0)

##### Minor Changes

-   add auto-fix for unused imports and vars --> ([#&#8203;106](https://togithub.com/mheob/config/pull/106)) by [@&#8203;mheob](https://togithub.com/mheob)

##### Patch Changes

-   bump `eslint-config-next` to `13.1.0` --> ([#&#8203;106](https://togithub.com/mheob/config/pull/106)) by [@&#8203;mheob](https://togithub.com/mheob)

</details>

<details>
<summary>vitest-dev/vitest</summary>

### [`v0.29.7`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.7)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.29.6...v0.29.7)

#####    🐞 Bug Fixes

-   Import [@&#8203;vite/client](https://togithub.com/vite/client) in browser code for handling optimizer  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(20c51)</samp>](https://togithub.com/vitest-dev/vitest/commit/20c510c4)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.29.6...v0.29.7)

### [`v0.29.6`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.6)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.29.5...v0.29.6)

#####    🐞 Bug Fixes

-   Bundle UI with [@&#8203;vitest/browser](https://togithub.com/vitest/browser)  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(14091)</samp>](https://togithub.com/vitest-dev/vitest/commit/14091c59)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.29.5...v0.29.6)

### [`v0.29.5`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.5)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.29.4...v0.29.5)

#####    🐞 Bug Fixes

-   **browser**: Relax vitest peer dependency  -  by [@&#8203;cexbrayat](https://togithub.com/cexbrayat) in [https://github.com/vitest-dev/vitest/issues/3039](https://togithub.com/vitest-dev/vitest/issues/3039) [<samp>(865d1)</samp>](https://togithub.com/vitest-dev/vitest/commit/865d1afd)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.29.4...v0.29.5)

### [`v0.29.4`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.4)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.29.3...v0.29.4)

#####    🚀 Features

-   `--test-timeout` CLI argument  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3019](https://togithub.com/vitest-dev/vitest/issues/3019) [<samp>(63c62)</samp>](https://togithub.com/vitest-dev/vitest/commit/63c62f9e)
-   Add an option to control Vitest pool with filepath  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3029](https://togithub.com/vitest-dev/vitest/issues/3029) [<samp>(c7f0c)</samp>](https://togithub.com/vitest-dev/vitest/commit/c7f0c86b)
-   Process timeout to log names of stuck test files  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3031](https://togithub.com/vitest-dev/vitest/issues/3031) [<samp>(0ddf7)</samp>](https://togithub.com/vitest-dev/vitest/commit/0ddf7220)
-   Support relative path in html report  -  by [@&#8203;poyoho](https://togithub.com/poyoho) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2695](https://togithub.com/vitest-dev/vitest/issues/2695) [<samp>(a7680)</samp>](https://togithub.com/vitest-dev/vitest/commit/a768015e)
-   Webdriverio (+ custom providers) integration for browser mode  -  by [@&#8203;Aslemammad](https://togithub.com/Aslemammad), **Christian Bromann**, [@&#8203;sheremet-va](https://togithub.com/sheremet-va), [@&#8203;userquin](https://togithub.com/userquin) and [@&#8203;dammy001](https://togithub.com/dammy001) in [https://github.com/vitest-dev/vitest/issues/2999](https://togithub.com/vitest-dev/vitest/issues/2999) [<samp>(9cdc8)</samp>](https://togithub.com/vitest-dev/vitest/commit/9cdc8030)

#####    🐞 Bug Fixes

-   Show correct line numbers in stack trace when using vi.resetModules()  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3020](https://togithub.com/vitest-dev/vitest/issues/3020) [<samp>(35730)</samp>](https://togithub.com/vitest-dev/vitest/commit/35730328)
-   Mocking value proxy filter Symbol static properties  -  by [@&#8203;ChpShy](https://togithub.com/ChpShy) in [https://github.com/vitest-dev/vitest/issues/3036](https://togithub.com/vitest-dev/vitest/issues/3036) [<samp>(0cf44)</samp>](https://togithub.com/vitest-dev/vitest/commit/0cf44098)
-   Escape XML in error stack trace when using junit reporter  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3038](https://togithub.com/vitest-dev/vitest/issues/3038) [<samp>(cc577)</samp>](https://togithub.com/vitest-dev/vitest/commit/cc5779d6)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.29.3...v0.29.4)

### [`v0.29.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.3)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.29.2...v0.29.3)

#####    🚀 Features

-   Use custom colors implementation instead of picocolors  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(427b0)</samp>](https://togithub.com/vitest-dev/vitest/commit/427b0622)
-   Uncaught errors to indicate env teardown  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2982](https://togithub.com/vitest-dev/vitest/issues/2982) [<samp>(1fe82)</samp>](https://togithub.com/vitest-dev/vitest/commit/1fe8286c)
-   **config**: Add an option to run setupFiles in sequence  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3008](https://togithub.com/vitest-dev/vitest/issues/3008) [<samp>(c2e25)</samp>](https://togithub.com/vitest-dev/vitest/commit/c2e25bb9)

#####    🐞 Bug Fixes

-   Console log not visible  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2943](https://togithub.com/vitest-dev/vitest/issues/2943) [<samp>(02808)</samp>](https://togithub.com/vitest-dev/vitest/commit/0280825f)
-   Remove duplicate execArgv when deps.registerNodeLoader: true  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2965](https://togithub.com/vitest-dev/vitest/issues/2965) [<samp>(a1954)</samp>](https://togithub.com/vitest-dev/vitest/commit/a1954cc0)
-   Prevent running test cases timers after environment teardown  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2971](https://togithub.com/vitest-dev/vitest/issues/2971) [<samp>(bde75)</samp>](https://togithub.com/vitest-dev/vitest/commit/bde75a34)
-   Don't mark setupFiles as test files, if experimentaOptimizer is used  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2974](https://togithub.com/vitest-dev/vitest/issues/2974) [<samp>(819c6)</samp>](https://togithub.com/vitest-dev/vitest/commit/819c6cbe)
-   Config errors not visible  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2995](https://togithub.com/vitest-dev/vitest/issues/2995) [<samp>(f01c7)</samp>](https://togithub.com/vitest-dev/vitest/commit/f01c7833)
-   \--inspect to work inside workers  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2983](https://togithub.com/vitest-dev/vitest/issues/2983) [<samp>(36087)</samp>](https://togithub.com/vitest-dev/vitest/commit/36087d1e)
-   **types**: Use `any` as default value for TArgs in vi.fn()  -  by [@&#8203;jessevanassen](https://togithub.com/jessevanassen) in [https://github.com/vitest-dev/vitest/issues/2947](https://togithub.com/vitest-dev/vitest/issues/2947) [<samp>(1bdcc)</samp>](https://togithub.com/vitest-dev/vitest/commit/1bdcc212)

#####    🏎 Performance

-   **reporters**: Overall improvements  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3006](https://togithub.com/vitest-dev/vitest/issues/3006) [<samp>(22ca0)</samp>](https://togithub.com/vitest-dev/vitest/commit/22ca0b6b)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.29.2...v0.29.3)

### [`v0.29.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.2)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.29.1...v0.29.2)

#####    🐞 Bug Fixes

-   Optimize dependencies in setup files  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2935](https://togithub.com/vitest-dev/vitest/issues/2935) [<samp>(c169f)</samp>](https://togithub.com/vitest-dev/vitest/commit/c169f980)
-   **coverage**: C8 provider to work when isolate:false  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2929](https://togithub.com/vitest-dev/vitest/issues/2929) [<samp>(86538)</samp>](https://togithub.com/vitest-dev/vitest/commit/8653830b)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.29.1...v0.29.2)

### [`v0.29.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.1)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.29.0...v0.29.1)

#####    🐞 Bug Fixes

-   Wait for optimized dependency to be bundled in non-pnpm package managers  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(d2460)</samp>](https://togithub.com/vitest-dev/vitest/commit/d2460b7a)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.29.0...v0.29.1)

### [`v0.29.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.29.0)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.5...v0.29.0)

This release makes some significant changes to how tests are running. If you were using `--no-threads` before, you might consider enabling `--single-thread` instead (because your tests are now running in `child_process` instead of a worker thread) or try our new performance optimization feature (discussed later). If you were relying on API that was not available inside a worker (like `process.chdir()`, you can now use this option.

One of the potential breaking bug fixes is that environments do not share the same global scope anymore if you run them with `--no-isolate`, `--no-threads` or `--single-thread` - you might need to update your setup files if you were relying on a global variable before.

If you had performance issues on large code bases before, try the new [`deps.experimentalOptimizer`](https://vitest.dev/config/#deps-experimentaloptimizer) option instead of disabling threads. Feedback is welcome!

One of the breaking changes includes adding a link to snapshots inside snapshot files, meaning you will need to update all your snapshots.

#####    🚨 Breaking Changes

-   Vitest as peer dependency for coverage packages  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2836](https://togithub.com/vitest-dev/vitest/issues/2836) [<samp>(94247)</samp>](https://togithub.com/vitest-dev/vitest/commit/94247f1b)
-   Coverage-c8 to use V8 profiler directly instead of `NODE_V8_COVERAGE`  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2786](https://togithub.com/vitest-dev/vitest/issues/2786) [<samp>(095c6)</samp>](https://togithub.com/vitest-dev/vitest/commit/095c6390)
-   Add a link to the comment at the top of the snapshot file  -  by [@&#8203;btea](https://togithub.com/btea) in [https://github.com/vitest-dev/vitest/issues/2867](https://togithub.com/vitest-dev/vitest/issues/2867) [<samp>(615e1)</samp>](https://togithub.com/vitest-dev/vitest/commit/615e150b)
-   Always run separate environments in isolation  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2860](https://togithub.com/vitest-dev/vitest/issues/2860) [<samp>(1f858)</samp>](https://togithub.com/vitest-dev/vitest/commit/1f858e0c)
    -   Tests with `node` and `jsdom` (and other environments) now don't share the same global scope, if you run them with `--no-isolate` or `--no-threads` flag. Vitest doesn't provide a way to restore the previous behavior as it is considered a bug.
-   Use child_process when --no-threads is used  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2772](https://togithub.com/vitest-dev/vitest/issues/2772) [<samp>(7bf54)</samp>](https://togithub.com/vitest-dev/vitest/commit/7bf54505)
    -   Tests inside `chid_process` might run longer due to the communication overhead. If you want to restore the previous behavior, use `--single-thread`.

#####    🚀 Features

-   Add test seed to banner  -  by [@&#8203;btkostner](https://togithub.com/btkostner) in [https://github.com/vitest-dev/vitest/issues/2877](https://togithub.com/vitest-dev/vitest/issues/2877) [<samp>(bdb39)</samp>](https://togithub.com/vitest-dev/vitest/commit/bdb39569)
-   Use custom source-map-support implementation  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2905](https://togithub.com/vitest-dev/vitest/issues/2905) [<samp>(6ff6c)</samp>](https://togithub.com/vitest-dev/vitest/commit/6ff6c6eb)
-   Add an option to enable Vite optimizer  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2912](https://togithub.com/vitest-dev/vitest/issues/2912) [<samp>(af8de)</samp>](https://togithub.com/vitest-dev/vitest/commit/af8de362)
-   **coverage**:
    -   Add support for coverage reporter options  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2690](https://togithub.com/vitest-dev/vitest/issues/2690) [<samp>(f8176)</samp>](https://togithub.com/vitest-dev/vitest/commit/f8176182)
    -   Automatic threshold updating  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2886](https://togithub.com/vitest-dev/vitest/issues/2886) [<samp>(e1652)</samp>](https://togithub.com/vitest-dev/vitest/commit/e1652163)
-   **spy**:
    -   Implement mock.withImplementation API  -  by [@&#8203;obadakhalili](https://togithub.com/obadakhalili) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2835](https://togithub.com/vitest-dev/vitest/issues/2835) [<samp>(610b1)</samp>](https://togithub.com/vitest-dev/vitest/commit/610b1d46)
-   **vite-node**:
    -   Cli option for vite mode  -  by [@&#8203;abarke](https://togithub.com/abarke) in [https://github.com/vitest-dev/vitest/issues/2893](https://togithub.com/vitest-dev/vitest/issues/2893) [<samp>(0fc08)</samp>](https://togithub.com/vitest-dev/vitest/commit/0fc08032)

#####    🐞 Bug Fixes

-   Wait for console.log to print a message before terminating a worker  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2861](https://togithub.com/vitest-dev/vitest/issues/2861) [<samp>(fbc54)</samp>](https://togithub.com/vitest-dev/vitest/commit/fbc54c91)
-   Cleanup last mocked cache when call vi.doMock  -  by [@&#8203;mysteryven](https://togithub.com/mysteryven) in [https://github.com/vitest-dev/vitest/issues/2872](https://togithub.com/vitest-dev/vitest/issues/2872) [<samp>(65d71)</samp>](https://togithub.com/vitest-dev/vitest/commit/65d71b9e)
-   Reload changed configuration file on watch mode  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2889](https://togithub.com/vitest-dev/vitest/issues/2889) [<samp>(4d277)</samp>](https://togithub.com/vitest-dev/vitest/commit/4d277d8d)
-   **coverage**: Custom providers to work inside worker threads  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2817](https://togithub.com/vitest-dev/vitest/issues/2817) [<samp>(81604)</samp>](https://togithub.com/vitest-dev/vitest/commit/81604bce)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.5...v0.29.0)

### [`v0.28.5`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.5)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.4...v0.28.5)

#####    🚀 Features

-   Add --script option to vite-node  -  by [@&#8203;jgoux](https://togithub.com/jgoux) and [@&#8203;dammy001](https://togithub.com/dammy001) in [https://github.com/vitest-dev/vitest/issues/2793](https://togithub.com/vitest-dev/vitest/issues/2793) [<samp>(d3d6b)</samp>](https://togithub.com/vitest-dev/vitest/commit/d3d6b1fc)
-   Inject executor directly into runner  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2858](https://togithub.com/vitest-dev/vitest/issues/2858) [<samp>(62c43)</samp>](https://togithub.com/vitest-dev/vitest/commit/62c43420)

#####    🐞 Bug Fixes

-   Don't call "afterAll" hooks, if suite was skipped  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2802](https://togithub.com/vitest-dev/vitest/issues/2802) [<samp>(aa1aa)</samp>](https://togithub.com/vitest-dev/vitest/commit/aa1aa4da)
-   Always display serialized error, even if it doesn't have stack  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2829](https://togithub.com/vitest-dev/vitest/issues/2829) [<samp>(ab5f8)</samp>](https://togithub.com/vitest-dev/vitest/commit/ab5f8927)
-   Clear mocks between tests  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2857](https://togithub.com/vitest-dev/vitest/issues/2857) [<samp>(c420c)</samp>](https://togithub.com/vitest-dev/vitest/commit/c420cb7b)
-   **expect**:
    -   Check for no 'throw' type in toHaveReturned  -  by [@&#8203;trivikr](https://togithub.com/trivikr) in [https://github.com/vitest-dev/vitest/issues/2850](https://togithub.com/vitest-dev/vitest/issues/2850) [<samp>(1164c)</samp>](https://togithub.com/vitest-dev/vitest/commit/1164c478)
    -   Accept array index as number in toHaveProperty  -  by [@&#8203;trivikr](https://togithub.com/trivikr) in [https://github.com/vitest-dev/vitest/issues/2808](https://togithub.com/vitest-dev/vitest/issues/2808) [<samp>(8705e)</samp>](https://togithub.com/vitest-dev/vitest/commit/8705e6b2)

#####    🏎 Performance

-   Don't inline Vitest entry  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2819](https://togithub.com/vitest-dev/vitest/issues/2819) [<samp>(570c6)</samp>](https://togithub.com/vitest-dev/vitest/commit/570c639e)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.4...v0.28.5)

### [`v0.28.4`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.4)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.3...v0.28.4)

#####    🐞 Bug Fixes

-   Setup correct utils inside asymmetric matchers  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2768](https://togithub.com/vitest-dev/vitest/issues/2768) [<samp>(415c8)</samp>](https://togithub.com/vitest-dev/vitest/commit/415c8a93)
-   Cjs exports has Object.prototype instead of null  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2769](https://togithub.com/vitest-dev/vitest/issues/2769) [<samp>(4fc49)</samp>](https://togithub.com/vitest-dev/vitest/commit/4fc492c6)
-   Duplicate callbacks in vite-node HMR  -  by [@&#8203;jgoux](https://togithub.com/jgoux) in [https://github.com/vitest-dev/vitest/issues/2792](https://togithub.com/vitest-dev/vitest/issues/2792) [<samp>(f0333)</samp>](https://togithub.com/vitest-dev/vitest/commit/f03337ae)
-   Do not include source files in `onWatcherStart` when `typecheck.ignoreSourceErrors` is true  -  by [@&#8203;mascii](https://togithub.com/mascii) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2774](https://togithub.com/vitest-dev/vitest/issues/2774) [<samp>(d612e)</samp>](https://togithub.com/vitest-dev/vitest/commit/d612efdf)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.3...v0.28.4)

### [`v0.28.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.3)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.2...v0.28.3)

#####    🚀 Features

-   Allow using atomics to communicate between threads  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2758](https://togithub.com/vitest-dev/vitest/issues/2758) [<samp>(3679c)</samp>](https://togithub.com/vitest-dev/vitest/commit/3679cf25)
-   Show active filename pattern on CLI  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) [<samp>(a0455)</samp>](https://togithub.com/vitest-dev/vitest/commit/a0455917)
-   Show active test name pattern on CLI  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) [<samp>(df7c4)</samp>](https://togithub.com/vitest-dev/vitest/commit/df7c410a)
-   Allow `config` option to be false  -  by [@&#8203;antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2749](https://togithub.com/vitest-dev/vitest/issues/2749) [<samp>(c66e3)</samp>](https://togithub.com/vitest-dev/vitest/commit/c66e335b)

#####    🐞 Bug Fixes

-   Watch mode's filename pattern to persist on unrelated file changes  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) [<samp>(712ac)</samp>](https://togithub.com/vitest-dev/vitest/commit/712ac15b)
-   Watch mode's filename pattern to persist re-run of failed tests, snapshot updates and testname filter changes  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) [<samp>(1c65a)</samp>](https://togithub.com/vitest-dev/vitest/commit/1c65ac48)
-   Dont incorrectly mark run failed if filename pattern excludes previously failed tests  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) [<samp>(61cf9)</samp>](https://togithub.com/vitest-dev/vitest/commit/61cf9a7a)
-   **coverage**: Istanbul crashes when no tests were run  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2753](https://togithub.com/vitest-dev/vitest/issues/2753) [<samp>(ebc95)</samp>](https://togithub.com/vitest-dev/vitest/commit/ebc95add)

#####    🏎 Performance

-   Don't import vite in worker  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2759](https://togithub.com/vitest-dev/vitest/issues/2759) [<samp>(e49c1)</samp>](https://togithub.com/vitest-dev/vitest/commit/e49c13fa)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.2...v0.28.3)

### [`v0.28.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.2)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.1...v0.28.2)

#####    🐞 Bug Fixes

-   Send stderr header log to stderr  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2736](https://togithub.com/vitest-dev/vitest/issues/2736) [<samp>(998ea)</samp>](https://togithub.com/vitest-dev/vitest/commit/998ea804)
-   Call afterAll, if beforeAll failed  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2737](https://togithub.com/vitest-dev/vitest/issues/2737) [<samp>(1904c)</samp>](https://togithub.com/vitest-dev/vitest/commit/1904c9c4)
-   **vite-node**: Don't cache modules with `timestamp: 0`  -  by [@&#8203;danielroe](https://togithub.com/danielroe) in [https://github.com/vitest-dev/vitest/issues/2747](https://togithub.com/vitest-dev/vitest/issues/2747) [<samp>(e88c0)</samp>](https://togithub.com/vitest-dev/vitest/commit/e88c04c4)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.1...v0.28.2)

### [`v0.28.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.1)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.28.0...v0.28.1)

#####    🐞 Bug Fixes

-   Remove UI from Vitest dependencies  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(b120c)</samp>](https://togithub.com/vitest-dev/vitest/commit/b120ca3f)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.28.0...v0.28.1)

### [`v0.28.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.28.0)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.3...v0.28.0)

#####    🚨 Breaking Changes

-   Don't rely on environment for interopDefault  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2682](https://togithub.com/vitest-dev/vitest/issues/2682) [<samp>(3f20c)</samp>](https://togithub.com/vitest-dev/vitest/commit/3f20cf5a)
-   Move test runner into a separate package  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2721](https://togithub.com/vitest-dev/vitest/issues/2721) [<samp>(482b7)</samp>](https://togithub.com/vitest-dev/vitest/commit/482b72fc)
    -   To extend text context, you need to augment `@vitet/runner` package instead of `vitest`

#####    🐞 Bug Fixes

-   **coverage**: C8 to log warning when run in Stackblitz  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2735](https://togithub.com/vitest-dev/vitest/issues/2735) [<samp>(b6c41)</samp>](https://togithub.com/vitest-dev/vitest/commit/b6c41caa)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.3...v0.28.0)

### [`v0.27.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.3)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.2...v0.27.3)

#####    🚀 Features

-   Throw unhandled exception, if code throws "error" event  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2691](https://togithub.com/vitest-dev/vitest/issues/2691) [<samp>(6a30c)</samp>](https://togithub.com/vitest-dev/vitest/commit/6a30cdd3)
-   New `environmentMatchGlobs` option to auto infer env based on glob  -  by [@&#8203;antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2714](https://togithub.com/vitest-dev/vitest/issues/2714) [<samp>(3e142)</samp>](https://togithub.com/vitest-dev/vitest/commit/3e1429e5)
-   Add basic reporter which allow user to use reporter in ci  -  by [@&#8203;trim21](https://togithub.com/trim21) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2612](https://togithub.com/vitest-dev/vitest/issues/2612) [<samp>(5df52)</samp>](https://togithub.com/vitest-dev/vitest/commit/5df522f7)
-   Improve "isCI" check  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2705](https://togithub.com/vitest-dev/vitest/issues/2705) [<samp>(e6457)</samp>](https://togithub.com/vitest-dev/vitest/commit/e64570df)

#####    🐞 Bug Fixes

-   Show error in the terminal, if "only" flag is used  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2696](https://togithub.com/vitest-dev/vitest/issues/2696) [<samp>(24d63)</samp>](https://togithub.com/vitest-dev/vitest/commit/24d63809)
-   Cpu and heap profiling options for workers  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2702](https://togithub.com/vitest-dev/vitest/issues/2702) [<samp>(c31a0)</samp>](https://togithub.com/vitest-dev/vitest/commit/c31a0b20)
-   Show correct number of tests in test summary  -  by [@&#8203;poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2703](https://togithub.com/vitest-dev/vitest/issues/2703) [<samp>(859e7)</samp>](https://togithub.com/vitest-dev/vitest/commit/859e7f01)
-   Don't terminate workers on Node 14 to not trigger fatal error  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2697](https://togithub.com/vitest-dev/vitest/issues/2697) [<samp>(db9b6)</samp>](https://togithub.com/vitest-dev/vitest/commit/db9b6bb7)
-   Allow custom async matchers  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2707](https://togithub.com/vitest-dev/vitest/issues/2707) [<samp>(b5669)</samp>](https://togithub.com/vitest-dev/vitest/commit/b566912d)
-   Remove setup files from coverage  -  by [@&#8203;g4rry420](https://togithub.com/g4rry420) in [https://github.com/vitest-dev/vitest/issues/2574](https://togithub.com/vitest-dev/vitest/issues/2574) [<samp>(488e4)</samp>](https://togithub.com/vitest-dev/vitest/commit/488e4b9f)
-   `reportCoverage` context can be optional  -  by [@&#8203;antfu](https://togithub.com/antfu) [<samp>(4cd1e)</samp>](https://togithub.com/vitest-dev/vitest/commit/4cd1e5d7)
-   ENOENT assets when htmldir exists  -  by [@&#8203;everett1992](https://togithub.com/everett1992) in [https://github.com/vitest-dev/vitest/issues/2701](https://togithub.com/vitest-dev/vitest/issues/2701) [<samp>(5a656)</samp>](https://togithub.com/vitest-dev/vitest/commit/5a656753)
-   Correctly resolve paths relative to root, when used outside of root directory  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2687](https://togithub.com/vitest-dev/vitest/issues/2687) [<samp>(703aa)</samp>](https://togithub.com/vitest-dev/vitest/commit/703aab46)
-   **typecheck**: Store tmp tsconfig close to original one  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2660](https://togithub.com/vitest-dev/vitest/issues/2660) [<samp>(26f91)</samp>](https://togithub.com/vitest-dev/vitest/commit/26f915ad)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.2...v0.27.3)

### [`v0.27.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.2)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.1...v0.27.2)

#####    🚀 Features

-   Add runAllTimersAsync from sinonjs  -  by [@&#8203;guillaumeduboc](https://togithub.com/guillaumeduboc) in [https://github.com/vitest-dev/vitest/issues/2209](https://togithub.com/vitest-dev/vitest/issues/2209) [<samp>(40187)</samp>](https://togithub.com/vitest-dev/vitest/commit/40187bdb)

#####    🐞 Bug Fixes

-   Document.defaultView references the same window as the global one  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2649](https://togithub.com/vitest-dev/vitest/issues/2649) [<samp>(1ac4b)</samp>](https://togithub.com/vitest-dev/vitest/commit/1ac4bb8d)
-   Trim input filename and test name  -  by [@&#8203;btea](https://togithub.com/btea) in [https://github.com/vitest-dev/vitest/issues/2650](https://togithub.com/vitest-dev/vitest/issues/2650) [<samp>(d3dcb)</samp>](https://togithub.com/vitest-dev/vitest/commit/d3dcbdc8)
-   Increase default teardownTimeout  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(13e53)</samp>](https://togithub.com/vitest-dev/vitest/commit/13e53ac7)
-   Mock css files imported with "require"  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2679](https://togithub.com/vitest-dev/vitest/issues/2679) [<samp>(6c1a2)</samp>](https://togithub.com/vitest-dev/vitest/commit/6c1a26a6)
-   Don't start watching files in "run" mode  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2680](https://togithub.com/vitest-dev/vitest/issues/2680) [<samp>(0a31e)</samp>](https://togithub.com/vitest-dev/vitest/commit/0a31e85c)
-   Rerun tests, when setup file is edited  -  by [@&#8203;mysteryven](https://togithub.com/mysteryven) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2625](https://togithub.com/vitest-dev/vitest/issues/2625) [<samp>(019a6)</samp>](https://togithub.com/vitest-dev/vitest/commit/019a6d57)
-   Always show filename for unhandled errors  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2689](https://togithub.com/vitest-dev/vitest/issues/2689) [<samp>(15aa0)</samp>](https://togithub.com/vitest-dev/vitest/commit/15aa0156)
-   Define property instead of assigning it in vi.stubGlobal  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2685](https://togithub.com/vitest-dev/vitest/issues/2685) [<samp>(8a1d7)</samp>](https://togithub.com/vitest-dev/vitest/commit/8a1d7590)
-   **coverage**: Watch mode to use `coverage.all` only when all tests are run  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2665](https://togithub.com/vitest-dev/vitest/issues/2665) [<samp>(85096)</samp>](https://togithub.com/vitest-dev/vitest/commit/85096281)
-   **typecheck**: Log tests with verbose reporter, correctly show "pass" tests  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2656](https://togithub.com/vitest-dev/vitest/issues/2656) [<samp>(61dde)</samp>](https://togithub.com/vitest-dev/vitest/commit/61ddebae)
-   **ui**: Don't show "connecting" screen in html reporter  -  by [@&#8203;poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2693](https://togithub.com/vitest-dev/vitest/issues/2693) [<samp>(d8548)</samp>](https://togithub.com/vitest-dev/vitest/commit/d8548c69)

#####    🏎 Performance

-   Don't resolve import path, if it was already resolved  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2659](https://togithub.com/vitest-dev/vitest/issues/2659) [<samp>(45cc3)</samp>](https://togithub.com/vitest-dev/vitest/commit/45cc3423)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.1...v0.27.2)

### [`v0.27.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.1)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

#####    🚀 Features

-   Show error, when process.exit is called  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2643](https://togithub.com/vitest-dev/vitest/issues/2643) [<samp>(866f4)</samp>](https://togithub.com/vitest-dev/vitest/commit/866f4494)
-   Add more information about unhandler error  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2642](https://togithub.com/vitest-dev/vitest/issues/2642) [<samp>(1ffb0)</samp>](https://togithub.com/vitest-dev/vitest/commit/1ffb0ef5)
-   Display running processes, if vitest closes with timeout  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2633](https://togithub.com/vitest-dev/vitest/issues/2633) [<samp>(94968)</samp>](https://togithub.com/vitest-dev/vitest/commit/94968a6f)

#####    🐞 Bug Fixes

-   Type issue with spyOn method  -  by [@&#8203;samkevin1](https://togithub.com/samkevin1) in [https://github.com/vitest-dev/vitest/issues/2365](https://togithub.com/vitest-dev/vitest/issues/2365) and [https://github.com/vitest-dev/vitest/issues/2582](https://togithub.com/vitest-dev/vitest/issues/2582) [<samp>(1aaa7)</samp>](https://togithub.com/vitest-dev/vitest/commit/1aaa79d7)
-   Add missing types in TS project when global is true  -  by [@&#8203;Sneaken](https://togithub.com/Sneaken) in [https://github.com/vitest-dev/vitest/issues/2631](https://togithub.com/vitest-dev/vitest/issues/2631) [<samp>(4745e)</samp>](https://togithub.com/vitest-dev/vitest/commit/4745eaa2)
-   Always report failed test in junit reporter  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2632](https://togithub.com/vitest-dev/vitest/issues/2632) [<samp>(83da2)</samp>](https://togithub.com/vitest-dev/vitest/commit/83da2ec4)
-   Change Vite root, if test.root is used  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2637](https://togithub.com/vitest-dev/vitest/issues/2637) [<samp>(efbff)</samp>](https://togithub.com/vitest-dev/vitest/commit/efbff2a2)
-   Don't use ownKeys, when interoping a module  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2629](https://togithub.com/vitest-dev/vitest/issues/2629) [<samp>(a186a)</samp>](https://togithub.com/vitest-dev/vitest/commit/a186a7e1)
-   Cut duplicate error in negated toHaveBeenCalled  -  by [@&#8203;richardboehme](https://togithub.com/richardboehme) in [https://github.com/vitest-dev/vitest/issues/2638](https://togithub.com/vitest-dev/vitest/issues/2638) [<samp>(09d62)</samp>](https://togithub.com/vitest-dev/vitest/commit/09d62226)
-   Always update last HMR ms on a module  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(99676)</samp>](https://togithub.com/vitest-dev/vitest/commit/9967645a)
-   Terminate workers, when closing process  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2645](https://togithub.com/vitest-dev/vitest/issues/2645) [<samp>(ece43)</samp>](https://togithub.com/vitest-dev/vitest/commit/ece434a3)
-   **coverage**:
    -   Prevent c8 from crashing on invalid sourcemaps  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2634](https://togithub.com/vitest-dev/vitest/issues/2634) [<samp>(0163d)</samp>](https://togithub.com/vitest-dev/vitest/commit/0163dc80)
    -   Istanbul provider to use `coverage.extension`  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2641](https://togithub.com/vitest-dev/vitest/issues/2641) [<samp>(7e388)</samp>](https://togithub.com/vitest-dev/vitest/commit/7e388903)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.27.0...v0.27.1)

### [`v0.27.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.27.0)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.26.3...v0.27.0)

#####    🚨 Breaking Changes

-   Deprecate "error" on result, store errors in "errors"  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2586](https://togithub.com/vitest-dev/vitest/issues/2586) [<samp>(e641a)</samp>](https://togithub.com/vitest-dev/vitest/commit/e641a110)
-   Split vitest into separate packages, but still bundle them for the time being  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2575](https://togithub.com/vitest-dev/vitest/issues/2575) [<samp>(c8e6f)</samp>](https://togithub.com/vitest-dev/vitest/commit/c8e6fb69)

#####    🚀 Features

-   **coverage**: report only changed files when using istanbul coverage with watch mode  -  by [@&#8203;g4rry420](https://togithub.com/g4rry420) in [https://github.com/vitest-dev/vitest/issues/2385](https://togithub.com/vitest-dev/vitest/issues/2385) [<samp>(bf872)</samp>](https://togithub.com/vitest-dev/vitest/commit/bf87282c)

#####    🐞 Bug Fixes

-   Return mock path only when mocked  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2619](https://togithub.com/vitest-dev/vitest/issues/2619) [<samp>(f8ac2)</samp>](https://togithub.com/vitest-dev/vitest/commit/f8ac2094)
-   Allow mocking CJS module with interoped default  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2598](https://togithub.com/vitest-dev/vitest/issues/2598

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **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.

---

 - [ ] 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://app.renovatebot.com/dashboard#github/mheob/changeset-changelog).
@github-actions github-actions bot locked and limited conversation to collaborators Jun 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants