Repository: nodejs/node
Pull request: tools: bump the eslint group in /tools/eslint with 6 updates

Bumps the eslint group in /tools/eslint with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.27.4` | `7.27.7` |
| [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) | `7.27.1` | `7.27.5` |
| [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin) | `4.4.1` | `5.1.0` |
| [eslint](https://github.com/eslint/eslint) | `9.28.0` | `9.30.0` |
| [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) | `50.7.1` | `51.3.1` |
| [globals](https://github.com/sindresorhus/globals) | `16.2.0` | `16.3.0` |

Updates `@babel/core` from 7.27.4 to 7.27.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/releases"><code>@​babel/core</code>'s releases</a>.</em></p>
<blockquote>
<h2>v7.27.7 (2025-06-26)</h2>
<p>Thanks <a href="https://github.com/arthur-mountain"><code>@​arthur-mountain</code></a> and <a href="https://github.com/evankanderson"><code>@​evankanderson</code></a> for your first PRs!</p>
<h4>:eyeglasses: Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>, <code>babel-plugin-transform-classes</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17203">#17203</a> Interepret parser <code>allow*</code> options as top level only (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17371">#17371</a> fix: disable using in ambient context (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-core</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17392">#17392</a> Improve TS babel config loading (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17376">#17376</a> fix: support negative bigint in valueToNode (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-parameters</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17352">#17352</a> fix: Params of <code>async function*</code> should throw synchronously (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<h4>:house: Internal</h4>
<ul>
<li><code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-object-rest-spread</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17389">#17389</a> Use <code>NodePath#splitExportDeclaration</code> in destructuring transforms (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 6</h4>
<ul>
<li>Arthur (<a href="https://github.com/arthur-mountain"><code>@​arthur-mountain</code></a>)</li>
<li>Babel Bot (<a href="https://github.com/babel-bot"><code>@​babel-bot</code></a>)</li>
<li>Evan Anderson (<a href="https://github.com/evankanderson"><code>@​evankanderson</code></a>)</li>
<li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
</ul>
<h2>v7.27.6 (2025-06-05)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs3</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17366">#17366</a> fix: <code>finally</code> causes unexpected return value (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17357">#17357</a> Ensure syntactic ordering when visiting array-type AST nodes (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 3</h4>
<ul>
<li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Ingvar Stepanyan (<a href="https://github.com/RReverser"><code>@​RReverser</code></a>)</li>
<li><a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
</ul>
<h2>v7.27.5 (2025-06-03)</h2>
<p>Thanks <a href="https://github.com/NullVoxPopuli"><code>@​NullVoxPopuli</code></a> for your first PR!</p>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-regenerator</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17359">#17359</a> fix: Unexpected infinite loop with <code>regenerator</code> for <code>try</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@​babel/core</code>'s changelog</a>.</em></p>
<blockquote>
<h2>v7.27.7 (2025-06-26)</h2>
<h4>:eyeglasses: Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>, <code>babel-plugin-transform-classes</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17203">#17203</a> Interepret parser <code>allow*</code> options as top level only (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17371">#17371</a> fix: disable using in ambient context (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-core</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17392">#17392</a> Improve TS babel config loading (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17376">#17376</a> fix: support negative bigint in valueToNode (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-parameters</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17352">#17352</a> fix: Params of <code>async function*</code> should throw synchronously (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
</ul>
<h4>:house: Internal</h4>
<ul>
<li><code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-object-rest-spread</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17389">#17389</a> Use <code>NodePath#splitExportDeclaration</code> in destructuring transforms (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.27.6 (2025-06-05)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs3</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17366">#17366</a> fix: <code>finally</code> causes unexpected return value (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17357">#17357</a> Ensure syntactic ordering when visiting array-type AST nodes (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.27.5 (2025-06-03)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-regenerator</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17359">#17359</a> fix: Unexpected infinite loop with <code>regenerator</code> for <code>try</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li>Other
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17349">#17349</a> Map ESLint's <code>sourceType: commonjs</code> to script (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:nail_care: Polish</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17333">#17333</a> Improve using declaration errors (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/babel/babel/commit/4ce7dfde1d2f6a8146d2b953d3afb8fc3b023def"><code>4ce7dfd</code></a> v7.27.7</li>
<li><a href="https://github.com/babel/babel/commit/74288115808aaf53937fc3556ca92402bb4ee0e5"><code>7428811</code></a> Improve TS babel config loading (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/17392">#17392</a>)</li>
<li>See full diff in <a href="https://github.com/babel/babel/commits/v7.27.7/packages/babel-core">compare view</a></li>
</ul>
</details>
<br />

Updates `@babel/eslint-parser` from 7.27.1 to 7.27.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/releases"><code>@​babel/eslint-parser</code>'s releases</a>.</em></p>
<blockquote>
<h2>v7.27.5 (2025-06-03)</h2>
<p>Thanks <a href="https://github.com/NullVoxPopuli"><code>@​NullVoxPopuli</code></a> for your first PR!</p>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-regenerator</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17359">#17359</a> fix: Unexpected infinite loop with <code>regenerator</code> for <code>try</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li>Other
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17349">#17349</a> Map ESLint's <code>sourceType: commonjs</code> to script (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:nail_care: Polish</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17333">#17333</a> Improve using declaration errors (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 4</h4>
<ul>
<li>Babel Bot (<a href="https://github.com/babel-bot"><code>@​babel-bot</code></a>)</li>
<li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li><a href="https://github.com/NullVoxPopuli"><code>@​NullVoxPopuli</code></a></li>
<li><a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
</ul>
<h2>v7.27.4 (2025-05-30)</h2>
<h4>:eyeglasses: Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>, <code>babel-plugin-proposal-explicit-resource-management</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17323">#17323</a> Disallow using in bare case statement (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:nail_care: Polish</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17311">#17311</a> Improve parseExpression error messages (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:microscope: Output optimization</h4>
<ul>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17287">#17287</a> Reduce <code>regenerator</code> size more (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs3</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17334">#17334</a> Use shorter method names for regenerator context (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://redirect.github.com/babel/babel/pull/17268">#17268</a> Reduce <code>regenerator</code> helper size (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>, <code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17238">#17238</a> Split <code>regeneratorRuntime</code> into multiple helpers (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 4</h4>
<ul>
<li>Babel Bot (<a href="https://github.com/babel-bot"><code>@​babel-bot</code></a>)</li>
<li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a></li>
</ul>
<h2>v7.27.3 (2025-05-27)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-generator</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17324">#17324</a> Improve multiline comments handling in yield/await expression (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@​babel/eslint-parser</code>'s changelog</a>.</em></p>
<blockquote>
<h2>v7.27.5 (2025-06-03)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-plugin-transform-regenerator</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17359">#17359</a> fix: Unexpected infinite loop with <code>regenerator</code> for <code>try</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li>Other
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17349">#17349</a> Map ESLint's <code>sourceType: commonjs</code> to script (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:nail_care: Polish</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17333">#17333</a> Improve using declaration errors (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.27.4 (2025-05-30)</h2>
<h4>:eyeglasses: Spec Compliance</h4>
<ul>
<li><code>babel-parser</code>, <code>babel-plugin-proposal-explicit-resource-management</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17323">#17323</a> Disallow using in bare case statement (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:nail_care: Polish</h4>
<ul>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17311">#17311</a> Improve parseExpression error messages (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h4>:microscope: Output optimization</h4>
<ul>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17287">#17287</a> Reduce <code>regenerator</code> size more (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs3</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17334">#17334</a> Use shorter method names for regenerator context (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
<li><a href="https://redirect.github.com/babel/babel/pull/17268">#17268</a> Reduce <code>regenerator</code> helper size (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li>
</ul>
</li>
<li><code>babel-core</code>, <code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17238">#17238</a> Split <code>regeneratorRuntime</code> into multiple helpers (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.27.3 (2025-05-27)</h2>
<h4>:bug: Bug Fix</h4>
<ul>
<li><code>babel-generator</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17324">#17324</a> Improve multiline comments handling in yield/await expression (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs3</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17328">#17328</a> Correctly set <code>.displayName</code> on <code>GeneratorFunction</code> (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-proposal-explicit-resource-management</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17319">#17319</a> fix: handle shadowed binding in <code>for using of</code> body (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
<li><a href="https://redirect.github.com/babel/babel/pull/17317">#17317</a> fix: support named evaluation for using declaration (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-plugin-proposal-decorators</code>, <code>babel-types</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17321">#17321</a> fix(converter): Remove <code>abstract</code> modifiers in class declaration to expression conversion (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
</ul>
</li>
<li><code>babel-helper-module-transforms</code>, <code>babel-plugin-proposal-explicit-resource-management</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-umd</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17257">#17257</a> Preserve class id when transforming using declarations with exported class (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
<li><code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17312">#17312</a> fix(parser): properly handle optional markers in generator class methods (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
<li><a href="https://redirect.github.com/babel/babel/pull/17307">#17307</a> fix(parser): Terminate modifier parsing at newline (<a href="https://github.com/magic-akari"><code>@​magic-akari</code></a>)</li>
</ul>
</li>
<li><code>babel-generator</code>, <code>babel-parser</code>
<ul>
<li><a href="https://redirect.github.com/babel/babel/pull/17308">#17308</a> Improve import phase parsing (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li>
</ul>
</li>
</ul>
<h2>v7.27.2 (2025-05-06)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/babel/babel/commit/746ae8e7960b060e475485ad8c7725f6c59a2c54"><code>746ae8e</code></a> v7.27.5</li>
<li><a href="https://github.com/babel/babel/commit/76f3c8588c921c6d4d9ae4855bad3929f169cb64"><code>76f3c85</code></a> fix: support async Babel plugin in eslint-parser (<a href="https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser/issues/17348">#17348</a>)</li>
<li><a href="https://github.com/babel/babel/commit/0c51d8f213c98991a127552bb02e76c96e9a1f1b"><code>0c51d8f</code></a> Map ESLint's <code>sourceType: commonjs</code> to script (<a href="https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser/issues/17349">#17349</a>)</li>
<li><a href="https://github.com/babel/babel/commit/2d0c76e6fa8fd2331f6cef9eba25f73dab6357bb"><code>2d0c76e</code></a> Improve integrations of using declaration with other transforms (<a href="https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser/issues/17330">#17330</a>)</li>
<li>See full diff in <a href="https://github.com/babel/babel/commits/v7.27.5/eslint/babel-eslint-parser">compare view</a></li>
</ul>
</details>
<br />

Updates `@stylistic/eslint-plugin` from 4.4.1 to 5.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/eslint-stylistic/eslint-stylistic/releases"><code>@​stylistic/eslint-plugin</code>'s releases</a>.</em></p>
<blockquote>
<h2>v5.1.0</h2>
<h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.0.0...v5.1.0">5.1.0</a> (2025-06-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>correct rule name in <code>disable-legacy</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/849">#849</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/e63f1e418aae14b7bfdfc764c3a1a310d7af4ddb">e63f1e4</a>)</li>
<li><strong>indent:</strong> correct handling of return type annotations (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/853">#853</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5259950b5f5be86d1d73f6dcb07952b1d36f31e1">5259950</a>)</li>
</ul>
<h3>Build Related</h3>
<ul>
<li>migrate to <code>tsdown</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/854">#854</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d2bec10f1da31eb56ccf637d936dcbba79983cc">5d2bec1</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>cleanup duplicate test cases (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/855">#855</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/140db8594f195193abb39d16aef5f01d386cc651">140db85</a>)</li>
<li>release-please-mark (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/da0be031fc4fbea6c52640f913269e0bf07093c5">da0be03</a>)</li>
</ul>
<h2>v5.0.0</h2>
<h3>   🚨 Breaking Changes</h3>
<ul>
<li>V5: remove sub packages  -  by <strong>Anthony Fu</strong> and <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/794">eslint-stylistic/eslint-stylistic#794</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/3b2fd6e0"><!-- raw HTML omitted -->(3b2fd)<!-- raw HTML omitted --></a></li>
<li>Handle TS object-like nodes in <code>object-curly-spacing</code> instead of <code>block-spacing</code>  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/822">eslint-stylistic/eslint-stylistic#822</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/e9a4b80c"><!-- raw HTML omitted -->(e9a4b)<!-- raw HTML omitted --></a></li>
<li>Handle TS object-like nodes in <code>object-curly-newline</code> instead of <code>brace-style</code> and <code>curly-newline</code>  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/823">eslint-stylistic/eslint-stylistic#823</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/32f743f8"><!-- raw HTML omitted -->(32f74)<!-- raw HTML omitted --></a></li>
<li><strong>object-property-newline</strong>: Remove deprecated option  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/809">eslint-stylistic/eslint-stylistic#809</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/30614af0"><!-- raw HTML omitted -->(30614)<!-- raw HTML omitted --></a></li>
<li><strong>space-before-function-paren</strong>: Handle catch clause with param  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/821">eslint-stylistic/eslint-stylistic#821</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/64c06077"><!-- raw HTML omitted -->(64c06)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🚀 Features</h3>
<ul>
<li>No longer deps on <code>typescript</code>  -  by <strong>Yosuke Ota</strong>, <strong>Vida Xie</strong> and <strong>Anthony Fu</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/838">eslint-stylistic/eslint-stylistic#838</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c18efb0f"><!-- raw HTML omitted -->(c18ef)<!-- raw HTML omitted --></a></li>
<li>Add support for <code>using</code>  -  by <strong>Yosuke Ota</strong> and <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/804">eslint-stylistic/eslint-stylistic#804</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/d133385c"><!-- raw HTML omitted -->(d1333)<!-- raw HTML omitted --></a></li>
<li><strong>no-extra-parens</strong>: Allow spread syntax to wrap parentheses  -  by <strong>zzxming</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/781">eslint-stylistic/eslint-stylistic#781</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/bc74e908"><!-- raw HTML omitted -->(bc74e)<!-- raw HTML omitted --></a></li>
<li><strong>operator-linebreak</strong>: Support TS Nodes  -  by <strong>Vida Xie</strong> and <strong>Anthony Fu</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/805">eslint-stylistic/eslint-stylistic#805</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/d7ab8d22"><!-- raw HTML omitted -->(d7ab8)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>Metadata path generate normalize  -  by <strong>zzxming</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/820">eslint-stylistic/eslint-stylistic#820</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/7c6d6ef3"><!-- raw HTML omitted -->(7c6d6)<!-- raw HTML omitted --></a></li>
<li><strong>indent</strong>: Correctly ignore <code>JSXText</code> and TS nodes  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/785">eslint-stylistic/eslint-stylistic#785</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/b0b4218a"><!-- raw HTML omitted -->(b0b42)<!-- raw HTML omitted --></a></li>
<li><strong>jsx-sort-props</strong>: Correct option schema  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/801">eslint-stylistic/eslint-stylistic#801</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/f80f38a9"><!-- raw HTML omitted -->(f80f3)<!-- raw HTML omitted --></a></li>
<li><strong>space-before-blocks</strong>: Check space before <code>TSModuleBlock</code> nodes  -  by <strong>shixianqin</strong> and <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/798">eslint-stylistic/eslint-stylistic#798</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/2e9d1168"><!-- raw HTML omitted -->(2e9d1)<!-- raw HTML omitted --></a></li>
<li><strong>type-annotation-spacing</strong>: Handle type annotation in parens  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/836">eslint-stylistic/eslint-stylistic#836</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/0f7b4614"><!-- raw HTML omitted -->(0f7b4)<!-- raw HTML omitted --></a></li>
<li><strong>type-generic-spacing</strong>: Prevent errors caused by empty type params  -  by <strong>Vida Xie</strong> in <a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/828">eslint-stylistic/eslint-stylistic#828</a> <a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/229eff0b"><!-- raw HTML omitted -->(229ef)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v4.4.1...v5.0.0">View changes on GitHub</a></h5>
<h2>v5.0.0-beta.6</h2>
<h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.0.0-beta.5...v5.0.0-beta.6">5.0.0-beta.6</a> (2025-06-22)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md"><code>@​stylistic/eslint-plugin</code>'s changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.0.0...v5.1.0">5.1.0</a> (2025-06-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>correct rule name in <code>disable-legacy</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/849">#849</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/e63f1e418aae14b7bfdfc764c3a1a310d7af4ddb">e63f1e4</a>)</li>
<li><strong>indent:</strong> correct handling of return type annotations (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/853">#853</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5259950b5f5be86d1d73f6dcb07952b1d36f31e1">5259950</a>)</li>
</ul>
<h3>Build Related</h3>
<ul>
<li>migrate to <code>tsdown</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/854">#854</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d2bec10f1da31eb56ccf637d936dcbba79983cc">5d2bec1</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>cleanup duplicate test cases (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/855">#855</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/140db8594f195193abb39d16aef5f01d386cc651">140db85</a>)</li>
<li>release-please-mark (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/da0be031fc4fbea6c52640f913269e0bf07093c5">da0be03</a>)</li>
</ul>
<h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.0.0-beta.6...v5.0.0">5.0.0</a> (2025-06-23)</h2>
<h3>Chores</h3>
<ul>
<li>release-please-mark (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/36163552bc0f010cbb16a2fdeeba955405500733">3616355</a>)</li>
</ul>
<h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.0.0-beta.5...v5.0.0-beta.6">5.0.0-beta.6</a> (2025-06-22)</h2>
<h3>Features</h3>
<ul>
<li>add support for <code>using</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/804">#804</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/d133385cbf1603d5dea29bc1b0f24fba1ece456b">d133385</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>release-please-mark (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/6c6a1545987c5102770221c8b303e2c10ecafee7">6c6a154</a>)</li>
<li>unify some ast-utils (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/842">#842</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/b30a26b99c119a75ea96a145391832c778553e37">b30a26b</a>)</li>
</ul>
<h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.0.0-beta.4...v5.0.0-beta.5">5.0.0-beta.5</a> (2025-06-20)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>handle TS object-like nodes in <code>object-curly-newline</code> instead of <code>brace-style</code> and <code>curly-newline</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/823">#823</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>handle TS object-like nodes in <code>object-curly-newline</code> instead of <code>brace-style</code> and <code>curly-newline</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/823">#823</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/32f743f85dd2ef5f9d3625ca3c79864cdf3c572f">32f743f</a>)</li>
<li>no longer deps on <code>typescript</code> (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/838">#838</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c18efb0f22c7b06f0be52b1aaa5afacf24a8ac12">c18efb0</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/4d44889364ca11c025d9d18a4aee56a9541a7db8"><code>4d44889</code></a> chore: release v5.1.0 (main) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/858">#858</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d2bec10f1da31eb56ccf637d936dcbba79983cc"><code>5d2bec1</code></a> build: migrate to <code>tsdown</code> (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/854">#854</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/e63f1e418aae14b7bfdfc764c3a1a310d7af4ddb"><code>e63f1e4</code></a> fix: correct rule name in <code>disable-legacy</code> (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/849">#849</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5259950b5f5be86d1d73f6dcb07952b1d36f31e1"><code>5259950</code></a> fix(indent): correct handling of return type annotations (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/853">#853</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/140db8594f195193abb39d16aef5f01d386cc651"><code>140db85</code></a> test: cleanup duplicate test cases (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/855">#855</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/aa436b8415fa7fe627468ae1b1c75a5f41fe111d"><code>aa436b8</code></a> chore: release v5.0.0 (main) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/844">#844</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/57281c799607012be3bcbef6f8dada201eb28506"><code>57281c7</code></a> chore: release v5.0.0-beta.6 (main) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/843">#843</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/d133385cbf1603d5dea29bc1b0f24fba1ece456b"><code>d133385</code></a> feat: add support for <code>using</code> (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/804">#804</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/b30a26b99c119a75ea96a145391832c778553e37"><code>b30a26b</code></a> refactor: unify some ast-utils (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/842">#842</a>)</li>
<li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/e8e8b185f50012fbeb78fdf0f8d3405878ae4294"><code>e8e8b18</code></a> chore: release v5.0.0-beta.5 (main) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/835">#835</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.1.0/packages/eslint-plugin">compare view</a></li>
</ul>
</details>
<br />

Updates `eslint` from 9.28.0 to 9.30.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/releases">eslint's releases</a>.</em></p>
<blockquote>
<h2>v9.30.0</h2>
<h2>Features</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/52a5fcaa4e0bb4e55c014c20ed47d6c93b107635"><code>52a5fca</code></a> feat: Support <code>basePath</code> property in config objects (<a href="https://redirect.github.com/eslint/eslint/issues/19879">#19879</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/4ab44823df4d4b47d3650da949077a0551e7579e"><code>4ab4482</code></a> feat: add <code>allowSeparateTypeImports</code> option to <code>no-duplicate-imports</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19872">#19872</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/b8a7e7aeb5f0ed2e1670771ab4dda6fd723d96eb"><code>b8a7e7a</code></a> feat: throw error when column is negative in <code>getIndexFromLoc</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19831">#19831</a>) (루밀LuMir)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/6a0f164543bf8461d6a27a740c9e08aa77cbe42d"><code>6a0f164</code></a> fix: handle <code>null</code> type <code>loc</code> in <code>getIndexFromLoc</code> method (<a href="https://redirect.github.com/eslint/eslint/issues/19862">#19862</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/3fbcd704a0b2aef2a6c1fc34d2bc4b35f6425067"><code>3fbcd70</code></a> fix: update error message for <code>no-restricted-properties</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19855">#19855</a>) (Tanuj Kanti)</li>
<li><a href="https://github.com/eslint/eslint/commit/7ef4cf76610d42727a404e495ac6d47868cf5040"><code>7ef4cf7</code></a> fix: remove unnecessary semicolon from fixes (<a href="https://redirect.github.com/eslint/eslint/issues/19857">#19857</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/7dabc38a8406d470fb2389eec2f0ad1ad214173e"><code>7dabc38</code></a> fix: use <code>process.version</code> in <code>--env-info</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19865">#19865</a>) (TKDev7)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/8662ed1f6debc358e22812b145e117aa4a907d78"><code>8662ed1</code></a> docs: adopt eslint-stylistic sub packages related changes (<a href="https://redirect.github.com/eslint/eslint/issues/19887">#19887</a>) (ntnyq)</li>
<li><a href="https://github.com/eslint/eslint/commit/20158b09db3430cf00b202ba8c25ce874bbaf00a"><code>20158b0</code></a> docs: typo in comment for unused variables handling (<a href="https://redirect.github.com/eslint/eslint/issues/19870">#19870</a>) (leopardracer)</li>
<li><a href="https://github.com/eslint/eslint/commit/ebfb5b46136c4d737c9783333e3057421d1a0bef"><code>ebfb5b4</code></a> docs: Fixed Typo in configuration-files.md (<a href="https://redirect.github.com/eslint/eslint/issues/19873">#19873</a>) (0-20)</li>
<li><a href="https://github.com/eslint/eslint/commit/4112fd09531092e9651e9981205bcd603dc56acf"><code>4112fd0</code></a> docs: clarify that boolean is still allowed for rule <code>meta.deprecated</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19866">#19866</a>) (Bryan Mishkin)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/2b6491cd4b8eec44d4a3f8dea1b71151e8dd0230"><code>2b6491c</code></a> chore: upgrade to <code>@eslint/js@9.30.0</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19889">#19889</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/5a5d5261037fdf84a91f2f22d3726d58572453f4"><code>5a5d526</code></a> chore: package.json update for <code>@​eslint/js</code> release (Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/eaf8a418af32b3190494e4a2284533353c28ccfa"><code>eaf8a41</code></a> chore: Correct typos in linter tests (<a href="https://redirect.github.com/eslint/eslint/issues/19878">#19878</a>) (kilavvy)</li>
</ul>
<h2>v9.29.0</h2>
<h2>Features</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/f686fcb51e47cf53b891ae595684afe8a0ef584d"><code>f686fcb</code></a> feat: add <code>ecmaVersion: 2026</code>, parsing <code>using</code> and <code>await using</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19832">#19832</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/19cdd226bb5957f8f7e8cb4e92d38aafe47f8ff4"><code>19cdd22</code></a> feat: prune suppressions for non-existent files (<a href="https://redirect.github.com/eslint/eslint/issues/19825">#19825</a>) (TKDev7)</li>
<li><a href="https://github.com/eslint/eslint/commit/b3d720f82f08022a33b10f0437111e7d270b8e3c"><code>b3d720f</code></a> feat: add ES2025 globals (<a href="https://redirect.github.com/eslint/eslint/issues/19835">#19835</a>) (fisker Cheung)</li>
<li><a href="https://github.com/eslint/eslint/commit/677a2837a17320f54a8869682af128a2a7d77579"><code>677a283</code></a> feat: add auto-accessor fields support to class-methods-use-this (<a href="https://redirect.github.com/eslint/eslint/issues/19789">#19789</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/dbba0589f5509223658b73de6eb721f659bcec47"><code>dbba058</code></a> feat: allow global type declaration in <code>no-var</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19714">#19714</a>) (Remco Haszing)</li>
<li><a href="https://github.com/eslint/eslint/commit/342bd29e1a10a4b521ed0dbb6d889dcfc137e863"><code>342bd29</code></a> feat: ignore type annotations in no-restricted-globals (<a href="https://redirect.github.com/eslint/eslint/issues/19781">#19781</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/786bcd13652b90c5bd0c7201610b856ad1b87542"><code>786bcd1</code></a> feat: add allowProperties option to no-restricted-properties (<a href="https://redirect.github.com/eslint/eslint/issues/19772">#19772</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/05b66d05bd68214f2fa1ab53fb2734c9d9e5348a"><code>05b66d0</code></a> feat: add <code>sourceCode.isGlobalReference(node)</code> method (<a href="https://redirect.github.com/eslint/eslint/issues/19695">#19695</a>) (Nitin Kumar)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/85c082c54bd42ad818f5938b8fb1fb2aa0a1912f"><code>85c082c</code></a> fix: explicit matching behavior with negated patterns and arrays (<a href="https://redirect.github.com/eslint/eslint/issues/19845">#19845</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/9bda4a9bf18c9fef91cdd93921a0935ffcf9a9fc"><code>9bda4a9</code></a> fix: fix <code>LintOptions.filterCodeBlock</code> types (<a href="https://redirect.github.com/eslint/eslint/issues/19837">#19837</a>) (ntnyq)</li>
<li><a href="https://github.com/eslint/eslint/commit/7ab77a2c7605126daaa7e7f7ab75b5c252677d12"><code>7ab77a2</code></a> fix: correct breaking deprecation of FlatConfig type (<a href="https://redirect.github.com/eslint/eslint/issues/19826">#19826</a>) (Logicer)</li>
<li><a href="https://github.com/eslint/eslint/commit/1ba33181ab300588a803434884c054ed003f0bbd"><code>1ba3318</code></a> fix: add <code>language</code> and <code>dialects</code> to <code>no-use-before-define</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19808">#19808</a>) (Francesco Trotta)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/00e3e6ad1357df7d46be51d3f305efecb90244a7"><code>00e3e6a</code></a> docs: add support for custom name parameter to <code>includeIgnoreFile</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19795">#19795</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/3aed0756ed3669ac27fc243c81fd82e3d0e6973b"><code>3aed075</code></a> docs: Update README (GitHub Actions Bot)</li>
<li><a href="https://github.com/eslint/eslint/commit/a2f888d679e2a44964da596a4158911819e1d31d"><code>a2f888d</code></a> docs: enhance documentation with links and fix typos (<a href="https://redirect.github.com/eslint/eslint/issues/19761">#19761</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/53c3235ba1c90a85a44f0abd18998ccc4e0445bf"><code>53c3235</code></a> docs: update to clarify prompt usage (<a href="https://redirect.github.com/eslint/eslint/issues/19748">#19748</a>) (Jennifer Davis)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/5c114c962f29d0b33e6439e9ab0985014af06b9f"><code>5c114c9</code></a> chore: upgrade <code>@​eslint/js</code><a href="https://github.com/9"><code>@​9</code></a>.29.0 (<a href="https://redirect.github.com/eslint/eslint/issues/19851">#19851</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/acf2201a067d062e007b1b7b164b8e96fa1af50f"><code>acf2201</code></a> chore: package.json update for <code>@​eslint/js</code> release (Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/a806994263e54e4bc1481736b1c0626c8b770808"><code>a806994</code></a> refactor: Remove eslintrc from flat config functionality (<a href="https://redirect.github.com/eslint/eslint/issues/19833">#19833</a>) (Nicholas C. Zakas)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's changelog</a>.</em></p>
<blockquote>
<p>v9.30.0 - June 27, 2025</p>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/2b6491cd4b8eec44d4a3f8dea1b71151e8dd0230"><code>2b6491c</code></a> chore: upgrade to <code>@eslint/js@9.30.0</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19889">#19889</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/5a5d5261037fdf84a91f2f22d3726d58572453f4"><code>5a5d526</code></a> chore: package.json update for <code>@​eslint/js</code> release (Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/52a5fcaa4e0bb4e55c014c20ed47d6c93b107635"><code>52a5fca</code></a> feat: Support <code>basePath</code> property in config objects (<a href="https://redirect.github.com/eslint/eslint/issues/19879">#19879</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/6a0f164543bf8461d6a27a740c9e08aa77cbe42d"><code>6a0f164</code></a> fix: handle <code>null</code> type <code>loc</code> in <code>getIndexFromLoc</code> method (<a href="https://redirect.github.com/eslint/eslint/issues/19862">#19862</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/8662ed1f6debc358e22812b145e117aa4a907d78"><code>8662ed1</code></a> docs: adopt eslint-stylistic sub packages related changes (<a href="https://redirect.github.com/eslint/eslint/issues/19887">#19887</a>) (ntnyq)</li>
<li><a href="https://github.com/eslint/eslint/commit/eaf8a418af32b3190494e4a2284533353c28ccfa"><code>eaf8a41</code></a> chore: Correct typos in linter tests (<a href="https://redirect.github.com/eslint/eslint/issues/19878">#19878</a>) (kilavvy)</li>
<li><a href="https://github.com/eslint/eslint/commit/4ab44823df4d4b47d3650da949077a0551e7579e"><code>4ab4482</code></a> feat: add <code>allowSeparateTypeImports</code> option to <code>no-duplicate-imports</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19872">#19872</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/3fbcd704a0b2aef2a6c1fc34d2bc4b35f6425067"><code>3fbcd70</code></a> fix: update error message for <code>no-restricted-properties</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19855">#19855</a>) (Tanuj Kanti)</li>
<li><a href="https://github.com/eslint/eslint/commit/20158b09db3430cf00b202ba8c25ce874bbaf00a"><code>20158b0</code></a> docs: typo in comment for unused variables handling (<a href="https://redirect.github.com/eslint/eslint/issues/19870">#19870</a>) (leopardracer)</li>
<li><a href="https://github.com/eslint/eslint/commit/ebfb5b46136c4d737c9783333e3057421d1a0bef"><code>ebfb5b4</code></a> docs: Fixed Typo in configuration-files.md (<a href="https://redirect.github.com/eslint/eslint/issues/19873">#19873</a>) (0-20)</li>
<li><a href="https://github.com/eslint/eslint/commit/b8a7e7aeb5f0ed2e1670771ab4dda6fd723d96eb"><code>b8a7e7a</code></a> feat: throw error when column is negative in <code>getIndexFromLoc</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19831">#19831</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/7ef4cf76610d42727a404e495ac6d47868cf5040"><code>7ef4cf7</code></a> fix: remove unnecessary semicolon from fixes (<a href="https://redirect.github.com/eslint/eslint/issues/19857">#19857</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/7dabc38a8406d470fb2389eec2f0ad1ad214173e"><code>7dabc38</code></a> fix: use <code>process.version</code> in <code>--env-info</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19865">#19865</a>) (TKDev7)</li>
<li><a href="https://github.com/eslint/eslint/commit/4112fd09531092e9651e9981205bcd603dc56acf"><code>4112fd0</code></a> docs: clarify that boolean is still allowed for rule <code>meta.deprecated</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19866">#19866</a>) (Bryan Mishkin)</li>
</ul>
<p>v9.29.0 - June 13, 2025</p>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/5c114c962f29d0b33e6439e9ab0985014af06b9f"><code>5c114c9</code></a> chore: upgrade <code>@​eslint/js</code><a href="https://github.com/9"><code>@​9</code></a>.29.0 (<a href="https://redirect.github.com/eslint/eslint/issues/19851">#19851</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/acf2201a067d062e007b1b7b164b8e96fa1af50f"><code>acf2201</code></a> chore: package.json update for <code>@​eslint/js</code> release (Jenkins)</li>
<li><a href="https://github.com/eslint/eslint/commit/f686fcb51e47cf53b891ae595684afe8a0ef584d"><code>f686fcb</code></a> feat: add <code>ecmaVersion: 2026</code>, parsing <code>using</code> and <code>await using</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19832">#19832</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/85c082c54bd42ad818f5938b8fb1fb2aa0a1912f"><code>85c082c</code></a> fix: explicit matching behavior with negated patterns and arrays (<a href="https://redirect.github.com/eslint/eslint/issues/19845">#19845</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/00e3e6ad1357df7d46be51d3f305efecb90244a7"><code>00e3e6a</code></a> docs: add support for custom name parameter to <code>includeIgnoreFile</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19795">#19795</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/9bda4a9bf18c9fef91cdd93921a0935ffcf9a9fc"><code>9bda4a9</code></a> fix: fix <code>LintOptions.filterCodeBlock</code> types (<a href="https://redirect.github.com/eslint/eslint/issues/19837">#19837</a>) (ntnyq)</li>
<li><a href="https://github.com/eslint/eslint/commit/a806994263e54e4bc1481736b1c0626c8b770808"><code>a806994</code></a> refactor: Remove eslintrc from flat config functionality (<a href="https://redirect.github.com/eslint/eslint/issues/19833">#19833</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/19cdd226bb5957f8f7e8cb4e92d38aafe47f8ff4"><code>19cdd22</code></a> feat: prune suppressions for non-existent files (<a href="https://redirect.github.com/eslint/eslint/issues/19825">#19825</a>) (TKDev7)</li>
<li><a href="https://github.com/eslint/eslint/commit/b3d720f82f08022a33b10f0437111e7d270b8e3c"><code>b3d720f</code></a> feat: add ES2025 globals (<a href="https://redirect.github.com/eslint/eslint/issues/19835">#19835</a>) (fisker Cheung)</li>
<li><a href="https://github.com/eslint/eslint/commit/677a2837a17320f54a8869682af128a2a7d77579"><code>677a283</code></a> feat: add auto-accessor fields support to class-methods-use-this (<a href="https://redirect.github.com/eslint/eslint/issues/19789">#19789</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/3aed0756ed3669ac27fc243c81fd82e3d0e6973b"><code>3aed075</code></a> docs: Update README (GitHub Actions Bot)</li>
<li><a href="https://github.com/eslint/eslint/commit/7ab77a2c7605126daaa7e7f7ab75b5c252677d12"><code>7ab77a2</code></a> fix: correct breaking deprecation of FlatConfig type (<a href="https://redirect.github.com/eslint/eslint/issues/19826">#19826</a>) (Logicer)</li>
<li><a href="https://github.com/eslint/eslint/commit/a2f888d679e2a44964da596a4158911819e1d31d"><code>a2f888d</code></a> docs: enhance documentation with links and fix typos (<a href="https://redirect.github.com/eslint/eslint/issues/19761">#19761</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/dbba0589f5509223658b73de6eb721f659bcec47"><code>dbba058</code></a> feat: allow global type declaration in <code>no-var</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19714">#19714</a>) (Remco Haszing)</li>
<li><a href="https://github.com/eslint/eslint/commit/152ed51329d82c6e7375f41a105e01b31750e17f"><code>152ed51</code></a> test: switch to flat config mode in code path analysis tests (<a href="https://redirect.github.com/eslint/eslint/issues/19824">#19824</a>) (Milos Djermanovic)</li>
<li><a href="https://github.com/eslint/eslint/commit/b647239272931e0a947500b2f554fc8ccdf8adfd"><code>b647239</code></a> chore: Update first-party dependencies faster with Renovate (<a href="https://redirect.github.com/eslint/eslint/issues/19822">#19822</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/7abe42e2de931289e19e34e390d16936cf6faf64"><code>7abe42e</code></a> refactor: SafeEmitter -&gt; SourceCodeVisitor (<a href="https://redirect.github.com/eslint/eslint/issues/19708">#19708</a>) (Nicholas C. Zakas)</li>
<li><a href="https://github.com/eslint/eslint/commit/342bd29e1a10a4b521ed0dbb6d889dcfc137e863"><code>342bd29</code></a> feat: ignore type annotations in no-restricted-globals (<a href="https://redirect.github.com/eslint/eslint/issues/19781">#19781</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/e39289596757702b6c8d747d5ab9c1a7820c108f"><code>e392895</code></a> perf: improve time complexity of <code>getLocFromIndex</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19782">#19782</a>) (루밀LuMir)</li>
<li><a href="https://github.com/eslint/eslint/commit/1ba33181ab300588a803434884c054ed003f0bbd"><code>1ba3318</code></a> fix: add <code>language</code> and <code>dialects</code> to <code>no-use-before-define</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19808">#19808</a>) (Francesco Trotta)</li>
<li><a href="https://github.com/eslint/eslint/commit/786bcd13652b90c5bd0c7201610b856ad1b87542"><code>786bcd1</code></a> feat: add allowProperties option to no-restricted-properties (<a href="https://redirect.github.com/eslint/eslint/issues/19772">#19772</a>) (sethamus)</li>
<li><a href="https://github.com/eslint/eslint/commit/05b66d05bd68214f2fa1ab53fb2734c9d9e5348a"><code>05b66d0</code></a> feat: add <code>sourceCode.isGlobalReference(node)</code> method (<a href="https://redirect.github.com/eslint/eslint/issues/19695">#19695</a>) (Nitin Kumar)</li>
<li><a href="https://github.com/eslint/eslint/commit/53c3235ba1c90a85a44f0abd18998ccc4e0445bf"><code>53c3235</code></a> docs: update to clarify prompt usage (<a href="https://redirect.github.com/eslint/eslint/issues/19748">#19748</a>) (Jennifer Davis)</li>
<li><a href="https://github.com/eslint/eslint/commit/0ed289c5ceed1c10b599b22c8b9374a5a3a144dd"><code>0ed289c</code></a> chore: remove accidentally committed file (<a href="https://redirect.github.com/eslint/eslint/issues/19807">#19807</a>) (Francesco Trotta)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/eslint/eslint/commit/ad1d63951773acc7828bcc1eafbb731567447298"><code>ad1d639</code></a> 9.30.0</li>
<li><a href="https://github.com/eslint/eslint/commit/c02d70b71867b4cee9c38a536f74e98e3b810f16"><code>c02d70b</code></a> Build: changelog update for 9.30.0</li>
<li><a href="https://github.com/eslint/eslint/commit/2b6491cd4b8eec44d4a3f8dea1b71151e8dd0230"><code>2b6491c</code></a> chore: upgrade to <code>@eslint/js@9.30.0</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19889">#19889</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/5a5d5261037fdf84a91f2f22d3726d58572453f4"><code>5a5d526</code></a> chore: package.json update for <code>@​eslint/js</code> release</li>
<li><a href="https://github.com/eslint/eslint/commit/52a5fcaa4e0bb4e55c014c20ed47d6c93b107635"><code>52a5fca</code></a> feat: Support <code>basePath</code> property in config objects (<a href="https://redirect.github.com/eslint/eslint/issues/19879">#19879</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/6a0f164543bf8461d6a27a740c9e08aa77cbe42d"><code>6a0f164</code></a> fix: handle <code>null</code> type <code>loc</code> in <code>getIndexFromLoc</code> method (<a href="https://redirect.github.com/eslint/eslint/issues/19862">#19862</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/8662ed1f6debc358e22812b145e117aa4a907d78"><code>8662ed1</code></a> docs: adopt eslint-stylistic sub packages related changes (<a href="https://redirect.github.com/eslint/eslint/issues/19887">#19887</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/eaf8a418af32b3190494e4a2284533353c28ccfa"><code>eaf8a41</code></a> chore: Correct typos in linter tests (<a href="https://redirect.github.com/eslint/eslint/issues/19878">#19878</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/4ab44823df4d4b47d3650da949077a0551e7579e"><code>4ab4482</code></a> feat: add <code>allowSeparateTypeImports</code> option to <code>no-duplicate-imports</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19872">#19872</a>)</li>
<li><a href="https://github.com/eslint/eslint/commit/3fbcd704a0b2aef2a6c1fc34d2bc4b35f6425067"><code>3fbcd70</code></a> fix: update error message for <code>no-restricted-properties</code> (<a href="https://redirect.github.com/eslint/eslint/issues/19855">#19855</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/eslint/eslint/compare/v9.28.0...v9.30.0">compare view</a></li>
</ul>
</details>
<br />

Updates `eslint-plugin-jsdoc` from 50.7.1 to 51.3.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/gajus/eslint-plugin-jsdoc/releases">eslint-plugin-jsdoc's releases</a>.</em></p>
<blockquote>
<h2>v51.3.1</h2>
<h2><a href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v51.3.0...v51.3.1">51.3.1</a> (2025-06-30)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong><code>no-undefined-types</code>:</strong> check class and interface globals; fixes <a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1420">#1420</a> (<a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1421">#1421</a>) (<a href="https://github.com/gajus/eslint-plugin-jsdoc/commit/3748bbeb3d2ec3519ad7191e597843c9bc935c63">3748bbe</a>)</li>
</ul>
<h2>v51.3.0</h2>
<h1><a href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v51.2.3...v51.3.0">51.3.0</a> (2025-06-30)</h1>
<h3>Features</h3>
<ul>
<li><strong><code>multiline-blocks</code>:</strong> adds <code>requireSingleLineUnderCount</code> option; fixes <a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1158">#1158</a> (<a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1409">#1409</a>) (<a href="https://github.com/gajus/eslint-plugin-jsdoc/commit/26276bae9610e50ca0554ee496667b9e363f9941">26276ba</a>)</li>
</ul>
<h2>v51.2.3</h2>
<h2><a href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v51.2.2...v51.2.3">51.2.3</a> (2025-06-24)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong><code>require-template</code>, <code>no-undefined-types</code>, <code>valid-types</code>:</strong> properly parse template tags with defaults; fixes <a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1418">#1418</a> (<a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1419">#1419</a>) (<a href="https://github.com/gajus/eslint-plugin-jsdoc/commit/35e95a163819dd63e52748f9ad1bba25c2bd6e89">35e95a1</a>)</li>
</ul>
<h2>v51.2.2</h2>
<h2><a href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v51.2.1...v51.2.2">51.2.2</a> (2025-06-23)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong><code>no-undefined-types</code>:</strong> exempt import tags from property checks; fixes <a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1416">#1416</a> (<a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1417">#1417</a>) (<a href="https://github.com/gajus/eslint-plugin-jsdoc/commit/efbcb1c43abc31070b42a86ba2f5150da0063ad4">efbcb1c</a>)</li>
</ul>
<h2>v51.2.1</h2>
<h2><a href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v51.2.0...v51.2.1">51.2.1</a> (2025-06-22)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong><code>no-undefined-types</code>:</strong> also allow globals defined on <code>languageOptions</code> (<a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1415">#1415</a>) (<a href="https://github.com/gajus/eslint-plugin-jsdoc/commit/e9ff4c7173781cdc8502f7537e1a7e83ec9c51e7">e9ff4c7</a>)</li>
</ul>
<h2>v51.2.0</h2>
<h1><a href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v51.1.3...v51.2.0">51.2.0</a> (2025-06-22)</h1>
<h3>Features</h3>
<ul>
<li>strip property when there is a <code>class</code> tag and the context is set (<a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1414">#1414</a>) (<a href="https://github.com/gajus/eslint-plugin-jsdoc/commit/08f78340ee6969f22ccc784de4f86d35f998b1f1">08f7834</a>), closes <a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1376">#1376</a></li>
</ul>
<h2>v51.1.3</h2>
<h2><a href="https://github.com/gajus/eslint-plugin-jsdoc/compare/v51.1.2...v51.1.3">51.1.3</a> (2025-06-22)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/gajus/eslint-plugin-jsdoc/commit/3748bbeb3d2ec3519ad7191e597843c9bc935c63"><code>3748bbe</code></a> fix(<code>no-undefined-types</code>): check class and interface globals; fixes <a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1420">#1420</a> (<a href="https://redirect.github.com/gajus/eslint-plugin-jsdoc/issues/1">#1</a>....

_Description has been truncated_

Changed files:
filename: eslint.config.mjs
patch: @@ -285,7 +285,7 @@ export default [
       '@stylistic/js/computed-property-spacing': 'error',
       '@stylistic/js/dot-location': ['error', 'property'],
       '@stylistic/js/eol-last': 'error',
-      '@stylistic/js/func-call-spacing': 'error',
+      '@stylistic/js/function-call-spacing': 'error',
       '@stylistic/js/indent': ['error', 2, {
         ArrayExpression: 'first',
         CallExpression: { arguments: 'first' },

filename: tools/eslint/package-lock.json
patch: @@ -8,17 +8,17 @@
       "name": "eslint-tools",
       "version": "0.0.0",
       "dependencies": {
-        "@babel/core": "^7.27.1",
-        "@babel/eslint-parser": "^7.27.1",
+        "@babel/core": "^7.27.7",
+        "@babel/eslint-parser": "^7.27.5",
         "@babel/plugin-proposal-explicit-resource-management": "^7.27.1",
         "@babel/plugin-syntax-import-attributes": "^7.27.1",
         "@babel/plugin-syntax-import-source": "^7.27.1",
-        "@stylistic/eslint-plugin": "^4.4.1",
-        "eslint": "^9.25.1",
+        "@stylistic/eslint-plugin": "^5.1.0",
+        "eslint": "^9.30.0",
         "eslint-formatter-tap": "^8.40.0",
-        "eslint-plugin-jsdoc": "^50.6.11",
+        "eslint-plugin-jsdoc": "^51.3.1",
         "eslint-plugin-markdown": "^5.1.0",
-        "globals": "^16.0.0"
+        "globals": "^16.3.0"
       }
     },
     "node_modules/@ampproject/remapping": {
@@ -58,21 +58,20 @@
       }
     },
     "node_modules/@babel/core": {
-      "version": "7.27.4",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz",
-      "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==",
-      "license": "MIT",
+      "version": "7.27.7",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.7.tgz",
+      "integrity": "sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w==",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
         "@babel/code-frame": "^7.27.1",
-        "@babel/generator": "^7.27.3",
+        "@babel/generator": "^7.27.5",
         "@babel/helper-compilation-targets": "^7.27.2",
         "@babel/helper-module-transforms": "^7.27.3",
-        "@babel/helpers": "^7.27.4",
-        "@babel/parser": "^7.27.4",
+        "@babel/helpers": "^7.27.6",
+        "@babel/parser": "^7.27.7",
         "@babel/template": "^7.27.2",
-        "@babel/traverse": "^7.27.4",
-        "@babel/types": "^7.27.3",
+        "@babel/traverse": "^7.27.7",
+        "@babel/types": "^7.27.7",
         "convert-source-map": "^2.0.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.2",
@@ -88,10 +87,9 @@
       }
     },
     "node_modules/@babel/eslint-parser": {
-      "version": "7.27.1",
-      "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.1.tgz",
-      "integrity": "sha512-q8rjOuadH0V6Zo4XLMkJ3RMQ9MSBqwaDByyYB0izsYdaIWGNLmEblbCOf1vyFHICcg16CD7Fsi51vcQnYxmt6Q==",
-      "license": "MIT",
+      "version": "7.27.5",
+      "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.5.tgz",
+      "integrity": "sha512-HLkYQfRICudzcOtjGwkPvGc5nF1b4ljLZh1IRDj50lRZ718NAKVgQpIAUX8bfg6u/yuSKY3L7E0YzIV+OxrB8Q==",
       "dependencies": {
         "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
         "eslint-visitor-keys": "^2.1.0",
@@ -106,12 +104,11 @@
       }
     },
     "node_modules/@babel/generator": {
-      "version": "7.27.3",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.3.tgz",
-      "integrity": "sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==",
-      "license": "MIT",
+      "version": "7.27.5",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz",
+      "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==",
       "dependencies": {
-        "@babel/parser": "^7.27.3",
+        "@babel/parser": "^7.27.5",
         "@babel/types": "^7.27.3",
         "@jridgewell/gen-mapping": "^0.3.5",
         "@jridgewell/trace-mapping": "^0.3.25",
@@ -204,25 +201,23 @@
       }
     },
     "node_modules/@babel/helpers": {
-      "version": "7.27.4",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.4.tgz",
-      "integrity": "sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==",
-      "license": "MIT",
+      "version": "7.27.6",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz",
+      "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==",
       "dependencies": {
         "@babel/template": "^7.27.2",
-        "@babel/types": "^7.27.3"
+        "@babel/types": "^7.27.6"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.27.4",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.4.tgz",
-      "integrity": "sha512-BRmLHGwpUqLFR2jzx9orBuX/ABDkj2jLKOXrHDTN2aOKL+jFDDKaRNo9nyYsIl9h/UE/7lMKdDjKQQyxKKDZ7g==",
-      "license": "MIT",
+      "version": "7.27.7",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.7.tgz",
+      "integrity": "sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==",
       "dependencies": {
-        "@babel/types": "^7.27.3"
+        "@babel/types": "^7.27.7"
       },
       "bin": {
         "parser": "bin/babel-parser.js"
@@ -307,16 +302,15 @@
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.27.4",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz",
-      "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==",
-      "license": "MIT",
+      "version": "7.27.7",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.7.tgz",
+      "integrity": "sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==",
       "dependencies": {
         "@babel/code-frame": "^7.27.1",
-        "@babel/generator": "^7.27.3",
-        "@babel/parser": "^7.27.4",
+        "@babel/generator": "^7.27.5",
+        "@babel/parser": "^7.27.7",
         "@babel/template": "^7.27.2",
-        "@babel/types": "^7.27.3",
+        "@babel/types": "^7.27.7",
         "debug": "^4.3.1",
         "globals": "^11.1.0"
       },
@@ -334,10 +328,9 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.27.3",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz",
-      "integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==",
-      "license": "MIT",
+      "version": "7.27.7",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.7.tgz",
+      "integrity": "sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw==",
       "dependencies": {
         "@babel/helper-string-parser": "^7.27.1",
         "@babel/helper-validator-identifier": "^7.27.1"
@@ -347,19 +340,18 @@
       }
     },
     "node_modules/@es-joy/jsdoccomment": {
-      "version": "0.50.2",
-      "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.50.2.tgz",
-      "integrity": "sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==",
-      "license": "MIT",
+      "version": "0.52.0",
+      "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.52.0.tgz",
+      "integrity": "sha512-BXuN7BII+8AyNtn57euU2Yxo9yA/KUDNzrpXyi3pfqKmBhhysR6ZWOebFh3vyPoqA3/j1SOvGgucElMGwlXing==",
       "dependencies": {
-        "@types/estree": "^1.0.6",
-        "@typescript-eslint/types": "^8.11.0",
+        "@types/estree": "^1.0.8",
+        "@typescript-eslint/types": "^8.34.1",
         "comment-parser": "1.4.1",
         "esquery": "^1.6.0",
         "jsdoc-type-pratt-parser": "~4.1.0"
       },
       "engines": {
-        "node": ">=18"
+        "node": ">=20.11.0"
       }
     },
     "node_modules/@eslint-community/eslint-utils": {
@@ -402,10 +394,9 @@
       }
     },
     "node_modules/@eslint/config-array": {
-      "version": "0.20.0",
-      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
-      "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
-      "license": "Apache-2.0",
+      "version": "0.21.0",
+      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
+      "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
       "dependencies": {
         "@eslint/object-schema": "^2.1.6",
         "debug": "^4.3.1",
@@ -416,10 +407,9 @@
       }
     },
     "node_modules/@eslint/config-helpers": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz",
-      "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==",
-      "license": "Apache-2.0",
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz",
+      "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==",
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       }
@@ -472,10 +462,9 @@
       }
     },
     "node_modules/@eslint/js": {
-      "version": "9.28.0",
-      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
-      "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
-      "license": "MIT",
+      "version": "9.30.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.0.tgz",
+      "integrity": "sha512-Wzw3wQwPvc9sHM+NjakWTcPx11mbZyiYHuwWa/QfZ7cIRX7WK54PSk7bdyXDaoaopUcMatv1zaQvOAAO8hCdww==",
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       },
@@ -487,7 +476,6 @@
       "version": "2.1.6",
       "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
       "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
-      "license": "Apache-2.0",
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       }
@@ -623,50 +611,15 @@
         "eslint-scope": "5.1.1"
       }
     },
-    "node_modules/@nodelib/fs.scandir": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-      "license": "MIT",
-      "dependencies": {
-        "@nodelib/fs.stat": "2.0.5",
-        "run-parallel": "^1.1.9"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.stat": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
-      "license": "MIT",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.walk": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
-      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
-      "license": "MIT",
-      "dependencies": {
-        "@nodelib/fs.scandir": "2.1.5",
-        "fastq": "^1.6.0"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
     "node_modules/@stylistic/eslint-plugin": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.4.1.tgz",
-      "integrity": "sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==",
-      "license": "MIT",
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.1.0.tgz",
+      "integrity": "sha512-TJRJul4u/lmry5N/kyCU+7RWWOk0wyXN+BncRlDYBqpLFnzXkd7QGVfN7KewarFIXv0IX0jSF/Ksu7aHWEDeuw==",
       "dependencies": {
-        "@typescript-eslint/utils": "^8.32.1",
-        "eslint-visitor-keys": "^4.2.0",
-        "espree": "^10.3.0",
+        "@eslint-community/eslint-utils": "^4.7.0",
+        "@typescript-eslint/types": "^8.34.1",
+        "eslint-visitor-keys": "^4.2.1",
+        "espree": "^10.4.0",
         "estraverse": "^5.3.0",
         "picomatch": "^4.0.2"
       },
@@ -699,10 +652,9 @@
       }
     },
     "node_modules/@types/estree": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
-      "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
-      "license": "MIT"
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+      "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="
     },
     "node_modules/@types/json-schema": {
       "version": "7.0.15",
@@ -725,65 +677,10 @@
       "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
       "license": "MIT"
     },
-    "node_modules/@typescript-eslint/project-service": {
-      "version": "8.34.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz",
-      "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==",
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/tsconfig-utils": "^8.34.0",
-        "@typescript-eslint/types": "^8.34.0",
-        "debug": "^4.3.4"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.8.4 <5.9.0"
-      }
-    },
-    "node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.34.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz",
-      "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==",
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.34.0",
-        "@typescript-eslint/visitor-keys": "8.34.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/tsconfig-utils": {
-      "version": "8.34.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz",
-      "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==",
-      "license": "MIT",
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.8.4 <5.9.0"
-      }
-    },
     "node_modules/@typescript-eslint/types": {
-      "version": "8.34.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz",
-      "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==",
-      "license": "MIT",
+      "version": "8.35.1",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
+      "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       },
@@ -792,127 +689,10 @@
         "url": "https://opencollective.com/typescript-eslint"
       }
     },
-    "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.34.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz",
-      "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==",
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/project-service": "8.34.0",
-        "@typescript-eslint/tsconfig-utils": "8.34.0",
-        "@typescript-eslint/types": "8.34.0",
-        "@typescript-eslint/visitor-keys": "8.34.0",
-        "debug": "^4.3.4",
-        "fast-glob": "^3.3.2",
-        "is-glob": "^4.0.3",
-        "minimatch": "^9.0.4",
-        "semver": "^7.6.0",
-        "ts-api-utils": "^2.1.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.8.4 <5.9.0"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
-      "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
-      "license": "MIT",
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
-      "version": "9.0.5",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
-      "license": "ISC",
-      "dependencies": {
-        "brace-expansion": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=16 || 14 >=14.17"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/isaacs"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
-      "version": "7.7.2",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
-      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
-      "license": "ISC",
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@typescript-eslint/utils": {
-      "version": "8.34.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz",
-      "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@eslint-community/eslint-utils": "^4.7.0",
-        "@typescript-eslint/scope-manager": "8.34.0",
-        "@typescript-eslint/types": "8.34.0",
-        "@typescript-eslint/typescript-estree": "8.34.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      },
-      "peerDependencies": {
-        "eslint": "^8.57.0 || ^9.0.0",
-        "typescript": ">=4.8.4 <5.9.0"
-      }
-    },
-    "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.34.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz",
-      "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==",
-      "license": "MIT",
-      "dependencies": {
-        "@typescript-eslint/types": "8.34.0",
-        "eslint-visitor-keys": "^4.2.0"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/typescript-eslint"
-      }
-    },
-    "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
-      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
-      "license": "Apache-2.0",
-      "engines": {
-        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/eslint"
-      }
-    },
     "node_modules/acorn": {
-      "version": "8.14.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
-      "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
-      "license": "MIT",
+      "version": "8.15.0",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+      "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
       "bin": {
         "acorn": "bin/acorn"
       },
@@ -991,18 +771,6 @@
         "concat-map": "0.0.1"
       }
     },
-    "node_modules/braces": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
-      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
-      "license": "MIT",
-      "dependencies": {
-        "fill-range": "^7.1.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/browserslist": {
       "version": "4.25.0",
       "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz",
@@ -1132,7 +900,6 @@
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
       "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
-      "license": "MIT",
       "engines": {
         "node": ">= 12.0.0"
       }
@@ -1214,18 +981,17 @@
       }
     },
     "node_modules/eslint": {
-      "version": "9.28.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.28.0.tgz",
-      "integrity": "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==",
-      "license": "MIT",
+      "version": "9.30.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.0.tgz",
+      "integrity": "sha512-iN/SiPxmQu6EVkf+m1qpBxzUhE12YqFLOSySuOyVLJLEF9nzTf+h/1AJYc1JWzCnktggeNrjvQGLngDzXirU6g==",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/regexpp": "^4.12.1",
-        "@eslint/config-array": "^0.20.0",
-        "@eslint/config-helpers": "^0.2.1",
+        "@eslint/config-array": "^0.21.0",
+        "@eslint/config-helpers": "^0.3.0",
         "@eslint/core": "^0.14.0",
         "@eslint/eslintrc": "^3.3.1",
-        "@eslint/js": "9.28.0",
+        "@eslint/js": "9.30.0",
         "@eslint/plugin-kit": "^0.3.1",
         "@humanfs/node": "^0.16.6",
         "@humanwhocodes/module-importer": "^1.0.1",
@@ -1237,9 +1003,9 @@
         "cross-spawn": "^7.0.6",
         "debug": "^4.3.2",
         "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^8.3.0",
-        "eslint-visitor-keys": "^4.2.0",
-        "espree": "^10.3.0",
+        "eslint-scope": "^8.4.0",
+        "eslint-visitor-keys": "^4.2.1",
+        "espree": "^10.4.0",
         "esquery": "^1.5.0",
         "esutils": "^2.0.2",
         "fast-deep-equal": "^3.1.3",
@@ -1286,24 +1052,23 @@
       }
     },
     "node_modules/eslint-plugin-jsdoc": {
-      "version": "50.7.1",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.7.1.tgz",
-      "integrity": "sha512-XBnVA5g2kUVokTNUiE1McEPse5n9/mNUmuJcx52psT6zBs2eVcXSmQBvjfa7NZdfLVSy3u1pEDDUxoxpwy89WA==",
-      "license": "BSD-3-Clause",
+      "version": "51.3.1",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-51.3.1.tgz",
+      "integrity": "sha512-9v/e6XyrLf1HIs/uPCgm3GcUpH4BeuGVZJk7oauKKyS7su7d5Q6zx4Fq6TiYh+w7+b4Svy7ZWVCcNZJNx3y52w==",
       "dependencies": {
-        "@es-joy/jsdoccomment": "~0.50.2",
+        "@es-joy/jsdoccomment": "~0.52.0",
         "are-docs-informative": "^0.0.2",
         "comment-parser": "1.4.1",
         "debug": "^4.4.1",
         "escape-string-regexp": "^4.0.0",
-        "espree": "^10.3.0",
+        "espree": "^10.4.0",
         "esquery": "^1.6.0",
         "parse-imports-exports": "^0.2.4",
         "semver": "^7.7.2",
         "spdx-expression-parse": "^4.0.0"
       },
       "engines": {
-        "node": ">=18"
+        "node": ">=20.11.0"
       },
       "peerDependencies": {
         "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
@@ -1359,10 +1124,9 @@
       }
     },
     "node_modules/eslint/node_modules/eslint-scope": {
-      "version": "8.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
-      "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
-      "license": "BSD-2-Clause",
+      "version": "8.4.0",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
+      "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
       "dependencies": {
         "esrecurse": "^4.3.0",
         "estraverse": "^5.2.0"
@@ -1375,10 +1139,9 @@
       }
     },
     "node_modules/eslint/node_modules/eslint-visitor-keys": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
-      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
-      "license": "Apache-2.0",
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       },
@@ -1390,20 +1153,18 @@
       "version": "5.3.0",
       "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
       "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-      "license": "BSD-2-Clause",
       "engines": {
         "node": ">=4.0"
       }
     },
     "node_modules/espree": {
-      "version": "10.3.0",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
-      "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
-      "license": "BSD-2-Clause",
+      "version": "10.4.0",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+      "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
       "dependencies": {
-        "acorn": "^8.14.0",
+        "acorn": "^8.15.0",
         "acorn-jsx": "^5.3.2",
-        "eslint-visitor-keys": "^4.2.0"
+        "eslint-visitor-keys": "^4.2.1"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1413,10 +1174,9 @@
       }
     },
     "node_modules/espree/node_modules/eslint-visitor-keys": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
-      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
-      "license": "Apache-2.0",
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       },
@@ -1490,34 +1250,6 @@
       "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
       "license": "MIT"
     },
-    "node_modules/fast-glob": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
-      "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
-      "license": "MIT",
-      "dependencies": {
-        "@nodelib/fs.stat": "^2.0.2",
-        "@nodelib/fs.walk": "^1.2.3",
-        "glob-parent": "^5.1.2",
-        "merge2": "^1.3.0",
-        "micromatch": "^4.0.8"
-      },
-      "engines": {
-        "node": ">=8.6.0"
-      }
-    },
-    "node_modules/fast-glob/node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "license": "ISC",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
     "node_modules/fast-json-stable-stringify": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -1530,15 +1262,6 @@
       "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
       "license": "MIT"
     },
-    "node_modules/fastq": {
-      "version": "1.19.1",
-      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
-      "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
-      "license": "ISC",
-      "dependencies": {
-        "reusify": "^1.0.4"
-      }
-    },
     "node_modules/file-entry-cache": {
       "version": "8.0.0",
       "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
@@ -1551,18 +1274,6 @@
         "node": ">=16.0.0"
       }
     },
-    "node_modules/fill-range": {
-      "version": "7.1.1",
-      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
-      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
-      "license": "MIT",
-      "dependencies": {
-        "to-regex-range": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
     "node_modules/find-up": {
       "version": "5.0.0",
       "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -1620,10 +1331,9 @@
       }
     },
     "node_modules/globals": {
-      "version": "16.2.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz",
-      "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==",
-      "license": "MIT",
+      "version": "16.3.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz",
+      "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==",
       "engines": {
         "node": ">=18"
       },
@@ -1739,15 +1449,6 @@
         "url": "https://github.com/sponsors/wooorm"
       }
     },
-    "node_modules/is-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.12.0"
-      }
-    },
     "node_modules/isexe": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -1776,7 +1477,6 @@
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz",
       "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==",
-      "license": "MIT",
       "engines": {
         "node": ">=12.0.0"
       }
@@ -1902,15 +1602,6 @@
         "url": "https://opencollective.com/unified"
       }
     },
-    "node_modules/merge2": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
-      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
-      "license": "MIT",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
     "node_modules/micromark": {
       "version": "2.11.4",
       "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz",
@@ -1931,31 +1622,6 @@
         "parse-entities": "^2.0.0"
       }
     },
-    "node_modules/micromatch": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
-      "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
-      "license": "MIT",
-      "dependencies": {
-        "braces": "^3.0.3",
-        "picomatch": "^2.3.1"
-      },
-      "engines": {
-        "node": ">=8.6"
-      }
-    },
-    "node_modules/micromatch/node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=8.6"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/jonschlinkert"
-      }
-    },
     "node_modules/minimatch": {
       "version": "3.1.2",
       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -2132,26 +1798,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/queue-microtask": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
-      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT"
-    },
     "node_modules/resolve-from": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -2161,39 +1807,6 @@
         "node": ">=4"
       }
     },
-    "node_modules/reusify": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
-      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
-      "license": "MIT",
-      "engines": {
-        "iojs": ">=1.0.0",
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/run-parallel": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
-      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/feross"
-        },
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/feross"
-        },
-        {
-          "type": "consulting",
-          "url": "https://feross.org/support"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "queue-microtask": "^1.2.2"
-      }
-    },
     "node_modules/semver": {
       "version": "6.3.1",
       "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
@@ -2270,30 +1883,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "license": "MIT",
-      "dependencies": {
-        "is-number": "^7.0.0"
-      },
-      "engines": {
-        "node": ">=8.0"
-      }
-    },
-    "node_modules/ts-api-utils": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
-      "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=18.12"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.8.4"
-      }
-    },
     "node_modules/type-check": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -2306,20 +1895,6 @@
         "node": ">= 0.8.0"
       }
     },
-    "node_modules/typescript": {
-      "version": "5.8.3",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
-      "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
-      "license": "Apache-2.0",
-      "peer": true,
-      "bin": {
-        "tsc": "bin/tsc",
-        "tsserver": "bin/tsserver"
-      },
-      "engines": {
-        "node": ">=14.17"
-      }
-    },
     "node_modules/unist-util-stringify-position": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",

filename: tools/eslint/package.json
patch: @@ -3,16 +3,16 @@
   "version": "0.0.0",
   "private": true,
   "dependencies": {
-    "@babel/core": "^7.27.1",
-    "@babel/eslint-parser": "^7.27.1",
+    "@babel/core": "^7.27.7",
+    "@babel/eslint-parser": "^7.27.5",
     "@babel/plugin-syntax-import-attributes": "^7.27.1",
     "@babel/plugin-syntax-import-source": "^7.27.1",
     "@babel/plugin-proposal-explicit-resource-management": "^7.27.1",
-    "@stylistic/eslint-plugin": "^4.4.1",
-    "eslint": "^9.25.1",
+    "@stylistic/eslint-plugin": "^5.1.0",
+    "eslint": "^9.30.0",
     "eslint-formatter-tap": "^8.40.0",
-    "eslint-plugin-jsdoc": "^50.6.11",
+    "eslint-plugin-jsdoc": "^51.3.1",
     "eslint-plugin-markdown": "^5.1.0",
-    "globals": "^16.0.0"
+    "globals": "^16.3.0"
   }
 }