Bumps the npm-dependencies group with 8 updates in the /sources directory: | Package | From | To | | --- | --- | --- | | [@jest/globals](https://github.com/jestjs/jest/tree/HEAD/packages/jest-globals) | `29.7.0` | `30.0.4` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.19.0` | `24.0.10` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.34.0` | `8.36.0` | | [globals](https://github.com/sindresorhus/globals) | `16.2.0` | `16.3.0` | | [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `29.7.0` | `30.0.4` | | [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) | `29.5.14` | `30.0.0` | | [prettier](https://github.com/prettier/prettier) | `3.5.3` | `3.6.2` | | [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.3.4` | `29.4.0` | Updates `@jest/globals` from 29.7.0 to 30.0.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jestjs/jest/releases"><code>@jest/globals</code>'s releases</a>.</em></p> <blockquote> <h2>30.0.2</h2> <h2>What's Changed</h2> <h3>Fixes</h3> <ul> <li><code>[jest-matcher-utils]</code> Make 'deepCyclicCopyObject' safer by setting descriptors to a null-prototype object (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> <li><code>[jest-util]</code> Make garbage collection protection property writable (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">https://github.com/jestjs/jest/blob/main/CHANGELOG.md</a></p> <h2>Jest 30.0.1</h2> <h2>What's Changed</h2> <h3>Features</h3> <ul> <li><code>[jest-resolver]</code> Implement the <code>defaultAsyncResolver</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15679">#15679</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest-resolver]</code> Resolve builtin modules correctly (<a href="https://redirect.github.com/jestjs/jest/pull/15683">#15683</a>)</li> <li><code>[jest-environment-node, jest-util]</code> Avoid setting globals cleanup protection symbol when feature is off (<a href="https://redirect.github.com/jestjs/jest/pull/15684">#15684</a>)</li> </ul> <h3>Chore & Maintenance</h3> <ul> <li><code>[*]</code> Remove and deprecate <code>jest-repl</code> package (<a href="https://redirect.github.com/jestjs/jest/pull/15673">#15673</a>)</li> <li><code>[jest-resolver]</code> Replace custom <code>isBuiltinModule</code> with node's <code>isBuiltin</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15685">#15685</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/vovkasm"><code>@vovkasm</code></a> made their first contribution in <a href="https://redirect.github.com/jestjs/jest/pull/15687">jestjs/jest#15687</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">https://github.com/jestjs/jest/blob/main/CHANGELOG.md</a></p> <h2>Jest 30</h2> <p>Today we are happy to announce the release of Jest 30. This release features a substantial number of changes, fixes, and improvements. While it is one of the largest major releases of Jest ever, we admit that three years for a major release is too long. In the future, we are aiming to make more frequent major releases to keep Jest great for the next decade.</p> <p>If you want to skip all the news and just get going, run <code>npm install jest@^30.0.0</code> and follow the migration guide: <a href="https://jestjs.io/docs/upgrading-to-jest30">Upgrading from Jest 29 to 30</a>.</p> <p><a href="https://jestjs.io/blog/2025/06/04/jest-30">Read the full blog post</a></p> <h3>Features</h3> <ul> <li><code>[*]</code> Renamed <code>globalsCleanupMode</code> to <code>globalsCleanup</code> and <code>--waitNextEventLoopTurnForUnhandledRejectionEvents</code> to <code>--waitForUnhandledRejections</code></li> <li><code>[expect]</code> Add <code>ArrayOf</code> asymmetric matcher for validating array elements. (<a href="https://redirect.github.com/jestjs/jest/pull/15567">#15567</a>)</li> <li><code>[babel-jest]</code> Add option <code>excludeJestPreset</code> to allow opting out of <code>babel-preset-jest</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15164">#15164</a>)</li> <li><code>[expect]</code> Revert <a href="https://redirect.github.com/jestjs/jest/pull/15038">#15038</a> to fix <code>expect(fn).toHaveBeenCalledWith(expect.objectContaining(...))</code> when there are multiple calls (<a href="https://redirect.github.com/jestjs/jest/pull/15508">#15508</a>)</li> <li><code>[jest-circus, jest-cli, jest-config]</code> Add <code>waitNextEventLoopTurnForUnhandledRejectionEvents</code> flag to minimise performance impact of correct detection of unhandled promise rejections introduced in <a href="https://redirect.github.com/jestjs/jest/pull/14315">#14315</a> (<a href="https://redirect.github.com/jestjs/jest/pull/14681">#14681</a>)</li> <li><code>[jest-circus]</code> Add a <code>waitBeforeRetry</code> option to <code>jest.retryTimes</code> (<a href="https://redirect.github.com/jestjs/jest/pull/14738">#14738</a>)</li> <li><code>[jest-circus]</code> Add a <code>retryImmediately</code> option to <code>jest.retryTimes</code> (<a href="https://redirect.github.com/jestjs/jest/pull/14696">#14696</a>)</li> <li><code>[jest-circus, jest-jasmine2]</code> Allow <code>setupFilesAfterEnv</code> to export an async function (<a href="https://redirect.github.com/jestjs/jest/issues/10962">#10962</a>)</li> <li><code>[jest-circus, jest-test-result]</code> Add <code>startedAt</code> timestamp in <code>TestCaseResultObject</code> within <code>onTestCaseResult</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15145">#15145</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"><code>@jest/globals</code>'s changelog</a>.</em></p> <blockquote> <h2>30.0.4</h2> <h3>Features</h3> <ul> <li><code>[expect]</code> The <code>Inverse</code> type is now exported (<a href="https://redirect.github.com/jestjs/jest/pull/15714">#15714</a>)</li> <li><code>[expect]</code> feat: support <code>async functions</code> in <code>toBe</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15704">#15704</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest]</code> jest --onlyFailures --listTests now correctly lists only failed tests (<a href="https://github.com/jestjs/jest/tree/HEAD/packages/jest-globals/issues/15700">#15700</a>)</li> <li><code>[jest-snapshot]</code> Handle line endings in snapshots (<a href="https://redirect.github.com/jestjs/jest/pull/15708">#15708</a>)</li> </ul> <h2>30.0.3</h2> <h3>Fixes</h3> <ul> <li><code>[jest-config]</code> Fix ESM TS config loading in a CJS project (<a href="https://redirect.github.com/jestjs/jest/pull/15694">#15694</a>)</li> <li><code>[jest-core]</code> jest --onlyFailures --listTests now correctly lists only failed tests(<a href="https://redirect.github.com/jestjs/jest/pull/15700">#15700</a>)</li> </ul> <h3>Features</h3> <ul> <li><code>[jest-diff]</code> Show non-printable control characters to diffs (<a href="https://redirect.github.com/facebook/jest/pull/15696">#15696</a>)</li> </ul> <h2>30.0.2</h2> <h3>Fixes</h3> <ul> <li><code>[jest-matcher-utils]</code> Make 'deepCyclicCopyObject' safer by setting descriptors to a null-prototype object (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> <li><code>[jest-util]</code> Make garbage collection protection property writable (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> </ul> <h2>30.0.1</h2> <h3>Features</h3> <ul> <li><code>[jest-resolver]</code> Implement the <code>defaultAsyncResolver</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15679">#15679</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest-resolver]</code> Resolve builtin modules correctly (<a href="https://redirect.github.com/jestjs/jest/pull/15683">#15683</a>)</li> <li><code>[jest-environment-node, jest-util]</code> Avoid setting globals cleanup protection symbol when feature is off (<a href="https://redirect.github.com/jestjs/jest/pull/15684">#15684</a>)</li> </ul> <h3>Chore & Maintenance</h3> <ul> <li><code>[*]</code> Remove and deprecate <code>jest-repl</code> package (<a href="https://redirect.github.com/jestjs/jest/pull/15673">#15673</a>)</li> <li><code>[jest-resolver]</code> Replace custom <code>isBuiltinModule</code> with node's <code>isBuiltin</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15685">#15685</a>)</li> </ul> <h2>30.0.0</h2> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="f4296d2bc8
"><code>f4296d2</code></a> v30.0.4</li> <li><a href="d4a6c94daf
"><code>d4a6c94</code></a> v30.0.3</li> <li><a href="393acbfac3
"><code>393acbf</code></a> v30.0.2</li> <li><a href="5ce865b406
"><code>5ce865b</code></a> v30.0.1</li> <li><a href="469f665c2d
"><code>469f665</code></a> v30.0.0</li> <li><a href="ce14203d91
"><code>ce14203</code></a> v30.0.0-rc.1</li> <li><a href="ac334c0cdf
"><code>ac334c0</code></a> v30.0.0-beta.8</li> <li><a href="7c799e579e
"><code>7c799e5</code></a> v30.0.0-beta.7</li> <li><a href="4f964497dc
"><code>4f96449</code></a> v30.0.0-beta.6</li> <li><a href="286dc4a398
"><code>286dc4a</code></a> v30.0.0-beta.5</li> <li>Additional commits viewable in <a href="https://github.com/jestjs/jest/commits/v30.0.4/packages/jest-globals">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~cpojer">cpojer</a>, a new releaser for <code>@jest/globals</code> since your current version.</p> </details> <br /> Updates `@types/node` from 20.19.0 to 24.0.10 <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.34.0 to 8.36.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases"><code>@typescript-eslint/eslint-plugin</code>'s releases</a>.</em></p> <blockquote> <h2>v8.36.0</h2> <h2>8.36.0 (2025-07-07)</h2> <h3>🚀 Features</h3> <ul> <li><strong>typescript-eslint:</strong> support <code>basePath</code> in <code>tseslint.config()</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11357">#11357</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Kirk Waiblinger <a href="https://github.com/kirkwaiblinger"><code>@kirkwaiblinger</code></a></li> </ul> <p>You can read about our <a href="https://main--typescript-eslint.netlify.app/users/versioning">versioning strategy</a> and <a href="https://main--typescript-eslint.netlify.app/users/releases">releases</a> on our website.</p> <h2>v8.35.1</h2> <h2>8.35.1 (2025-06-30)</h2> <h3>🩹 Fixes</h3> <ul> <li>remove prettier from eslint-plugin (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11339">#11339</a>)</li> <li><strong>website:</strong> did not find a source file error if url hash doesn't contain fileType (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11350">#11350</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Abhijeet Singh <a href="https://github.com/cseas"><code>@cseas</code></a></li> <li>mdm317</li> </ul> <p>You can read about our <a href="https://main--typescript-eslint.netlify.app/users/versioning">versioning strategy</a> and <a href="https://main--typescript-eslint.netlify.app/users/releases">releases</a> on our website.</p> <h2>v8.35.0</h2> <h2>8.35.0 (2025-06-23)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [no-base-to-string] add checkUnknown Option (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11128">#11128</a>)</li> </ul> <h3>🩹 Fixes</h3> <ul> <li><strong>website:</strong> acquired types are shown in the editor but not reflected in linting (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11198">#11198</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Kim Sang Du <a href="https://github.com/developer-bandi"><code>@developer-bandi</code></a></li> <li>mdm317</li> </ul> <p>You can read about our <a href="https://main--typescript-eslint.netlify.app/users/versioning">versioning strategy</a> and <a href="https://main--typescript-eslint.netlify.app/users/releases">releases</a> on our website.</p> <h2>v8.34.1</h2> <h2>8.34.1 (2025-06-16)</h2> <h3>🩹 Fixes</h3> <!-- 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"><code>@typescript-eslint/eslint-plugin</code>'s changelog</a>.</em></p> <blockquote> <h2>8.36.0 (2025-07-07)</h2> <p>This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.</p> <p>You can read about our <a href="https://main--typescript-eslint.netlify.app/users/versioning">versioning strategy</a> and <a href="https://main--typescript-eslint.netlify.app/users/releases">releases</a> on our website.</p> <h2>8.35.1 (2025-06-30)</h2> <h3>🩹 Fixes</h3> <ul> <li>remove prettier from eslint-plugin (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11339">#11339</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Abhijeet Singh <a href="https://github.com/cseas"><code>@cseas</code></a></li> </ul> <p>You can read about our <a href="https://main--typescript-eslint.netlify.app/users/versioning">versioning strategy</a> and <a href="https://main--typescript-eslint.netlify.app/users/releases">releases</a> on our website.</p> <h2>8.35.0 (2025-06-23)</h2> <h3>🚀 Features</h3> <ul> <li><strong>eslint-plugin:</strong> [no-base-to-string] add checkUnknown Option (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11128">#11128</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Kim Sang Du <a href="https://github.com/developer-bandi"><code>@developer-bandi</code></a></li> </ul> <p>You can read about our <a href="https://main--typescript-eslint.netlify.app/users/versioning">versioning strategy</a> and <a href="https://main--typescript-eslint.netlify.app/users/releases">releases</a> on our website.</p> <h2>8.34.1 (2025-06-16)</h2> <p>This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.</p> <p>You can read about our <a href="https://main--typescript-eslint.netlify.app/users/versioning">versioning strategy</a> and <a href="https://main--typescript-eslint.netlify.app/users/releases">releases</a> on our website.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="84b7a2e905
"><code>84b7a2e</code></a> chore(release): publish 8.36.0</li> <li><a href="d1388fc0c9
"><code>d1388fc</code></a> fix(eslint-plugin): [no-deprecated] should allow ignoring of deprecated value...</li> <li><a href="4a60d3e96c
"><code>4a60d3e</code></a> docs(eslint-plugin): [only-throw-error] document options (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11348">#11348</a>)</li> <li><a href="1ca81c14ba
"><code>1ca81c1</code></a> chore(eslint-plugin): switch auto-generated test cases to hand-written in no-...</li> <li><a href="e2ecca60d9
"><code>e2ecca6</code></a> chore: fix issues introduced by updated <code>nx</code> configuration (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11230">#11230</a>)</li> <li><a href="f9bd7d86fc
"><code>f9bd7d8</code></a> chore(release): publish 8.35.1</li> <li><a href="db32b8a82d
"><code>db32b8a</code></a> docs: update only-throw-error documentation allowRethrowing (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11346">#11346</a>)</li> <li><a href="3e545207f0
"><code>3e54520</code></a> fix: remove prettier from eslint-plugin (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11339">#11339</a>)</li> <li><a href="d19c9f383a
"><code>d19c9f3</code></a> chore(release): publish 8.35.0</li> <li><a href="f000a1f0c7
"><code>f000a1f</code></a> feat(eslint-plugin): [no-base-to-string] add checkUnknown Option (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/11128">#11128</a>)</li> <li>Additional commits viewable in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.36.0/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `globals` from 16.2.0 to 16.3.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>v16.3.0</h2> <ul> <li>Update globals (<a href="https://redirect.github.com/sindresorhus/globals/issues/304">#304</a>) 8c029d9</li> </ul> <hr /> <p><a href="https://github.com/sindresorhus/globals/compare/v16.2.0...v16.3.0">https://github.com/sindresorhus/globals/compare/v16.2.0...v16.3.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="2b85fdbacb
"><code>2b85fdb</code></a> 16.3.0</li> <li><a href="8c029d9f30
"><code>8c029d9</code></a> Update globals (<a href="https://redirect.github.com/sindresorhus/globals/issues/304">#304</a>)</li> <li><a href="abd92bba0a
"><code>abd92bb</code></a> Improve builtin globals creation (<a href="https://redirect.github.com/sindresorhus/globals/issues/303">#303</a>)</li> <li><a href="3ad88b6cdd
"><code>3ad88b6</code></a> Rewrite scripts to get globals in browser (<a href="https://redirect.github.com/sindresorhus/globals/issues/300">#300</a>)</li> <li>See full diff in <a href="https://github.com/sindresorhus/globals/compare/v16.2.0...v16.3.0">compare view</a></li> </ul> </details> <br /> Updates `jest` from 29.7.0 to 30.0.4 <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>30.0.2</h2> <h2>What's Changed</h2> <h3>Fixes</h3> <ul> <li><code>[jest-matcher-utils]</code> Make 'deepCyclicCopyObject' safer by setting descriptors to a null-prototype object (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> <li><code>[jest-util]</code> Make garbage collection protection property writable (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">https://github.com/jestjs/jest/blob/main/CHANGELOG.md</a></p> <h2>Jest 30.0.1</h2> <h2>What's Changed</h2> <h3>Features</h3> <ul> <li><code>[jest-resolver]</code> Implement the <code>defaultAsyncResolver</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15679">#15679</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest-resolver]</code> Resolve builtin modules correctly (<a href="https://redirect.github.com/jestjs/jest/pull/15683">#15683</a>)</li> <li><code>[jest-environment-node, jest-util]</code> Avoid setting globals cleanup protection symbol when feature is off (<a href="https://redirect.github.com/jestjs/jest/pull/15684">#15684</a>)</li> </ul> <h3>Chore & Maintenance</h3> <ul> <li><code>[*]</code> Remove and deprecate <code>jest-repl</code> package (<a href="https://redirect.github.com/jestjs/jest/pull/15673">#15673</a>)</li> <li><code>[jest-resolver]</code> Replace custom <code>isBuiltinModule</code> with node's <code>isBuiltin</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15685">#15685</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/vovkasm"><code>@vovkasm</code></a> made their first contribution in <a href="https://redirect.github.com/jestjs/jest/pull/15687">jestjs/jest#15687</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">https://github.com/jestjs/jest/blob/main/CHANGELOG.md</a></p> <h2>Jest 30</h2> <p>Today we are happy to announce the release of Jest 30. This release features a substantial number of changes, fixes, and improvements. While it is one of the largest major releases of Jest ever, we admit that three years for a major release is too long. In the future, we are aiming to make more frequent major releases to keep Jest great for the next decade.</p> <p>If you want to skip all the news and just get going, run <code>npm install jest@^30.0.0</code> and follow the migration guide: <a href="https://jestjs.io/docs/upgrading-to-jest30">Upgrading from Jest 29 to 30</a>.</p> <p><a href="https://jestjs.io/blog/2025/06/04/jest-30">Read the full blog post</a></p> <h3>Features</h3> <ul> <li><code>[*]</code> Renamed <code>globalsCleanupMode</code> to <code>globalsCleanup</code> and <code>--waitNextEventLoopTurnForUnhandledRejectionEvents</code> to <code>--waitForUnhandledRejections</code></li> <li><code>[expect]</code> Add <code>ArrayOf</code> asymmetric matcher for validating array elements. (<a href="https://redirect.github.com/jestjs/jest/pull/15567">#15567</a>)</li> <li><code>[babel-jest]</code> Add option <code>excludeJestPreset</code> to allow opting out of <code>babel-preset-jest</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15164">#15164</a>)</li> <li><code>[expect]</code> Revert <a href="https://redirect.github.com/jestjs/jest/pull/15038">#15038</a> to fix <code>expect(fn).toHaveBeenCalledWith(expect.objectContaining(...))</code> when there are multiple calls (<a href="https://redirect.github.com/jestjs/jest/pull/15508">#15508</a>)</li> <li><code>[jest-circus, jest-cli, jest-config]</code> Add <code>waitNextEventLoopTurnForUnhandledRejectionEvents</code> flag to minimise performance impact of correct detection of unhandled promise rejections introduced in <a href="https://redirect.github.com/jestjs/jest/pull/14315">#14315</a> (<a href="https://redirect.github.com/jestjs/jest/pull/14681">#14681</a>)</li> <li><code>[jest-circus]</code> Add a <code>waitBeforeRetry</code> option to <code>jest.retryTimes</code> (<a href="https://redirect.github.com/jestjs/jest/pull/14738">#14738</a>)</li> <li><code>[jest-circus]</code> Add a <code>retryImmediately</code> option to <code>jest.retryTimes</code> (<a href="https://redirect.github.com/jestjs/jest/pull/14696">#14696</a>)</li> <li><code>[jest-circus, jest-jasmine2]</code> Allow <code>setupFilesAfterEnv</code> to export an async function (<a href="https://redirect.github.com/jestjs/jest/issues/10962">#10962</a>)</li> <li><code>[jest-circus, jest-test-result]</code> Add <code>startedAt</code> timestamp in <code>TestCaseResultObject</code> within <code>onTestCaseResult</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15145">#15145</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.0.4</h2> <h3>Features</h3> <ul> <li><code>[expect]</code> The <code>Inverse</code> type is now exported (<a href="https://redirect.github.com/jestjs/jest/pull/15714">#15714</a>)</li> <li><code>[expect]</code> feat: support <code>async functions</code> in <code>toBe</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15704">#15704</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest]</code> jest --onlyFailures --listTests now correctly lists only failed tests (<a href="https://github.com/jestjs/jest/tree/HEAD/packages/jest/issues/15700">#15700</a>)</li> <li><code>[jest-snapshot]</code> Handle line endings in snapshots (<a href="https://redirect.github.com/jestjs/jest/pull/15708">#15708</a>)</li> </ul> <h2>30.0.3</h2> <h3>Fixes</h3> <ul> <li><code>[jest-config]</code> Fix ESM TS config loading in a CJS project (<a href="https://redirect.github.com/jestjs/jest/pull/15694">#15694</a>)</li> <li><code>[jest-core]</code> jest --onlyFailures --listTests now correctly lists only failed tests(<a href="https://redirect.github.com/jestjs/jest/pull/15700">#15700</a>)</li> </ul> <h3>Features</h3> <ul> <li><code>[jest-diff]</code> Show non-printable control characters to diffs (<a href="https://redirect.github.com/facebook/jest/pull/15696">#15696</a>)</li> </ul> <h2>30.0.2</h2> <h3>Fixes</h3> <ul> <li><code>[jest-matcher-utils]</code> Make 'deepCyclicCopyObject' safer by setting descriptors to a null-prototype object (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> <li><code>[jest-util]</code> Make garbage collection protection property writable (<a href="https://redirect.github.com/jestjs/jest/pull/15689">#15689</a>)</li> </ul> <h2>30.0.1</h2> <h3>Features</h3> <ul> <li><code>[jest-resolver]</code> Implement the <code>defaultAsyncResolver</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15679">#15679</a>)</li> </ul> <h3>Fixes</h3> <ul> <li><code>[jest-resolver]</code> Resolve builtin modules correctly (<a href="https://redirect.github.com/jestjs/jest/pull/15683">#15683</a>)</li> <li><code>[jest-environment-node, jest-util]</code> Avoid setting globals cleanup protection symbol when feature is off (<a href="https://redirect.github.com/jestjs/jest/pull/15684">#15684</a>)</li> </ul> <h3>Chore & Maintenance</h3> <ul> <li><code>[*]</code> Remove and deprecate <code>jest-repl</code> package (<a href="https://redirect.github.com/jestjs/jest/pull/15673">#15673</a>)</li> <li><code>[jest-resolver]</code> Replace custom <code>isBuiltinModule</code> with node's <code>isBuiltin</code> (<a href="https://redirect.github.com/jestjs/jest/pull/15685">#15685</a>)</li> </ul> <h2>30.0.0</h2> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="f4296d2bc8
"><code>f4296d2</code></a> v30.0.4</li> <li><a href="d4a6c94daf
"><code>d4a6c94</code></a> v30.0.3</li> <li><a href="393acbfac3
"><code>393acbf</code></a> v30.0.2</li> <li><a href="5ce865b406
"><code>5ce865b</code></a> v30.0.1</li> <li><a href="469f665c2d
"><code>469f665</code></a> v30.0.0</li> <li><a href="ce14203d91
"><code>ce14203</code></a> v30.0.0-rc.1</li> <li><a href="0ab14ba85d
"><code>0ab14ba</code></a> v30.0.0-beta.9</li> <li><a href="ac334c0cdf
"><code>ac334c0</code></a> v30.0.0-beta.8</li> <li><a href="7c799e579e
"><code>7c799e5</code></a> v30.0.0-beta.7</li> <li><a href="4f964497dc
"><code>4f96449</code></a> v30.0.0-beta.6</li> <li>Additional commits viewable in <a href="https://github.com/jestjs/jest/commits/v30.0.4/packages/jest">compare view</a></li> </ul> </details> <br /> Updates `@types/jest` from 29.5.14 to 30.0.0 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest">compare view</a></li> </ul> </details> <br /> Updates `prettier` from 3.5.3 to 3.6.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/prettier/prettier/releases">prettier's releases</a>.</em></p> <blockquote> <h2>3.6.2</h2> <h2>What's Changed</h2> <ul> <li>Add missing blank line around code block by <a href="https://github.com/fisker"><code>@fisker</code></a> in <a href="https://redirect.github.com/prettier/prettier/pull/17675">prettier/prettier#17675</a></li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#362">Changelog</a></p> <h2>3.6.1</h2> <ul> <li>Fix "Warning: File descriptor 39 closed but not opened in unmanaged mode" error when running <code>--experimental-cli</code></li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#361">Changelog</a></p> <h2>3.6.0</h2> <p><a href="https://github.com/prettier/prettier/compare/3.5.3...3.6.0">diff</a></p> <p>🔗 <a href="https://prettier.io/blog/2025/06/23/3.6.0">Release note "Prettier 3.6: Experimental fast CLI and new OXC and Hermes plugins!"</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's changelog</a>.</em></p> <blockquote> <h1>3.6.2</h1> <p><a href="https://github.com/prettier/prettier/compare/3.6.1...3.6.2">diff</a></p> <h4>Markdown: Add missing blank line around code block (<a href="https://redirect.github.com/prettier/prettier/pull/17675">#17675</a> by <a href="https://github.com/fisker"><code>@fisker</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="md"><code><!-- Input --> 1. Some text, and code block below, with newline after code block <pre lang="yaml"><code>--- foo: bar </code></pre> <ol> <li>Another</li> <li>List</li> </ol> <p><!-- Prettier 3.6.1 --></p> <ol> <li> <p>Some text, and code block below, with newline after code block</p> <pre lang="yaml"><code>--- foo: bar </code></pre> <ol> <li>Another</li> <li>List</li> </ol> </li> </ol> <p><!-- Prettier 3.6.2 --></p> <ol> <li> <p>Some text, and code block below, with newline after code block</p> <pre lang="yaml"><code>--- foo: bar </code></pre> <ol> <li>Another</li> <li>List<br /> </code></pre></li> </ol> </li> </ol> <h1>3.6.1</h1> <p><a href="https://github.com/prettier/prettier/compare/3.6.0...3.6.1">diff</a></p> <h4>TypeScript: Allow const without initializer (<a href="https://redirect.github.com/prettier/prettier/pull/17650">#17650</a>, <a href="https://redirect.github.com/prettier/prettier/pull/17654">#17654</a> by <a href="https://github.com/fisker"><code>@fisker</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="jsx"><code>// Input </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="7a8b05f415
"><code>7a8b05f</code></a> Release 3.6.2</li> <li><a href="46526b49b6
"><code>46526b4</code></a> Add missing blank line around code block (<a href="https://redirect.github.com/prettier/prettier/issues/17675">#17675</a>)</li> <li><a href="a04ec1196f
"><code>a04ec11</code></a> chore(deps): update babel to v7.27.7 (<a href="https://redirect.github.com/prettier/prettier/issues/17684">#17684</a>)</li> <li><a href="32be5b6b44
"><code>32be5b6</code></a> chore(deps): update dependency flow-parser to v0.274.1 (<a href="https://redirect.github.com/prettier/prettier/issues/17676">#17676</a>)</li> <li><a href="b55e777924
"><code>b55e777</code></a> Update docs about "TypeScript Configuration Files" (<a href="https://redirect.github.com/prettier/prettier/issues/17677">#17677</a>)</li> <li><a href="b197c99224
"><code>b197c99</code></a> chore(deps): update dependency <code>@vitejs/plugin-react</code> to v4.6.0 (<a href="https://redirect.github.com/prettier/prettier/issues/17674">#17674</a>)</li> <li><a href="1185f8370a
"><code>1185f83</code></a> chore(deps): update dependency <code>@angular/compiler</code> to v20.0.5 (<a href="https://redirect.github.com/prettier/prettier/issues/17680">#17680</a>)</li> <li><a href="aa1316fa60
"><code>aa1316f</code></a> chore(deps): update dependency browserslist to v4.25.1 (<a href="https://redirect.github.com/prettier/prettier/issues/17671">#17671</a>)</li> <li><a href="c468d33f16
"><code>c468d33</code></a> chore(deps): update dependency oxc-parser to v0.75.0 (<a href="https://redirect.github.com/prettier/prettier/issues/17672">#17672</a>)</li> <li><a href="3f46d91bdb
"><code>3f46d91</code></a> chore(deps): update dependency vite to v7 (<a href="https://redirect.github.com/prettier/prettier/issues/17673">#17673</a>)</li> <li>Additional commits viewable in <a href="https://github.com/prettier/prettier/compare/3.5.3...3.6.2">compare view</a></li> </ul> </details> <br /> Updates `ts-jest` from 29.3.4 to 29.4.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kulshekhar/ts-jest/releases">ts-jest's releases</a>.</em></p> <blockquote> <h2>v29.4.0</h2> <p>Please refer to <a href="https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md">CHANGELOG.md</a> for details.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md">ts-jest's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/kulshekhar/ts-jest/compare/v29.3.4...v29.4.0">29.4.0</a> (2025-06-11)</h2> <h3>Features</h3> <ul> <li>feat: support Jest 30 (<a href="https://github.com/kulshekhar/ts-jest/commit/84e093e">84e093e</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="f692f747c7
"><code>f692f74</code></a> chore(release): 29.4.0</li> <li><a href="84e093ee0e
"><code>84e093e</code></a> feat: support Jest 30</li> <li><a href="2d6fe5cefd
"><code>2d6fe5c</code></a> build(deps): Update dependency eslint-plugin-jsdoc to ^50.8.0</li> <li><a href="83c6d3538f
"><code>83c6d35</code></a> build(deps): Update dependency eslint-plugin-jest to ^28.13.3</li> <li><a href="94797d08a2
"><code>94797d0</code></a> build(deps): Update dependency <code>@vitejs/plugin-react-swc</code> to ^3.10.2</li> <li><a href="9a9bd5cff4
"><code>9a9bd5c</code></a> build(deps): Update ESLint packages to ^8.34.0</li> <li><a href="cbd81fd0cf
"><code>cbd81fd</code></a> build(deps): Update dependency eslint-plugin-jest to ^28.13.0</li> <li><a href="1d3fb0dc80
"><code>1d3fb0d</code></a> build(deps): Update dependency <code>@types/node</code> to v20.19.0</li> <li><a href="32efecbdcd
"><code>32efecb</code></a> build(deps): Update docusaurus monorepo to ^3.8.1</li> <li><a href="5133d4815d
"><code>5133d48</code></a> build: upgrade <code>docusaurus</code> to 3.8</li> <li>Additional commits viewable in <a href="https://github.com/kulshekhar/ts-jest/compare/v29.3.4...v29.4.0">compare view</a></li> </ul> </details> <br /> <details> <summary>Most Recent Ignore Conditions Applied to This Pull Request</summary> | Dependency Name | Ignore Conditions | | --- | --- | | @types/node | [>= 22.a, < 23] | </details> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>
GitHub Actions for Gradle builds
This repository contains a set of GitHub Actions that are useful for building Gradle projects on GitHub.
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@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- 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@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@v4
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@v4
- uses: gradle/actions/wrapper-validation@v4
See the full action documentation for more advanced usage scenarios.