dependabot[bot] opened a new pull request, #74106: URL: https://github.com/apache/airflow/pull/74106
Bumps the 3-3-auth-ui-package-updates group with 9 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory: | Package | From | To | | --- | --- | --- | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.103.2` | `5.104.0` | | [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.88.0` | `7.89.0` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.70.0` | `8.70.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.70.0` | `8.70.1` | | [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) | `8.70.0` | `8.70.1` | | [eslint-plugin-perfectionist](https://github.com/azat-io/eslint-plugin-perfectionist) | `5.11.1` | `5.12.1` | | [prettier](https://github.com/prettier/prettier) | `3.9.8` | `3.9.9` | | [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.70.0` | `8.70.1` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.3.0` | `8.3.1` | Updates `@tanstack/react-query` from 5.103.2 to 5.104.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/TanStack/query/releases">@tanstack/react-query's releases</a>.</em></p> <blockquote> <h2><code>@tanstack/react-query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.104.0</h2> <h3>Minor Changes</h3> <ul> <li><a href="https://redirect.github.com/TanStack/query/pull/11650">#11650</a> <a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a> - Build projects with Vite 8</li> </ul> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a>]: <ul> <li><code>@tanstack/query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.104.0</li> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.0</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-next-experimental</code><a href="https://github.com/5"><code>@5</code></a>.104.0</h2> <h3>Minor Changes</h3> <ul> <li><a href="https://redirect.github.com/TanStack/query/pull/11650">#11650</a> <a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a> - Build projects with Vite 8</li> </ul> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a>]: <ul> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.0</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-persist-client</code><a href="https://github.com/5"><code>@5</code></a>.104.0</h2> <h3>Minor Changes</h3> <ul> <li><a href="https://redirect.github.com/TanStack/query/pull/11650">#11650</a> <a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a> - Build projects with Vite 8</li> </ul> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a>]: <ul> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.0</li> <li><code>@tanstack/query-persist-client-core</code><a href="https://github.com/5"><code>@5</code></a>.104.0</li> </ul> </li> </ul> <h2><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.104.0</h2> <h3>Minor Changes</h3> <ul> <li><a href="https://redirect.github.com/TanStack/query/pull/11650">#11650</a> <a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a> - Build projects with Vite 8</li> </ul> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a>]: <ul> <li><code>@tanstack/query-core</code><a href="https://github.com/5"><code>@5</code></a>.104.0</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.103.3</h2> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/1c9693eac75495a04ae4328a35818b1fdf264978"><code>1c9693e</code></a>, <a href="https://github.com/TanStack/query/commit/d86ac36663e3757a0ad35b5ead5f1d25dfb1b15d"><code>d86ac36</code></a>]: <ul> <li><code>@tanstack/react-query</code><a href="https://github.com/5"><code>@5</code></a>.103.3</li> <li><code>@tanstack/query-devtools</code><a href="https://github.com/5"><code>@5</code></a>.103.3</li> </ul> </li> </ul> <h2><code>@tanstack/react-query-next-experimental</code><a href="https://github.com/5"><code>@5</code></a>.103.3</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md">@tanstack/react-query's changelog</a>.</em></p> <blockquote> <h2>5.104.0</h2> <h3>Minor Changes</h3> <ul> <li><a href="https://redirect.github.com/TanStack/query/pull/11650">#11650</a> <a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a> - Build projects with Vite 8</li> </ul> <h3>Patch Changes</h3> <ul> <li>Updated dependencies [<a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a>]: <ul> <li><code>@tanstack/query-core</code><a href="https://github.com/5"><code>@5</code></a>.104.0</li> </ul> </li> </ul> <h2>5.103.3</h2> <h3>Patch Changes</h3> <ul> <li><a href="https://redirect.github.com/TanStack/query/pull/11647">#11647</a> <a href="https://github.com/TanStack/query/commit/1c9693eac75495a04ae4328a35818b1fdf264978"><code>1c9693e</code></a> - fix(codemods): avoid copying unnecessary files from codemods project</li> <li>Updated dependencies []: <ul> <li><code>@tanstack/query-core</code><a href="https://github.com/5"><code>@5</code></a>.103.3</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/TanStack/query/commit/d4033eb1e5bdef3c8aa72a6cc614bcdd98b1ddca"><code>d4033eb</code></a> ci: Version Packages (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11651">#11651</a>)</li> <li><a href="https://github.com/TanStack/query/commit/5279b05211223dd719803ca22a9d1fa46c98638e"><code>5279b05</code></a> chore(deps): update Vite from v6 to v8 (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11650">#11650</a>)</li> <li><a href="https://github.com/TanStack/query/commit/fe053bf8e947cd869db91e10372bad3c41bc7b77"><code>fe053bf</code></a> ci: Version Packages (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11612">#11612</a>)</li> <li><a href="https://github.com/TanStack/query/commit/1c9693eac75495a04ae4328a35818b1fdf264978"><code>1c9693e</code></a> fix(codemods): update codemods build script (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11647">#11647</a>)</li> <li><a href="https://github.com/TanStack/query/commit/f00aad602e39e4421df893a5ab834d3ebc72fd98"><code>f00aad6</code></a> chore(deps): update dev dependencies (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11640">#11640</a>)</li> <li><a href="https://github.com/TanStack/query/commit/2443290fb5d8d31e7016087fc78216a0703fbfa0"><code>2443290</code></a> test(*): rename 'console.error' spies to 'consoleErrorMock' (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11646">#11646</a>)</li> <li><a href="https://github.com/TanStack/query/commit/fcab29fa8cd2f5732c69dc9591d7fe5ea6f27f77"><code>fcab29f</code></a> test({query-core,react-query,preact-query}): restore the previous 'isServer' ...</li> <li><a href="https://github.com/TanStack/query/commit/e8dacbee8bfbc462e51309d42c603c58d29258e9"><code>e8dacbe</code></a> docs({react-query,preact-query,solid-query,svelte-query}/README): point the C...</li> <li><a href="https://github.com/TanStack/query/commit/57f40eb05bb2ff7b8b8492232fd48976c32cd1f3"><code>57f40eb</code></a> chore(deps): update non-major dependencies (<a href="https://github.com/TanStack/query/tree/HEAD/packages/react-query/issues/11625">#11625</a>)</li> <li><a href="https://github.com/TanStack/query/commit/397ad07f607a93d1b676abb615efd31c67f8adf3"><code>397ad07</code></a> test({query-core,react-query,preact-query,solid-query}): pass 'unhandledRejec...</li> <li>Additional commits viewable in <a href="https://github.com/TanStack/query/commits/@tanstack/[email protected]/packages/react-query">compare view</a></li> </ul> </details> <br /> Updates `react-hook-form` from 7.88.0 to 7.89.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/react-hook-form/react-hook-form/releases">react-hook-form's releases</a>.</em></p> <blockquote> <h2>Version 7.89.0</h2> <h2>🐞 Fixes</h2> <ul> <li>Fix form state select option (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13784">#13784</a>)</li> <li>Remove duplicate default value field (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13783">#13783</a>)</li> <li>Fix <code>validateField</code> skipping refs without <code>setCustomValidity</code> under native validation (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13782">#13782</a>)</li> <li>Fix form-level validation using a stale <code>validate</code> function (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13777">#13777</a>)</li> <li>Fix <code>useFieldArray</code> touched fields handling (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13776">#13776</a>)</li> <li>Fix pending <code>delayError</code> timers for nested paths (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13775">#13775</a>)</li> <li>Fix <code>getValues</code> extracting unmarked field array entries (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13773">#13773</a>)</li> <li>Fix field array touched state not being re-indexed when unsubscribed (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13772">#13772</a>)</li> <li>Fix nested <code>delayError</code> timers remaining when a parent validates clean (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13771">#13771</a>)</li> <li>Fix nested <code>delayError</code> timers remaining after <code>resetField()</code> resets a parent (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13769">#13769</a>)</li> <li>Fix stale field array root errors after an operation satisfies the validation rule (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13767">#13767</a>)</li> <li>Fix <code>setValue()</code> not revalidating dependencies when <code>shouldValidate</code> is enabled (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13765">#13765</a>)</li> <li>Fix stale built-in validation results after <code>reset()</code> during <code>handleSubmit()</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13761">#13761</a>)</li> <li>Fix stale form-level validation results after <code>reset()</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13762">#13762</a>)</li> <li>Fix validation rules removed from <code>register</code> options at runtime remaining active (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13758">#13758</a>)</li> <li>Fix <code>useController</code> required validation not using the controlled value (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13756">#13756</a>)</li> <li>Fix stale form-level errors remaining after successful re-validation (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13755">#13755</a>)</li> <li>Fix <code>useFieldArray</code> marking the form dirty when the array default value is <code>null</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13750">#13750</a>)</li> <li>Fix <code>isValid</code> not being recomputed when the <code>errors</code> prop is emptied (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13748">#13748</a>)</li> <li>Fix form-level validation running more than once per traversal (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13747">#13747</a>)</li> <li>Fix stale built-in validation results after <code>reset()</code> during <code>onChange</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13745">#13745</a>)</li> <li>Fix stale resolver results after <code>reset()</code> during <code>onChange</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13744">#13744</a>)</li> <li>Fix <code>setValue()</code> not triggering field array root validation when <code>shouldValidate</code> is enabled (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13743">#13743</a>)</li> <li>Fix <code>getFieldState(name, formState)</code> updates after <code>reset()</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13741">#13741</a>)</li> <li>Fix dirty state remaining for rows removed from a field array (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13739">#13739</a>)</li> </ul> <h2>🧹 Refactors</h2> <ul> <li>Replace <code>rimraf</code> cleanup with <code>fs.rmSync</code> (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13770">#13770</a>)</li> <li>Reduce bundle size (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13759">#13759</a>)</li> </ul> <h2>📦 Dependencies</h2> <ul> <li>Add optional <code>@types/react</code> peer dependency (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13781">#13781</a>)</li> </ul> <h2>❤️ Thank You</h2> <ul> <li>Thanks to <a href="https://github.com/niketchandivade"><code>@niketchandivade</code></a>, <a href="https://github.com/unrevised6419"><code>@unrevised6419</code></a>, <a href="https://github.com/Lucasfarg"><code>@Lucasfarg</code></a>, <a href="https://github.com/dfedoryshchev"><code>@dfedoryshchev</code></a>, <a href="https://github.com/locphamnice"><code>@locphamnice</code></a>, <a href="https://github.com/Abdalluh28"><code>@Abdalluh28</code></a>, <a href="https://github.com/giaBaoJS"><code>@giaBaoJS</code></a>, <a href="https://github.com/Mohamedshawky4"><code>@Mohamedshawky4</code></a>, <a href="https://github.com/roli-lpci"><code>@roli-lpci</code></a>, <a href="https://github.com/soroush5"><code>@soroush5</code></a>, <a href="https://github.com/zigzagdev"><code>@zigzagdev</code></a> and <a href="https://github.com/bluebill1049"><code>@bluebill1049</code></a> for their contributions! 🎉</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md">react-hook-form's changelog</a>.</em></p> <blockquote> <h2>[7.89.0] - 2026-09-26</h2> <h3>Changed</h3> <ul> <li>Add optional <code>@types/react</code> peer dependency</li> </ul> <h3>Fixed</h3> <ul> <li><code>validateField</code> calling <code>setCustomValidity</code> on refs that don't implement it under native validation</li> <li>Form-level <code>validate</code> running a stale function instead of the latest one</li> <li>Form-level validation leaving stale errors after a successful re-validation</li> <li>Form-level validation running more than once per traversal</li> <li>Stale validation results (resolver, built-in, form-level <code>validate</code>) being applied after <code>reset</code> in <code>onChange</code> and <code>handleSubmit</code></li> <li>Pending <code>delayError</code> timers for nested paths not being cancelled when a parent validates clean or is reset via <code>resetField</code></li> <li><code>getValues(names, { dirtyFields })</code> returning every row of a field array instead of only the marked entries</li> <li>Field array touched state not being re-indexed when <code>touchedFields</code> is not subscribed</li> <li><code>useFieldArray</code> emitting <code>touchedFields</code> in form state updates when unnecessary</li> <li>Stale field array root error not clearing once an array operation satisfies the rule</li> <li><code>useFieldArray</code> marking the form dirty when the array default is <code>null</code></li> <li>Dirty state lingering for rows removed from a field array</li> <li><code>setValue</code> with <code>shouldValidate</code> not revalidating <code>deps</code></li> <li><code>setValue</code> with <code>shouldValidate</code> not triggering validation for a field array root</li> <li>Validation rules removed from <code>register</code> options at runtime still being applied</li> <li><code>useController</code> validating <code>required</code> against the input value instead of the controlled value</li> <li><code>isValid</code> not recomputing when the <code>errors</code> prop is emptied</li> <li><code>getFieldState(name, formState)</code> with a resolver after <code>reset()</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/4722d22fbbafd52b3186e737e62bd530659f1b24"><code>4722d22</code></a> 7.89.0</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/72a4c98f770d618c05a3fc726a7643b2d2db665b"><code>72a4c98</code></a> 👟 chore: correct form state select option (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13784">#13784</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/14c7bec307ca6f8da5be61f49f046b0bd7721d0b"><code>14c7bec</code></a> 🕵🏻♂️ chore: remove duplicate default value field (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13783">#13783</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/d9cab621a9e5e82ac2e5f0bbf27a5d5114b10207"><code>d9cab62</code></a> 🤖 chore: add optional <code>@types/react</code> peer dependency (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13781">#13781</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/c12546c15cd7872b65b9f12a6e5cf136a345c835"><code>c12546c</code></a> 🐞 fix(validateField): skip refs without setCustomValidity under native valida...</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/5fd9ef65290bef2ccaa7ac96dc8d5d55478b5410"><code>5fd9ef6</code></a> 🐞 fix(validate): run the latest form level validate function (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13777">#13777</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/78932304ab9942cc0042b71e70f778652ffc12c8"><code>7893230</code></a> 🐞 fix(useFieldArray): improve touched fields handling and add tests (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13776">#13776</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/ad8abf68766ccb66d0d3d8b16263f877bc7ac0af"><code>ad8abf6</code></a> 🐴 cancel pending delayError timers for nested paths (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13775">#13775</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/eb159dac7296a6324443932a23f44e8878bb9953"><code>eb159da</code></a> 🐞 fix(getValues): extract only the marked entries of a field array (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13773">#13773</a>)</li> <li><a href="https://github.com/react-hook-form/react-hook-form/commit/464701494016d027d8a169260ae9db31b3090e75"><code>4647014</code></a> 🐞 fix: re-index field array touched state when it is not subscribed (<a href="https://redirect.github.com/react-hook-form/react-hook-form/issues/13772">#13772</a>)</li> <li>Additional commits viewable in <a href="https://github.com/react-hook-form/react-hook-form/compare/v7.88.0...v7.89.0">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/eslint-plugin` from 8.70.0 to 8.70.1 <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.70.1</h2> <h2>8.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>ast-spec:</strong> narrow import attribute keys to identifiers and strings (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12879">#12879</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>rule-tester:</strong> test the final autofix output instead of the first pass (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12867">#12867</a>)</li> <li><strong>scope-manager:</strong> merge implicit global definitions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12809">#12809</a>)</li> <li><strong>type-utils:</strong> match package specifiers on whole path components (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12838">#12838</a>)</li> <li><strong>typescript-estree:</strong> resolve symlinked paths when matching files to projects (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12725">#12725</a>)</li> <li><strong>typescript-estree:</strong> add missing <code><</code> token opening type arguments (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12821">#12821</a>)</li> <li><strong>typescript-estree:</strong> require string literal import attribute values (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12894">#12894</a>)</li> <li><strong>website:</strong> prevent playground from breaking down after opening link with the .js file type (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12777">#12777</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Amin <a href="https://github.com/amiin-dev"><code>@amiin-dev</code></a></li> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Cameron</li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>overlookmotel</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>stoicism <a href="https://github.com/stoicism02"><code>@stoicism02</code></a></li> <li>Vinccool96</li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1">GitHub Releases</a> for more information.</p> <!-- 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.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>Vinccool96</li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1">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> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/23d38ceeb8fb1237f55cb62fc2b54419e1fa1ed7"><code>23d38ce</code></a> chore(release): publish 8.70.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/9d82e4b1d9011da31d62d14387bb5a539853fafa"><code>9d82e4b</code></a> chore: expand eslint-plugin rules test files glob (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12878">#12878</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/f7482f636b89b8eab966b4191ce4a53a3f4b4d9c"><code>f7482f6</code></a> fix(eslint-plugin): [no-misused-promises] handle multiple Promise constituent...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/267304477e04538614fe72ad71e7e13082eb7a90"><code>2673044</code></a> docs(eslint-plugin): [prefer-promise-reject-errors] add option sections and e...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/8f141a2ba63d539465eb4e4604f7d79f6f50ce14"><code>8f141a2</code></a> fix(eslint-plugin): [no-useless-default-assignment] convert the fixer to a su...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/479cd85ff82b81dbec9989621681257ebc317a69"><code>479cd85</code></a> chore: enable assertion option <code>requireData</code> for all rule tests (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12816">#12816</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/f3c190c5b5cfa9edaba15fa3f944a76a7364b3ed"><code>f3c190c</code></a> fix(eslint-plugin): [no-unnecessary-condition] handle union-keyed index acces...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/b1993dfd3c45b2c2d83058627499f1dfec5d6d2c"><code>b1993df</code></a> fix(eslint-plugin): [unbound-method] treat Intl.Collator.prototype.compare as...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/da394bc9c21afe97f456040da723d2c558f99658"><code>da394bc</code></a> fix(eslint-plugin): [no-unnecessary-parameter-property-assignment] account fo...</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/4a742ff890b7cca8cbf79e78a9a3b345913094c6"><code>4a742ff</code></a> fix(eslint-plugin): [await-thenable] prevent autofix from breaking code when ...</li> <li>Additional commits viewable in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/parser` from 8.70.0 to 8.70.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/parser's releases</a>.</em></p> <blockquote> <h2>v8.70.1</h2> <h2>8.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>ast-spec:</strong> narrow import attribute keys to identifiers and strings (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12879">#12879</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>rule-tester:</strong> test the final autofix output instead of the first pass (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12867">#12867</a>)</li> <li><strong>scope-manager:</strong> merge implicit global definitions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12809">#12809</a>)</li> <li><strong>type-utils:</strong> match package specifiers on whole path components (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12838">#12838</a>)</li> <li><strong>typescript-estree:</strong> resolve symlinked paths when matching files to projects (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12725">#12725</a>)</li> <li><strong>typescript-estree:</strong> add missing <code><</code> token opening type arguments (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12821">#12821</a>)</li> <li><strong>typescript-estree:</strong> require string literal import attribute values (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12894">#12894</a>)</li> <li><strong>website:</strong> prevent playground from breaking down after opening link with the .js file type (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12777">#12777</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Amin <a href="https://github.com/amiin-dev"><code>@amiin-dev</code></a></li> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Cameron</li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>overlookmotel</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>stoicism <a href="https://github.com/stoicism02"><code>@stoicism02</code></a></li> <li>Vinccool96</li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1">GitHub Releases</a> for more information.</p> <!-- 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/parser/CHANGELOG.md">@typescript-eslint/parser's changelog</a>.</em></p> <blockquote> <h2>8.70.1 (2026-09-21)</h2> <p>This was a version bump only for parser 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.70.1">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> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/23d38ceeb8fb1237f55cb62fc2b54419e1fa1ed7"><code>23d38ce</code></a> chore(release): publish 8.70.1</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/parser">compare view</a></li> </ul> </details> <br /> Updates `@typescript-eslint/utils` from 8.70.0 to 8.70.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">@typescript-eslint/utils's releases</a>.</em></p> <blockquote> <h2>v8.70.1</h2> <h2>8.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>ast-spec:</strong> narrow import attribute keys to identifiers and strings (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12879">#12879</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>rule-tester:</strong> test the final autofix output instead of the first pass (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12867">#12867</a>)</li> <li><strong>scope-manager:</strong> merge implicit global definitions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12809">#12809</a>)</li> <li><strong>type-utils:</strong> match package specifiers on whole path components (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12838">#12838</a>)</li> <li><strong>typescript-estree:</strong> resolve symlinked paths when matching files to projects (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12725">#12725</a>)</li> <li><strong>typescript-estree:</strong> add missing <code><</code> token opening type arguments (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12821">#12821</a>)</li> <li><strong>typescript-estree:</strong> require string literal import attribute values (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12894">#12894</a>)</li> <li><strong>website:</strong> prevent playground from breaking down after opening link with the .js file type (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12777">#12777</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Amin <a href="https://github.com/amiin-dev"><code>@amiin-dev</code></a></li> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Cameron</li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>overlookmotel</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>stoicism <a href="https://github.com/stoicism02"><code>@stoicism02</code></a></li> <li>Vinccool96</li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1">GitHub Releases</a> for more information.</p> <!-- 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/utils/CHANGELOG.md">@typescript-eslint/utils's changelog</a>.</em></p> <blockquote> <h2>8.70.1 (2026-09-21)</h2> <p>This was a version bump only for utils 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.70.1">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> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/23d38ceeb8fb1237f55cb62fc2b54419e1fa1ed7"><code>23d38ce</code></a> chore(release): publish 8.70.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/8c8053103f4ab8df3105826181c43fa257289a73"><code>8c80531</code></a> chore: fix typos in comments and docs (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils/issues/12846">#12846</a>)</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/utils">compare view</a></li> </ul> </details> <br /> Updates `eslint-plugin-perfectionist` from 5.11.1 to 5.12.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/azat-io/eslint-plugin-perfectionist/releases">eslint-plugin-perfectionist's releases</a>.</em></p> <blockquote> <h2>v5.12.1</h2> <h3> 🐞 Bug Fixes</h3> <ul> <li>Make eslint an optional peer dependency - by <a href="https://github.com/porada"><code>@porada</code></a> <a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/41b088e"><!-- raw HTML omitted -->(41b08)<!-- raw HTML omitted --></a></li> </ul> <h5> <a href="https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.12.0...v5.12.1">View changes on GitHub</a></h5> <h2>v5.12.0</h2> <h3> 🚀 Features</h3> <ul> <li>Support oxlint without an eslint installation - by <a href="https://github.com/porada"><code>@porada</code></a> <a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/5488d84"><!-- raw HTML omitted -->(5488d)<!-- raw HTML omitted --></a></li> </ul> <h3> 🐞 Bug Fixes</h3> <ul> <li>Honor eslint-disable directives with a description - by <a href="https://github.com/azat-io"><code>@azat-io</code></a> <a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/e3d11cc"><!-- raw HTML omitted -->(e3d11)<!-- raw HTML omitted --></a></li> </ul> <h5> <a href="https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.11.1...v5.12.0">View changes on GitHub</a></h5> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/azat-io/eslint-plugin-perfectionist/blob/main/changelog.md">eslint-plugin-perfectionist's changelog</a>.</em></p> <blockquote> <h2>v5.12.1</h2> <p><a href="https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.12.0...v5.12.1">compare changes</a></p> <h3>🐞 Bug Fixes</h3> <ul> <li>Make eslint an optional peer dependency (<a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/41b088e">41b088e</a>)</li> </ul> <h3>❤️ Contributors</h3> <ul> <li>Dom Porada (<a href="https://github.com/porada"><code>@porada</code></a>)</li> </ul> <h2>v5.12.0</h2> <p><a href="https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.11.1...v5.12.0">compare changes</a></p> <h3>🚀 Features</h3> <ul> <li>Support oxlint without an eslint installation (<a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/5488d84">5488d84</a>)</li> </ul> <h3>🐞 Bug Fixes</h3> <ul> <li>Honor eslint-disable directives with a description (<a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/e3d11cc">e3d11cc</a>)</li> </ul> <h3>❤️ Contributors</h3> <ul> <li>Dom Porada (<a href="https://github.com/porada"><code>@porada</code></a>)</li> <li>Azat S. (<a href="https://github.com/azat-io"><code>@azat-io</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/43c34648e8b15fd86b3c83117bdb88643a985399"><code>43c3464</code></a> build: publish v5.12.1</li> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/41b088e4ec19865b24bd609253370b0df337f4c3"><code>41b088e</code></a> fix: make eslint an optional peer dependency</li> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/e28e3a0734c5b815aa6790d72ba6e1480e2603a5"><code>e28e3a0</code></a> build: publish v5.12.0</li> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/521314f7f7c03cecd5e9433e65a125871616da3d"><code>521314f</code></a> chore: update dependencies</li> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/5488d8448f22610d12b1ae35b7754239978a345f"><code>5488d84</code></a> feat: support oxlint without an eslint installation</li> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/38eb6928818d3678897ff46da2492d8ccd79b369"><code>38eb692</code></a> refactor: share context option matching and comparators</li> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/e3d11cc000ae616ccb1a168923dc380ed34370f1"><code>e3d11cc</code></a> fix: honor eslint-disable directives with a description</li> <li><a href="https://github.com/azat-io/eslint-plugin-perfectionist/commit/f7eae67e376aa004a287070345e5300a1ad388a7"><code>f7eae67</code></a> chore: update github actions</li> <li>See full diff in <a href="https://github.com/azat-io/eslint-plugin-perfectionist/compare/v5.11.1...v5.12.1">compare view</a></li> </ul> </details> <br /> Updates `prettier` from 3.9.8 to 3.9.9 <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.9.9</h2> <ul> <li>Markdown: Fix text with <code>$</code> been incorrectly parsed as math syntax (<a href="https://redirect.github.com/prettier/prettier/pull/20140">#20140</a> by <a href="https://github.com/fisker"><code>@fisker</code></a>)</li> </ul> <p>🔗 <a href="https://github.com/prettier/prettier/blob/3.9.9/CHANGELOG.md#399">Changelog</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.9.9</h1> <p><a href="https://github.com/prettier/prettier/compare/3.9.8...3.9.9">diff</a></p> <h4>Markdown: Fix text with <code>$</code> been incorrectly parsed as math syntax (<a href="https://redirect.github.com/prettier/prettier/pull/20140">#20140</a> by <a href="https://github.com/fisker"><code>@fisker</code></a>)</h4> <!-- raw HTML omitted --> <pre lang="md"><code><!-- Input --> **Uses $FOO** from `a.sh` and `b.sh`, plus `$BAR` from `c.sh`, before anything else runs here. <p><!-- Prettier 3.9.8 --><br /> <strong>Uses $FOO</strong> from <code>a.sh</code> and <code>b.sh</code>, plus <code>$BAR</code>from<code>c.sh</code>, before anything else runs here.</p> <p><!-- Prettier 3.9.9 --><br /> <strong>Uses $FOO</strong> from <code>a.sh</code> and <code>b.sh</code>, plus <code>$BAR</code> from <code>c.sh</code>, before anything else runs here.<br /> </code></pre></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/prettier/prettier/commit/cdd17f2288b28b170a76416c72dac56e3ea5daff"><code>cdd17f2</code></a> Release 3.9.9</li> <li><a href="https://github.com/prettier/prettier/commit/dc7b8968e678f51ea00e2be3fe8c717d114691a3"><code>dc7b896</code></a> Disable <code>singleDollarTextMath</code> in <code>mdast-util-math</code> (<a href="https://redirect.github.com/prettier/prettier/issues/20140">#20140</a>)</li> <li><a href="https://github.com/prettier/prettier/commit/f9be58fb8ec62dd47197ea19a30aac5ad26dfee0"><code>f9be58f</code></a> Git blame ignore 3.9.8</li> <li><a href="https://github.com/prettier/prettier/commit/88470cb79ca3b757dd6b93906d9a992aa1a456c3"><code>88470cb</code></a> Bump Prettier dependency to 3.9.8</li> <li><a href="https://github.com/prettier/prettier/commit/9559cab39eb5082c99a27e8829760c055adba841"><code>9559cab</code></a> Clean changelog_unreleased</li> <li><a href="https://github.com/prettier/prettier/commit/4fc8ee87465de8d54780273a6996d74e8e9da827"><code>4fc8ee8</code></a> Update dependents count</li> <li>See full diff in <a href="https://github.com/prettier/prettier/compare/3.9.8...3.9.9">compare view</a></li> </ul> </details> <br /> Updates `typescript-eslint` from 8.70.0 to 8.70.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's releases</a>.</em></p> <blockquote> <h2>v8.70.1</h2> <h2>8.70.1 (2026-09-21)</h2> <h3>🩹 Fixes</h3> <ul> <li><strong>ast-spec:</strong> narrow import attribute keys to identifiers and strings (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12879">#12879</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] avoid false positives on tuples with a rest element (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12768">#12768</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-parameters] handle type precedence in the suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12637">#12637</a>)</li> <li><strong>eslint-plugin:</strong> [no-explicit-any] use unknown[] for bare any rest parameters (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12818">#12818</a>)</li> <li><strong>eslint-plugin:</strong> [no-generated-empty-object-type] don't report a mapped type whose keys are not resolved yet (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12854">#12854</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-spread] omit WeakMap spread suggestions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12850">#12850</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] false positive for empty object asserted to a type alias of Record (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12869">#12869</a>)</li> <li><strong>eslint-plugin:</strong> [no-meaningless-void-operator] allow void on assignment expressions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12873">#12873</a>)</li> <li><strong>eslint-plugin:</strong> [await-thenable] prevent autofix from breaking code when removing <code>await</code> (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12716">#12716</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-parameter-property-assignment] account for parameter reassignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12880">#12880</a>)</li> <li><strong>eslint-plugin:</strong> [unbound-method] treat Intl.Collator.prototype.compare as spec-bound (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12845">#12845</a>)</li> <li><strong>eslint-plugin:</strong> [no-unnecessary-condition] handle union-keyed index access on the left-hand side of nullish assignment (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12747">#12747</a>)</li> <li><strong>eslint-plugin:</strong> [no-useless-default-assignment] convert the fixer to a suggestion fixer (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12826">#12826</a>)</li> <li><strong>eslint-plugin:</strong> [no-misused-promises] handle multiple Promise constituents (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12904">#12904</a>)</li> <li><strong>rule-tester:</strong> test the final autofix output instead of the first pass (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12867">#12867</a>)</li> <li><strong>scope-manager:</strong> merge implicit global definitions (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12809">#12809</a>)</li> <li><strong>type-utils:</strong> match package specifiers on whole path components (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12838">#12838</a>)</li> <li><strong>typescript-estree:</strong> resolve symlinked paths when matching files to projects (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12725">#12725</a>)</li> <li><strong>typescript-estree:</strong> add missing <code><</code> token opening type arguments (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12821">#12821</a>)</li> <li><strong>typescript-estree:</strong> require string literal import attribute values (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12894">#12894</a>)</li> <li><strong>website:</strong> prevent playground from breaking down after opening link with the .js file type (<a href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12777">#12777</a>)</li> </ul> <h3>❤️ Thank You</h3> <ul> <li>Amin <a href="https://github.com/amiin-dev"><code>@amiin-dev</code></a></li> <li>Brad Zacher <a href="https://github.com/bradzacher"><code>@bradzacher</code></a></li> <li>Cameron</li> <li>Diptajoy Mistry <a href="https://github.com/diptomistry"><code>@diptomistry</code></a></li> <li>Evyatar Daud <a href="https://github.com/StyleShit"><code>@StyleShit</code></a></li> <li>Grit <a href="https://github.com/Grit03"><code>@Grit03</code></a></li> <li>Hugo <a href="https://github.com/hugop95"><code>@hugop95</code></a></li> <li>Josh Goldberg ✨</li> <li>Michael Naumov <a href="https://github.com/mnaoumov"><code>@mnaoumov</code></a></li> <li>Mikhail Baev <a href="https://github.com/baevm"><code>@baevm</code></a></li> <li>Om Rawat</li> <li>overlookmotel</li> <li>Sanath <a href="https://github.com/sansynx"><code>@sansynx</code></a></li> <li>Shinji</li> <li>stoicism <a href="https://github.com/stoicism02"><code>@stoicism02</code></a></li> <li>Vinccool96</li> <li>Younsang Na <a href="https://github.com/nayounsang"><code>@nayounsang</code></a></li> <li>김채영 <a href="https://github.com/cchaeyoung"><code>@cchaeyoung</code></a></li> <li>송재욱</li> </ul> <p>See <a href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.70.1">GitHub Releases</a> for more information.</p> <!-- 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/typescript-eslint/CHANGELOG.md">typescript-eslint's changelog</a>.</em></p> <blockquote> <h2>8.70.1 (2026-09-21)</h2> <p>This was a version bump only for typescript-eslint 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.70.1">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> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/23d38ceeb8fb1237f55cb62fc2b54419e1fa1ed7"><code>23d38ce</code></a> chore(release): publish 8.70.1</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/eb42d9b7e7ab0eca543bc16b726688624c532fc6"><code>eb42d9b</code></a> chore: cleanup and fix Nx dependencies and missing tasks (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12897">#12897</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/8c8053103f4ab8df3105826181c43fa257289a73"><code>8c80531</code></a> chore: fix typos in comments and docs (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12846">#12846</a>)</li> <li><a href="https://github.com/typescript-eslint/typescript-eslint/commit/b6b86a15dd42aaa0e37054683cb5606c8fd203c2"><code>b6b86a1</code></a> chore: migrate to nx 23.2.0 (<a href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12843">#12843</a>)</li> <li>See full diff in <a href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/typescript-eslint">compare view</a></li> </ul> </details> <br /> Updates `vite` from 8.3.0 to 8.3.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/vitejs/vite/releases">vite's releases</a>.</em></p> <blockquote> <h2>v8.3.1</h2> <h3>Bug Fixes</h3> <ul> <li><strong>deps:</strong> update all non-major dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23482">#23482</a>) (<a href="https://github.com/vitejs/vite/commit/3c752c8932bc0599465ba4a6d8f44aaf1e934c3d">3c752c8</a>)</li> <li><strong>deps:</strong> update all non-major dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23537">#23537</a>) (<a href="https://github.com/vitejs/vite/commit/e8990c4d6101dfaca2654ed8ab4d0574ee920248">e8990c4</a>)</li> <li><strong>deps:</strong> update rolldown-related dependencies (<a href="https://redirect.github.com/vitejs/vite/issues/23483">#23483</a>) (<a href="https://github.com/vitejs/vite/commit/9aecbbfa5fb5da4b9981c099cb9746a9fd210806">9aecbbf</a>)</li> <li>handle <code>server.ws: false</code> in mergeConfig (<a href="https://redirect.github.com/vitejs/vite/issues/23511">#23511</a>) (<a href="https://github.com/vitejs/vite/commit/f68c0d5a28c96555431413e3e2cbe644337b087f">f68c0d5</a>)</li> <li>merge <code>build.rolldownOptions.o... _Description has been truncated_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
