dependabot[bot] 1046ffaf33 Bump the npm-dependencies group across 1 directory with 14 updates (#970)
Bumps the npm-dependencies group with 14 updates in the /sources
directory:

| Package | From | To |
| --- | --- | --- |
|
[@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core)
| `3.0.0` | `3.0.1` |
|
[@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github)
| `9.0.0` | `9.1.1` |
|
[@actions/glob](https://github.com/actions/toolkit/tree/HEAD/packages/glob)
| `0.6.1` | `0.7.0` |
|
[@actions/http-client](https://github.com/actions/toolkit/tree/HEAD/packages/http-client)
| `4.0.0` | `4.0.1` |
| [semver](https://github.com/npm/node-semver) | `7.7.4` | `7.8.1` |
| [which](https://github.com/npm/node-which) | `6.0.1` | `7.0.0` |
|
[@jest/globals](https://github.com/jestjs/jest/tree/HEAD/packages/jest-globals)
| `30.3.0` | `30.4.1` |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `25.5.0` | `25.9.1` |
|
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)
| `8.58.0` | `8.59.4` |
| [eslint](https://github.com/eslint/eslint) | `10.1.0` | `10.4.0` |
| [globals](https://github.com/sindresorhus/globals) | `17.4.0` |
`17.6.0` |
| [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) |
`30.3.0` | `30.4.2` |
| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.8.3` |
| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.9` |
`29.4.11` |


Updates `@actions/core` from 3.0.0 to 3.0.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md">@​actions/core's
changelog</a>.</em></p>
<blockquote>
<h2>3.0.1</h2>
<ul>
<li>Bump <code>undici</code> from <code>6.23.0</code> to
<code>6.24.1</code> <a
href="https://redirect.github.com/actions/toolkit/pull/2348">#2348</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/toolkit/commits/HEAD/packages/core">compare
view</a></li>
</ul>
</details>
<br />

Updates `@actions/github` from 9.0.0 to 9.1.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md">@​actions/github's
changelog</a>.</em></p>
<blockquote>
<h3>9.1.1</h3>
<ul>
<li>Bump <code>undici</code> from <code>6.23.0</code> to
<code>6.24.0</code> <a
href="https://redirect.github.com/actions/toolkit/pull/2346">#2346</a></li>
</ul>
<h3>9.1.0</h3>
<ul>
<li>Append <code>actions_orchestration_id</code> to user-agent when the
<code>ACTIONS_ORCHESTRATION_ID</code> environment variable is set <a
href="https://redirect.github.com/actions/toolkit/pull/2364">#2364</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/toolkit/commits/HEAD/packages/github">compare
view</a></li>
</ul>
</details>
<br />

Updates `@actions/glob` from 0.6.1 to 0.7.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/toolkit/blob/main/packages/glob/RELEASES.md">@​actions/glob's
changelog</a>.</em></p>
<blockquote>
<h2>0.7.0</h2>
<ul>
<li>Bump <code>minimatch</code> from <code>^3.0.4</code> to
<code>^10.2.5</code> <a
href="https://redirect.github.com/actions/toolkit/pull/2355">#2355</a></li>
<li>Bump <code>undici</code> from <code>6.23.0</code> to
<code>6.24.0</code> <a
href="https://redirect.github.com/actions/toolkit/pull/2345">#2345</a></li>
<li>Bump <code>brace-expansion</code> in <code>/packages/glob</code> <a
href="https://redirect.github.com/actions/toolkit/pull/2369">#2369</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/toolkit/commits/HEAD/packages/glob">compare
view</a></li>
</ul>
</details>
<br />

Updates `@actions/http-client` from 4.0.0 to 4.0.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/toolkit/blob/main/packages/http-client/RELEASES.md">@​actions/http-client's
changelog</a>.</em></p>
<blockquote>
<h2>4.0.1</h2>
<ul>
<li>Bump <code>undici</code> from <code>6.23.0</code> to
<code>6.24.0</code> <a
href="https://redirect.github.com/actions/toolkit/pull/2347">#2347</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/toolkit/commits/HEAD/packages/http-client">compare
view</a></li>
</ul>
</details>
<br />

Updates `semver` from 7.7.4 to 7.8.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/releases">semver's
releases</a>.</em></p>
<blockquote>
<h2>v7.8.1</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.8.0...v7.8.1">7.8.1</a>
(2026-05-21)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/17aa702d91166472b197a2ea768f085083bee2e4"><code>17aa702</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/869">#869</a>
strip build metadata before comparator trimming (<a
href="https://redirect.github.com/npm/node-semver/issues/869">#869</a>)
(<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/5f3ca133e040210b6ea80c350a1d61d9da02e722"><code>5f3ca13</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/867">#867</a>
handle prerelease bounds in subset (<a
href="https://redirect.github.com/npm/node-semver/issues/867">#867</a>)
(<a
href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a>,
Puneet Dixit)</li>
</ul>
<h2>v7.8.0</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.7.4...v7.8.0">7.8.0</a>
(2026-05-08)</h2>
<h3>Features</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/0d0a0a2582fb1486bc6cd255ba18819c441ed149"><code>0d0a0a2</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/855">#855</a>
Add <code>truncate</code> function (<a
href="https://redirect.github.com/npm/node-semver/issues/855">#855</a>)
(<a href="https://github.com/pjohnmeyer"><code>@​pjohnmeyer</code></a>,
<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/3905343045dc293c3694d5e46170b1bb1fb5cf58"><code>3905343</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/859">#859</a>
Warn when defaulting to --inc=patch in CLI (<a
href="https://github.com/pjohnmeyer"><code>@​pjohnmeyer</code></a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/c368af612e521767e960419e6388c5129c857984"><code>c368af6</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/853">#853</a>
fix typos in documentation (<a
href="https://redirect.github.com/npm/node-semver/issues/853">#853</a>)
(<a
href="https://github.com/ankitkumar572005"><code>@​ankitkumar572005</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/37776c31e2f3448fd852c975888e37b03efe9afe"><code>37776c3</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/846">#846</a>
fix BNF grammar to distinguish prerelease from build identifiers (<a
href="https://redirect.github.com/npm/node-semver/issues/846">#846</a>)
(<a href="https://github.com/abhu85"><code>@​abhu85</code></a>, <a
href="https://github.com/claude"><code>@​claude</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/9542e09ebcd89e916777d35eba868061dad9ed7d"><code>9542e09</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a>
template-oss-apply (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/937bc2cd8721db14745c9be123078c44e77a86ef"><code>937bc2c</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a>
<code>template-oss-apply@5.0.0</code> (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/6946fefa57bd5e191871a4738b28ca673e003527"><code>6946fef</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/852">#852</a>
bump <code>@​npmcli/template-oss</code> from 4.29.0 to 4.30.0 (<a
href="https://redirect.github.com/npm/node-semver/issues/852">#852</a>)
(<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot],
<a
href="https://github.com/npm-cli-bot"><code>@​npm-cli-bot</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/blob/main/CHANGELOG.md">semver's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.8.0...v7.8.1">7.8.1</a>
(2026-05-21)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/17aa702d91166472b197a2ea768f085083bee2e4"><code>17aa702</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/869">#869</a>
strip build metadata before comparator trimming (<a
href="https://redirect.github.com/npm/node-semver/issues/869">#869</a>)
(<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/5f3ca133e040210b6ea80c350a1d61d9da02e722"><code>5f3ca13</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/867">#867</a>
handle prerelease bounds in subset (<a
href="https://redirect.github.com/npm/node-semver/issues/867">#867</a>)
(<a
href="https://github.com/puneetdixit200"><code>@​puneetdixit200</code></a>,
Puneet Dixit)</li>
</ul>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.7.4...v7.8.0">7.8.0</a>
(2026-05-08)</h2>
<h3>Features</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/0d0a0a2582fb1486bc6cd255ba18819c441ed149"><code>0d0a0a2</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/855">#855</a>
Add <code>truncate</code> function (<a
href="https://redirect.github.com/npm/node-semver/issues/855">#855</a>)
(<a href="https://github.com/pjohnmeyer"><code>@​pjohnmeyer</code></a>,
<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/3905343045dc293c3694d5e46170b1bb1fb5cf58"><code>3905343</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/859">#859</a>
Warn when defaulting to --inc=patch in CLI (<a
href="https://github.com/pjohnmeyer"><code>@​pjohnmeyer</code></a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/c368af612e521767e960419e6388c5129c857984"><code>c368af6</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/853">#853</a>
fix typos in documentation (<a
href="https://redirect.github.com/npm/node-semver/issues/853">#853</a>)
(<a
href="https://github.com/ankitkumar572005"><code>@​ankitkumar572005</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/37776c31e2f3448fd852c975888e37b03efe9afe"><code>37776c3</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/846">#846</a>
fix BNF grammar to distinguish prerelease from build identifiers (<a
href="https://redirect.github.com/npm/node-semver/issues/846">#846</a>)
(<a href="https://github.com/abhu85"><code>@​abhu85</code></a>, <a
href="https://github.com/claude"><code>@​claude</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/9542e09ebcd89e916777d35eba868061dad9ed7d"><code>9542e09</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a>
template-oss-apply (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/937bc2cd8721db14745c9be123078c44e77a86ef"><code>937bc2c</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/860">#860</a>
<code>template-oss-apply@5.0.0</code> (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/6946fefa57bd5e191871a4738b28ca673e003527"><code>6946fef</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/852">#852</a>
bump <code>@​npmcli/template-oss</code> from 4.29.0 to 4.30.0 (<a
href="https://redirect.github.com/npm/node-semver/issues/852">#852</a>)
(<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot],
<a
href="https://github.com/npm-cli-bot"><code>@​npm-cli-bot</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/76416081a8413383cf6e24c82cafa438bd076d41"><code>7641608</code></a>
chore: release 7.8.1 (<a
href="https://redirect.github.com/npm/node-semver/issues/868">#868</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/17aa702d91166472b197a2ea768f085083bee2e4"><code>17aa702</code></a>
fix: strip build metadata before comparator trimming (<a
href="https://redirect.github.com/npm/node-semver/issues/869">#869</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/5f3ca133e040210b6ea80c350a1d61d9da02e722"><code>5f3ca13</code></a>
fix: handle prerelease bounds in subset (<a
href="https://redirect.github.com/npm/node-semver/issues/867">#867</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/efa4be6096c1f9b77d9d27d6132f6220c43b4e31"><code>efa4be6</code></a>
chore: release 7.8.0 (<a
href="https://redirect.github.com/npm/node-semver/issues/847">#847</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/9542e09ebcd89e916777d35eba868061dad9ed7d"><code>9542e09</code></a>
chore: template-oss-apply</li>
<li><a
href="https://github.com/npm/node-semver/commit/937bc2cd8721db14745c9be123078c44e77a86ef"><code>937bc2c</code></a>
chore: template-oss-apply@5.0.0</li>
<li><a
href="https://github.com/npm/node-semver/commit/3905343045dc293c3694d5e46170b1bb1fb5cf58"><code>3905343</code></a>
fix: Warn when defaulting to --inc=patch in CLI</li>
<li><a
href="https://github.com/npm/node-semver/commit/0d0a0a2582fb1486bc6cd255ba18819c441ed149"><code>0d0a0a2</code></a>
feat: Add <code>truncate</code> function (<a
href="https://redirect.github.com/npm/node-semver/issues/855">#855</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/c368af612e521767e960419e6388c5129c857984"><code>c368af6</code></a>
docs: fix typos in documentation (<a
href="https://redirect.github.com/npm/node-semver/issues/853">#853</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/6946fefa57bd5e191871a4738b28ca673e003527"><code>6946fef</code></a>
chore: bump <code>@​npmcli/template-oss</code> from 4.29.0 to 4.30.0 (<a
href="https://redirect.github.com/npm/node-semver/issues/852">#852</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/npm/node-semver/compare/v7.7.4...v7.8.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `which` from 6.0.1 to 7.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-which/releases">which's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2><a
href="https://github.com/npm/node-which/compare/v6.0.1...v7.0.0">7.0.0</a>
(2026-05-08)</h2>
<h3>⚠️ BREAKING CHANGES</h3>
<ul>
<li><code>which</code> now supports node <code>^22.22.2 || ^24.15.0 ||
&gt;=26.0.0</code></li>
<li>template-oss-apply</li>
</ul>
<h3>Features</h3>
<ul>
<li><a
href="https://github.com/npm/node-which/commit/471d90ba5f4c8af8e9d8c8604d57b1128255bfb8"><code>471d90b</code></a>
<a href="https://redirect.github.com/npm/node-which/pull/176">#176</a>
bump to new node engine range (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-which/commit/8aac36f904ed4ba17e269763e0267167ac6a729d"><code>8aac36f</code></a>
<a href="https://redirect.github.com/npm/node-which/pull/176">#176</a>
template-oss-apply (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-which/commit/9bdf0037cb47aaa7f89eb7ae0372d7f90b8557d3"><code>9bdf003</code></a>
<a href="https://redirect.github.com/npm/node-which/pull/176">#176</a>
template-oss-apply (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-which/blob/main/CHANGELOG.md">which's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/npm/node-which/compare/v6.0.1...v7.0.0">7.0.0</a>
(2026-05-08)</h2>
<h3>⚠️ BREAKING CHANGES</h3>
<ul>
<li><code>which</code> now supports node <code>^22.22.2 || ^24.15.0 ||
&gt;=26.0.0</code></li>
<li>template-oss-apply</li>
</ul>
<h3>Features</h3>
<ul>
<li><a
href="https://github.com/npm/node-which/commit/471d90ba5f4c8af8e9d8c8604d57b1128255bfb8"><code>471d90b</code></a>
<a href="https://redirect.github.com/npm/node-which/pull/176">#176</a>
bump to new node engine range (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
<li><a
href="https://github.com/npm/node-which/commit/8aac36f904ed4ba17e269763e0267167ac6a729d"><code>8aac36f</code></a>
<a href="https://redirect.github.com/npm/node-which/pull/176">#176</a>
template-oss-apply (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-which/commit/9bdf0037cb47aaa7f89eb7ae0372d7f90b8557d3"><code>9bdf003</code></a>
<a href="https://redirect.github.com/npm/node-which/pull/176">#176</a>
template-oss-apply (<a
href="https://github.com/owlstronaut"><code>@​owlstronaut</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/npm/node-which/commit/297db11d58eebe01551ae0875a127a89ee63d2cb"><code>297db11</code></a>
chore: release 7.0.0 (<a
href="https://redirect.github.com/npm/node-which/issues/177">#177</a>)</li>
<li><a
href="https://github.com/npm/node-which/commit/9bdf0037cb47aaa7f89eb7ae0372d7f90b8557d3"><code>9bdf003</code></a>
chore: template-oss-apply</li>
<li><a
href="https://github.com/npm/node-which/commit/471d90ba5f4c8af8e9d8c8604d57b1128255bfb8"><code>471d90b</code></a>
feat!: bump to new node engine range</li>
<li><a
href="https://github.com/npm/node-which/commit/8aac36f904ed4ba17e269763e0267167ac6a729d"><code>8aac36f</code></a>
feat!: template-oss-apply</li>
<li><a
href="https://github.com/npm/node-which/commit/482490851357b9c22da31dc4b06736dcac180344"><code>4824908</code></a>
deps &amp; engine update</li>
<li>See full diff in <a
href="https://github.com/npm/node-which/compare/v6.0.1...v7.0.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@jest/globals` from 30.3.0 to 30.4.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/releases">@​jest/globals's
releases</a>.</em></p>
<blockquote>
<h2>v30.4.1</h2>
<h2>Features</h2>
<ul>
<li><code>[jest-config, jest-core, jest-runner, jest-schemas,
jest-types]</code> Allow custom runner configuration options via tuple
format <code>['runner-path', {options}]</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[jest-runtime]</code> Align CJS-from-ESM default export with
Node: <code>module.exports</code> is always the ESM default,
<code>__esModule</code> unwrapping is no longer applied (<a
href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1">https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1</a></p>
<h2>v30.4.0</h2>
<p>Big release! 😀</p>
<p>Main feature is a rewrite of our custom runtime in preparation for
stabilisation of native support of ESM. As part of that work
<code>require(esm)</code> module is now supported on Node 24.9+ (still
requires <code>--experimental-vm-modules</code> like before).</p>
<p>In addition we now support fake timers for the recently released
<code>Temporal</code> API in Node v26.</p>
<p>React 19 is also supported properly in <code>pretty-format</code>,
meaning snapshots of React components now work like they should.</p>
<p>Due to all the changes, there might be regressions that snuck in.
Please report them!</p>
<p>Full list of changes below</p>
<h2>Features</h2>
<ul>
<li><code>[babel-jest]</code> Support collecting coverage from
<code>.mts</code>, <code>.cts</code> (and other) files (<a
href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li>
<li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2,
jest-types]</code> Add <code>--collect-tests</code> flag to discover and
list tests without executing them (<a
href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li>
<li><code>[jest-config, jest-runner, jest-worker]</code> Add
<code>workerGracefulExitTimeout</code> config option to control how long
workers are given to exit before being force-killed (<a
href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li>
<li><code>[jest-config]</code> Add support for
<code>jest.config.mts</code> as a valid configuration file (<a
href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li>
<li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code>
<code>verbose</code> and <code>silent</code> can now be set per-project;
the project-level value overrides the global value for that project's
tests (<a
href="https://redirect.github.com/jestjs/jest/pull/16133">#16133</a>)</li>
<li><code>[@jest/fake-timers]</code> Accept
<code>Temporal.Duration</code> in
<code>jest.advanceTimersByTime()</code> and
<code>jest.advanceTimersByTimeAsync()</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li>
<li><code>[@jest/fake-timers]</code> Accept
<code>Temporal.Instant</code> and <code>Temporal.ZonedDateTime</code> in
<code>jest.setSystemTime()</code> and <code>useFakeTimers({now})</code>
(<a
href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li>
<li><code>[@jest/fake-timers]</code> Support faking
<code>Temporal.Now.*</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16131">#16131</a>)</li>
<li><code>[jest-mock]</code> Add <code>clearMocksOnScope(scope)</code>
on <code>ModuleMocker</code> for clearing every mock function exposed on
a scope object (<a
href="https://redirect.github.com/jestjs/jest/pull/16088">#16088</a>)</li>
<li><code>[jest-resolve]</code> Add <code>canResolveSync()</code> on
<code>Resolver</code> so callers can detect when a user-configured
resolver only exports an <code>async</code> hook (<a
href="https://redirect.github.com/jestjs/jest/pull/16064">#16064</a>)</li>
<li><code>[jest-runtime]</code> Use synchronous <code>evaluate()</code>
for ES modules without top-level <code>await</code> on Node versions
that support it (v24.9+), and prefer the synchronous transform path when
a sync transformer is configured (<a
href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li>
<li><code>[jest-runtime]</code> Support <code>require()</code> of ES
modules on Node v24.9+ (<a
href="https://redirect.github.com/jestjs/jest/pull/16074">#16074</a>)</li>
<li><code>[jest-runtime]</code> Validate TC39 import attributes
(<code>with { type: 'json' }</code>) on ESM imports (<a
href="https://redirect.github.com/jestjs/jest/pull/16127">#16127</a>)</li>
<li><code>[@jest/transform]</code> Add
<code>canTransformSync(filename)</code> on
<code>ScriptTransformer</code> so callers can pick the sync vs async
transform path (<a
href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li>
<li><code>[jest-util]</code> Add <code>isError</code> helper (<a
href="https://redirect.github.com/jestjs/jest/pull/16076">#16076</a>)</li>
<li><code>[pretty-format]</code> Support React 19 (<a
href="https://redirect.github.com/jestjs/jest/pull/16123">#16123</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[expect-utils]</code> Fix <code>toStrictEqual</code> failing
on <code>structuredClone</code> results due to cross-realm constructor
mismatch (<a
href="https://redirect.github.com/jestjs/jest/pull/15959">#15959</a>)</li>
<li><code>[@jest/expect-utils]</code> Prevent
<code>toMatchObject</code>/subset matching from throwing when
encountering exotic iterables (<a
href="https://redirect.github.com/jestjs/jest/pull/15952">#15952</a>)</li>
<li><code>[fake-timers]</code> Convert <code>Date</code> to milliseconds
before passing to <code>@sinonjs/fake-timers</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16029">#16029</a>)</li>
<li><code>[jest]</code> Export <code>GlobalConfig</code> and
<code>ProjectConfig</code> TypeScript types (<a
href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">@​jest/globals's
changelog</a>.</em></p>
<blockquote>
<h2>30.4.1</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-config, jest-core, jest-runner, jest-schemas,
jest-types]</code> Allow custom runner configuration options via tuple
format <code>['runner-path', {options}]</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-runtime]</code> Align CJS-from-ESM default export with
Node: <code>module.exports</code> is always the ESM default,
<code>__esModule</code> unwrapping is no longer applied (<a
href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li>
</ul>
<h2>30.4.0</h2>
<h3>Features</h3>
<ul>
<li><code>[babel-jest]</code> Support collecting coverage from
<code>.mts</code>, <code>.cts</code> (and other) files (<a
href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li>
<li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2,
jest-types]</code> Add <code>--collect-tests</code> flag to discover and
list tests without executing them (<a
href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li>
<li><code>[jest-config, jest-runner, jest-worker]</code> Add
<code>workerGracefulExitTimeout</code> config option to control how long
workers are given to exit before being force-killed (<a
href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li>
<li><code>[jest-config]</code> Add support for
<code>jest.config.mts</code> as a valid configuration file (<a
href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li>
<li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code>
<code>verbose</code> and <code>silent</code> can now be set per-project;
the project-level value overrides the global value for that project's
tests (<a
href="https://redirect.github.com/jestjs/jest/pull/16133">#16133</a>)</li>
<li><code>[@jest/fake-timers]</code> Accept
<code>Temporal.Duration</code> in
<code>jest.advanceTimersByTime()</code> and
<code>jest.advanceTimersByTimeAsync()</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li>
<li><code>[@jest/fake-timers]</code> Accept
<code>Temporal.Instant</code> and <code>Temporal.ZonedDateTime</code> in
<code>jest.setSystemTime()</code> and <code>useFakeTimers({now})</code>
(<a
href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li>
<li><code>[@jest/fake-timers]</code> Support faking
<code>Temporal.Now.*</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16131">#16131</a>)</li>
<li><code>[jest-mock]</code> Add <code>clearMocksOnScope(scope)</code>
on <code>ModuleMocker</code> for clearing every mock function exposed on
a scope object (<a
href="https://redirect.github.com/jestjs/jest/pull/16088">#16088</a>)</li>
<li><code>[jest-resolve]</code> Add <code>canResolveSync()</code> on
<code>Resolver</code> so callers can detect when a user-configured
resolver only exports an <code>async</code> hook (<a
href="https://redirect.github.com/jestjs/jest/pull/16064">#16064</a>)</li>
<li><code>[jest-runtime]</code> Use synchronous <code>evaluate()</code>
for ES modules without top-level <code>await</code> on Node versions
that support it (v24.9+), and prefer the synchronous transform path when
a sync transformer is configured (<a
href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li>
<li><code>[jest-runtime]</code> Support <code>require()</code> of ES
modules on Node v24.9+ (<a
href="https://redirect.github.com/jestjs/jest/pull/16074">#16074</a>)</li>
<li><code>[jest-runtime]</code> Validate TC39 import attributes
(<code>with { type: 'json' }</code>) on ESM imports (<a
href="https://redirect.github.com/jestjs/jest/pull/16127">#16127</a>)</li>
<li><code>[@jest/transform]</code> Add
<code>canTransformSync(filename)</code> on
<code>ScriptTransformer</code> so callers can pick the sync vs async
transform path (<a
href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li>
<li><code>[jest-util]</code> Add <code>isError</code> helper (<a
href="https://redirect.github.com/jestjs/jest/pull/16076">#16076</a>)</li>
<li><code>[pretty-format]</code> Support React 19 (<a
href="https://redirect.github.com/jestjs/jest/pull/16123">#16123</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[expect-utils]</code> Fix <code>toStrictEqual</code> failing
on <code>structuredClone</code> results due to cross-realm constructor
mismatch (<a
href="https://redirect.github.com/jestjs/jest/pull/15959">#15959</a>)</li>
<li><code>[@jest/expect-utils]</code> Prevent
<code>toMatchObject</code>/subset matching from throwing when
encountering exotic iterables (<a
href="https://redirect.github.com/jestjs/jest/pull/15952">#15952</a>)</li>
<li><code>[fake-timers]</code> Convert <code>Date</code> to milliseconds
before passing to <code>@sinonjs/fake-timers</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16029">#16029</a>)</li>
<li><code>[jest]</code> Export <code>GlobalConfig</code> and
<code>ProjectConfig</code> TypeScript types (<a
href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li>
<li><code>[jest-circus]</code> Prevent crash when
<code>asyncError</code> is undefined for non-Error throws (<a
href="https://redirect.github.com/jestjs/jest/pull/16003">#16003</a>)</li>
<li><code>[jest-circus, jest-jasmine2]</code> Include
<code>Error.cause</code> in JSON <code>failureMessages</code> output (<a
href="https://redirect.github.com/jestjs/jest/pull/15967">#15967</a>)</li>
<li><code>[jest-config]</code> Fix preset path resolution on Windows
when the preset uses subpath <code>exports</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/15961">#15961</a>)</li>
<li><code>[jest-config]</code> Allow <code>collectCoverage</code> and
<code>coverageProvider</code> in project config without a validation
warning (<a
href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li>
<li><code>[jest-config]</code> Project config validator now emits
&quot;is not supported in an individual project configuration&quot;
instead of &quot;probably a typing mistake&quot; for known global-only
options (<a
href="https://redirect.github.com/jestjs/jest/pull/16132">#16132</a>)</li>
<li><code>[jest-environment-node]</code> Fix
<code>--localstorage-file</code> warning on Node 25+ (<a
href="https://redirect.github.com/jestjs/jest/pull/16086">#16086</a>)</li>
<li><code>[jest-reporters]</code> Apply global coverage threshold to
unmatched pattern files in addition to glob/path thresholds (<a
href="https://redirect.github.com/jestjs/jest/pull/16137">#16137</a>)</li>
<li><code>[jest-reporters, jest-runner, jest-runtime,
jest-transform]</code> Fix coverage report not showing correct code
coverage when using <code>projects</code> config option (<a
href="https://redirect.github.com/jestjs/jest/pull/16140">#16140</a>)</li>
<li><code>[jest-runtime]</code> Resolve <code>expect</code> and
<code>@jest/expect</code> from the internal module registry so test-file
imports share the same <code>JestAssertionError</code> as the global
<code>expect</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16130">#16130</a>)</li>
<li><code>[jest-runtime]</code> Improve CJS-from-ESM interop:
<code>__esModule</code>/Babel default unwrap, broader named-export
coverage, and shared CJS singleton across importers (<a
href="https://redirect.github.com/jestjs/jest/pull/16050">#16050</a>)</li>
<li><code>[jest-runtime]</code> Load <code>.js</code> files with ESM
syntax but no <code>&quot;type&quot;:&quot;module&quot;</code> marker as
native ESM (<a
href="https://redirect.github.com/jestjs/jest/pull/16050">#16050</a>)</li>
<li><code>[jest-runtime]</code> Extend the
<code>.js</code>-with-ESM-syntax fallback to <code>require()</code> on
Node v24.9+ - falls back to <code>require(esm)</code> when the CJS
parser rejects ESM syntax (<a
href="https://redirect.github.com/jestjs/jest/pull/16078">#16078</a>)</li>
<li><code>[jest-runtime]</code> Fix deadlocks and double-evaluation in
concurrent ESM and wasm imports (<a
href="https://redirect.github.com/jestjs/jest/pull/16050">#16050</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jestjs/jest/commit/b3b4a09ed3005369dacc7466d1d2122797283785"><code>b3b4a09</code></a>
v30.4.1</li>
<li><a
href="https://github.com/jestjs/jest/commit/5cbb21e0b3037edb42e503ec1a1ce80efad40c20"><code>5cbb21e</code></a>
v30.4.0</li>
<li>See full diff in <a
href="https://github.com/jestjs/jest/commits/v30.4.1/packages/jest-globals">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 25.5.0 to 25.9.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/eslint-plugin` from 8.58.0 to 8.59.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">@​typescript-eslint/eslint-plugin's
releases</a>.</em></p>
<blockquote>
<h2>v8.59.4</h2>
<h2>8.59.4 (2026-05-18)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-floating-promises] stack
overflow when using recursive types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12294">#12294</a>)</li>
<li><strong>project-service:</strong> throw error cause in
<code>getParsedConfigFileFromTSServer</code> (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12321">#12321</a>)</li>
<li><strong>typescript-eslint:</strong> export Compatible* types from
typescript-eslint to resolve pnpm TS error (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12340">#12340</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit"><code>@​StyleShit</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>lumir</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
<h2>v8.59.3</h2>
<h2>8.59.3 (2026-05-11)</h2>
<p>This was a version bump only, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
<h2>v8.59.2</h2>
<h2>8.59.2 (2026-05-04)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unsafe-type-assertion] handle
crash on recursive template literal types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12150">#12150</a>)</li>
<li><strong>eslint-plugin:</strong> [no-deprecated] object destructuring
values should be treated as declarations (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12292">#12292</a>)</li>
<li><strong>rule-tester:</strong> add TypeScript as a peer dependency
(<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12288">#12288</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Dariusz Czajkowski</li>
<li>Dima Barabash</li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
<h2>v8.59.1</h2>
<h2>8.59.1 (2026-04-27)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md">@​typescript-eslint/eslint-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>8.59.4 (2026-05-18)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-floating-promises] stack
overflow when using recursive types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12294">#12294</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Evyatar Daud <a
href="https://github.com/StyleShit"><code>@​StyleShit</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
<h2>8.59.3 (2026-05-11)</h2>
<p>This was a version bump only for eslint-plugin to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
<h2>8.59.2 (2026-05-04)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-deprecated] object destructuring
values should be treated as declarations (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12292">#12292</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unsafe-type-assertion] handle
crash on recursive template literal types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12150">#12150</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Dima Barabash</li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
<h2>8.59.1 (2026-04-27)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-condition] treat
void as nullish in no-unnecessary-condition (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12241">#12241</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-arguments]
handle instantiation expressions (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12220">#12220</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
avoid false positive in logical assignment assertions (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12278">#12278</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
preserve phantom type arguments in generic inference (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12269">#12269</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
preserve index signatures in undefined unions (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12257">#12257</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] fix
crash &quot;TypeError: checker.getTypeArguments is not a function&quot;
(<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12246">#12246</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/ca6ca1431b6d18235297a7e29feb5d98f012dff2"><code>ca6ca14</code></a>
chore(release): publish 8.59.4</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/4302433ae6bf93d4ddc35264ad1b951254758566"><code>4302433</code></a>
fix(eslint-plugin): [no-floating-promises] stack overflow when using
recursiv...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/10b79f1ba8e98610a3af85152a1b3b406f91e633"><code>10b79f1</code></a>
chore(deps): update dependency eslint to v10.4.0 (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12339">#12339</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/2a6765d9628dc776f8127c96f088bb807c0bcab2"><code>2a6765d</code></a>
chore: clenaup <code>getAwaitedType</code> from
<code>typescript.d.ts</code> (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12302">#12302</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/48e13c0261e3cb1bf4f4dfaa462cdb3a56ef7383"><code>48e13c0</code></a>
chore(release): publish 8.59.3</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/e26dc8003ababf078aad4df17765ee4cea30644c"><code>e26dc80</code></a>
docs: update stale links to latest (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12313">#12313</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/44f9625336841a8ee3eb01a9e02e49b1d7b12648"><code>44f9625</code></a>
chore(deps): update vitest monorepo to v4.1.5 (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12307">#12307</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/2ec35f1760aade4df4c631d76d78c7ed5e136333"><code>2ec35f1</code></a>
chore(release): publish 8.59.2</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/ec3ef25390f7daf5a9ff33a60282bdbbb49ab0f3"><code>ec3ef25</code></a>
test: make no-useless-empty-export tests fully static (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12260">#12260</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/60d0a513870d833617374ff8ea256d86ca3cbbbb"><code>60d0a51</code></a>
chore(eslint-plugin): switch auto-generated test cases to hand-written
in no-...</li>
<li>Additional commits viewable in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.4/packages/eslint-plugin">compare
view</a></li>
</ul>
</details>
<br />

Updates `eslint` from 10.1.0 to 10.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v10.4.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/1a45ec596af1dd5f880e6874cb8f24dafb6a7ecf"><code>1a45ec5</code></a>
feat: check sequence expressions in <code>for-direction</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/20701">#20701</a>)
(kuldeep kumar)</li>
<li><a
href="https://github.com/eslint/eslint/commit/450040bd89b989b3531824c6be45feb5fe3d936b"><code>450040b</code></a>
feat: add <code>includeIgnoreFile()</code> to <code>eslint/config</code>
(<a
href="https://redirect.github.com/eslint/eslint/issues/20735">#20735</a>)
(Kirk Waiblinger)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/544c0c3da589166ad8e5d634f35d3d06701c57be"><code>544c0c3</code></a>
fix: escape code path DOT labels in debug output (<a
href="https://redirect.github.com/eslint/eslint/issues/20866">#20866</a>)
(Pixel998)</li>
<li><a
href="https://github.com/eslint/eslint/commit/6799431203f2579632d0870f98ba132067f4040c"><code>6799431</code></a>
fix: update dependency <code>@​eslint/config-helpers</code> to ^0.6.0
(<a
href="https://redirect.github.com/eslint/eslint/issues/20850">#20850</a>)
(renovate[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/f078fef5005dceb14fc162aab7c7200e027688dd"><code>f078fef</code></a>
fix: handle non-array deprecated rule replacements (<a
href="https://redirect.github.com/eslint/eslint/issues/20825">#20825</a>)
(xbinaryx)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/7e52a7151fb92eec0e0f67fe4e5ddbd1ccce796f"><code>7e52a71</code></a>
docs: add mention of <code>@eslint-react/eslint-plugin</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/20869">#20869</a>)
(Pavel)</li>
<li><a
href="https://github.com/eslint/eslint/commit/db3468ba746407d7f286f18f7ea9db6df0e3bc08"><code>db3468b</code></a>
docs: tweak wording around ambiguous CJS-vs-ESM config (<a
href="https://redirect.github.com/eslint/eslint/issues/20865">#20865</a>)
(Kirk Waiblinger)</li>
<li><a
href="https://github.com/eslint/eslint/commit/90846643ec6e97d447ae0d831fabe6d17b0a998a"><code>9084664</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9cc73875046e3c4b8313644cbb1e99e26b36bd3f"><code>9cc7387</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="https://github.com/eslint/eslint/commit/3d7b5484407403817aa9071a394d336d8ea96eb5"><code>3d7b548</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="https://github.com/eslint/eslint/commit/191ec3c0a3f94ce0f110df761f0b2b8949011ccb"><code>191ec3c</code></a>
docs: Update README (GitHub Actions Bot)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/6616856f28fa514a30f87b5539fc100d739a94bf"><code>6616856</code></a>
chore: upgrade knip to v6 (<a
href="https://redirect.github.com/eslint/eslint/issues/20875">#20875</a>)
(Pixel998)</li>
<li><a
href="https://github.com/eslint/eslint/commit/d13b084a3ad02f926e9addaa35fc383759ea5554"><code>d13b084</code></a>
ci: ensure auto-created PRs run CI (<a
href="https://redirect.github.com/eslint/eslint/issues/20860">#20860</a>)
(lumir)</li>
<li><a
href="https://github.com/eslint/eslint/commit/e71c7af86dce9acc1d18cb12d2184309f6841594"><code>e71c7af</code></a>
ci: bump pnpm/action-setup from 6.0.5 to 6.0.7 (<a
href="https://redirect.github.com/eslint/eslint/issues/20862">#20862</a>)
(dependabot[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/d84393dea170f54191fd20c8268b52c81c0ccd99"><code>d84393d</code></a>
test: add unit tests for SuppressionsService.applySuppressions() (<a
href="https://redirect.github.com/eslint/eslint/issues/20863">#20863</a>)
(kuldeep kumar)</li>
<li><a
href="https://github.com/eslint/eslint/commit/24db8cb8e6f07fba667121777a15b1785486be94"><code>24db8cb</code></a>
test: add tests for SuppressionsService.save() (<a
href="https://redirect.github.com/eslint/eslint/issues/20802">#20802</a>)
(kuldeep kumar)</li>
<li><a
href="https://github.com/eslint/eslint/commit/2ef0549cac4a9537e4c3a26b9f3edd4c99476bf6"><code>2ef0549</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/20857">#20857</a>)
(github-actions[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/a4297918d264d229a06cd96051ef9b91c7b86732"><code>a429791</code></a>
ci: remove <code>eslint-webpack-plugin</code> types integration test (<a
href="https://redirect.github.com/eslint/eslint/issues/20668">#20668</a>)
(Milos Djermanovic)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9e37386aa7f2ce220b2ef74a6afbac5f6b3527c5"><code>9e37386</code></a>
chore: replace <code>recast</code> with range approach in
code-sample-minimizer (<a
href="https://redirect.github.com/eslint/eslint/issues/20682">#20682</a>)
(Copilot)</li>
<li><a
href="https://github.com/eslint/eslint/commit/0dd1f9ffc9a07704d46e2a4c8d4ccc0d0908b0c0"><code>0dd1f9f</code></a>
test: disable warning for
<code>vm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/20845">#20845</a>)
(Francesco Trotta)</li>
<li><a
href="https://github.com/eslint/eslint/commit/9da3c7bc92d9579f8db19ecb56e718538d09db2b"><code>9da3c7b</code></a>
refactor: remove deprecated <code>meta.language</code> and migrate
<code>meta.dialects</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/20716">#20716</a>)
(Pixel998)</li>
<li><a
href="https://github.com/eslint/eslint/commit/2099ed12a0a74c3d7f0808514362af2499b4fe2b"><code>2099ed1</code></a>
refactor: add <code>meta.defaultOptions</code> to more rules, enable
linting (<a
href="https://redirect.github.com/eslint/eslint/issues/20800">#20800</a>)
(xbinaryx)</li>
<li><a
href="https://github.com/eslint/eslint/commit/f1dfbc9ca57196de7092e1888cc99427bd6fe06e"><code>f1dfbc9</code></a>
chore: update ecosystem plugins (<a
href="https://redirect.github.com/eslint/eslint/issues/20836">#20836</a>)
(github-actions[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/c75941390c14728806cd4baef4f6072f6de78318"><code>c759413</code></a>
ci: bump pnpm/action-setup from 6.0.3 to 6.0.5 (<a
href="https://redirect.github.com/eslint/eslint/issues/20843">#20843</a>)
(dependabot[bot])</li>
<li><a
href="https://github.com/eslint/eslint/commit/5b817d6fdc9ae2c35b528dc662b2eca8f40f64aa"><code>5b817d6</code></a>
test: add unit tests for lib/shared/ast-utils (<a
href="https://redirect.github.com/eslint/eslint/issues/20838">#20838</a>)
(kuldeep kumar)</li>
<li><a
href="https://github.com/eslint/eslint/commit/1c13ae3934c198c494e5958fa3a68b33244ff06a"><code>1c13ae3</code></a>
test: add unit tests for lib/shared/severity (<a
href="https://redirect.github.com/eslint/eslint/issues/20835">#20835</a>)
(kuldeep kumar)</li>
</ul>
<h2>v10.3.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/379571a975f2b24d88037b9de2e72ec61d004130"><code>379571a</code></a>
feat: add suggestions for no-unused-private-class-members (<a
href="https://redirect.github.com/eslint/eslint/issues/20773">#20773</a>)
(sethamus)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/b6ae5cf07b9b51802367539cb24b245b61eaa37c"><code>b6ae5cf</code></a>
fix: handle unavailable require cache (<a
href="https://redirect.github.com/eslint/eslint/issues/20812">#20812</a>)
(Simon Podlipsky)</li>
<li><a
href="https://github.com/eslint/eslint/commit/6fb3685bcbe9a6f72fd7dfb9129686b6fb96b0bd"><code>6fb3685</code></a>
fix: rule suggestions cause continuation in class body (<a
href="https://redirect.github.com/eslint/eslint/issues/20787">#20787</a>)
(Milos Djermanovic)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/32cc7ab4ec653ce89da92deb5c40a9f4fc707fe5"><code>32cc7ab</code></a>
docs: fix typos in docs and comments (<a
href="https://redirect.github.com/eslint/eslint/issues/20809">#20809</a>)
(Tanuj Kanti)</li>
<li><a
href="https://github.com/eslint/eslint/commit/7f479376a2fa463d823ab762db6bb37ce8d2ee8f"><code>7f47937</code></a>
docs: Update README (GitHub Actions Bot)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/d32235ec19ceea211fa86452afa383ca05f5c2f9"><code>d32235e</code></a>
ci: use pnpm in <code>eslint-flat-config-utils</code> type integration
test (<a
href="https://redirect.github.com/eslint/eslint/issues/20826">#20826</a>)
(Francesco Trotta)</li>
<li><a
href="https://github.com/eslint/eslint/commit/3ffb14ea517de750ed1181579ef844af342e4096"><code>3ffb14e</code></a>
chore: clean up typos in comments and JSDoc (<a
href="https://redirect.github.com/eslint/eslint/issues/20821">#20821</a>)
(Pixel998)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/452c4010c07dc2e36fe6ec6a8c48298878e86887"><code>452c401</code></a>
10.4.0</li>
<li><a
href="https://github.com/eslint/eslint/commit/b6417e8b55c9525070d6e168b485ce6ff21688ed"><code>b6417e8</code></a>
Build: changelog update for 10.4.0</li>
<li><a
href="https://github.com/eslint/eslint/commit/6616856f28fa514a30f87b5539fc100d739a94bf"><code>6616856</code></a>
chore: upgrade knip to v6 (<a
href="https://redirect.github.com/eslint/eslint/issues/20875">#20875</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/d13b084a3ad02f926e9addaa35fc383759ea5554"><code>d13b084</code></a>
ci: ensure auto-created PRs run CI (<a
href="https://redirect.github.com/eslint/eslint/issues/20860">#20860</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/7e52a7151fb92eec0e0f67fe4e5ddbd1ccce796f"><code>7e52a71</code></a>
docs: add mention of <code>@eslint-react/eslint-plugin</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/20869">#20869</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/e71c7af86dce9acc1d18cb12d2184309f6841594"><code>e71c7af</code></a>
ci: bump pnpm/action-setup from 6.0.5 to 6.0.7 (<a
href="https://redirect.github.com/eslint/eslint/issues/20862">#20862</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/544c0c3da589166ad8e5d634f35d3d06701c57be"><code>544c0c3</code></a>
fix: escape code path DOT labels in debug output (<a
href="https://redirect.github.com/eslint/eslint/issues/20866">#20866</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/db3468ba746407d7f286f18f7ea9db6df0e3bc08"><code>db3468b</code></a>
docs: tweak wording around ambiguous CJS-vs-ESM config (<a
href="https://redirect.github.com/eslint/eslint/issues/20865">#20865</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/d84393dea170f54191fd20c8268b52c81c0ccd99"><code>d84393d</code></a>
test: add unit tests for SuppressionsService.applySuppressions() (<a
href="https://redirect.github.com/eslint/eslint/issues/20863">#20863</a>)</li>
<li><a
href="https://github.com/eslint/eslint/commit/90846643ec6e97d447ae0d831fabe6d17b0a998a"><code>9084664</code></a>
docs: Update README</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint/eslint/compare/v10.1.0...v10.4.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `globals` from 17.4.0 to 17.6.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/globals/releases">globals's
releases</a>.</em></p>
<blockquote>
<h2>v17.6.0</h2>
<ul>
<li>Update globals (2026-05-01) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/343">#343</a>)
00a4dd9</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0">https://github.com/sindresorhus/globals/compare/v17.5.0...v17.6.0</a></p>
<h2>v17.5.0</h2>
<ul>
<li>Update globals (2026-04-12) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/342">#342</a>)
5d84602</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/globals/compare/v17.4.0...v17.5.0">https://github.com/sindresorhus/globals/compare/v17.4.0...v17.5.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sindresorhus/globals/commit/6b15870f1c08b60b5b57afe45a703d9ed0be39bc"><code>6b15870</code></a>
17.6.0</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/00a4dd9821830a9b044798120e86b1bb1a54648d"><code>00a4dd9</code></a>
Update globals (2026-05-01) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/343">#343</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/b8170c8e1d648291b613c5b39a69652c796fa36c"><code>b8170c8</code></a>
17.5.0</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/5d846029679832931f38ced6381cc95bcb9abd80"><code>5d84602</code></a>
Update globals (2026-04-12) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/342">#342</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/1b727e5f4cc39121b8e77b9f27574a8ca27391fc"><code>1b727e5</code></a>
Fix build script for ES globals (<a
href="https://redirect.github.com/sindresorhus/globals/issues/341">#341</a>)</li>
<li>See full diff in <a
href="https://github.com/sindresorhus/globals/compare/v17.4.0...v17.6.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `jest` from 30.3.0 to 30.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v30.4.2</h2>
<h1>Fixes</h1>
<ul>
<li><code>[jest-runtime]</code> Fix named imports from CJS modules whose
<code>module.exports</code> is a function with own-property exports (<a
href="https://redirect.github.com/jestjs/jest/pull/16150">#16150</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v30.4.1...v30.4.2">https://github.com/jestjs/jest/compare/v30.4.1...v30.4.2</a></p>
<h2>v30.4.1</h2>
<h2>Features</h2>
<ul>
<li><code>[jest-config, jest-core, jest-runner, jest-schemas,
jest-types]</code> Allow custom runner configuration options via tuple
format <code>['runner-path', {options}]</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[jest-runtime]</code> Align CJS-from-ESM default export with
Node: <code>module.exports</code> is always the ESM default,
<code>__esModule</code> unwrapping is no longer applied (<a
href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1">https://github.com/jestjs/jest/compare/v30.4.0...v30.4.1</a></p>
<h2>v30.4.0</h2>
<p>Big release! 😀</p>
<p>Main feature is a rewrite of our custom runtime in preparation for
stabilisation of native support of ESM. As part of that work
<code>require(esm)</code> module is now supported on Node 24.9+ (still
requires <code>--experimental-vm-modules</code> like before).</p>
<p>In addition we now support fake timers for the recently released
<code>Temporal</code> API in Node v26.</p>
<p>React 19 is also supported properly in <code>pretty-format</code>,
meaning snapshots of React components now work like they should.</p>
<p>Due to all the changes, there might be regressions that snuck in.
Please report them!</p>
<p>Full list of changes below</p>
<h2>Features</h2>
<ul>
<li><code>[babel-jest]</code> Support collecting coverage from
<code>.mts</code>, <code>.cts</code> (and other) files (<a
href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li>
<li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2,
jest-types]</code> Add <code>--collect-tests</code> flag to discover and
list tests without executing them (<a
href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li>
<li><code>[jest-config, jest-runner, jest-worker]</code> Add
<code>workerGracefulExitTimeout</code> config option to control how long
workers are given to exit before being force-killed (<a
href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li>
<li><code>[jest-config]</code> Add support for
<code>jest.config.mts</code> as a valid configuration file (<a
href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li>
<li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code>
<code>verbose</code> and <code>silent</code> can now be set per-project;
the project-level value overrides the global value for that project's
tests (<a
href="https://redirect.github.com/jestjs/jest/pull/16133">#16133</a>)</li>
<li><code>[@jest/fake-timers]</code> Accept
<code>Temporal.Duration</code> in
<code>jest.advanceTimersByTime()</code> and
<code>jest.advanceTimersByTimeAsync()</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li>
<li><code>[@jest/fake-timers]</code> Accept
<code>Temporal.Instant</code> and <code>Temporal.ZonedDateTime</code> in
<code>jest.setSystemTime()</code> and <code>useFakeTimers({now})</code>
(<a
href="https://redirect.github.com/jestjs/jest/pull/16128">#16128</a>)</li>
<li><code>[@jest/fake-timers]</code> Support faking
<code>Temporal.Now.*</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16131">#16131</a>)</li>
<li><code>[jest-mock]</code> Add <code>clearMocksOnScope(scope)</code>
on <code>ModuleMocker</code> for clearing every mock function exposed on
a scope object (<a
href="https://redirect.github.com/jestjs/jest/pull/16088">#16088</a>)</li>
<li><code>[jest-resolve]</code> Add <code>canResolveSync()</code> on
<code>Resolver</code> so callers can detect when a user-configured
resolver only exports an <code>async</code> hook (<a
href="https://redirect.github.com/jestjs/jest/pull/16064">#16064</a>)</li>
<li><code>[jest-runtime]</code> Use synchronous <code>evaluate()</code>
for ES modules without top-level <code>await</code> on Node versions
that support it (v24.9+), and prefer the synchronous transform path when
a sync transformer is configured (<a
href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li>
<li><code>[jest-runtime]</code> Support <code>require()</code> of ES
modules on Node v24.9+ (<a
href="https://redirect.github.com/jestjs/jest/pull/16074">#16074</a>)</li>
<li><code>[jest-runtime]</code> Validate TC39 import attributes
(<code>with { type: 'json' }</code>) on ESM imports (<a
href="https://redirect.github.com/jestjs/jest/pull/16127">#16127</a>)</li>
<li><code>[@jest/transform]</code> Add
<code>canTransformSync(filename)</code> on
<code>ScriptTransformer</code> so callers can pick the sync vs async
transform path (<a
href="https://redirect.github.com/jestjs/jest/pull/16062">#16062</a>)</li>
<li><code>[jest-util]</code> Add <code>isError</code> helper (<a
href="https://redirect.github.com/jestjs/jest/pull/16076">#16076</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>30.4.2</h2>
<h3>Fixes</h3>
<ul>
<li><code>[jest-runtime]</code> Fix named imports from CJS modules whose
<code>module.exports</code> is a function with own-property exports (<a
href="https://redirect.github.com/jestjs/jest/pull/16150">#16150</a>)</li>
</ul>
<h2>30.4.1</h2>
<h3>Features</h3>
<ul>
<li><code>[jest-config, jest-core, jest-runner, jest-schemas,
jest-types]</code> Allow custom runner configuration options via tuple
format <code>['runner-path', {options}]</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/16141">#16141</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-runtime]</code> Align CJS-from-ESM default export with
Node: <code>module.exports</code> is always the ESM default,
<code>__esModule</code> unwrapping is no longer applied (<a
href="https://redirect.github.com/jestjs/jest/pull/16143">#16143</a>)</li>
</ul>
<h2>30.4.0</h2>
<h3>Features</h3>
<ul>
<li><code>[babel-jest]</code> Support collecting coverage from
<code>.mts</code>, <code>.cts</code> (and other) files (<a
href="https://redirect.github.com/jestjs/jest/pull/15994">#15994</a>)</li>
<li><code>[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2,
jest-types]</code> Add <code>--collect-tests</code> flag to discover and
list tests without executing them (<a
href="https://redirect.github.com/jestjs/jest/pull/16006">#16006</a>)</li>
<li><code>[jest-config, jest-runner, jest-worker]</code> Add
<code>workerGracefulExitTimeout</code> config option to control how long
workers are given to exit before being force-killed (<a
href="https://redirect.github.com/jestjs/jest/pull/15984">#15984</a>)</li>
<li><code>[jest-config]</code> Add support for
<code>jest.config.mts</code> as a valid configuration file (<a
href="https://redirect.github.com/jestjs/jest/pull/16005">#16005</a>)</li>
<li><code>[jest-config, jest-core, jest-reporters, jest-runner]</code>
<code>verbose</code> and <code>silent</code> can now be set per-project;
t...

_Description has been truncated_

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jérôme Prinet <jprinet@gradle.com>
2026-06-09 11:49:38 +02:00
2026-04-03 15:25:10 -06:00
2026-06-09 08:41:22 +00:00
2026-04-03 15:25:10 -06:00
2026-04-03 15:25:10 -06:00
2026-04-03 15:25:10 -06:00
2026-04-02 08:45:40 -06:00
2019-09-21 20:57:04 +02:00
2026-04-03 15:25:10 -06:00

GitHub Actions for Gradle builds

This repository contains a set of GitHub Actions that are useful for building Gradle projects on GitHub.

Note

Choice of caching providers in v6

To provide the fastest possible build experience this action includes Enhanced Caching via gradle-actions-caching, an optimized provider powered by proprietary technology. This feature is free for all public repositories and is currently available as a Free Preview for private repositories.

Prefer a 100% Open Source (MIT) path? We also provide a Basic Caching provider as a thin wrapper over actions/cache. This provider is free for all repositories (public and private) and can be enabled at any time by setting cache-provider: basic.

For a full breakdown of the components, usage tiers, and our Safe Harbor data privacy commitment, see our Distribution & Licensing Guide.

The setup-gradle action

The setup-gradle action can be used to configure Gradle for optimal execution on any platform supported by GitHub Actions.

This replaces the previous gradle/gradle-build-action, which now delegates to this implementation.

The recommended way to execute any Gradle build is with the help of the Gradle Wrapper, and the examples assume that the Gradle Wrapper has been configured for the project. See this example if your project doesn't use the Gradle Wrapper.

Example usage

name: Build

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout sources
      uses: actions/checkout@v6
    - name: Setup Java
      uses: actions/setup-java@v5
      with:
        distribution: 'temurin'
        java-version: 17
    - name: Setup Gradle
      uses: gradle/actions/setup-gradle@v6
    - name: Build with Gradle
      run: ./gradlew build

See the full action documentation for more advanced usage scenarios.

The dependency-submission action

Generates and submits a dependency graph for a Gradle project, allowing GitHub to alert about reported vulnerabilities in your project dependencies.

The following workflow will generate a dependency graph for a Gradle project and submit it immediately to the repository via the Dependency Submission API. For most projects, this default configuration should be all that you need.

Simply add this as a new workflow file to your repository (eg .github/workflows/dependency-submission.yml).

name: Dependency Submission

on:
  push:
    branches: [ 'main' ]

permissions:
  contents: write

jobs:
  dependency-submission:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout sources
      uses: actions/checkout@v6
    - name: Setup Java
      uses: actions/setup-java@v5
      with:
        distribution: 'temurin'
        java-version: 17
    - name: Generate and submit dependency graph
      uses: gradle/actions/dependency-submission@v6

See the full action documentation for more advanced usage scenarios.

The wrapper-validation action

The wrapper-validation action validates the checksums of all Gradle Wrapper JAR files present in the repository and fails if any unknown Gradle Wrapper JAR files are found.

The action should be run in the root of the repository, as it will recursively search for any files named gradle-wrapper.jar.

Starting with v4 the setup-gradle action will perform wrapper validation on each execution. If you are using setup-gradle in your workflows, it is unlikely that you will need to use the wrapper-validation action.

Example workflow

name: "Validate Gradle Wrapper"

on:
  push:
  pull_request:

jobs:
  validation:
    name: "Validation"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: gradle/actions/wrapper-validation@v6

See the full action documentation for more advanced usage scenarios.

S
Description
A collection of GitHub Actions to accelerate your Gradle Builds on GitHub
Readme MIT 848 MiB
Languages
TypeScript 51.9%
Groovy 20.6%
Shell 18.3%
Batchfile 5.9%
JavaScript 2%
Other 1.3%