Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

fix(coverage): flaky c8 coverage caused by parallel sourcemap constructing #2591

Merged
merged 3 commits into from
Jan 6, 2023

Conversation

AriPerkkio
Copy link
Member

Currently C8 provider is constructing the sourcemaps using multiple parallel Promises.

await Promise.all(Array
.from(this.ctx.vitenode.fetchCache.entries())
.filter(i => !i[0].includes('/node_modules/'))
.map(async ([file, { result }]) => {

If two requests, e.g. src/components/StyleTag.vue and src/components/StyleTag.vue?vue&type=style&index=0&scoped=88d9cf36&lang.css are running at the same time, it's not guaranteed that sourceMapMeta['src/components/StyleTag.vue'] ends up containing the correct sourcemaps. By running the tests multiple times, the sourceMapMeta may contain incorrect sourcemaps. Sometimes it works fine as correct ones load slower.

I've refactored the Promise.all into a simple for loop, so that sourceMapMeta is not overwritten by parallel promises. Also added a check to see whether sourceMapMeta already contains the file, and skip overwriting it.

I'm not familiar with Vue. It seems that file.vue has correct sourcemaps and result.code is ok. The file.vue?query... is requested afterwards and does not contain actual contents in result.code.

result.code of src/components/StyleTag.vue, this one we want in sourceMapMeta
const __vite_ssr_import_0__ = await __vite_ssr_import__("/node_modules/.pnpm/vue@3.2.45/node_modules/vue/index.mjs");

const _sfc_main = /* @__PURE__ */ __vite_ssr_import_0__.defineComponent({
  __name: "StyleTag",
  setup(__props, { expose }) {
    expose();
    if (false) {
      console.log("false");
    } else {
      console.log("true");
    }
    const __returned__ = {};
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return "Component with style tag";
}
const __vite_ssr_import_1__ = await __vite_ssr_import__("/src/components/StyleTag.vue?vue&type=style&index=0&scoped=88d9cf36&lang.css");

const __vite_ssr_import_2__ = await __vite_ssr_import__("/@id/__x00__plugin-vue:export-helper");

__vite_ssr_exports__.default = /* @__PURE__ */ __vite_ssr_import_2__.default(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-88d9cf36"], ["__file", "/Users/x/y/demo-c8-issues/src/components/StyleTag.vue"]]);

//# sourceMappingSource=vite-node
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsUUFBSSxPQUFPO0FBQ1QsY0FBUSxJQUFJLE9BQU87QUFBQSxJQUNyQixPQUFPO0FBQ0wsY0FBUSxJQUFJLE1BQU07QUFBQSxJQUNwQjs7Ozs7OztTQUdBIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi9Vc2Vycy9hcmkvR2l0L2RlbW8tYzgtaXNzdWVzL3NyYy9jb21wb25lbnRzL1N0eWxlVGFnLnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxuaWYgKGZhbHNlKSB7XG4gIGNvbnNvbGUubG9nKCdmYWxzZScpO1xufSBlbHNlIHtcbiAgY29uc29sZS5sb2coJ3RydWUnKTtcbn1cbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+Q29tcG9uZW50IHdpdGggc3R5bGUgdGFnPC90ZW1wbGF0ZT5cblxuPHN0eWxlIGxhbmc9XCJjc3NcIiBzY29wZWQ+XG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JhZGE1NTtcbn1cbjwvc3R5bGU+XG4iXSwiZmlsZSI6Ii9Vc2Vycy9hcmkvR2l0L2RlbW8tYzgtaXNzdWVzL3NyYy9jb21wb25lbnRzL1N0eWxlVGFnLnZ1ZSJ9\n'
result.code of src/components/StyleTag.vue?vue&type=style&index=0&scoped=88d9cf36&lang.css, breaks coverage if overwrites sourceMapMeta
//# sourceMappingSource=vite-node
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi9Vc2Vycy9hcmkvR2l0L2RlbW8tYzgtaXNzdWVzL3NyYy9jb21wb25lbnRzL1N0eWxlVGFnLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJnNjb3BlZD04OGQ5Y2YzNiZsYW5nLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9

@AriPerkkio AriPerkkio force-pushed the fix/c8-sourcemap-flakiness branch 2 times, most recently from 1475f76 to f3cfa58 Compare January 2, 2023 10:06
…cting

- prevent overwriting already loaded sourcemaps by filtering out "broken" sourcemaps
@sheremet-va sheremet-va merged commit 9a29f98 into vitest-dev:main Jan 6, 2023
@AriPerkkio AriPerkkio deleted the fix/c8-sourcemap-flakiness branch January 6, 2023 12:14
renovate bot referenced this pull request in fwouts/previewjs 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
[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>

---

### 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 referenced this pull request in Unleash/unleash 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.0`](https://renovatebot.com/diffs/npm/vitest/0.26.3/0.27.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.27.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.27.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.27.0/compatibility-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.27.0/confidence-slim/0.26.3)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`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>

---

### 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:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjM0LjEwMi43In0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
andipaetzold referenced this pull request in andipaetzold/react-firehooks 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

c8 coverage seems broken when testing vue file with style tag
2 participants