Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

fix(deps): update typescript-eslint monorepo to v8 (major) - abandoned #25

Open
wants to merge 66 commits into
base: deps
Choose a base branch
from

Commits on Aug 20, 2024

  1. Configuration menu
    Copy the full SHA
    b1aab13 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a68ea50 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d5daa8f View commit details
    Browse the repository at this point in the history
  4. chore(deps): update dependency tsx to v4.17.0

    ##### [v4.17.0](privatenumber/tsx@v4.16.5...bd83d3b)
    
    ##### [v4.16.5](https://github.com/privatenumber/tsx/releases/tag/v4.16.5)
    
    ##### Bug Fixes
    
    -   **resolver:** directory import nested ".." ([2fada74](privatenumber/tsx@2fada74))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.16.5)
    ##### [v4.16.4](https://github.com/privatenumber/tsx/releases/tag/v4.16.4)
    
    ##### Bug Fixes
    
    -   **resolver:** handle importing ".." ([3cf0b6a](privatenumber/tsx@3cf0b6a)), closes [#626](privatenumber/tsx#626)
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.16.4)
    ##### [v4.16.3](privatenumber/tsx@v4.16.2...ca4bf11)
    
    ##### [v4.16.2](privatenumber/tsx@v4.16.1...042be03)
    
    ##### [v4.16.1](https://github.com/privatenumber/tsx/releases/tag/v4.16.1)
    
    ##### Bug Fixes
    
    -   **cjs:** isolate implicit resolver enhancement ([#59](privatenumber/tsx#59)) ([143a5bd](privatenumber/tsx@143a5bd))
    -   **cjs:** namespace filter to preserve file path ([6ef949c](privatenumber/tsx@6ef949c))
    -   **esm:** implicit resolution with tsconfig paths ([a74aa58](privatenumber/tsx@a74aa58)), closes [#607](privatenumber/tsx#607)
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.16.1)
    ##### [v4.16.0](privatenumber/tsx@v4.15.9...da3bcb0)
    
    ##### [v4.15.9](privatenumber/tsx@v4.15.8...c67e3ba)
    
    ##### [v4.15.8](privatenumber/tsx@v4.15.7...ae2a1bc)
    
    ##### [v4.15.7](https://github.com/privatenumber/tsx/releases/tag/v4.15.7)
    
    ##### Bug Fixes
    
    -   nyc coverage compatibility ([#54](privatenumber/tsx#54)) ([26d633c](privatenumber/tsx@26d633c))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.7)
    ##### [v4.15.6](https://github.com/privatenumber/tsx/releases/tag/v4.15.6)
    
    ##### Bug Fixes
    
    -   minimum Node version in warning for `module.register()` ([#592](privatenumber/tsx#592)) ([cb27d4d](privatenumber/tsx@cb27d4d))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.6)
    ##### [v4.15.5](https://github.com/privatenumber/tsx/releases/tag/v4.15.5)
    
    ##### Bug Fixes
    
    -   **cjs:** make transformers overwritable ([c22fa7d](privatenumber/tsx@c22fa7d))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.5)
    ##### [v4.15.4](https://github.com/privatenumber/tsx/releases/tag/v4.15.4)
    
    ##### Bug Fixes
    
    -   **cjs:** handle re-exports from relative paths ([5166122](privatenumber/tsx@5166122))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.4)
    ##### [v4.15.3](https://github.com/privatenumber/tsx/releases/tag/v4.15.3)
    
    ##### Bug Fixes
    
    -   **cjs:** load json with namespace ([6b03a38](privatenumber/tsx@6b03a38))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.3)
    ##### [v4.15.2](https://github.com/privatenumber/tsx/releases/tag/v4.15.2)
    
    ##### Bug Fixes
    
    -   **esm:** resolve implicit extension in package subpath ([7e1fe22](privatenumber/tsx@7e1fe22))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.2)
    ##### [v4.15.1](https://github.com/privatenumber/tsx/releases/tag/v4.15.1)
    
    ##### Bug Fixes
    
    -   prevent ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE ([fb247eb](privatenumber/tsx@fb247eb))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.1)
    ##### [v4.15.0](https://github.com/privatenumber/tsx/releases/tag/v4.15.0)
    
    ##### Features
    
    -   esbuild 0.21 ([#19](privatenumber/tsx#19)) ([6f1d305](privatenumber/tsx@6f1d305))
    -   esbuild 0.21.3 ([edbdfdf](privatenumber/tsx@edbdfdf))
    -   esbuild 0.21.4 ([c67d746](privatenumber/tsx@c67d746))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.15.0)
    ##### [v4.14.1](https://github.com/privatenumber/tsx/releases/tag/v4.14.1)
    
    ##### Bug Fixes
    
    -   **cjs:** only hide transformers when namespaced ([9e647a5](privatenumber/tsx@9e647a5))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.14.1)
    ##### [v4.14.0](https://github.com/privatenumber/tsx/releases/tag/v4.14.0)
    
    ##### Features
    
    -   resolve .js → .ts in `package.json` exports & main ([4503421](privatenumber/tsx@4503421))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.14.0)
    ##### [v4.13.3](https://github.com/privatenumber/tsx/releases/tag/v4.13.3)
    
    ##### Bug Fixes
    
    -   **cjs:** resolve directory import relative to parent ([#42](privatenumber/tsx#42)) ([02d3856](privatenumber/tsx@02d3856))
    -   **esm:** cjs interop to support decorators ([807f467](privatenumber/tsx@807f467))
    -   **esm:** resolve .ts extension in imports map ([89621bf](privatenumber/tsx@89621bf))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.13.3)
    ##### [v4.13.2](https://github.com/privatenumber/tsx/releases/tag/v4.13.2)
    
    ##### Bug Fixes
    
    -   **esm:** ignore transforming .js files with CJS syntax ([#40](privatenumber/tsx#40)) ([87a7683](privatenumber/tsx@87a7683))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.13.2)
    ##### [v4.13.1](https://github.com/privatenumber/tsx/releases/tag/v4.13.1)
    
    ##### Bug Fixes
    
    -   **esm/api:** `tsImport()` to parse CJS exports ([0a78bfd](privatenumber/tsx@0a78bfd))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.13.1)
    ##### [v4.13.0](https://github.com/privatenumber/tsx/releases/tag/v4.13.0)
    
    ##### Features
    
    -   **cjs/api:** `register()` to support namespace ([#35](privatenumber/tsx#35)) ([c703300](privatenumber/tsx@c703300))
    -   **esm/api:** `tsImport()` to support loading CommonJS files ([0eb4e91](privatenumber/tsx@0eb4e91))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.13.0)
    ##### [v4.12.1](https://github.com/privatenumber/tsx/releases/tag/v4.12.1)
    
    ##### Bug Fixes
    
    -   **esm:** resolve implicit ts paths in packages ([de900a1](privatenumber/tsx@de900a1))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.12.1)
    ##### [v4.12.0](https://github.com/privatenumber/tsx/releases/tag/v4.12.0)
    
    ##### Bug Fixes
    
    -   **cjs:** make resolver chainable ([585f117](privatenumber/tsx@585f117))
    -   **esm:** named import from CommonJS file ([#33](privatenumber/tsx#33)) ([7c85303](privatenumber/tsx@7c85303))
    
    ##### Features
    
    -   **cjs:** support query for cache busting ([#37](privatenumber/tsx#37)) ([e1464cf](privatenumber/tsx@e1464cf))
    
    ##### Performance Improvements
    
    -   **esm:** only try extensions if file path ([72d0896](privatenumber/tsx@72d0896))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.12.0)
    ##### [v4.11.2](https://github.com/privatenumber/tsx/releases/tag/v4.11.2)
    
    ##### Bug Fixes
    
    -   **cjs:** esm interop in `.mjs` files ([#32](https://github.com/privatenumber/tsx/issues/32)) ([aa2b639](privatenumber/tsx@aa2b639))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.11.2)
    ##### [v4.11.1](https://github.com/privatenumber/tsx/releases/tag/v4.11.1)
    
    ##### Bug Fixes
    
    -   **cjs/api:** resolve correct module and types when imported ([#566](privatenumber/tsx#566)) ([5e70105](privatenumber/tsx@5e70105))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.11.1)
    ##### [v4.11.0](https://github.com/privatenumber/tsx/releases/tag/v4.11.0)
    
    ##### Bug Fixes
    
    -   only error on invalid tsconfig if explicitly passed in ([#30](privatenumber/tsx#30)) ([b6bf39b](privatenumber/tsx@b6bf39b))
    
    ##### Features
    
    -   **esm api:** configurable `tsconfig` ([3f42ae3](privatenumber/tsx@3f42ae3))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.11.0)
    ##### [v4.10.5](https://github.com/privatenumber/tsx/releases/tag/v4.10.5)
    
    ##### Bug Fixes
    
    -   handle parsing variable `of` ([86cf87c](privatenumber/tsx@86cf87c)), closes [#556](privatenumber/tsx#556)
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.10.5)
    ##### [v4.10.4](privatenumber/tsx@v4.10.3...4a8a2dc)
    
    ##### [v4.10.3](https://github.com/privatenumber/tsx/releases/tag/v4.10.3)
    
    ##### Performance Improvements
    
    -   skip parsing if `import(` is not found in minified code ([5cdd50b](privatenumber/tsx@5cdd50b))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.10.3)
    ##### [v4.10.2](privatenumber/tsx@v4.10.1...2c87fc1)
    
    ##### [v4.10.1](privatenumber/tsx@v4.10.0...efb3509)
    
    ##### [v4.10.0](https://github.com/privatenumber/tsx/releases/tag/v4.10.0)
    
    ##### Features
    
    -   **esm api:** register to return a namespaced import() method ([53bb4aa](privatenumber/tsx@53bb4aa))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.10.0)
    ##### [v4.9.5](privatenumber/tsx@v4.9.4...dae9f0d)
    
    ##### [v4.9.4](https://github.com/privatenumber/tsx/releases/tag/v4.9.4)
    
    ##### Bug Fixes
    
    -   **tsImport:** import module from commonjs ([48f0a75](privatenumber/tsx@48f0a75))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.9.4)
    ##### [v4.9.3](https://github.com/privatenumber/tsx/releases/tag/v4.9.3)
    
    ##### Bug Fixes
    
    -   import implicit extensions from packages ([8022fcf](privatenumber/tsx@8022fcf)), closes [#542](privatenumber/tsx#542)
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.9.3)
    ##### [v4.9.2](https://github.com/privatenumber/tsx/releases/tag/v4.9.2)
    
    ##### Bug Fixes
    
    -   **esm:** resolve absolute paths ([#544](privatenumber/tsx#544)) ([3a0ea18](privatenumber/tsx@3a0ea18))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.9.2)
    ##### [v4.9.1](privatenumber/tsx@v4.9.0...96bc596)
    
    ##### [v4.9.0](privatenumber/tsx@v4.8.2...4f515ab)
    
    ##### [v4.8.2](https://github.com/privatenumber/tsx/releases/tag/v4.8.2)
    
    ##### Bug Fixes
    
    -   **types:** cjs/api to use .d.cts ([4b1f03c](privatenumber/tsx@4b1f03c))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.8.2)
    ##### [v4.8.1](privatenumber/tsx@v4.8.0...084dec0)
    
    ##### [v4.8.0](privatenumber/tsx@v4.7.3...99ba136)
    
    ##### [v4.7.3](https://github.com/privatenumber/tsx/releases/tag/v4.7.3)
    
    ##### Bug Fixes
    
    -   support TS resolution in JS files when `allowJs` is set ([#535](privatenumber/tsx#535)) ([081853e](privatenumber/tsx@081853e))
    
    ***
    
    This release is also available on:
    
    -   [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.7.3)
    ##### [v4.7.2](privatenumber/tsx@v4.7.1...1a10da7)
    renovate[bot] authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    927a29f View commit details
    Browse the repository at this point in the history
  5. chore(deps): update dependency typescript to v5.5.4

    ##### [v5.5.4](microsoft/TypeScript@v5.5.3...c8a7d58)
    
    ##### [v5.5.3](microsoft/TypeScript@v5.5.2...f0e9921)
    
    ##### [v5.5.2](microsoft/TypeScript@v5.4.5...ce2e60e)
    
    ##### [v5.4.5](https://github.com/microsoft/TypeScript/releases/tag/v5.4.5)
    
    For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/).
    
    For the complete list of fixed issues, check out the
    
    -   [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.4%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.5 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.5%22+is%3Aclosed+).
    
    Downloads are available on:
    
    -   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)
    ##### [v5.4.4](https://github.com/microsoft/TypeScript/releases/tag/v5.4.4)
    
    For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/).
    
    For the complete list of fixed issues, check out the
    
    -   [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.4%22+is%3Aclosed+).
    
    Downloads are available on:
    
    -   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)
    ##### [v5.4.3](https://github.com/microsoft/TypeScript/releases/tag/v5.4.3)
    
    For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/).
    
    For the complete list of fixed issues, check out the
    
    -   [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+).
    
    Downloads are available on:
    
    -   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)
    ##### [v5.4.2](https://github.com/microsoft/TypeScript/releases/tag/v5.4.2)
    
    For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/).
    
    For the complete list of fixed issues, check out the
    
    -   [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+).
    
    Downloads are available on:
    
    -   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)
    ##### [v5.3.3](https://github.com/microsoft/TypeScript/releases/tag/v5.3.3)
    
    For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/).
    
    For the complete list of fixed issues, check out the
    
    -   [fixed issues query for Typescript 5.3.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.0%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.3.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.1%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.3.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.2%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.3.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.3%22+is%3Aclosed+).
    
    Downloads are available on:
    
    -   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)
    ##### [v5.3.2](https://github.com/microsoft/TypeScript/releases/tag/v5.3.2)
    
    For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/).
    
    For the complete list of fixed issues, check out the
    
    -   [fixed issues query for Typescript 5.3.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.0%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.3.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.1%22+is%3Aclosed+).
    -   [fixed issues query for Typescript 5.3.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.2%22+is%3Aclosed+).
    
    Downloads are available on:
    
    -   [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)
    renovate[bot] authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    cff2ae1 View commit details
    Browse the repository at this point in the history
  6. Update renovate.json

    mmkal authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    4336ee1 View commit details
    Browse the repository at this point in the history
  7. chore(deps): update dependency vitest to v1.6.0

    ##### [v1.6.0](https://github.com/vitest-dev/vitest/releases/tag/v1.6.0)
    
    #####    🚀 Features
    
    -   Support standalone mode  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5565 [<samp>(bdce0)</samp>](vitest-dev/vitest@bdce0a29)
    -   Custom "snapshotEnvironment" option  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5449 [<samp>(30f72)</samp>](vitest-dev/vitest@30f728bc)
    -   **benchmark**: Support comparing benchmark result  -  by [@hi-ogawa](https://github.com/hi-ogawa) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5398 [<samp>(f8d3d)</samp>](vitest-dev/vitest@f8d3d22e)
    -   **browser**: Allow injecting scripts  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5656 [<samp>(21e58)</samp>](vitest-dev/vitest@21e58bd8)
    -   **reporter**: Support `includeConsoleOutput` and `addFileAttribute` in junit  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5659 [<samp>(2f913)</samp>](vitest-dev/vitest@2f913222)
    -   **ui**: Sort items by file name  -  by [@btea](https://github.com/btea) in vitest-dev/vitest#5652 [<samp>(1f726)</samp>](vitest-dev/vitest@1f7268fa)
    
    #####    🐞 Bug Fixes
    
    -   Keep order of arguments for .each in custom task collectors  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5640 [<samp>(7d57c)</samp>](vitest-dev/vitest@7d57c116)
    -   Call `resolveId('vitest')` after `buildStart`  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5646 [<samp>(f5faf)</samp>](vitest-dev/vitest@f5faf423)
    -   Hash the name of the file when caching  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5654 [<samp>(c9e68)</samp>](vitest-dev/vitest@c9e68ced)
    -   Don't panic on empty files in node_modules  -  by [@sheremet-va](https://github.com/sheremet-va) [<samp>(40c29)</samp>](vitest-dev/vitest@40c299fe)
    -   Use `toJSON` for error serialization  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5526 [<samp>(19a21)</samp>](vitest-dev/vitest@19a21e49)
    -   **coverage**:
        -   Exclude `*.test-d.*` by default  -  by [@MindfulPol](https://github.com/MindfulPol) in vitest-dev/vitest#5634 [<samp>(bfe8a)</samp>](vitest-dev/vitest@bfe8ad9d)
        -   Apply `vite-node`'s wrapper only to executed files  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5642 [<samp>(c9883)</samp>](vitest-dev/vitest@c9883f3e)
    -   **vm**:
        -   Support network imports  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5610 [<samp>(103a6)</samp>](vitest-dev/vitest@103a6002)
    
    #####    🏎 Performance
    
    -   Improve performance of forks pool  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5592 [<samp>(d8304)</samp>](vitest-dev/vitest@d8304bb4)
    -   Unnecessary rpc call when coverage is disabled  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5658 [<samp>(c5712)</samp>](vitest-dev/vitest@c571276a)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v1.5.3...v1.6.0)
    ##### [v1.5.3](https://github.com/vitest-dev/vitest/releases/tag/v1.5.3)
    
    #####    🐞 Bug Fixes
    
    -   Use package.json name for a workspace project if not provided  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5608 [<samp>(48fba)</samp>](vitest-dev/vitest@48fba190)
    -   Backport jest iterable equality within object  -  by [@sukovanej](https://github.com/sukovanej) in vitest-dev/vitest#5621 [<samp>(30e5d)</samp>](vitest-dev/vitest@30e5dc1b)
    -   **browser**: Support benchmark  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5622 [<samp>(becab)</samp>](vitest-dev/vitest@becabb5e)
    -   **reporter**: Use default error formatter for JUnit  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5629 [<samp>(20060)</samp>](vitest-dev/vitest@200609cc)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v1.5.2...v1.5.3)
    ##### [v1.5.2](https://github.com/vitest-dev/vitest/releases/tag/v1.5.2)
    
    #####    🐞 Bug Fixes
    
    -   Check for null before storing in weakmap  -  by [@sheremet-va](https://github.com/sheremet-va) [<samp>(ce368)</samp>](vitest-dev/vitest@ce368457)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v1.5.1...v1.5.2)
    ##### [v1.5.1](https://github.com/vitest-dev/vitest/releases/tag/v1.5.1)
    
    #####    🚀 Features
    
    -   **api**: `startVitest()` to accept `stdout` and `stdin`  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5493 [<samp>(780b1)</samp>](vitest-dev/vitest@780b187f)
        -   This is listed as a feature, but it doesn't increase the minor version because `startVitest` API is experimental and doesn't follow semver.
    
    #####    🐞 Bug Fixes
    
    -   Close vite servers on all resolved projects  -  by [@surc54](https://github.com/surc54) in vitest-dev/vitest#5544 [<samp>(413ec)</samp>](vitest-dev/vitest@413ec5e6)
    -   Fix default `import.meta.env.PROD: false`  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5561 [<samp>(9c649)</samp>](vitest-dev/vitest@9c64967f)
    -   Resolve cwd correctly when initiating projects  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5582 [<samp>(ec9d7)</samp>](vitest-dev/vitest@ec9d7c93)
    -   Always run `onTestFinished` in reverse order  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5598 [<samp>(23f29)</samp>](vitest-dev/vitest@23f29cea)
    -   **browser**:
        -   Disable `fileParallelism` by default on browser pool  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5528 [<samp>(5c69f)</samp>](vitest-dev/vitest@5c69f3f5)
        -   Dispose tester iframe on done  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5595 [<samp>(b2135)</samp>](vitest-dev/vitest@b2135710)
    -   **coverage**:
        -   Fix bundling of `v8-to-istanbul`  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5549 [<samp>(df6a4)</samp>](vitest-dev/vitest@df6a4328)
        -   Prevent crash when `cleanOnRerun` is disabled  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5540 [<samp>(ea3c1)</samp>](vitest-dev/vitest@ea3c16e4)
        -   `thresholds` to compare files relative to root  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5574 [<samp>(80265)</samp>](vitest-dev/vitest@80265b40)
    -   **expect**:
        -   Fix `toEqual` and `toMatchObject` with circular references  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5535 [<samp>(9e641)</samp>](vitest-dev/vitest@9e6417c9)
    -   **vitest**:
        -   Fix false positive file filter match with leading slash  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5578 [<samp>(316eb)</samp>](vitest-dev/vitest@316eb739)
        -   Watch the output directory correctly  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5584 [<samp>(e40f9)</samp>](vitest-dev/vitest@e40f9924)
        -   StubEnv casts boolean on PROD/SSR/DEV  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5590 [<samp>(4da88)</samp>](vitest-dev/vitest@4da88045)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v1.5.0...v1.5.1)
    ##### [v1.5.0](vitest-dev/vitest@v1.4.0...v1.5.0)
    
    ##### [v1.4.0](https://github.com/vitest-dev/vitest/releases/tag/v1.4.0)
    
    #####    🚀 Features
    
    -   Throw error when using snapshot assertion with `not`  -  by [@fenghan34](https://github.com/fenghan34) in vitest-dev/vitest#5294 [<samp>(b9d37)</samp>](vitest-dev/vitest@b9d378f5)
    -   Add a flag to include test location in tasks  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5342 [<samp>(d627e)</samp>](vitest-dev/vitest@d627e209)
    -   **cli**:
        -   Support wildcards in `--project` option  -  by [@fenghan34](https://github.com/fenghan34) in vitest-dev/vitest#5295 [<samp>(201bd)</samp>](vitest-dev/vitest@201bd067)
    -   **config**:
        -   Add `shuffle.files` and `shuffle.tests` options  -  by [@fenghan34](https://github.com/fenghan34) in vitest-dev/vitest#5281 [<samp>(356db)</samp>](vitest-dev/vitest@356db87b)
        -   Deprecate `cache.dir` option  -  by [@fenghan34](https://github.com/fenghan34) in vitest-dev/vitest#5229 [<samp>(d7e8b)</samp>](vitest-dev/vitest@d7e8b53e)
    -   **coverage**:
        -   Support `--changed` option  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5314 [<samp>(600b4)</samp>](vitest-dev/vitest@600b44d6)
    -   **vitest**:
        -   Support `clearScreen` cli flag  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5241 [<samp>(e1735)</samp>](vitest-dev/vitest@e1735fb6)
    
    #####    🐞 Bug Fixes
    
    -   Repeatable `--project` option  -  by [@fenghan34](https://github.com/fenghan34) in vitest-dev/vitest#5265 [<samp>(d1a06)</samp>](vitest-dev/vitest@d1a06730)
    -   `--inspect-brk` to pause before execution  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5355 [<samp>(e77c5)</samp>](vitest-dev/vitest@e77c553f)
    -   Correct locations in test.each tasks  -  by [@sheremet-va](https://github.com/sheremet-va) [<samp>(4f6e3)</samp>](vitest-dev/vitest@4f6e39c1)
    -   **api**:
        -   Use resolvedUrls from devserver  -  by [@saitonakamura](https://github.com/saitonakamura) and [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5289 [<samp>(2fef5)</samp>](vitest-dev/vitest@2fef5a7e)
    -   **browser**:
        -   Add `magic-string` to `optimizeDeps.include`  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5278 [<samp>(8f04e)</samp>](vitest-dev/vitest@8f04e798)
    -   **coverage**:
        -   Expensive regexp hangs v8 report generation  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5259 [<samp>(d68a7)</samp>](vitest-dev/vitest@d68a7390)
        -   V8 to ignore type-only files  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5328 [<samp>(c3eb8)</samp>](vitest-dev/vitest@c3eb8deb)
        -   Respect source maps of pre-transpiled sources  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5367 [<samp>(6eda4)</samp>](vitest-dev/vitest@6eda473f)
        -   Prevent `reportsDirectory` from removing user's project  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5376 [<samp>(07ec3)</samp>](vitest-dev/vitest@07ec3779)
    -   **expect**:
        -   Show diff on `toContain/toMatch` assertion error  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5267 [<samp>(8ee59)</samp>](vitest-dev/vitest@8ee59f0d)
    -   **forks**:
        -   Wrap `defines` to support `undefined` values  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5284 [<samp>(5b58b)</samp>](vitest-dev/vitest@5b58b399)
    -   **typecheck**:
        -   Update get-tsconfig 4.7.3 to fix false circularity error  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5384 [<samp>(bdc37)</samp>](vitest-dev/vitest@bdc371ee)
    -   **ui**:
        -   Escape html in error diff  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5325 [<samp>(ab60b)</samp>](vitest-dev/vitest@ab60bf8d)
    -   **vitest**:
        -   Loosen `onConsoleLog` return type  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5337 [<samp>(6d1b1)</samp>](vitest-dev/vitest@6d1b1451)
        -   Ensure restoring terminal cursor on close  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5292 [<samp>(0bea2)</samp>](vitest-dev/vitest@0bea2247)
        -   Ignore timeout on websocket reporter rpc  -  by [@sheremet-va](https://github.com/sheremet-va) [<samp>(38119)</samp>](vitest-dev/vitest@38119b75)
        -   Correctly override api with --no-api flag  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5386 [<samp>(51d1d)</samp>](vitest-dev/vitest@51d1d472)
        -   Logs in `beforeAll` and `afterAll`  -  by [@fenghan34](https://github.com/fenghan34) in vitest-dev/vitest#5288 [<samp>(ce5ca)</samp>](vitest-dev/vitest@ce5ca6bf)
    -   **workspace**:
        -   Throw error when browser mode and `@vitest/coverage-v8` are used  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5250 [<samp>(29f98)</samp>](vitest-dev/vitest@29f98cd3)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v1.3.1...v1.4.0)
    renovate[bot] authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    8720fa3 View commit details
    Browse the repository at this point in the history
  8. chore(deps): update pnpm to v9.7.1

    ##### [v9.7.1](pnpm/pnpm@v9.7.0...v9.7.1)
    
    ##### [v9.7.0](https://github.com/pnpm/pnpm/releases/tag/v9.7.0)
    
    #### Minor Changes
    
    -   Added pnpm version management. If the `manage-package-manager-versions` setting is set to `true`, pnpm will switch to the version specified in the `packageManager` field of `package.json` [#8363](pnpm/pnpm#8363). This is the same field used by Corepack. Example:
    
        ```json
        {
          "packageManager": "pnpm@9.3.0"
        }
        ```
    
    -   Added the ability to apply patch to all versions [#8337](pnpm/pnpm#8337).
    
        If the key of `pnpm.patchedDependencies` is a package name without a version (e.g. `pkg`), pnpm will attempt to apply the patch to all versions of the package. Failures will be skipped. If there's only one version of `pkg` installed, `pnpm patch pkg` and subsequent `pnpm patch-commit $edit_dir` will create an entry named `pkg` in `pnpm.patchedDependencies`. And pnpm will attempt to apply this patch to other versions of `pkg` in the future.
    
    -   Change the default edit dir location when running `pnpm patch` from a temporary directory to `node_modules/.pnpm_patches/pkg[@Version]` to allow the code editor to open the edit dir in the same file tree as the main project [#8379](pnpm/pnpm#8379).
    
    -   Substitute environment variables in config keys [#6679](pnpm/pnpm#6679).
    
    #### Patch Changes
    
    -   `pnpm install` should run `node-gyp rebuild` if the project has a `binding.gyp` file even if the project doesn't have an install script [#8293](pnpm/pnpm#8293).
    -   Print warnings to stderr [#8342](pnpm/pnpm#8342).
    -   Peer dependencies of optional peer dependencies should be automatically installed [#8323](pnpm/pnpm#8323).
    
    #### Platinum Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://bit.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80"></a>
          </td>
          <td align="center" valign="middle">
            <a href="https://figma.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/figma.svg" width="80"></a>
          </td>
        </tr>
      </tbody>
    </table>
    #### Gold Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
                <img src="https://pnpm.io/img/users/discord.svg" width="220" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://prisma.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/prisma.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/prisma_light.svg" />
                <img src="https://pnpm.io/img/users/prisma.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://uscreen.de/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/uscreen.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/uscreen_light.svg" />
                <img src="https://pnpm.io/img/users/uscreen.svg" width="180" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://www.jetbrains.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/jetbrains.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/jetbrains.svg" />
                <img src="https://pnpm.io/img/users/jetbrains.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
                <img src="https://pnpm.io/img/users/nx.svg" width="120" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
                <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" />
              </picture>
            </a>
          </td>
        </tr>
      </tbody>
    </table>
    #### Our Silver Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://leniolabs.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <img src="https://pnpm.io/img/users/leniolabs.jpg" width="80">
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://vercel.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/vercel.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/vercel_light.svg" />
                <img src="https://pnpm.io/img/users/vercel.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://depot.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/depot.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/depot_light.svg" />
                <img src="https://pnpm.io/img/users/depot.svg" width="200" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://moonrepo.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/moonrepo.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/moonrepo_light.svg" />
                <img src="https://pnpm.io/img/users/moonrepo.svg" width="200" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://devowl.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/devowlio.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/devowlio.svg" />
                <img src="https://pnpm.io/img/users/devowlio.svg" width="200" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://macpaw.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/macpaw.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/macpaw_light.svg" />
                <img src="https://pnpm.io/img/users/macpaw.svg" width="200" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://cerbos.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/cerbos.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/cerbos_light.svg" />
                <img src="https://pnpm.io/img/users/cerbos.svg" width="180" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://vpsserver.com/en-us/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <img src="https://pnpm.io/img/users/vpsserver.svg" width="180" />
            </a>
          </td>
        </tr>
      </tbody>
    </table>
    ##### [v9.6.0](https://github.com/pnpm/pnpm/releases/tag/v9.6.0)
    
    #### Minor Changes
    
    -   Support specifying node version (via `pnpm.executionEnv.nodeVersion` in `package.json`) for running lifecycle scripts per each package in a workspace [#6720](pnpm/pnpm#6720).
    -   Overrides now support the [`catalogs:` protocol](https://pnpm.io/catalogs) [#8303](pnpm/pnpm#8303).
    
    #### Patch Changes
    
    -   The `pnpm deploy` command now supports the [`catalog:` protocol](https://pnpm.io/catalogs) [#8298](pnpm/pnpm#8298).
    -   The `pnpm outdated` command now supports the [`catalog:` protocol](https://pnpm.io/catalogs) [#8304](pnpm/pnpm#8304).
    -   Correct the error message when trying to run `pnpm patch` without `node_modules/.modules.yaml` [#8257](pnpm/pnpm#8257).
    -   Silent reporting fixed with the `pnpm exec` command [#7608](pnpm/pnpm#7608).
    -   Add registries information to the calculation of dlx cache hash [#8299](pnpm/pnpm#8299).
    
    #### Platinum Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://bit.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80"></a>
          </td>
          <td align="center" valign="middle">
            <a href="https://figma.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/figma.svg" width="80"></a>
          </td>
        </tr>
      </tbody>
    </table>
    #### Gold Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
                <img src="https://pnpm.io/img/users/discord.svg" width="220" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://prisma.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/prisma.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/prisma_light.svg" />
                <img src="https://pnpm.io/img/users/prisma.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://uscreen.de/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/uscreen.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/uscreen_light.svg" />
                <img src="https://pnpm.io/img/users/uscreen.svg" width="180" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://www.jetbrains.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/jetbrains.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/jetbrains.svg" />
                <img src="https://pnpm.io/img/users/jetbrains.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
                <img src="https://pnpm.io/img/users/nx.svg" width="120" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
                <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" />
              </picture>
            </a>
          </td>
        </tr>
      </tbody>
    </table>
    #### Our Silver Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://leniolabs.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <img src="https://pnpm.io/img/users/leniolabs.jpg" width="80">
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://vercel.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/vercel.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/vercel_light.svg" />
                <img src="https://pnpm.io/img/users/vercel.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://depot.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/depot.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/depot_light.svg" />
                <img src="https://pnpm.io/img/users/depot.svg" width="200" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://moonrepo.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/moonrepo.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/moonrepo_light.svg" />
                <img src="https://pnpm.io/img/users/moonrepo.svg" width="200" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://devowl.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/devowlio.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/devowlio.svg" />
                <img src="https://pnpm.io/img/users/devowlio.svg" width="200" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://macpaw.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/macpaw.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/macpaw_light.svg" />
                <img src="https://pnpm.io/img/users/macpaw.svg" width="200" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://cerbos.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/cerbos.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/cerbos_light.svg" />
                <img src="https://pnpm.io/img/users/cerbos.svg" width="180" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://vpsserver.com/en-us/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <img src="https://pnpm.io/img/users/vpsserver.svg" width="180" />
            </a>
          </td>
        </tr>
      </tbody>
    </table>
    ##### [v9.5.0](pnpm/pnpm@v9.5.0-beta.3...v9.5.0)
    renovate[bot] authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    62a4a4a View commit details
    Browse the repository at this point in the history
  9. fix(deps): update dependency @next/eslint-plugin-next to v14.2.5

    ##### [v14.2.5](vercel/next.js@v14.2.4...v14.2.5)
    
    ##### [v14.2.4](https://github.com/vercel/next.js/releases/tag/v14.2.4)
    
    > \[!NOTE]\
    > This release is backporting bug fixes. It does **not** include all pending features/changes on canary.
    
    ##### Core Changes
    
    -   fix: ensure route handlers properly track dynamic access ([#66446](vercel/next.js#66446))
    -   fix NextRequest proxy in edge runtime ([#66551](vercel/next.js#66551))
    -   Fix next/dynamic with babel and src dir ([#65177](vercel/next.js#65177))
    -   Use vercel deployment url for metadataBase fallbacks ([#65089](vercel/next.js#65089))
    -   fix(next/image): detect react@19 for fetchPriority prop ([#65235](vercel/next.js#65235))
    -   Fix loading navigation with metadata and prefetch ([#66447](vercel/next.js#66447))
    -   prevent duplicate RSC fetch when action redirects ([#66620](vercel/next.js#66620))
    -   ensure router cache updates reference the latest cache values ([#66681](vercel/next.js#66681))
    -   Prevent append of trailing slash in cases where path ends with a file extension ([#66636](vercel/next.js#66636))
    -   Fix inconsistency with 404 getStaticProps cache-control ([#66674](vercel/next.js#66674))
    -   Use addDependency to track metadata route file changes ([#66714](vercel/next.js#66714))
    -   Add timeout/retry handling for fetch cache ([#66652](vercel/next.js#66652))
    -   fix: app-router prefetch crash when an invalid URL is passed to Link ([#66755](vercel/next.js#66755))
    
    ##### Credits
    
    Huge thanks to [@ztanner](https://github.com/ztanner), [@ijjk](https://github.com/ijjk), [@wbinnssmith](https://github.com/wbinnssmith), [@huozhi](https://github.com/huozhi), and [@lubieowoce](https://github.com/lubieowoce) for helping!
    ##### [v14.2.3](vercel/next.js@v14.2.2...v14.2.3)
    
    ##### [v14.2.2](vercel/next.js@v14.2.1...v14.2.2)
    
    ##### [v14.2.1](vercel/next.js@v14.2.0...v14.2.1)
    
    ##### [v14.2.0](vercel/next.js@v14.1.4...774563f)
    renovate[bot] authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    1d618e0 View commit details
    Browse the repository at this point in the history
  10. fix(deps): update dependency @rushstack/eslint-config to v3.7.1

    ##### [v3.7.1](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#371)
    
    Sat, 27 Jul 2024 00:10:27 GMT
    
    ##### Patches
    
    -   Include CHANGELOG.md in published releases again
    ##### [v3.7.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#370)
    
    Wed, 29 May 2024 00:10:52 GMT
    
    ##### Minor changes
    
    -   Bump the `eslint-plugin-tsdoc` plugin.
    ##### [v3.6.10](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#3610)
    
    Fri, 17 May 2024 00:10:40 GMT
    
    *Version update only*
    ##### [v3.6.9](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#369)
    
    Wed, 10 Apr 2024 21:59:39 GMT
    
    *Version update only*
    ##### [v3.6.8](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#368)
    
    Fri, 29 Mar 2024 05:46:41 GMT
    
    *Version update only*
    ##### [v3.6.7](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#367)
    
    Thu, 28 Mar 2024 18:11:12 GMT
    
    *Version update only*
    ##### [v3.6.6](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#366)
    
    Wed, 27 Mar 2024 19:47:21 GMT
    
    *Version update only*
    ##### [v3.6.5](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#365)
    
    Wed, 20 Mar 2024 02:09:14 GMT
    
    *Version update only*
    ##### [v3.6.4](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#364)
    
    Sat, 17 Feb 2024 06:24:35 GMT
    
    *Version update only*
    ##### [v3.6.3](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#363)
    
    Wed, 07 Feb 2024 01:11:18 GMT
    
    *Version update only*
    ##### [v3.6.2](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#362)
    
    Thu, 25 Jan 2024 23:03:57 GMT
    
    *Version update only*
    ##### [v3.6.1](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#3610)
    
    Fri, 17 May 2024 00:10:40 GMT
    
    *Version update only*
    ##### [v3.6.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#360)
    
    Tue, 16 Jan 2024 18:30:10 GMT
    
    ##### Minor changes
    
    -   Add support for TypeScript 5.3 with [@typescript-eslint](https://github.com/typescript-eslint) 6.19.x
    ##### [v3.5.1](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#351)
    
    Fri, 15 Dec 2023 01:10:06 GMT
    
    *Version update only*
    ##### [v3.5.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#350)
    
    Wed, 22 Nov 2023 01:45:18 GMT
    
    ##### Minor changes
    
    -   Added eslint-bulk-suppressions to [@rushstack/eslint-config](https://github.com/rushstack/eslint-config) dependencies, allowing it to be used in all projects that use rushstack's eslint-config
    renovate[bot] authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    e66e8f2 View commit details
    Browse the repository at this point in the history
  11. fix(deps): update dependency @rushstack/eslint-plugin to ^0.16.0

    ##### [v0.16.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin/CHANGELOG.md#0160)
    
    Wed, 14 Aug 2024 22:37:32 GMT
    
    ##### Minor changes
    
    -   Add 4 new ESLint rules: "[@rushstack/no-backslash-imports](https://github.com/rushstack/no-backslash-imports)", used to prevent backslashes in import and require statements; "[@rushstack/no-external-local-imports](https://github.com/rushstack/no-external-local-imports)", used to prevent referencing external depedencies in import and require statements; "[@rushstack/no-transitive-dependency-imports](https://github.com/rushstack/no-transitive-dependency-imports)", used to prevent referencing transitive dependencies (ie. dependencies of dependencies) in import and require statements; and "[@rushstack/normalized-imports](https://github.com/rushstack/normalized-imports)", used to ensure that the most direct path to a dependency is provided in import and require statements
    ##### [v0.15.2](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin/CHANGELOG.md#0152)
    
    Sat, 27 Jul 2024 00:10:27 GMT
    
    ##### Patches
    
    -   Include CHANGELOG.md in published releases again
    ##### [v0.15.1](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin/CHANGELOG.md#0151)
    
    Sat, 17 Feb 2024 06:24:34 GMT
    
    ##### Patches
    
    -   Fix broken link to API documentation
    ##### [v0.15.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin/CHANGELOG.md#0150)
    
    Wed, 07 Feb 2024 01:11:18 GMT
    
    ##### Minor changes
    
    -   Allow using `as const` in `typedef-var`
    ##### [v0.14.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin/CHANGELOG.md#0140)
    
    Tue, 16 Jan 2024 18:30:10 GMT
    
    ##### Minor changes
    
    -   Add support for TypeScript 5.3 with [@typescript-eslint](https://github.com/typescript-eslint) 6.19.x
    renovate[bot] authored Aug 20, 2024
    Configuration menu
    Copy the full SHA
    a30e137 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2024

  1. fix(deps): update dependency @rushstack/eslint-plugin-security to ^0.8.0

    ##### [v0.8.2](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin-security/CHANGELOG.md#082)
    
    Sat, 27 Jul 2024 00:10:27 GMT
    
    ##### Patches
    
    -   Include CHANGELOG.md in published releases again
    ##### [v0.8.1](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin-security/CHANGELOG.md#081)
    
    Sat, 17 Feb 2024 06:24:34 GMT
    
    *Version update only*
    ##### [v0.8.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-plugin-security/CHANGELOG.md#080)
    
    Tue, 16 Jan 2024 18:30:10 GMT
    
    ##### Minor changes
    
    -   Add support for TypeScript 5.3 with [@typescript-eslint](https://github.com/typescript-eslint) 6.19.x
    renovate[bot] authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    b4f16b6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    104a171 View commit details
    Browse the repository at this point in the history
  3. fix(deps): update dependency eslint-config-xo to ^0.46.0

    ##### [v0.46.0](https://github.com/xojs/eslint-config-xo/releases/tag/v0.46.0)
    
    ##### New rules
    
    -   [`@stylistic/indent-binary-ops`](https://eslint.style/rules/plus/indent-binary-ops)  [`d91defd`](xojs/eslint-config-xo@d91defd)
    -   [`@stylistic/function-paren-newline`](https://eslint.style/rules/js/function-paren-newline)  [`fb5e204`](xojs/eslint-config-xo@fb5e204)
    -   [`@stylistic/block-spacing`](https://eslint.style/rules/js/block-spacing)  [`cb6b443`](xojs/eslint-config-xo@cb6b443)
    -   [`@stylistic/multiline-ternary`](https://eslint.style/rules/js/multiline-ternary)  [`3dea281`](xojs/eslint-config-xo@3dea281)
    
    ##### Breaking
    
    -   Require Node.js 18.18
    -   Migrate to flat config and require ESLint 9 ([#86](xojs/eslint-config-xo#86))  [`ec210f2`](xojs/eslint-config-xo@ec210f2)
        -   Migrate config: https://eslint.org/docs/latest/use/configure/migration-guide
    
    ##### Improvements
    
    -   Migrate deprecated rules to [`@stylistic`](https://eslint.style)  [`0f81063`](xojs/eslint-config-xo@0f81063)
    -   Enable permissive `max-len` and `max-lines` as warning ([#84](xojs/eslint-config-xo#84))  [`e669d26`](xojs/eslint-config-xo@e669d26)
    -   Revert "Add option to `no-extra-boolean-cast`" ([#87](xojs/eslint-config-xo#87))  [`f010b63`](xojs/eslint-config-xo@f010b63)
    -   Add option to `no-extra-boolean-cast`  [`a6dc171`](xojs/eslint-config-xo@a6dc171)
    ##### [v0.45.0](https://github.com/xojs/eslint-config-xo/releases/tag/v0.45.0)
    
    -   Allow class fields with no blank lines between ([#85](xojs/eslint-config-xo#85))  [`6f2ff13`](xojs/eslint-config-xo@6f2ff13)
    ##### [v0.44.0](https://github.com/xojs/eslint-config-xo/releases/tag/v0.44.0)
    
    ##### Breaking
    
    -   Require Node.js 18  [`f2060de`](xojs/eslint-config-xo@f2060de)
    
    ##### New rules
    
    -   [`logical-assignment-operators`](https://eslint.org/docs/latest/rules/logical-assignment-operators)  [`27049c1`](xojs/eslint-config-xo@27049c1)
    -   [`prefer-object-has-own`](https://eslint.org/docs/latest/rules/prefer-object-has-own)  [`288a3ca`](xojs/eslint-config-xo@288a3ca)
    -   [`object-curly-newline`](https://eslint.org/docs/latest/rules/object-curly-newline) ([#83](xojs/eslint-config-xo#83))  [`3a5448b`](xojs/eslint-config-xo@3a5448b)
    
    ##### Improvements
    
    -   Ban `atob` and `btoa`  [`dfa969c`](xojs/eslint-config-xo@dfa969c)
    -   Replace deprecated `no-new-object` rule  [`7f8f92e`](xojs/eslint-config-xo@7f8f92e)
    -   `no-unused-vars`: Allow ignoring variables by prefixing with underscore  [`b31ab8a`](xojs/eslint-config-xo@b31ab8a)
    renovate[bot] authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    7e0a137 View commit details
    Browse the repository at this point in the history
  4. fix(deps): update dependency eslint-plugin-functional to v6.6.3

    ##### [v6.6.3](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#663-2024-07-11)
    
    ##### Bug Fixes
    
    -   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)
    ##### [v6.6.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#662-2024-07-11)
    
    ##### Bug Fixes
    
    -   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
    -   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
    -   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))
    ##### [v6.6.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#661-2024-07-06)
    
    ##### [v6.6.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#660-2024-06-19)
    
    ##### Features
    
    -   **prefer-immutable-types:** allow for changing suggestion messages ([#828](eslint-functional/eslint-plugin-functional#828)) ([822cc33](eslint-functional/eslint-plugin-functional@822cc33))
    
    #### [6.5.2](eslint-functional/eslint-plugin-functional@v6.5.1...v6.5.2) (2024-06-19)
    
    #### [6.5.1](eslint-functional/eslint-plugin-functional@v6.5.0...v6.5.1) (2024-04-15)
    
    ##### Bug Fixes
    
    -   **prefer-tacit:** don't check member functions by default ([#808](eslint-functional/eslint-plugin-functional#808)) ([4e6c3a9](eslint-functional/eslint-plugin-functional@4e6c3a9)), closes [#805](eslint-functional/eslint-plugin-functional#805)
    ##### [v6.5.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#652-2024-06-19)
    
    ##### [v6.5.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#651-2024-04-15)
    
    ##### Bug Fixes
    
    -   **prefer-tacit:** don't check member functions by default ([#808](eslint-functional/eslint-plugin-functional#808)) ([4e6c3a9](eslint-functional/eslint-plugin-functional@4e6c3a9)), closes [#805](eslint-functional/eslint-plugin-functional#805)
    ##### [v6.5.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#650-2024-04-15)
    
    ##### Features
    
    -   update is-immutable-type to v3.1.0 ([#806](eslint-functional/eslint-plugin-functional#806)) ([40435b7](eslint-functional/eslint-plugin-functional@40435b7))
    
    #### [6.4.1](eslint-functional/eslint-plugin-functional@v6.4.0...v6.4.1) (2024-04-14)
    
    ##### Bug Fixes
    
    -   **prefer-tacit:** handling functions that don't map to directly to an eslint node ([#802](eslint-functional/eslint-plugin-functional#802)) ([423e249](eslint-functional/eslint-plugin-functional@423e249))
    ##### [v6.4.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#641-2024-04-14)
    
    ##### Bug Fixes
    
    -   **prefer-tacit:** handling functions that don't map to directly to an eslint node ([#802](eslint-functional/eslint-plugin-functional#802)) ([423e249](eslint-functional/eslint-plugin-functional@423e249))
    ##### [v6.4.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#640-2024-04-01)
    
    ##### Bug Fixes
    
    -   **type-declaration-immutability:** replace fixer with suggestions for recommended and lite configs ([ae62abb](eslint-functional/eslint-plugin-functional@ae62abb))
    
    ##### Features
    
    -   **type-declaration-immutability:** add support for in-editor suggestions ([7a0a790](eslint-functional/eslint-plugin-functional@7a0a790)), closes [#797](eslint-functional/eslint-plugin-functional#797)
    
    #### [6.3.2](eslint-functional/eslint-plugin-functional@v6.3.1...v6.3.2) (2024-04-01)
    
    ##### Bug Fixes
    
    -   **readonly-type:** empty object types should not trigger reports ([fc6a394](eslint-functional/eslint-plugin-functional@fc6a394)), closes [#796](eslint-functional/eslint-plugin-functional#796)
    
    #### [6.3.1](eslint-functional/eslint-plugin-functional@v6.3.0...v6.3.1) (2024-04-01)
    
    ##### Bug Fixes
    
    -   improve types for flat configs ([68e6450](eslint-functional/eslint-plugin-functional@68e6450))
    ##### [v6.3.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#632-2024-04-01)
    
    ##### Bug Fixes
    
    -   **readonly-type:** empty object types should not trigger reports ([fc6a394](eslint-functional/eslint-plugin-functional@fc6a394)), closes [#796](eslint-functional/eslint-plugin-functional#796)
    ##### [v6.3.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#631-2024-04-01)
    
    ##### Bug Fixes
    
    -   improve types for flat configs ([68e6450](eslint-functional/eslint-plugin-functional@68e6450))
    ##### [v6.3.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#630-2024-03-25)
    
    ##### Features
    
    -   **immutable-data:** add option for `ignoreNonConstDeclarations` to `treatParametersAsConst` ([#794](eslint-functional/eslint-plugin-functional#794)) ([059591a](eslint-functional/eslint-plugin-functional@059591a)), closes [#724](eslint-functional/eslint-plugin-functional#724)
    
    #### [6.2.3](eslint-functional/eslint-plugin-functional@v6.2.2...v6.2.3) (2024-03-25)
    
    ##### Bug Fixes
    
    -   **no-mixed-types:** handle more than just property signatures, check the type of type references ([#793](eslint-functional/eslint-plugin-functional#793)) ([55bd794](eslint-functional/eslint-plugin-functional@55bd794)), closes [#734](eslint-functional/eslint-plugin-functional#734)
    
    #### [6.2.2](eslint-functional/eslint-plugin-functional@v6.2.1...v6.2.2) (2024-03-25)
    
    ##### Bug Fixes
    
    -   **immutable-data:** ignore casting when evaluating the expressions ([#792](eslint-functional/eslint-plugin-functional#792)) ([50e789a](eslint-functional/eslint-plugin-functional@50e789a)), closes [#790](eslint-functional/eslint-plugin-functional#790)
    
    #### [6.2.1](eslint-functional/eslint-plugin-functional@v6.2.0...v6.2.1) (2024-03-24)
    
    ##### Bug Fixes
    
    -   esm conditional imports ([a31b512](eslint-functional/eslint-plugin-functional@a31b512)), closes [#791](eslint-functional/eslint-plugin-functional#791)
    -   improve typing exposed for flat configs ([6a65ac1](eslint-functional/eslint-plugin-functional@6a65ac1))
    -   type errors ([b73bcd2](eslint-functional/eslint-plugin-functional@b73bcd2))
    ##### [v6.2.3](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#623-2024-03-25)
    
    ##### Bug Fixes
    
    -   **no-mixed-types:** handle more than just property signatures, check the type of type references ([#793](eslint-functional/eslint-plugin-functional#793)) ([55bd794](eslint-functional/eslint-plugin-functional@55bd794)), closes [#734](eslint-functional/eslint-plugin-functional#734)
    ##### [v6.2.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#622-2024-03-25)
    
    ##### Bug Fixes
    
    -   **immutable-data:** ignore casting when evaluating the expressions ([#792](eslint-functional/eslint-plugin-functional#792)) ([50e789a](eslint-functional/eslint-plugin-functional@50e789a)), closes [#790](eslint-functional/eslint-plugin-functional#790)
    ##### [v6.2.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#621-2024-03-24)
    
    ##### Bug Fixes
    
    -   esm conditional imports ([a31b512](eslint-functional/eslint-plugin-functional@a31b512)), closes [#791](eslint-functional/eslint-plugin-functional#791)
    -   improve typing exposed for flat configs ([6a65ac1](eslint-functional/eslint-plugin-functional@6a65ac1))
    -   type errors ([b73bcd2](eslint-functional/eslint-plugin-functional@b73bcd2))
    ##### [v6.2.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#620-2024-03-22)
    
    ##### Bug Fixes
    
    -   **type-declaration-immutability:** some (hopefully all) maximum call stack size exceeded errors ([61c561c](eslint-functional/eslint-plugin-functional@61c561c)), closes [#767](eslint-functional/eslint-plugin-functional#767)
    
    ##### Features
    
    -   add support for flat configs ([#789](eslint-functional/eslint-plugin-functional#789)) ([5fa7c2c](eslint-functional/eslint-plugin-functional@5fa7c2c))
    ##### [v6.1.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#611-2024-03-11)
    
    ##### Bug Fixes
    
    -   **immutable-data:** handle immediate mutation of arrays generated from strings ([b003d1c](eslint-functional/eslint-plugin-functional@b003d1c)), closes [#759](eslint-functional/eslint-plugin-functional#759)
    ##### [v6.1.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#610-2024-03-10)
    
    ##### Bug Fixes
    
    -   **immutable-data:** treat Object.entries({}).sort() as immediate mutation ([245886f](eslint-functional/eslint-plugin-functional@245886f)), closes [#773](eslint-functional/eslint-plugin-functional#773)
    
    ##### Features
    
    -   new config to disable all rules that require type info ([af30f15](eslint-functional/eslint-plugin-functional@af30f15))
    
    #### [6.0.1](eslint-functional/eslint-plugin-functional@v6.0.0...v6.0.1) (2024-02-23)
    
    ##### Bug Fixes
    
    -   typos in function names ([05b2f9c](eslint-functional/eslint-plugin-functional@05b2f9c))
    ##### [v6.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#601-2024-02-23)
    
    ##### Bug Fixes
    
    -   typos in function names ([05b2f9c](eslint-functional/eslint-plugin-functional@05b2f9c))
    renovate[bot] authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    de4e1f0 View commit details
    Browse the repository at this point in the history
  5. fix(deps): update dependency eslint-plugin-jsx-a11y to v6.9.0

    ##### [v6.9.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v690---2024-06-19)
    
    ##### Fixed
    
    -   \[Fix] `img-redundant-alt`: fixed multibyte character support [`#969`](jsx-eslint/eslint-plugin-jsx-a11y#969)
    -   \[meta] fix changelog links [`#960`](jsx-eslint/eslint-plugin-jsx-a11y#960)
    
    ##### Commits
    
    -   \[New] add support for Flat Config [`6b5f096`](jsx-eslint/eslint-plugin-jsx-a11y@6b5f096)
    -   Revert "\[Fix] `isNonInteractiveElement`: Upgrade aria-query to 5.3.0 and axobject-query to 3.2.1" [`75d5dd7`](jsx-eslint/eslint-plugin-jsx-a11y@75d5dd7)
    -   \[Robustness] use `safe-regex-test` [`4c7e781`](jsx-eslint/eslint-plugin-jsx-a11y@4c7e781)
    -   \[actions] update actions/checkout [`51a1ca7`](jsx-eslint/eslint-plugin-jsx-a11y@51a1ca7)
    -   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `@babel/register`, `eslint-doc-generator`, `object.entries` [`1271ac1`](jsx-eslint/eslint-plugin-jsx-a11y@1271ac1)
    -   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/register`, `aud`, `eslint-plugin-import`, `npmignore`, `object.assign` [`540cb7a`](jsx-eslint/eslint-plugin-jsx-a11y@540cb7a)
    -   \[Deps] update `@babel/runtime`, `array-includes`, `es-iterator-helpers`, `hasown`, `object.fromentries`, `safe-regex-test` [`5d14408`](jsx-eslint/eslint-plugin-jsx-a11y@5d14408)
    -   \[Deps] pin `aria-query` and `axobject-query`, add `ls-engines` test to CI [`32fd82c`](jsx-eslint/eslint-plugin-jsx-a11y@32fd82c)
    -   \[Dev Deps] update `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types`, `eslint-doc-generator` [`d1b4114`](jsx-eslint/eslint-plugin-jsx-a11y@d1b4114)
    -   \[Fix] ensure `summary` remains non-interactive [`6a048da`](jsx-eslint/eslint-plugin-jsx-a11y@6a048da)
    -   \[Deps] remove `@babel/runtime` [`0a98ad8`](jsx-eslint/eslint-plugin-jsx-a11y@0a98ad8)
    -   \[New] `no-noninteractive-element-to-interactive-role`: allow `menuitemradio` and `menuitemcheckbox` on \<li> [`c0733f9`](jsx-eslint/eslint-plugin-jsx-a11y@c0733f9)
    -   \[Deps] update `@babel/runtime`, `safe-regex-test` [`0d5321a`](jsx-eslint/eslint-plugin-jsx-a11y@0d5321a)
    -   \[actions] pin codecov to v3.1.5 [`961817f`](jsx-eslint/eslint-plugin-jsx-a11y@961817f)
    -   \[Deps] unpin `axe-core` [`b3559cf`](jsx-eslint/eslint-plugin-jsx-a11y@b3559cf)
    -   \[Deps] move `object.entries` to dev deps [`1be7b70`](jsx-eslint/eslint-plugin-jsx-a11y@1be7b70)
    -   \[Deps] update `@babel/runtime` [`2a48abb`](jsx-eslint/eslint-plugin-jsx-a11y@2a48abb)
    -   \[Deps] update `@babel/runtime` [`1adec35`](jsx-eslint/eslint-plugin-jsx-a11y@1adec35)
    renovate[bot] authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    5246f9f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ef4c848 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e3737cc View commit details
    Browse the repository at this point in the history
  8. fix(deps): update dependency eslint-plugin-react to v7.35.0

    ##### [v7.35.0](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7350---20240719)
    
    ##### Added
    
    -   support eslint v9 ([#3759][] [@mdjermanovic](https://github.com/mdjermanovic))
    -   export flat configs from plugin root and fix flat config crash ([#3694][] [@bradzacher](https://github.com/bradzacher) [@mdjermanovic](https://github.com/mdjermanovic))
    -   add \[`jsx-props-no-spread-multi`] ([#3724][] [@SimonSchick](https://github.com/SimonSchick))
    -   \[`forbid-component-props`]: add `propNamePattern` to allow / disallow prop name patterns ([#3774][] [@akulsr0](https://github.com/akulsr0))
    -   \[`jsx-handler-names`]: support ignoring component names ([#3772][] [@akulsr0](https://github.com/akulsr0))
    -   version settings: Allow react defaultVersion to be configurable ([#3771][] [@onlywei](https://github.com/onlywei))
    -   \[`jsx-closing-tag-location`]: add `line-aligned` option ([#3777] [@kimtaejin3](https://github.com/kimtaejin3))
    -   \[`no-danger`]: add `customComponentNames` option ([#3748][] [@akulsr0](https://github.com/akulsr0))
    
    ##### Fixed
    
    -   \[`no-invalid-html-attribute`]: substitute placeholders in suggestion messages ([#3759][] [@mdjermanovic](https://github.com/mdjermanovic))
    -   \[`sort-prop-types`]: single line type ending without semicolon ([#3784][] [@akulsr0](https://github.com/akulsr0))
    -   \[`require-default-props`]: report when required props have default value ([#3785][] [@akulsr0](https://github.com/akulsr0))
    
    ##### Changed
    
    -   \[Refactor] `variableUtil`: Avoid creating a single flat variable scope for each lookup ([#3782][] [@DanielRosenwasser](https://github.com/DanielRosenwasser))
    
    [7.35.0]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.4...v7.35.0
    
    [#3785]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3785
    
    [#3784]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3784
    
    [#3782]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3782
    
    [#3777]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3777
    
    [#3774]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3774
    
    [#3772]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3772
    
    [#3771]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3771
    
    [#3759]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3759
    
    [#3748]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3748
    
    [#3724]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3724
    
    [#3694]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3694
    ##### [v7.34.4](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7344---20240713)
    
    ##### Fixed
    
    -   \[`prop-types`]: fix `className` missing in prop validation false negative ([#3749] [@akulsr0](https://github.com/akulsr0))
    -   \[`sort-prop-types`]: Check for undefined before accessing `node.typeAnnotation.typeAnnotation` ([#3779] [@tylerlaprade](https://github.com/tylerlaprade))
    
    [7.34.4]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4
    
    [#3779]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3779
    
    [#3749]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3749
    ##### [v7.34.3](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7343---20240618)
    
    ##### Fixed
    
    -   \[`prop-types`]: null-check rootNode before calling getScope ([#3762][] [@crnhrv](https://github.com/crnhrv))
    -   \[`boolean-prop-naming`]: avoid a crash with a spread prop ([#3733][] [@ljharb](https://github.com/ljharb))
    -   \[`jsx-boolean-value`]: `assumeUndefinedIsFalse` with `never` must not allow explicit `true` value ([#3757][] [@6uliver](https://github.com/6uliver))
    -   \[`no-object-type-as-default-prop`]: enable rule for components with many parameters ([#3768][] [@JulienR1](https://github.com/JulienR1))
    -   \[`jsx-key`]: incorrect behavior for checkKeyMustBeforeSpread with map callbacks ([#3769][] [@akulsr0](https://github.com/akulsr0))
    
    [7.34.3]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.2...v7.34.3
    
    [#3769]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3769
    
    [#3768]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3768
    
    [#3762]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3762
    
    [#3757]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3757
    
    [#3733]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3733
    ##### [v7.34.2](https://github.com/jsx-eslint/eslint-plugin-react/releases/tag/v7.34.2)
    
    ##### Fixed
    
    -   [`boolean-prop-naming`][boolean-prop-naming]: avoid a crash with a non-TSTypeReference type ([#3718][] [@developer-bandi](https://github.com/developer-bandi))
    -   [`jsx-no-leaked-render`][jsx-no-leaked-render]: invalid report if left side is boolean ([#3746][] [@akulsr0](https://github.com/akulsr0))
    -   [`jsx-closing-bracket-location`][jsx-closing-bracket-location]: message shows `{{details}}` when there are no details ([#3759][] [@mdjermanovic](https://github.com/mdjermanovic))
    -   [`no-invalid-html-attribute`][no-invalid-html-attribute]: ensure error messages are correct ([#3759][] [@mdjermanovic](https://github.com/mdjermanovic), [@ljharb](https://github.com/ljharb))
    
    ##### Changed
    
    -   \[Refactor] create various eslint utils to fix eslint deprecations ([#3759][] [@mdjermanovic](https://github.com/mdjermanovic), [@ljharb](https://github.com/ljharb))
    
    [7.34.2]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.1...v7.34.2
    
    [#3759]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3759
    
    [#3746]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3746
    
    [#3718]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3718
    
    [`boolean-prop-naming`]: docs/rules/boolean-prop-naming.md
    
    [`jsx-no-leaked-render`]: docs/rules/jsx-no-leaked-render.md
    
    [`jsx-closing-bracket-location`]: docs/rules/jsx-closing-bracket-location.md
    
    [`no-invalid-html-attribute`]: docs/rules/no-invalid-html-attribute.md
    ##### [v7.34.1](https://github.com/jsx-eslint/eslint-plugin-react/releases/tag/v7.34.1)
    
    ##### Fixed
    
    -   [`jsx-no-leaked-render`][jsx-no-leaked-render]: prevent wrongly adding parens ([#3700][] [@developer-bandi](https://github.com/developer-bandi))
    -   [`boolean-prop-naming`][boolean-prop-naming]: detect TS interfaces ([#3701][] [@developer-bandi](https://github.com/developer-bandi))
    -   [`boolean-prop-naming`][boolean-prop-naming]: literalType error fix ([#3704][] [@developer-bandi](https://github.com/developer-bandi))
    -   [`boolean-prop-naming`][boolean-prop-naming]: allow TSIntersectionType ([#3705][] [@developer-bandi](https://github.com/developer-bandi))
    -   [`no-unknown-property`][no-unknown-property]: support `popover`, `popovertarget`, `popovertargetaction` attributes ([#3707][] [@ljharb](https://github.com/ljharb))
    -   [`no-unknown-property`][no-unknown-property]: only match `data-*` attributes containing `-` ([#3713][] [@silverwind](https://github.com/silverwind))
    -   [`checked-requires-onchange-or-readonly`][checked-requires-onchange-or-readonly]: correct options that were behaving opposite ([#3715][] [@jaesoekjjang](https://github.com/jaesoekjjang))
    
    ##### Changed
    
    -   [`boolean-prop-naming`][boolean-prop-naming]: improve error message ([@ljharb](https://github.com/ljharb))
    
    [#1000]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1000
    
    [#1002]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1002
    
    [#1005]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1005
    
    [#100]: https://github.com/jsx-eslint/eslint-plugin-react/issues/100
    
    [#1010]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1010
    
    [#1013]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1013
    
    [#1022]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1022
    
    [#1029]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1029
    
    [#102]: https://github.com/jsx-eslint/eslint-plugin-react/issues/102
    
    [#1034]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1034
    
    [#1038]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1038
    
    [#1041]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1041
    
    [#1043]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1043
    
    [#1046]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1046
    
    [#1047]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1047
    
    [#1050]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1050
    
    [#1053]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1053
    
    [#1057]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1057
    
    [#105]: https://github.com/jsx-eslint/eslint-plugin-react/issues/105
    
    [#1061]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1061
    
    [#1062]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1062
    
    [#1070]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1070
    
    [#1071]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1071
    
    [#1073]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1073
    
    [#1076]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1076
    
    [#1079]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1079
    
    [#1088]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1088
    
    [#1098]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1098
    
    [#1101]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1101
    
    [#1103]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1103
    
    [#110]: https://github.com/jsx-eslint/eslint-plugin-react/issues/110
    
    [#1116]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1116
    
    [#1117]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1117
    
    [#1119]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1119
    
    [#1121]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1121
    
    [#1122]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1122
    
    [#1123]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1123
    
    [#1130]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1130
    
    [#1131]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1131
    
    [#1132]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1132
    
    [#1134]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1134
    
    [#1135]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1135
    
    [#1139]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1139
    
    [#1148]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1148
    
    [#1149]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1149
    
    [#114]: https://github.com/jsx-eslint/eslint-plugin-react/pull/114
    
    [#1151]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1151
    
    [#1155]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1155
    
    [#1161]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1161
    
    [#1167]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1167
    
    [#1173]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1173
    
    [#1174]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1174
    
    [#1175]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1175
    
    [#1178]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1178
    
    [#1179]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1179
    
    [#117]: https://github.com/jsx-eslint/eslint-plugin-react/pull/117
    
    [#1180]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1180
    
    [#1183]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1183
    
    [#1189]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1189
    
    [#118]: https://github.com/jsx-eslint/eslint-plugin-react/issues/118
    
    [#1192]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1192
    
    [#1195]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1195
    
    [#1199]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1199
    
    [#119]: https://github.com/jsx-eslint/eslint-plugin-react/pull/119
    
    [#11]: https://github.com/jsx-eslint/eslint-plugin-react/issues/11
    
    [#1201]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1201
    
    [#1202]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1202
    
    [#1206]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1206
    
    [#1213]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1213
    
    [#1216]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1216
    
    [#1222]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1222
    
    [#1226]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1226
    
    [#1227]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1227
    
    [#122]: https://github.com/jsx-eslint/eslint-plugin-react/issues/122
    
    [#1231]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1231
    
    [#1236]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1236
    
    [#1239]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1239
    
    [#123]: https://github.com/jsx-eslint/eslint-plugin-react/pull/123
    
    [#1241]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1241
    
    [#1242]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1242
    
    [#1246]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1246
    
    [#1249]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1249
    
    [#1253]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1253
    
    [#1257]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1257
    
    [#125]: https://github.com/jsx-eslint/eslint-plugin-react/issues/125
    
    [#1260]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1260
    
    [#1261]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1261
    
    [#1262]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1262
    
    [#1264]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1264
    
    [#1266]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1266
    
    [#1269]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1269
    
    [#1273]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1273
    
    [#1274]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1274
    
    [#1277]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1277
    
    [#127]: https://github.com/jsx-eslint/eslint-plugin-react/pull/127
    
    [#1281]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1281
    
    [#1287]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1287
    
    [#1288]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1288
    
    [#1289]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1289
    
    [#128]: https://github.com/jsx-eslint/eslint-plugin-react/issues/128
    
    [#1290]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1290
    
    [#1294]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1294
    
    [#1296]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1296
    
    [#129]: https://github.com/jsx-eslint/eslint-plugin-react/issues/129
    
    [#12]: https://github.com/jsx-eslint/eslint-plugin-react/issues/12
    
    [#1301]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1301
    
    [#1303]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1303
    
    [#1306]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1306
    
    [#1308]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1308
    
    [#1309]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1309
    
    [#130]: https://github.com/jsx-eslint/eslint-plugin-react/issues/130
    
    [#1310]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1310
    
    [#1323]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1323
    
    [#1329]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1329
    
    [#132]: https://github.com/jsx-eslint/eslint-plugin-react/issues/132
    
    [#1335]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1335
    
    [#1337]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1337
    
    [#133]: https://github.com/jsx-eslint/eslint-plugin-react/issues/133
    
    [#1344]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1344
    
    [#1352]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1352
    
    [#1353]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1353
    
    [#1354]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1354
    
    [#135]: https://github.com/jsx-eslint/eslint-plugin-react/issues/135
    
    [#1361]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1361
    
    [#1363]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1363
    
    [#1364]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1364
    
    [#1366]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1366
    
    [#1369]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1369
    
    [#136]: https://github.com/jsx-eslint/eslint-plugin-react/issues/136
    
    [#1374]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1374
    
    [#1376]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1376
    
    [#137]: https://github.com/jsx-eslint/eslint-plugin-react/issues/137
    
    [#1380]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1380
    
    [#1381]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1381
    
    [#1382]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1382
    
    [#1383]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1383
    
    [#1384]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1384
    
    [#1386]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1386
    
    [#1388]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1388
    
    [#1389]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1389
    
    [#138]: https://github.com/jsx-eslint/eslint-plugin-react/pull/138
    
    [#1392]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1392
    
    [#1395]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1395
    
    [#1396]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1396
    
    [#1398]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1398
    
    [#139]: https://github.com/jsx-eslint/eslint-plugin-react/issues/139
    
    [#13]: https://github.com/jsx-eslint/eslint-plugin-react/issues/13
    
    [#1400]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1400
    
    [#1403]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1403
    
    [#1406]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1406
    
    [#1409]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1409
    
    [#1412]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1412
    
    [#1413]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1413
    
    [#1414]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1414
    
    [#1417]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1417
    
    [#1422]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1422
    
    [#1423]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1423
    
    [#142]: https://github.com/jsx-eslint/eslint-plugin-react/issues/142
    
    [#1432]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1432
    
    [#1435]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1435
    
    [#1438]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1438
    
    [#1444]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1444
    
    [#1449]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1449
    
    [#144]: https://github.com/jsx-eslint/eslint-plugin-react/issues/144
    
    [#1450]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1450
    
    [#145]: https://github.com/jsx-eslint/eslint-plugin-react/issues/145
    
    [#1462]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1462
    
    [#1464]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1464
    
    [#1467]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1467
    
    [#1468]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1468
    
    [#146]: https://github.com/jsx-eslint/eslint-plugin-react/issues/146
    
    [#1471]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1471
    
    [#1475]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1475
    
    [#1476]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1476
    
    [#1478]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1478
    
    [#1479]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1479
    
    [#147]: https://github.com/jsx-eslint/eslint-plugin-react/pull/147
    
    [#1485]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1485
    
    [#148]: https://github.com/jsx-eslint/eslint-plugin-react/issues/148
    
    [#1493]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1493
    
    [#1494]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1494
    
    [#1496]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1496
    
    [#1497]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1497
    
    [#1499]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1499
    
    [#14]: https://github.com/jsx-eslint/eslint-plugin-react/issues/14
    
    [#1500]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1500
    
    [#1502]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1502
    
    [#1507]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1507
    
    [#1508]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1508
    
    [#1511]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1511
    
    [#1512]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1512
    
    [#1514]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1514
    
    [#1515]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1515
    
    [#1517]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1517
    
    [#1518]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1518
    
    [#1521]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1521
    
    [#1524]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1524
    
    [#1525]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1525
    
    [#1526]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1526
    
    [#1530]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1530
    
    [#1533]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1533
    
    [#1538]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1538
    
    [#1542]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1542
    
    [#1543]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1543
    
    [#1546]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1546
    
    [#1547]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1547
    
    [#154]: https://github.com/jsx-eslint/eslint-plugin-react/issues/154
    
    [#1552]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1552
    
    [#1559]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1559
    
    [#1562]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1562
    
    [#1566]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1566
    
    [#156]: https://github.com/jsx-eslint/eslint-plugin-react/pull/156
    
    [#1571]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1571
    
    [#1572]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1572
    
    [#1576]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1576
    
    [#1578]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1578
    
    [#1581]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1581
    
    [#1588]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1588
    
    [#1591]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1591
    
    [#1595]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1595
    
    [#1597]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1597
    
    [#159]: https://github.com/jsx-eslint/eslint-plugin-react/issues/159
    
    [#15]: https://github.com/jsx-eslint/eslint-plugin-react/issues/15
    
    [#1607]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1607
    
    [#1610]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1610
    
    [#1611]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1611
    
    [#1617]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1617
    
    [#161]: https://github.com/jsx-eslint/eslint-plugin-react/pull/161
    
    [#1621]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1621
    
    [#1624]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1624
    
    [#1635]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1635
    
    [#1636]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1636
    
    [#163]: https://github.com/jsx-eslint/eslint-plugin-react/issues/163
    
    [#1642]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1642
    
    [#1644]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1644
    
    [#164]: https://github.com/jsx-eslint/eslint-plugin-react/pull/164
    
    [#1650]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1650
    
    [#1653]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1653
    
    [#1655]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1655
    
    [#1657]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1657
    
    [#1659]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1659
    
    [#165]: https://github.com/jsx-eslint/eslint-plugin-react/issues/165
    
    [#1665]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1665
    
    [#1666]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1666
    
    [#1669]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1669
    
    [#1670]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1670
    
    [#1675]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1675
    
    [#1677]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1677
    
    [#167]: https://github.com/jsx-eslint/eslint-plugin-react/pull/167
    
    [#1681]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1681
    
    [#1689]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1689
    
    [#1690]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1690
    
    [#1699]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1699
    
    [#16]: https://github.com/jsx-eslint/eslint-plugin-react/issues/16
    
    [#1703]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1703
    
    [#1717]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1717
    
    [#1722]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1722
    
    [#1724]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1724
    
    [#1728]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1728
    
    [#172]: https://github.com/jsx-eslint/eslint-plugin-react/issues/172
    
    [#1732]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1732
    
    [#1737]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1737
    
    [#1742]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1742
    
    [#1743]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1743
    
    [#1749]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1749
    
    [#1750]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1750
    
    [#1753]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1753
    
    [#1754]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1754
    
    [#1755]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1755
    
    [#1758]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1758
    
    [#1759]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1759
    
    [#1764]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1764
    
    [#1767]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1767
    
    [#176]: https://github.com/jsx-eslint/eslint-plugin-react/pull/176
    
    [#1779]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1779
    
    [#1783]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1783
    
    [#1785]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1785
    
    [#178]: https://github.com/jsx-eslint/eslint-plugin-react/issues/178
    
    [#1791]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1791
    
    [#1793]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1793
    
    [#1794]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1794
    
    [#1796]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1796
    
    [#1804]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1804
    
    [#1805]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1805
    
    [#1806]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1806
    
    [#1815]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1815
    
    [#1817]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1817
    
    [#1819]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1819
    
    [#181]: https://github.com/jsx-eslint/eslint-plugin-react/issues/181
    
    [#1824]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1824
    
    [#1825]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1825
    
    [#1827]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1827
    
    [#1828]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1828
    
    [#1829]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1829
    
    [#182]: https://github.com/jsx-eslint/eslint-plugin-react/issues/182
    
    [#1830]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1830
    
    [#1831]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1831
    
    [#183]: https://github.com/jsx-eslint/eslint-plugin-react/pull/183
    
    [#1843]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1843
    
    [#1844]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1844
    
    [#1845]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1845
    
    [#1849]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1849
    
    [#184]: https://github.com/jsx-eslint/eslint-plugin-react/issues/184
    
    [#1851]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1851
    
    [#1854]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1854
    
    [#1857]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1857
    
    [#1858]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1858
    
    [#1860]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1860
    
    [#1861]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1861
    
    [#1863]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1863
    
    [#1867]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1867
    
    [#1868]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1868
    
    [#1873]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1873
    
    [#1874]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1874
    
    [#187]: https://github.com/jsx-eslint/eslint-plugin-react/pull/187
    
    [#1880]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1880
    
    [#1883]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1883
    
    [#1890]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1890
    
    [#1891]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1891
    
    [#1892]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1892
    
    [#1898]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1898
    
    [#189]: https://github.com/jsx-eslint/eslint-plugin-react/pull/189
    
    [#1903]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1903
    
    [#1905]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1905
    
    [#1907]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1907
    
    [#1909]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1909
    
    [#1911]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1911
    
    [#1914]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1914
    
    [#1918]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1918
    
    [#1924]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1924
    
    [#1926]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1926
    
    [#1929]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1929
    
    [#192]: https://github.com/jsx-eslint/eslint-plugin-react/issues/192
    
    [#1932]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1932
    
    [#1939]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1939
    
    [#193]: https://github.com/jsx-eslint/eslint-plugin-react/pull/193
    
    [#1941]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1941
    
    [#1942]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1942
    
    [#1945]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1945
    
    [#1946]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1946
    
    [#1949]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1949
    
    [#1953]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1953
    
    [#1956]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1956
    
    [#1957]: https://github.com/jsx-eslint/eslint-plugin-react/issues/1957
    
    [#1977]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1977
    
    [#1978]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1978
    
    [#197]: https://github.com/jsx-eslint/eslint-plugin-react/pull/197
    
    [#1980]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1980
    
    [#1983]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1983
    
    [#1984]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1984
    
    [#1988]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1988
    
    [#1989]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1989
    
    [#198]: https://github.com/jsx-eslint/eslint-plugin-react/pull/198
    
    [#1994]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1994
    
    [#1995]: https://github.com/jsx-eslint/eslint-plugin-react/pull/1995
    
    [#199]: https://github.com/jsx-eslint/eslint-plugin-react/issues/199
    
    [#2001]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2001
    
    [#2002]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2002
    
    [#2004]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2004
    
    [#2006]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2006
    
    [#2008]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2008
    
    [#2012]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2012
    
    [#2015]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2015
    
    [#2016]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2016
    
    [#201]: https://github.com/jsx-eslint/eslint-plugin-react/issues/201
    
    [#2026]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2026
    
    [#2029]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2029
    
    [#2032]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2032
    
    [#2040]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2040
    
    [#2043]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2043
    
    [#2044]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2044
    
    [#2051]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2051
    
    [#2056]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2056
    
    [#2061]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2061
    
    [#2064]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2064
    
    [#2065]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2065
    
    [#2067]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2067
    
    [#2069]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2069
    
    [#206]: https://github.com/jsx-eslint/eslint-plugin-react/pull/206
    
    [#2075]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2075
    
    [#2082]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2082
    
    [#2084]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2084
    
    [#2085]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2085
    
    [#2086]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2086
    
    [#2089]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2089
    
    [#208]: https://github.com/jsx-eslint/eslint-plugin-react/pull/208
    
    [#2090]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2090
    
    [#2095]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2095
    
    [#2097]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2097
    
    [#2098]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2098
    
    [#2099]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2099
    
    [#2100]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2100
    
    [#2102]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2102
    
    [#2103]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2103
    
    [#2104]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2104
    
    [#2109]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2109
    
    [#210]: https://github.com/jsx-eslint/eslint-plugin-react/issues/210
    
    [#2110]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2110
    
    [#2111]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2111
    
    [#2113]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2113
    
    [#2114]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2114
    
    [#2115]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2115
    
    [#2116]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2116
    
    [#2117]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2117
    
    [#2118]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2118
    
    [#211]: https://github.com/jsx-eslint/eslint-plugin-react/issues/211
    
    [#2120]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2120
    
    [#2123]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2123
    
    [#2125]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2125
    
    [#2127]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2127
    
    [#2128]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2128
    
    [#2131]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2131
    
    [#2134]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2134
    
    [#2136]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2136
    
    [#2137]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2137
    
    [#213]: https://github.com/jsx-eslint/eslint-plugin-react/issues/213
    
    [#2143]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2143
    
    [#2145]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2145
    
    [#2146]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2146
    
    [#2147]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2147
    
    [#214]: https://github.com/jsx-eslint/eslint-plugin-react/issues/214
    
    [#215]: https://github.com/jsx-eslint/eslint-plugin-react/issues/215
    
    [#2166]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2166
    
    [#2167]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2167
    
    [#217]: https://github.com/jsx-eslint/eslint-plugin-react/issues/217
    
    [#2180]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2180
    
    [#2182]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2182
    
    [#2183]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2183
    
    [#2184]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2184
    
    [#2191]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2191
    
    [#2193]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2193
    
    [#2198]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2198
    
    [#219]: https://github.com/jsx-eslint/eslint-plugin-react/pull/219
    
    [#2200]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2200
    
    [#2202]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2202
    
    [#2203]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2203
    
    [#2206]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2206
    
    [#2207]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2207
    
    [#220]: https://github.com/jsx-eslint/eslint-plugin-react/issues/220
    
    [#2210]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2210
    
    [#221]: https://github.com/jsx-eslint/eslint-plugin-react/issues/221
    
    [#2225]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2225
    
    [#2227]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2227
    
    [#2229]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2229
    
    [#222]: https://github.com/jsx-eslint/eslint-plugin-react/pull/222
    
    [#2230]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2230
    
    [#2232]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2232
    
    [#2233]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2233
    
    [#2234]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2234
    
    [#2238]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2238
    
    [#2246]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2246
    
    [#2250]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2250
    
    [#2256]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2256
    
    [#2259]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2259
    
    [#2261]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2261
    
    [#2262]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2262
    
    [#2263]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2263
    
    [#2265]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2265
    
    [#2267]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2267
    
    [#226]: https://github.com/jsx-eslint/eslint-plugin-react/issues/226
    
    [#2273]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2273
    
    [#2274]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2274
    
    [#2276]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2276
    
    [#2283]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2283
    
    [#2286]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2286
    
    [#2288]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2288
    
    [#228]: https://github.com/jsx-eslint/eslint-plugin-react/issues/228
    
    [#2292]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2292
    
    [#2294]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2294
    
    [#2295]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2295
    
    [#2298]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2298
    
    [#229]: https://github.com/jsx-eslint/eslint-plugin-react/issues/229
    
    [#22]: https://github.com/jsx-eslint/eslint-plugin-react/pull/22
    
    [#2302]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2302
    
    [#2303]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2303
    
    [#2304]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2304
    
    [#230]: https://github.com/jsx-eslint/eslint-plugin-react/issues/230
    
    [#2312]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2312
    
    [#2316]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2316
    
    [#2319]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2319
    
    [#2326]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2326
    
    [#232]: https://github.com/jsx-eslint/eslint-plugin-react/pull/232
    
    [#2330]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2330
    
    [#2336]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2336
    
    [#233]: https://github.com/jsx-eslint/eslint-plugin-react/issues/233
    
    [#2349]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2349
    
    [#2354]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2354
    
    [#2359]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2359
    
    [#235]: https://github.com/jsx-eslint/eslint-plugin-react/issues/235
    
    [#2361]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2361
    
    [#2364]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2364
    
    [#2367]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2367
    
    [#236]: https://github.com/jsx-eslint/eslint-plugin-react/issues/236
    
    [#2375]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2375
    
    [#2378]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2378
    
    [#237]: https://github.com/jsx-eslint/eslint-plugin-react/issues/237
    
    [#2380]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2380
    
    [#2383]: https://github.com/jsx-eslint/eslint-plugin-react/issue/2383
    
    [#2385]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2385
    
    [#2391]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2391
    
    [#2392]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2392
    
    [#2395]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2395
    
    [#2399]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2399
    
    [#23]: https://github.com/jsx-eslint/eslint-plugin-react/issues/23
    
    [#2402]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2402
    
    [#2408]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2408
    
    [#2409]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2409
    
    [#240]: https://github.com/jsx-eslint/eslint-plugin-react/issues/240
    
    [#2410]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2410
    
    [#2414]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2414
    
    [#2419]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2419
    
    [#2422]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2422
    
    [#2425]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2425
    
    [#2426]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2426
    
    [#2428]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2428
    
    [#2429]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2429
    
    [#242]: https://github.com/jsx-eslint/eslint-plugin-react/pull/242
    
    [#2431]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2431
    
    [#2436]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2436
    
    [#2437]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2437
    
    [#2438]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2438
    
    [#243]: https://github.com/jsx-eslint/eslint-plugin-react/issues/243
    
    [#2443]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2443
    
    [#2446]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2446
    
    [#2448]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2448
    
    [#2449]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2449
    
    [#244]: https://github.com/jsx-eslint/eslint-plugin-react/issues/244
    
    [#2451]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2451
    
    [#2453]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2453
    
    [#2460]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2460
    
    [#2463]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2463
    
    [#2465]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2465
    
    [#2468]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2468
    
    [#2469]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2469
    
    [#2470]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2470
    
    [#2478]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2478
    
    [#247]: https://github.com/jsx-eslint/eslint-plugin-react/issues/247
    
    [#2483]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2483
    
    [#2489]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2489
    
    [#248]: https://github.com/jsx-eslint/eslint-plugin-react/pull/248
    
    [#249]: https://github.com/jsx-eslint/eslint-plugin-react/issues/249
    
    [#24]: https://github.com/jsx-eslint/eslint-plugin-react/issues/24
    
    [#2500]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2500
    
    [#2504]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2504
    
    [#2505]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2505
    
    [#2507]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2507
    
    [#2510]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2510
    
    [#2514]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2514
    
    [#251]: https://github.com/jsx-eslint/eslint-plugin-react/issues/251
    
    [#2521]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2521
    
    [#2523]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2523
    
    [#2532]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2532
    
    [#2533]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2533
    
    [#2534]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2534
    
    [#2535]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2535
    
    [#2536]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2536
    
    [#2540]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2540
    
    [#2542]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2542
    
    [#2544]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2544
    
    [#2546]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2546
    
    [#2547]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2547
    
    [#254]: https://github.com/jsx-eslint/eslint-plugin-react/issues/254
    
    [#2556]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2556
    
    [#2557]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2557
    
    [#255]: https://github.com/jsx-eslint/eslint-plugin-react/issues/255
    
    [#2560]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2560
    
    [#2561]: https://github.com/jsx-eslint/eslint-plugin-react/issue/2561
    
    [#2564]: https://github.com/jsx-eslint/eslint-plugin-react/issue/2564
    
    [#2568]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2568
    
    [#256]: https://github.com/jsx-eslint/eslint-plugin-react/issues/256
    
    [#2570]: https://github.com/jsx-eslint/eslint-plugin-react/issue/2570
    
    [#2572]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2572
    
    [#2575]: https://github.com/jsx-eslint/eslint-plugin-react/issue/2575
    
    [#2578]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2578
    
    [#2581]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2581
    
    [#2582]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2582
    
    [#2583]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2583
    
    [#2587]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2587
    
    [#2588]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2588
    
    [#2593]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2593
    
    [#2595]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2595
    
    [#2596]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2596
    
    [#259]: https://github.com/jsx-eslint/eslint-plugin-react/issues/259
    
    [#2601]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2601
    
    [#2604]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2604
    
    [#2606]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2606
    
    [#2608]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2608
    
    [#2610]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2610
    
    [#2614]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2614
    
    [#2615]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2615
    
    [#2616]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2616
    
    [#261]: https://github.com/jsx-eslint/eslint-plugin-react/pull/261
    
    [#2621]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2621
    
    [#2625]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2625
    
    [#2633]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2633
    
    [#2635]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2635
    
    [#2636]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2636
    
    [#2638]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2638
    
    [#2640]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2640
    
    [#2643]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2643
    
    [#264]: https://github.com/jsx-eslint/eslint-plugin-react/issues/264
    
    [#2661]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2661
    
    [#2667]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2667
    
    [#2673]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2673
    
    [#2676]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2676
    
    [#2679]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2679
    
    [#267]: https://github.com/jsx-eslint/eslint-plugin-react/issues/267
    
    [#2680]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2680
    
    [#2682]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2682
    
    [#2683]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2683
    
    [#2687]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2687
    
    [#268]: https://github.com/jsx-eslint/eslint-plugin-react/issues/268
    
    [#2690]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2690
    
    [#2693]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2693
    
    [#2696]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2696
    
    [#2697]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2697
    
    [#2699]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2699
    
    [#269]: https://github.com/jsx-eslint/eslint-plugin-react/issues/269
    
    [#2704]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2704
    
    [#2708]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2708
    
    [#2710]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2710
    
    [#2711]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2711
    
    [#2712]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2712
    
    [#2713]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2713
    
    [#2716]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2716
    
    [#2721]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2721
    
    [#2724]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2724
    
    [#2730]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2730
    
    [#2731]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2731
    
    [#2733]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2733
    
    [#2736]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2736
    
    [#2737]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2737
    
    [#2740]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2740
    
    [#2741]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2741
    
    [#2744]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2744
    
    [#2746]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2746
    
    [#2748]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2748
    
    [#2750]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2750
    
    [#2753]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2753
    
    [#2756]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2756
    
    [#2757]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2757
    
    [#2759]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2759
    
    [#2761]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2761
    
    [#2763]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2763
    
    [#2767]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2767
    
    [#276]: https://github.com/jsx-eslint/eslint-plugin-react/issues/276
    
    [#2770]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2770
    
    [#2771]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2771
    
    [#2772]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2772
    
    [#2775]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2775
    
    [#2779]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2779
    
    [#277]: https://github.com/jsx-eslint/eslint-plugin-react/issues/277
    
    [#2780]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2780
    
    [#2782]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2782
    
    [#2789]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2789
    
    [#2790]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2790
    
    [#2791]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2791
    
    [#2792]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2792
    
    [#2796]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2796
    
    [#2797]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2797
    
    [#2799]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2799
    
    [#27]: https://github.com/jsx-eslint/eslint-plugin-react/issues/27
    
    [#2801]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2801
    
    [#2802]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2802
    
    [#2803]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2803
    
    [#2805]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2805
    
    [#2807]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2807
    
    [#2808]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2808
    
    [#280]: https://github.com/jsx-eslint/eslint-plugin-react/issues/280
    
    [#2813]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2813
    
    [#2815]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2815
    
    [#2816]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2816
    
    [#281]: https://github.com/jsx-eslint/eslint-plugin-react/issues/281
    
    [#2820]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2820
    
    [#2822]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2822
    
    [#2823]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2823
    
    [#2826]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2826
    
    [#2833]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2833
    
    [#2835]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2835
    
    [#2840]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2840
    
    [#2843]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2843
    
    [#2846]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2846
    
    [#2848]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2848
    
    [#2851]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2851
    
    [#2852]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2852
    
    [#2855]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2855
    
    [#285]: https://github.com/jsx-eslint/eslint-plugin-react/issues/285
    
    [#2861]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2861
    
    [#2862]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2862
    
    [#2863]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2863
    
    [#2869]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2869
    
    [#286]: https://github.com/jsx-eslint/eslint-plugin-react/issues/286
    
    [#2870]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2870
    
    [#2871]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2871
    
    [#2875]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2875
    
    [#2877]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2877
    
    [#2878]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2878
    
    [#2879]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2879
    
    [#287]: https://github.com/jsx-eslint/eslint-plugin-react/issues/287
    
    [#2881]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2881
    
    [#2882]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2882
    
    [#2883]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2883
    
    [#2891]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2891
    
    [#2893]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2893
    
    [#2894]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2894
    
    [#2895]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2895
    
    [#2897]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2897
    
    [#2899]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2899
    
    [#28]: https://github.com/jsx-eslint/eslint-plugin-react/issues/28
    
    [#2900]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2900
    
    [#2906]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2906
    
    [#2908]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2908
    
    [#290]: https://github.com/jsx-eslint/eslint-plugin-react/issues/290
    
    [#2910]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2910
    
    [#2917]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2917
    
    [#291]: https://github.com/jsx-eslint/eslint-plugin-react/issues/291
    
    [#2921]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2921
    
    [#2923]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2923
    
    [#2925]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2925
    
    [#2929]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2929
    
    [#2930]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2930
    
    [#2933]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2933
    
    [#2935]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2935
    
    [#293]: https://github.com/jsx-eslint/eslint-plugin-react/pull/293
    
    [#2943]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2943
    
    [#2945]: https://github.com/jsx-eslint/eslint-plugin-react/issues/2945
    
    [#2949]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2949
    
    [#2950]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2950
    
    [#2953]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2953
    
    [#2957]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2957
    
    [#2961]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2961
    
    [#2963]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2963
    
    [#2965]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2965
    
    [#296]: https://github.com/jsx-eslint/eslint-plugin-react/issues/296
    
    [#2972]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2972
    
    [#2974]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2974
    
    [#2975]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2975
    
    [#2977]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2977
    
    [#297]: https://github.com/jsx-eslint/eslint-plugin-react/issues/297
    
    [#2980]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2980
    
    [#2982]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2982
    
    [#2985]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2985
    
    [#2986]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2986
    
    [#2989]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2989
    
    [#298]: https://github.com/jsx-eslint/eslint-plugin-react/issues/298
    
    [#2990]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2990
    
    [#2992]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2992
    
    [#2994]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2994
    
    [#2998]: https://github.com/jsx-eslint/eslint-plugin-react/pull/2998
    
    [#29]: https://github.com/jsx-eslint/eslint-plugin-react/issues/29
    
    [#3001]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3001
    
    [#3002]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3002
    
    [#3006]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3006
    
    [#300]: https://github.com/jsx-eslint/eslint-plugin-react/issues/300
    
    [#3016]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3016
    
    [#3018]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3018
    
    [#301]: https://github.com/jsx-eslint/eslint-plugin-react/pull/301
    
    [#3025]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3025
    
    [#3026]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3026
    
    [#3036]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3036
    
    [#3038]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3038
    
    [#3039]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3039
    
    [#303]: https://github.com/jsx-eslint/eslint-plugin-react/issues/303
    
    [#3043]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3043
    
    [#3048]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3048
    
    [#3049]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3049
    
    [#3051]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3051
    
    [#3052]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3052
    
    [#3053]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3053
    
    [#3056]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3056
    
    [#3059]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3059
    
    [#3061]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3061
    
    [#3064]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3064
    
    [#3065]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3065
    
    [#3066]: https://github.com/jsx-eslint/eslint-plugin-react/issue/3066
    
    [#306]: https://github.com/jsx-eslint/eslint-plugin-react/pull/306
    
    [#3070]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3070
    
    [#3071]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3071
    
    [#3076]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3076
    
    [#3078]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3078
    
    [#307]: https://github.com/jsx-eslint/eslint-plugin-react/issues/307
    
    [#3082]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3082
    
    [#3083]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3083
    
    [#3085]: https://github.com/jsx-eslint/eslint-plugin-react/issue/3085
    
    [#3088]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3088
    
    [#308]: https://github.com/jsx-eslint/eslint-plugin-react/pull/308
    
    [#3092]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3092
    
    [#30]: https://github.com/jsx-eslint/eslint-plugin-react/issues/30
    
    [#3102]: https://github.com/jsx-eslint/eslint-plugin-react/issue/3102
    
    [#3110]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3110
    
    [#3111]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3111
    
    [#3112]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3112
    
    [#3113]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3113
    
    [#3122]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3122
    
    [#3124]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3124
    
    [#3126]: https://github.com/jsx-eslint/eslint-plugin-react/issue/3126
    
    [#3129]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3129
    
    [#3132]: https://github.com/jsx-eslint/eslint-plugin-react/issue/3132
    
    [#3133]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3133
    
    [#3136]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3136
    
    [#3141]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3141
    
    [#3142]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3142
    
    [#3144]: https://github.com/jsx-eslint/eslint-plugin-react/issue/3144
    
    [#3145]: https://github.com/jsx-eslint/eslint-plugin-react/issue/3145
    
    [#3146]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3146
    
    [#3149]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3149
    
    [#314]: https://github.com/jsx-eslint/eslint-plugin-react/pull/314
    
    [#3156]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3156
    
    [#315]: https://github.com/jsx-eslint/eslint-plugin-react/pull/315
    
    [#3160]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3160
    
    [#3163]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3163
    
    [#3167]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3167
    
    [#3169]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3169
    
    [#3174]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3174
    
    [#317]: https://github.com/jsx-eslint/eslint-plugin-react/issues/317
    
    [#3182]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3182
    
    [#3186]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3186
    
    [#3189]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3189
    
    [#318]: https://github.com/jsx-eslint/eslint-plugin-react/issues/318
    
    [#3190]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3190
    
    [#3191]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3191
    
    [#3195]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3195
    
    [#3198]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3198
    
    [#3199]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3199
    
    [#319]: https://github.com/jsx-eslint/eslint-plugin-react/issues/319
    
    [#3202]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3202
    
    [#3203]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3203
    
    [#3207]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3207
    
    [#320]: https:…
    renovate[bot] authored Aug 21, 2024
    Configuration menu
    Copy the full SHA
    c5b9d11 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2024

  1. Configuration menu
    Copy the full SHA
    a544825 View commit details
    Browse the repository at this point in the history
  2. fix(deps): update dependency eslint-plugin-vitest to ^0.5.0

    ##### [v0.5.4](https://github.com/veritem/eslint-plugin-vitest/releases/tag/v0.5.4)
    
    ##### Features
    
    -   support old Eslint configuration
    -   update dependencies
    ##### [v0.5.3](https://github.com/veritem/eslint-plugin-vitest/releases/tag/v0.5.3)
    
    ##### Bug Fixes
    
    -   configs in plugin declaration file ([#428](vitest-dev/eslint-plugin-vitest#428)) ([a554dd2](vitest-dev/eslint-plugin-vitest@a554dd2))
    ##### [v0.5.2](https://github.com/veritem/eslint-plugin-vitest/releases/tag/v0.5.2)
    
    ##### Features
    
    -   **no-focused-tests:** add autofix ([#424](vitest-dev/eslint-plugin-vitest#424)) ([07be616](vitest-dev/eslint-plugin-vitest@07be616))
    ##### [v0.5.1](https://github.com/veritem/eslint-plugin-vitest/releases/tag/v0.5.1)
    
    ##### Bug Fixes
    
    -   **no-focused-tests:** support .each template strings ([#420](vitest-dev/eslint-plugin-vitest#420)) ([36e5b9a](vitest-dev/eslint-plugin-vitest@36e5b9a))
    ##### [v0.5.0](https://github.com/veritem/eslint-plugin-vitest/releases/tag/v0.5.0)
    
    ##### ‼️ Breaking Change 🚨
    
    This version only supports flat config!
    
    If you run into issues consider downgrading and opening an issue ofcourse.
    
    **Full Changelog**: vitest-dev/eslint-plugin-vitest@v0.5.0...v0.5.0
    ##### [v0.4.1](https://github.com/veritem/eslint-plugin-vitest/releases/tag/v0.4.1)
    
    **Full Changelog**: vitest-dev/eslint-plugin-vitest@v0.4.1...v0.4.1
    
    ##### Changes
    
    -   Remove `max-expect` rule in favor of `max-expects`
    ##### [v0.4.0](https://github.com/veritem/eslint-plugin-vitest/releases/tag/v0.4.0)
    
    ##### Bug Fixes
    
    -   support ESLint v9 getScope() ([#399](vitest-dev/eslint-plugin-vitest#399)) ([bbe0130](vitest-dev/eslint-plugin-vitest@bbe0130))
    
    **Full Changelog**: vitest-dev/eslint-plugin-vitest@v0.4.0...v0.4.0
    renovate[bot] authored Aug 22, 2024
    Configuration menu
    Copy the full SHA
    2b9bd1b View commit details
    Browse the repository at this point in the history
  3. fix(deps): update dependency prettier to v3.3.3

    ##### [v3.3.3](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#333)
    
    [diff](prettier/prettier@3.3.2...3.3.3)
    
    ##### Add parentheses for nullish coalescing in ternary ([#16391](prettier/prettier#16391) by [@cdignam-segment](https://github.com/cdignam-segment))
    
    This change adds clarity to operator precedence.
    
    <!-- prettier-ignore -->
    
    ```js
    // Input
    foo ? bar ?? foo : baz;
    foo ?? bar ? a : b;
    a ? b : foo ?? bar;
    
    // Prettier 3.3.2
    foo ? bar ?? foo : baz;
    foo ?? bar ? a : b;
    a ? b : foo ?? bar;
    
    // Prettier 3.3.3
    foo ? (bar ?? foo) : baz;
    (foo ?? bar) ? a : b;
    a ? b : (foo ?? bar);
    ```
    
    ##### Add parentheses for decorator expressions ([#16458](prettier/prettier#16458) by [@y-schneider](https://github.com/y-schneider))
    
    Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5.
    
    <!-- prettier-ignore -->
    
    ```ts
    // Input
    @(foo`tagged template`)
    class X {}
    
    // Prettier 3.3.2
    @foo`tagged template`
    class X {}
    
    // Prettier 3.3.3
    @(foo`tagged template`)
    class X {}
    ```
    
    ##### Support `@let` declaration syntax ([#16474](prettier/prettier#16474) by [@sosukesuzuki](https://github.com/sosukesuzuki))
    
    Adds support for Angular v18 `@let` declaration syntax.
    
    Please see the following code example. The `@let` declaration allows you to define local variables within the template:
    
    <!-- prettier-ignore -->
    
    ```html
    @let name = 'Frodo';
    
    <h1>Dashboard for {{name}}</h1>
    Hello, {{name}}
    ```
    
    For more details, please refer to the excellent blog post by the Angular Team: [Introducing @let in Angular](https://blog.angular.dev/introducing-let-in-angular-686f9f383f0f).
    
    We also appreciate the Angular Team for kindly answering our questions to implement this feature.
    ##### [v3.3.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#332)
    
    [diff](prettier/prettier@3.3.1...3.3.2)
    
    ##### Fix handlebars path expressions starts with `@` ([#16358](prettier/prettier#16358) by [@Princeyadav05](https://github.com/Princeyadav05))
    
    <!-- prettier-ignore -->
    
    ```hbs
    {{! Input }}
    <div>{{@x.y.z}}</div>
    
    {{! Prettier 3.3.1 }}
    <div>{{@x}}</div>
    
    {{! Prettier 3.3.2 }}
    <div>{{@x.y.z}}</div>
    ```
    ##### [v3.3.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#331)
    
    [diff](prettier/prettier@3.3.0...3.3.1)
    
    ##### Preserve empty lines in front matter ([#16347](prettier/prettier#16347) by [@fisker](https://github.com/fisker))
    
    <!-- prettier-ignore -->
    
    ```markdown
    <!-- Input -->
    ---
    foo:
      - bar1
    
      - bar2
    
      - bar3
    ---
    Markdown
    
    <!-- Prettier 3.3.0 -->
    
    ---
    foo:
      - bar1
      - bar2
      - bar3
    ---
    
    Markdown
    
    
    <!-- Prettier 3.3.1 -->
    ---
    foo:
      - bar1
    
      - bar2
    
      - bar3
    ---
    
    Markdown
    ```
    
    ##### Preserve explicit language in front matter ([#16348](prettier/prettier#16348) by [@fisker](https://github.com/fisker))
    
    <!-- prettier-ignore -->
    
    ```markdown
    <!-- Input -->
    ---yaml
    title: Hello
    slug: home
    ---
    
    <!-- Prettier 3.3.0 -->
    ---
    title: Hello
    slug: home
    ---
    
    <!-- Prettier 3.3.1 -->
    ---yaml
    title: Hello
    slug: home
    ---
    ```
    
    ##### Avoid line breaks in import attributes ([#16349](prettier/prettier#16349) by [@fisker](https://github.com/fisker))
    
    <!-- prettier-ignore -->
    
    ```jsx
    // Input
    import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };
    
    // Prettier 3.3.0
    import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type:
      "json" };
    
    // Prettier 3.3.1
    import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };
    ```
    ##### [v3.3.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#330)
    
    [diff](prettier/prettier@3.2.5...3.3.0)
    
    🔗 [Release Notes](https://prettier.io/blog/2024/06/01/3.3.0.html)
    ##### [v3.2.5](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#325)
    
    [diff](prettier/prettier@3.2.4...3.2.5)
    
    ##### Support Angular inline styles as single template literal ([#15968](prettier/prettier#15968) by [@sosukesuzuki](https://github.com/sosukesuzuki))
    
    [Angular v17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) supports single string inline styles.
    
    <!-- prettier-ignore -->
    
    ```ts
    // Input
    @component({
      template: `<div>...</div>`,
      styles: `h1 { color: blue; }`,
    })
    export class AppComponent {}
    
    // Prettier 3.2.4
    @component({
      template: `<div>...</div>`,
      styles: `h1 { color: blue; }`,
    })
    export class AppComponent {}
    
    // Prettier 3.2.5
    @component({
      template: `<div>...</div>`,
      styles: `
        h1 {
          color: blue;
        }
      `,
    })
    export class AppComponent {}
    
    ```
    
    ##### Unexpected embedded formatting for Angular template ([#15969](prettier/prettier#15969) by [@JounQin](https://github.com/JounQin))
    
    Computed template should not be considered as Angular component template
    
    <!-- prettier-ignore -->
    
    ```ts
    // Input
    const template = "foobar";
    
    @component({
      [template]: `<h1>{{       hello }}</h1>`,
    })
    export class AppComponent {}
    
    // Prettier 3.2.4
    const template = "foobar";
    
    @component({
      [template]: `<h1>{{ hello }}</h1>`,
    })
    export class AppComponent {}
    
    // Prettier 3.2.5
    const template = "foobar";
    
    @component({
      [template]: `<h1>{{       hello }}</h1>`,
    })
    export class AppComponent {}
    ```
    
    ##### Use `"json"` parser for `tsconfig.json` by default ([#16012](prettier/prettier#16012) by [@sosukesuzuki](https://github.com/sosukesuzuki))
    
    In [v2.3.0](https://prettier.io/blog/2024/01/12/3.2.0#new-jsonc-parser-added-15831httpsgithubcomprettierprettierpull15831-by-fiskerhttpsgithubcomfisker), we introduced `"jsonc"` parser which adds trialing comma **by default**.
    
    When adding a new parser we also define how it will be used based on the [`linguist-languages`](https://www.npmjs.com/package/linguist-languages) data.
    
    `tsconfig.json` is a special file used by [TypeScript](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#using-tsconfigjson-or-jsconfigjson), it uses `.json` file extension, but it actually uses the [JSON with Comments](https://code.visualstudio.com/docs/languages/json#\_json-with-comments) syntax. However, we found that there are many third-party tools not recognize it correctly because of the confusing `.json` file extension.
    
    We decide to treat it as a JSON file for now to avoid the extra configuration step.
    
    To keep using the `"jsonc"` parser for your `tsconfig.json` files, add the following to your `.pretterrc` file
    
    ```json
    {
      "overrides": [
        {
          "files": ["tsconfig.json", "jsconfig.json"],
          "options": {
            "parser": "jsonc"
          }
        }
      ]
    }
    ```
    
    <!-- prettier-ignore -->
    
    ```
    ```
    ##### [v3.2.4](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#324)
    
    [diff](prettier/prettier@3.2.3...3.2.4)
    
    ##### Fix incorrect parser inference ([#15947](prettier/prettier#15947) by [@fisker](https://github.com/fisker))
    
    Files like `.eslintrc.json` were incorrectly formatted as JSONC files.
    
    <!-- prettier-ignore -->
    
    ```jsx
    // Input
    prettier --file-info .eslintrc.json
    { "ignored": false, "inferredParser": "jsonc" }
    
    // Prettier 3.2.4
    prettier --file-info .eslintrc.json
    { "ignored": false, "inferredParser": "json" }
    ```
    ##### [v3.2.3](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#323)
    
    [diff](prettier/prettier@3.2.2...3.2.3)
    
    ##### Throw errors for invalid code ([#15881](prettier/prettier#15881) by [@fisker](https://github.com/fisker), [@Josh-Cena](https://github.com/Josh-Cena), [@auvred](https://github.com/auvred))
    
    <!-- prettier-ignore -->
    
    ```ts
    // Input
    1++;
    
    // Prettier 3.2.2
    1++;
    
    // Prettier 3.2.3
    SyntaxError: Invalid left-hand side expression in unary operation (1:1)
    > 1 | 1++;
        | ^
    ```
    
    <!-- prettier-ignore -->
    
    ```ts
    // Input
    try {} catch (error = 1){}
    
    // Prettier 3.2.2
    try {
    } catch (error) {}
    
    // Prettier 3.2.3
    SyntaxError: Catch clause variable cannot have an initializer. (1:23)
    > 1 | try {} catch (error = 1){}
        |                       ^
    ```
    
    ##### Fix parser inference ([#15927](prettier/prettier#15927) by [@fisker](https://github.com/fisker))
    
    <!-- prettier-ignore -->
    
    ```console
    // Prettier 3.2.2
    prettier --file-info tsconfig.json
    { "ignored": false, "inferredParser": "json" }
    
    // Prettier 3.2.3
    prettier --file-info tsconfig.json
    { "ignored": false, "inferredParser": "jsonc" }
    ```
    ##### [v3.2.2](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#322)
    
    [diff](prettier/prettier@3.2.1...3.2.2)
    
    ##### Fix crash when parsing template literal CSS in a JSX style tag using a spread attribute ([#15896](prettier/prettier#15896) by [@eelco](https://github.com/eelco))
    
    For example this code would crash before:
    
    <!-- prettier-ignore -->
    
    ```jsx
    <style {...spread}>{`.{}`}</style>
    ```
    
    ##### Fix formatting error on optional call expression and member chain ([#15920](prettier/prettier#15920) by [@sosukesuzuki](https://github.com/sosukesuzuki))
    
    <!-- prettier-ignore -->
    
    ```jsx
    // Input
    a(() => {}, c?.d());
    
    // Prettier 3.2.1
    TypeError: Cannot read properties of undefined (reading 'type')
    
    // Prettier 3.2.2
    a(() => {}, c?.d());
    ```
    ##### [v3.2.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#321)
    
    [diff](prettier/prettier@3.2.0...3.2.1)
    
    ##### Fix formatting error on member chain ([#15915](prettier/prettier#15915) by [@sosukesuzuki](https://github.com/sosukesuzuki))
    
    <!-- prettier-ignore -->
    
    ```jsx
    // Input
    test().test2().test2(thing?.something);
    
    // Prettier 3.2.0
    TypeError: Cannot read properties of undefined (reading 'type')
    
    // Prettier 3.2.1
    test().test2().test2(thing?.something);
    
    ```
    ##### [v3.2.0](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#320)
    
    [diff](prettier/prettier@3.1.1...3.2.0)
    
    🔗 [Release Notes](https://prettier.io/blog/2024/01/13/3.2.0.html)
    ##### [v3.1.1](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#311)
    
    [diff](prettier/prettier@3.1.0...3.1.1)
    
    ##### Fix config file search ([#15363](prettier/prettier#15363) by [@fisker](https://github.com/fisker))
    
    Previously, we start search for config files from the filePath as a directory, if it happened to be a directory and contains config file, it will be used by mistake.
    
    ```text
    ├─ .prettierrc
    └─ test.js         (A directory)
      └─ .prettierrc
    ```
    
    ```js
    // Prettier 3.1.0
    await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
    // <CWD>/test.js/.prettierrc
    
    // Prettier 3.1.1
    await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
    // <CWD>/.prettierrc
    ```
    
    ##### Skip explicitly passed symbolic links with `--no-error-on-unmatched-pattern` ([#15533](prettier/prettier#15533) by [@sanmai-NL](https://github.com/sanmai-NL))
    
    Since Prettier v3, we stopped following symbolic links, however in some use cases, the symbolic link patterns can't be filtered out, and there is no way to prevent Prettier from throwing errors.
    
    In Prettier 3.1.1, you can use `--no-error-on-unmatched-pattern` to simply skip symbolic links.
    
    ##### Consistently use tabs in ternaries when `useTabs` is `true` ([#15662](prettier/prettier#15662) by [@auvred](https://github.com/auvred))
    
    <!-- prettier-ignore -->
    
    ```jsx
    // Input
    aaaaaaaaaaaaaaa
    	? bbbbbbbbbbbbbbbbbb
    	: ccccccccccccccc
    	  ? ddddddddddddddd
    	  : eeeeeeeeeeeeeee
    	    ? fffffffffffffff
    	    : gggggggggggggggg;
    
    // Prettier 3.1.0
    aaaaaaaaaaaaaaa
    	? bbbbbbbbbbbbbbbbbb
    	: ccccccccccccccc
    	  ? ddddddddddddddd
    	  : eeeeeeeeeeeeeee
    	    ? fffffffffffffff
    	    : gggggggggggggggg;
    
    // Prettier 3.1.1
    aaaaaaaaaaaaaaa
    	? bbbbbbbbbbbbbbbbbb
    	: ccccccccccccccc
    		? ddddddddddddddd
    		: eeeeeeeeeeeeeee
    			? fffffffffffffff
    			: gggggggggggggggg;
    ```
    
    ##### Improve config file search ([#15663](prettier/prettier#15663) by [@fisker](https://github.com/fisker))
    
    The Prettier config file search performance has been improved by more effective cache strategy.
    
    ##### Fix unstable and ugly formatting for comments in destructuring patterns ([#15708](prettier/prettier#15708) by [@sosukesuzuki](https://github.com/sosukesuzuki))
    
    <!-- prettier-ignore -->
    
    ```tsx
    // Input
    const {
      foo,
      // bar
      // baz
    }: Foo = expr;
    
    // Prettier 3.1.0
    const {
      foo1,
    } // bar
    // baz
    : Foo = expr;
    
    // Prettier 3.1.0 second output
    const {
      foo1, // bar
    } // baz
    : Foo = expr;
    
    // Prettier 3.1.1
    const {
      foo1,
      // bar
      // baz
    }: Foo = expr;
    ```
    
    ##### Support "Import Attributes" ([#15718](prettier/prettier#15718) by [@fisker](https://github.com/fisker))
    
    [TypeScript 5.3](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/#import-attributes) supports the latest updates to the [import attributes](https://github.com/tc39/proposal-import-attributes) proposal.
    
    ```tsx
    import something from "./something.json" with { type: "json" };
    ```
    
    ##### Fix false claim in docs that cursorOffset is incompatible with rangeStart/rangeEnd ([#15750](prettier/prettier#15750) by [@ExplodingCabbage](https://github.com/ExplodingCabbage))
    
    The cursorOffset option has in fact been compatible with rangeStart/rangeEnd for over 5 years, thanks to work by [@ds300](https://github.com/ds300). However, Prettier's documentation (including the CLI `--help` text) continued to claim otherwise, falsely. The documentation is now fixed.
    
    ##### Keep curly braces and `from` keyword in empty `import` statements ([#15756](prettier/prettier#15756) by [@fisker](https://github.com/fisker))
    
    <!-- prettier-ignore -->
    
    ```js
    // Input
    import { } from 'foo';
    import { /* comment */ } from 'bar';
    
    // Prettier 3.1.0
    import {} from "foo";
    import /* comment */ "bar";
    
    // Prettier 3.1.1
    import {} from "foo";
    import {} from /* comment */ "bar";
    ```
    
    ##### Keep empty import attributes and assertions ([#15757](prettier/prettier#15757) by [@fisker](https://github.com/fisker))
    
    <!-- prettier-ignore -->
    
    ```js
    // Input
    import foo from "foo" with {};
    import bar from "bar" assert {};
    
    // Prettier 3.1.0
    import foo from "foo";
    import bar from "bar";
    
    // Prettier 3.1.1
    import foo from "foo" with {};
    import bar from "bar" assert {};
    ```
    renovate[bot] authored Aug 22, 2024
    Configuration menu
    Copy the full SHA
    396c99e View commit details
    Browse the repository at this point in the history
  4. fix(deps): update typescript-eslint monorepo to v7.18.0

    ##### [v7.18.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7180-2024-07-29)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] prevent runtime error when asserting a variable declared in default TS lib
    
    -   **eslint-plugin:** \[unbound-method] report on destructuring in function parameters
    
    -   **eslint-plugin:** \[no-duplicate-type-constituents] shouldn't report on error types
    
    -   **eslint-plugin:** \[strict-boolean-expressions] support branded booleans
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Oliver Salzburg
    -   Vinccool96
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.17.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7170-2024-07-22)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** backport no-unsafe-function type, no-wrapper-object-types from v8 to v7
    
    -   **eslint-plugin:** \[return-await] add option to report in error-handling scenarios only, and deprecate "never"
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-floating-promises] check top-level type assertions (and more)
    
    -   **eslint-plugin:** \[strict-boolean-expressions] consider assertion function argument a boolean context
    
    -   **eslint-plugin:** \[no-unnecessary-condition] false positive on optional private field
    
    ##### ❤️  Thank You
    
    -   Armano
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   StyleShit
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.16.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7161-2024-07-15)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] descend into all parts of mapped types in no-unnecessary-type-parameters
    
    ##### ❤️  Thank You
    
    -   Dan Vanderkam
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.16.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7160-2024-07-08)
    
    ##### 🚀 Features
    
    -   **rule-tester:** stricter rule test validations
    
    -   **eslint-plugin:** \[no-unnecessary-parameter-property-assignment] add new rule
    
    -   **eslint-plugin:** add support for nested namespaces to unsafe-member-access
    
    -   **eslint-plugin:** \[no-floating-promises] add checkThenables option
    
    ##### 🩹 Fixes
    
    -   **deps:** update dependency [@eslint-community/regexpp](https://github.com/eslint-community/regexpp) to v4.11.0
    
    -   **eslint-plugin:** \[no-floating-promises] add `suggestions` to tests from [#9263](typescript-eslint/typescript-eslint#9263) `checkThenables`
    
    -   **website:** react key error on internal pages of website
    
    -   **eslint-plugin:** \[restrict-template-expressions] don't report tuples if `allowArray` option is enabled
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   auvred
    -   Josh Goldberg ✨
    -   Juan Sanchez
    -   Vinccool96
    -   YeonJuan
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.15.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7150-2024-07-01)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[array-type] detect `Readonly<string[]>` case
    
    -   **eslint-plugin:** back-port new rules around empty object types from v8
    
    ##### 🩹 Fixes
    
    -   disable `EXPERIMENTAL_useProjectService` in `disabled-type-checked` shared config
    
    -   **eslint-plugin:** \[no-unsafe-return] differentiate a types-error any from a true any
    
    -   **eslint-plugin:** \[no-unsafe-call] differentiate a types-error any from a true any
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Kim Sang Du
    -   rgehbt
    -   Vinccool96
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.14.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7141-2024-06-24)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-nullish-coalescing] treat enums and literals as their underlying primitive types
    
    -   **eslint-plugin:** \[prefer-nullish-coalescing] ensure ternary fix does not remove parens
    
    ##### ❤️  Thank You
    
    -   Jake Bailey
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.14.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7140-2024-06-24)
    
    ##### 🚀 Features
    
    -   support TypeScript 5.5
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-extraneous-class] handle abstract members
    
    -   **eslint-plugin:** \[prefer-nullish-coalescing] handle intersected primitive types
    
    -   **eslint-plugin:** \[no-invalid-this] support AccessorProperty
    
    ##### ❤️  Thank You
    
    -   Brad Zacher
    -   cm-ayf
    -   Jake Bailey
    -   James Zhan
    -   Joshua Chen
    -   yoshi2no
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.13.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7131-2024-06-17)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-readonly] refine report locations
    
    -   **eslint-plugin:** \[return-await] support explicit resource management
    
    -   **eslint-plugin:** \[no-unsafe-member-access] differentiate a types-error any from a true any
    
    ##### ❤️  Thank You
    
    -   Kirk Waiblinger
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.13.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7130-2024-06-10)
    
    ##### 🚀 Features
    
    -   **typescript-estree:** require `import = require()` argument to be a string literal
    
    -   **typescript-estree:** forbid `.body`, `.async`, `.generator` on `declare function`
    
    -   **eslint-plugin:** \[no-dynamic-delete] allow all string literals as index
    
    ##### 🩹 Fixes
    
    -   **ast-spec:** function-call-like callee should be Expression not LeftHandSideExpression
    
    -   **scope-manager:** handle index signature in class
    
    -   **eslint-plugin:** \[init-declarations] refine report locations
    
    -   **eslint-plugin:** \[no-base-to-string] make error message more nuanced
    
    -   **eslint-plugin:** \[no-unsafe-assignment] be more specific about error types
    
    -   **eslint-plugin:** \[no-magic-numbers] fix implementation of the `ignore` option
    
    ##### ❤️  Thank You
    
    -   Fotis Papadogeorgopoulos
    -   Joshua Chen
    -   Kirk Waiblinger
    -   Tobiloba Adedeji
    -   Vinccool96
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.12.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7120-2024-06-03)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[no-useless-template-literals] rename to `no-useless-template-expression` (deprecate `no-useless-template-literals`)
    
    -   **rule-tester:** check for parsing errors in suggestion fixes
    
    -   **rule-tester:** port `checkDuplicateTestCases` from ESLint
    
    -   **eslint-plugin:** \[no-floating-promises] add option 'allowForKnownSafePromises'
    
    ##### 🩹 Fixes
    
    -   no-useless-template-expression -> no-unnecessary-template-expression
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] combine template literal check with `const` variable check
    
    -   **eslint-plugin:** \[dot-notation] fix false positive when accessing private/protected property with optional chaining
    
    -   **eslint-plugin:** \[explicit-member-accessibility] refine report locations
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] declares are always defined, so always check `declare`s
    
    -   **eslint-plugin:** \[prefer-literal-enum-member] allow using member it self on allowBitwiseExpressions
    
    -   **eslint-plugin:** \[return-await] clean up in-try-catch detection and make autofixes safe
    
    -   **eslint-plugin:** \[member-ordering] also TSMethodSignature can be get/set
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Han Yeong-woo
    -   Joshua Chen
    -   Kim Sang Du
    -   Kirk Waiblinger
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.11.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7110-2024-05-27)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** deprecate prefer-ts-expect-error in favor of ban-ts-comment
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[consistent-type-assertions] prevent syntax errors on arrow functions
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   auvred
    -   Dom Armstrong
    -   Kirk Waiblinger
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.10.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7100-2024-05-20)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[sort-type-constituents] support case sensitive sorting
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-regexp-exec] fix heuristic to check whether regex may contain global flag
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Emanuel Hoogeveen
    -   jsfm01
    -   Kirk Waiblinger
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.9.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#790-2024-05-13)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[explicit-function-return-types] fix false positive on default parameters
    
    ##### ❤️  Thank You
    
    -   Kirk Waiblinger
    -   Sheetal Nandi
    -   Vinccool96
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.8.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#780-2024-04-29)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unsafe-argument] handle  tagged templates
    
    -   **eslint-plugin:** \[prefer-optional-chain] suggests optional chaining during strict null equality check
    
    -   **eslint-plugin:** \[consistent-type-assertions] handle tagged templates
    
    -   **eslint-plugin:** \[no-unsafe-return] handle union types
    
    -   **eslint-plugin:** \[no-unused-vars] clear error report range
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Josh Goldberg ✨
    -   jsfm01
    -   Kim Sang Du
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.7.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#771-2024-04-22)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unsafe-assignment] handle shorthand property assignment
    
    -   **eslint-plugin:** \[explicit-function-return-type] fix checking wrong ancestor's return type
    
    -   **eslint-plugin:** \[prefer-optional-chain] only look at left operand for `requireNullish`
    
    -   **eslint-plugin:** \[no-for-in-array] refine report location
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] allow non-null assertion for void type
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Kirk Waiblinger
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.7.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#770-2024-04-15)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** replace `no-new-symbol` with `no-new-native-nonconstructor`
    
    ##### ❤️  Thank You
    
    -   Dave
    -   Josh Goldberg ✨
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.6.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#760-2024-04-08)
    
    ##### 🚀 Features
    
    -   bump npm dependency ranges
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   auvred
    -   Brad Zacher
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.5.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#750-2024-04-01)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-floating-promises] handle TaggedTemplateExpression
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] handle exactOptionalPropertyTypes compiler option
    
    ##### ❤️  Thank You
    
    -   Brad Zacher
    -   Kim Sang Du
    -   Mark de Dios
    -   Naru
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.4.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#740-2024-03-25)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[consistent-type-imports] ignore files with decorators, experimentalDecorators, and emitDecoratorMetadata
    
    -   **eslint-plugin:** \[no-unnecessary-type-arguments] handle tagged templates
    
    -   **eslint-plugin:** deprecate no-throw-literal and add a renamed only-throw-error
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-optional-chain] address multipart nullish checks false positive
    
    -   **eslint-plugin:** \[prefer-optional-chain] properly disambiguate between `boolean` and `false`
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] avoid remove const casting on template literals with expressions inside
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Brad Zacher
    -   Josh Goldberg ✨
    -   Kim Sang Du
    -   Kirk Waiblinger
    -   Marco Pasqualetti
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.3.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#731-2024-03-18)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-floating-promises] revert disable of ignoreVoid in strict config
    
    ##### ❤️  Thank You
    
    -   Josh Goldberg ✨
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.3.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#730-2024-03-18)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[restrict-template-expressions] add `allowArray` option
    
    -   **eslint-plugin:** add meta.docs.recommended setting for strict config options
    
    -   **eslint-plugin:** add rule `use-unknown-in-catch-callback-variables`
    
    -   **eslint-plugin:** \[prefer-reduce-type-parameter] supports tuple, union, intersection
    
    ##### 🩹 Fixes
    
    -   correct `engines.node` constraints in `package.json`
    
    -   **eslint-plugin:** \[unbound-method] check method definition in object literal using longhand form
    
    -   **eslint-plugin:** \[consistent-type-imports] handle imports without specifiers
    
    -   **eslint-plugin:** \[no-redundant-type-constituents] incorrectly marks & string as redundant
    
    -   **eslint-plugin:** \[no-unnecessary-qualifier] handle merge namespace with enum
    
    -   **eslint-plugin:** \[no-unused-expressions] false negatives when using assertions
    
    -   **eslint-plugin:** \[ban-ts-comment] more accurate handling of multiline comments
    
    -   **eslint-plugin:** \[explicit-function-return-type, explicit-module-boundary-types] improved checking for allowHigherOrderFunctions option
    
    -   **eslint-plugin:** \[class-literal-property-style] ignore property assigned in constructor
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] fix false negative for const variable declarations
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Alexu
    -   Arka Pratim Chaudhuri
    -   auvred
    -   Derrick Isaacson
    -   fnx
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   Marta Cardoso
    -   Michaël De Boey
    -   Tristan Rasmussen
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.2.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#720-2024-03-11)
    
    ##### 🚀 Features
    
    -   support TS 5.4
    
    -   **eslint-plugin:** \[prefer-string-starts-ends-with] add allowSingleElementEquality option
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** expose \*-type-checked-only configs for extension
    
    -   **eslint-plugin:** \[member-ordering] report alphabetical sorting for all groups instead of just the first failing group
    
    -   **eslint-plugin:** \[no-var-requires, no-require-imports] support template literal
    
    -   **eslint-plugin:** \[no-useless-template-literals] detect TemplateLiteral
    
    -   **eslint-plugin:** \[no-unnecessary-condition] handle union array and tuple type
    
    -   **eslint-plugin:** \[prefer-find] support ternary branches in prefer-find
    
    ##### ❤️  Thank You
    
    -   Arka Pratim Chaudhuri
    -   auvred
    -   Chris Plummer
    -   Fotis Papadogeorgopoulos
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   Wayne Zhang
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.1.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#711-2024-03-04)
    
    This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.1.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#710-2024-02-26)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** add \*-type-checked-only configs
    
    -   **eslint-plugin:** \[naming-convention] support the auto-accessor syntax
    
    -   **eslint-plugin:** \[consistent-return] add new rule
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-optional-chan] allow typeof for avoiding reference error
    
    -   **eslint-plugin:** \[no-misused-promises] improve check union types
    
    -   **eslint-plugin:** \[no-use-before-define] fix false positive type reference in as, satisfies
    
    ##### ❤️  Thank You
    
    -   Arka Pratim Chaudhuri
    -   Josh Goldberg ✨
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v7.0.2](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#702-2024-02-19)
    
    ##### 🩹 Fixes
    
    -   fix tsconfig-less check errors, fix `@types/eslint` incompatibilities, add tests
    
    ##### ❤️  Thank You
    
    -   Brad Zacher
    -   Gareth Jones
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    renovate[bot] authored Aug 22, 2024
    Configuration menu
    Copy the full SHA
    cf3306f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e7bdfa5 View commit details
    Browse the repository at this point in the history
  6. chore(deps): update actions/checkout action to v4

    ##### [vv4](https://github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v417)
    
    -   Bump the minor-npm-dependencies group across 1 directory with 4 updates by [@dependabot](https://github.com/dependabot) in actions/checkout#1739
    -   Bump actions/checkout from 3 to 4 by [@dependabot](https://github.com/dependabot) in actions/checkout#1697
    -   Check out other refs/\* by commit by [@orhantoy](https://github.com/orhantoy) in actions/checkout#1774
    -   Pin actions/checkout's own workflows to a known, good, stable version. by [@jww3](https://github.com/jww3) in actions/checkout#1776
    renovate[bot] authored Aug 22, 2024
    Configuration menu
    Copy the full SHA
    47699d4 View commit details
    Browse the repository at this point in the history
  7. chore(deps): update dependency execa to v9

    ##### [v9.3.1](https://github.com/sindresorhus/execa/compare/v9.3.0...0a51f7cbef53e7290a3604e585e1b2e61da37367)
    
    ##### [v9.3.0](https://github.com/sindresorhus/execa/releases/tag/v9.3.0)
    
    #### Features
    
    -   The [`verbose`](docs/api.md#optionsverbose) option can now be [a function](docs/api.md#verbose-function) to [customize logging](docs/debugging.md#custom-logging). ([#1130](https://github.com/sindresorhus/execa/issues/1130))
    ##### [v9.2.0](https://github.com/sindresorhus/execa/releases/tag/v9.2.0)
    
    This release includes a [new set of methods](docs/ipc.md) to exchange messages between the current process and a Node.js subprocess, also known as "IPC". This allows [passing](docs/input.md#any-input-type) and [returning](docs/output.md#any-output-type) almost any message type to/from a Node.js subprocess. Also, [debugging](docs/ipc.md#debugging) IPC is now much easier.
    
    Moreover, a new [`gracefulCancel`](docs/api.md#optionsgracefulcancel) option has also been added to [terminate a subprocess gracefully](docs/termination.md#graceful-termination).
    
    For a deeper dive-in, please check and share the [release post](https://medium.com/@ehmicky/ipc-made-easy-with-execa-9-2-939c6a358731)!
    
    Thanks [@iiroj](https://github.com/iiroj) for your contribution, [@SimonSiefke](https://github.com/SimonSiefke) and [@adymorz](https://github.com/adymorz) for reporting the bugs fixed in this release, and [@karlhorky](https://github.com/karlhorky) for improving the documentation!
    
    #### Deprecations
    
    -   Passing `'ipc'` to the [`stdio`](docs/api.md#optionsstdio) option has been deprecated. It will be removed in the next major release. Instead, the [`ipc: true`](docs/api.md#optionsipc) option should be used. ([#1056](https://github.com/sindresorhus/execa/issues/1056))
    
    ```diff
    - await execa('npm', ['run', 'build'], {stdio: ['pipe', 'pipe', 'pipe', 'ipc']});
    + await execa('npm', ['run', 'build'], {ipc: true});
    ```
    
    -   The [`execaCommand()`](https://github.com/sindresorhus/execa/blob/v9.1.0/docs/api.md#execacommandcommand-options) method has been deprecated. It will be removed in the next major release. If most cases, the [template string syntax](docs/execution.md#template-string-syntax) should be used instead.
    
    ```diff
    - import {execaCommand} from 'execa';
    + import {execa} from 'execa';
    
    - await execaCommand('npm run build');
    + await execa`npm run build`;
    
    const taskName = 'build';
    - await execaCommand(`npm run ${taskName}`);
    + await execa`npm run ${taskName}`;
    
    const commandArguments = ['run', 'task with space'];
    await execa`npm ${commandArguments}`;
    ```
    
    If the file and/or multiple arguments are supplied as a single string, [parseCommandString(command)](https://github.com/sindresorhus/execa/blob/main/docs/api.md#parsecommandstringcommand) can split that string into an array. [More info.](docs/escaping.md) ([#1054](https://github.com/sindresorhus/execa/issues/1054))
    
    ```diff
    - import {execaCommand} from 'execa';
    + import {execa, parseCommandString} from 'execa';
    
    const commandString = 'npm run task';
    - await execaCommand(commandString);
    + const commandArray = parseCommandString(commandString); // ['npm', 'run', 'task']
    + await execa`${commandArray}`;
    
    // Or alternatively:
    const [file, ...commandArguments] = commandArray;
    await execa(file, commandArguments);
    ```
    
    #### Features
    
    -   Add [`gracefulCancel`](docs/api.md#optionsgracefulcancel) option and [`getCancelSignal()`](docs/api.md#getcancelsignal) method to [terminate a subprocess gracefully](docs/termination.md#graceful-termination). [`error.isGracefullyCanceled`](docs/api.md#errorisgracefullycanceled) was also added. ([#1109](https://github.com/sindresorhus/execa/issues/1109))
    -   Add [`error.isForcefullyTerminated`](docs/api.md#errorisforcefullyterminated). It is `true` when the subprocess was terminated by the [`forceKillAfterDelay`](docs/api.md#optionsforcekillafterdelay) option. ([#1111](https://github.com/sindresorhus/execa/issues/1111))
    -   New methods to simplify exchanging messages between the current process and the subprocess. [More info.](docs/ipc.md) ([#1059](https://github.com/sindresorhus/execa/issues/1059), [#1061](https://github.com/sindresorhus/execa/issues/1061), [#1076](https://github.com/sindresorhus/execa/issues/1076), [#1077](https://github.com/sindresorhus/execa/issues/1077), [#1079](https://github.com/sindresorhus/execa/issues/1079), [#1082](https://github.com/sindresorhus/execa/issues/1082), [#1083](https://github.com/sindresorhus/execa/issues/1083), [#1086](https://github.com/sindresorhus/execa/issues/1086), [#1087](https://github.com/sindresorhus/execa/issues/1087), [#1088](https://github.com/sindresorhus/execa/issues/1088), [#1089](https://github.com/sindresorhus/execa/issues/1089), [#1090](https://github.com/sindresorhus/execa/issues/1090), [#1091](https://github.com/sindresorhus/execa/issues/1091), [#1092](https://github.com/sindresorhus/execa/issues/1092), [#1094](https://github.com/sindresorhus/execa/issues/1094), [#1095](https://github.com/sindresorhus/execa/issues/1095), [#1098](https://github.com/sindresorhus/execa/issues/1098), [#1104](https://github.com/sindresorhus/execa/issues/1104), [#1107](https://github.com/sindresorhus/execa/issues/1107))
        -   The current process sends messages with [`subprocess.sendMessage(message)`](docs/api.md#subprocesssendmessagemessage-sendmessageoptions) and receives them with [`subprocess.getOneMessage()`](docs/api.md#subprocessgetonemessagegetonemessageoptions). [`subprocess.getEachMessage()`](docs/api.md#subprocessgeteachmessagegeteachmessageoptions) listens to multiple messages.
        -   The subprocess uses [`sendMessage(message)`](docs/api.md#sendmessagemessage-sendmessageoptions), [`getOneMessage()`](docs/api.md#getonemessagegetonemessageoptions) and [`getEachMessage()`](docs/api.md#geteachmessagegeteachmessageoptions) instead. Those are the same methods, but imported directly from the `'execa'` module.
    -   The [`ipcInput`](docs/ipc.md#send-an-initial-message) option sends an IPC message from the current process to the subprocess as it starts. This enables [passing almost any input type](docs/input.md#any-input-type) to a Node.js subprocess. ([#1068](https://github.com/sindresorhus/execa/issues/1068))
    -   The [`result.ipcOutput`](docs/ipc.md#retrieve-all-messages) array contains all the IPC messages sent by the subprocess to the current process. This enables [returning almost any output type](docs/output.md#any-output-type) from a Node.js subprocess. ([#1067](https://github.com/sindresorhus/execa/issues/1067), [#1071](https://github.com/sindresorhus/execa/issues/1071), [#1075](https://github.com/sindresorhus/execa/issues/1075))
    -   The [error message](docs/errors.md#error-message) now [contains every IPC message](docs/ipc.md#debugging) sent by the subprocess. ([#1067](https://github.com/sindresorhus/execa/issues/1067))
    -   The [`verbose: 'full'`](docs/api.md#optionsverbose) option now logs every IPC message sent by the subprocess, for debugging. More info [here](docs/ipc.md#debugging) and [there](docs/output.md#stdoutstderr-specific-options). ([#1063](https://github.com/sindresorhus/execa/issues/1063))
    
    #### Types
    
    -   Add [`ExecaMethod`](docs/typescript.md#available-types), [`ExecaNodeMethod`](docs/typescript.md#available-types) and [`ExecaScriptMethod`](docs/typescript.md#available-types), [`ExecaSyncMethod`](docs/typescript.md#synchronous-execution) and [`ExecaScriptSyncMethod`](docs/typescript.md#synchronous-execution) types. ([#1066](https://github.com/sindresorhus/execa/issues/1066))
    -   Export the `Message` type, for [IPC](docs/ipc.md). ([#1059](https://github.com/sindresorhus/execa/issues/1059))
    -   Fix type of `forceKillAfterDelay: true` option. ([#1116](https://github.com/sindresorhus/execa/issues/1116))
    
    #### Bug fixes
    
    -   Fix passing a [`{file}`](docs/output.md#file-output) to both the [`stdin`](docs/api.md#optionsstdin) and the [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) options. ([#1058](https://github.com/sindresorhus/execa/issues/1058))
    -   Fix multiple minor problems with the [`cancelSignal`](docs/termination.md#canceling) option. ([#1108](https://github.com/sindresorhus/execa/issues/1108))
    -   Fix accidental publishing of Vim backup files. ([#1074](https://github.com/sindresorhus/execa/issues/1074))
    -   Fix `engines.node` field in [`package.json`](package.json). Supported Node.js version is `^18.19.0` or `>=20.5.0`. (by [@iiroj](https://github.com/iiroj)) ([#1101](https://github.com/sindresorhus/execa/issues/1101))
    ##### [v9.1.0](https://github.com/sindresorhus/execa/releases/tag/v9.1.0)
    
    #### Features (types)
    
    -   Export [`TemplateExpression`](docs/typescript.md#available-types) type. ([#1049](https://github.com/sindresorhus/execa/issues/1049))
    ##### [v9.0.2](https://github.com/sindresorhus/execa/releases/tag/v9.0.2)
    
    #### Bug fixes (types)
    
    -   Do not require using `--lib dom` for TypeScript users ([#1043](https://github.com/sindresorhus/execa/issues/1043), [#1044](https://github.com/sindresorhus/execa/issues/1044))
    -   Fix type of the `reject` option ([#1046](https://github.com/sindresorhus/execa/issues/1046))
    ##### [v9.0.1](https://github.com/sindresorhus/execa/releases/tag/v9.0.1)
    
    #### Bug fixes (types)
    
    -   Fix types not being importable ([#1033](https://github.com/sindresorhus/execa/issues/1033))  [`3bdab60`](https://github.com/sindresorhus/execa/commit/3bdab60)
    -   Fix complexity bug with types ([#1037](https://github.com/sindresorhus/execa/issues/1037))  [`6cc519b`](https://github.com/sindresorhus/execa/commit/6cc519b)
    -   Fix complexity bug with types ([#1035](https://github.com/sindresorhus/execa/issues/1035))  [`fee011d`](https://github.com/sindresorhus/execa/commit/fee011d)
    ##### [v9.0.0](https://github.com/sindresorhus/execa/releases/tag/v9.0.0)
    
    This major release brings many important features including:
    
    -   [Split the output](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#3a26) into lines, or [progressively iterate](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#3a26) over them.
    -   [Transform or filter](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#cbd6) the input/output using [simple functions](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#399a).
    -   Print the output [to the terminal](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#693f) while still retrieving it programmatically.
    -   Redirect the input/output [from/to a file](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#693f).
    -   [Advanced piping](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#ec17) between multiple subprocesses.
    -   Improved [verbose mode](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#2913), for debugging.
    -   More [detailed errors](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#40d7), including when [terminating subprocesses](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#668c).
    -   Enhanced [template string syntax](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#725b).
    -   [Global/shared options](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#bcbf).
    -   [Web streams](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#5731) and Transform streams support.
    -   [Convert the subprocess](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f#47b9) to a stream.
    -   [New documentation](https://github.com/sindresorhus/execa#documentation) with many examples.
    
    Please check the [release post](https://medium.com/@ehmicky/execa-9-release-d0d5daaa097f) for a high-level overview! For the full list of breaking changes, features and bug fixes, please read below.
    
    Thanks [@younggglcy](https://github.com/younggglcy), [@koshic](https://github.com/koshic), [@am0o0](https://github.com/am0o0) and [@codesmith-emmy](https://github.com/codesmith-emmy) for your help!
    
    ***
    
    One of the maintainers [@ehmicky](https://github.com/ehmicky) is looking for a remote full-time position. Specialized in Node.js back-ends and CLIs, he led Netlify [Build](https://www.netlify.com/platform/core/build/), [Plugins](https://www.netlify.com/integrations/) and Configuration for 2.5 years. Feel free to contact him on [his website](https://www.mickael-hebert.com) or on [LinkedIn](https://www.linkedin.com/in/mickaelhebert/)!
    
    ***
    
    #### Breaking changes
    
    -   Minimal supported Node.js version is now `18.19.0`. ([`834e372`](https://github.com/sindresorhus/execa/commit/834e3726))
    
    -   When the [`encoding` option](docs/api.md#optionsencoding) is `'buffer'`, the output ([`result.stdout`](docs/api.md#resultstdout), [`result.stderr`](docs/api.md#resultstderr), [`result.all`](docs/api.md#resultall)) is now an [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instead of a [`Buffer`](https://nodejs.org/api/buffer.html#class-buffer). For more information, see [this blog post](https://sindresorhus.com/blog/goodbye-nodejs-buffer). (by [@younggglcy](https://github.com/younggglcy)) ([#586](https://github.com/sindresorhus/execa/issues/586))
    
    ```js
    const {stdout} = await execa('node', ['file.js'], {encoding: 'buffer'});
    console.log(stdout); // This is now an Uint8Array
    ```
    
    -   Renamed some of the allowed values for the [`encoding`](docs/api.md#optionsencoding) option. ([#586](https://github.com/sindresorhus/execa/issues/586), [#928](https://github.com/sindresorhus/execa/issues/928))
    
    ```diff
    - await execa('node', ['file.js'], {encoding: null});
    + await execa('node', ['file.js'], {encoding: 'buffer'});
    
    - await execa('node', ['file.js'], {encoding: 'utf-8'});
    + await execa('node', ['file.js'], {encoding: 'utf8'});
    
    - await execa('node', ['file.js'], {encoding: 'UTF8'});
    + await execa('node', ['file.js'], {encoding: 'utf8'});
    
    - await execa('node', ['file.js'], {encoding: 'utf-16le'});
    + await execa('node', ['file.js'], {encoding: 'utf16le'});
    
    - await execa('node', ['file.js'], {encoding: 'ucs2'});
    + await execa('node', ['file.js'], {encoding: 'utf16le'});
    
    - await execa('node', ['file.js'], {encoding: 'ucs-2'});
    + await execa('node', ['file.js'], {encoding: 'utf16le'});
    
    - await execa('node', ['file.js'], {encoding: 'binary'});
    + await execa('node', ['file.js'], {encoding: 'latin1'});
    ```
    
    -   Passing a file path to `subprocess.pipeStdout()`, `subprocess.pipeStderr()` and `subprocess.pipeAll()` has been removed. Instead, a [`{file: './path'}` object](docs/output.md#file-output) should be passed to the [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) option. ([#752](https://github.com/sindresorhus/execa/issues/752))
    
    ```diff
    - await execa('node', ['file.js']).pipeStdout('output.txt');
    + await execa('node', ['file.js'], {stdout: {file: 'output.txt'}});
    
    - await execa('node', ['file.js']).pipeStderr('output.txt');
    + await execa('node', ['file.js'], {stderr: {file: 'output.txt'}});
    
    - await execa('node', ['file.js']).pipeAll('output.txt');
    + await execa('node', ['file.js'], {
    +	stdout: {file: 'output.txt'},
    +	stderr: {file: 'output.txt'},
    +});
    ```
    
    -   Passing a [writable stream](https://nodejs.org/api/stream.html#class-streamwritable) to `subprocess.pipeStdout()`, `subprocess.pipeStderr()` and `subprocess.pipeAll()` has been removed. Instead, the stream should be passed to the [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) option. If the stream [does not have a file descriptor](docs/streams.md#file-descriptors), [`['pipe', stream]`](docs/output.md#multiple-targets) should be passed instead. ([#752](https://github.com/sindresorhus/execa/issues/752))
    
    ```diff
    - await execa('node', ['file.js']).pipeStdout(stream);
    + await execa('node', ['file.js'], {stdout: ['pipe', stream]});
    
    - await execa('node', ['file.js']).pipeStderr(stream);
    + await execa('node', ['file.js'], {stderr: ['pipe', stream]});
    
    - await execa('node', ['file.js']).pipeAll(stream);
    + await execa('node', ['file.js'], {
    +	stdout: ['pipe', stream],
    +	stderr: ['pipe', stream],
    +});
    ```
    
    -   The `subprocess.pipeStdout()`, `subprocess.pipeStderr()` and `subprocess.pipeAll()` methods have been renamed to [`subprocess.pipe()`](docs/api.md#subprocesspipefile-arguments-options). The command and its arguments can be passed to `subprocess.pipe()` directly, without calling `execa()` a second time. The [`from`](docs/api.md#pipeoptionsfrom) piping option can specify `'stdout'` (the default value), `'stderr'` or `'all'`. ([#757](https://github.com/sindresorhus/execa/issues/757))
    
    ```diff
    - await execa('node', ['file.js']).pipeStdout(execa('node', ['other.js']));
    + await execa('node', ['file.js']).pipe('node', ['other.js']);
    
    - await execa('node', ['file.js']).pipeStderr(execa('node', ['other.js']));
    + await execa('node', ['file.js']).pipe('node', ['other.js'], {from: 'stderr'});
    
    - await execa('node', ['file.js']).pipeAll(execa('node', ['other.js']));
    + await execa('node', ['file.js']).pipe('node', ['other.js'], {from: 'all'});
    ```
    
    -   Renamed the `signal` option to [`cancelSignal`](docs/api.md#optionscancelsignal). ([#880](https://github.com/sindresorhus/execa/issues/880))
    
    ```diff
    - await execa('node', ['file.js'], {signal: abortController.signal});
    + await execa('node', ['file.js'], {cancelSignal: abortController.signal});
    ```
    
    -   Renamed `error.killed` to [`error.isTerminated`](docs/api.md#erroristerminated). ([#625](https://github.com/sindresorhus/execa/issues/625))
    
    ```diff
    try {
    	await execa('node', ['file.js']);
    } catch (error) {
    - if (error.killed) {
    + if (error.isTerminated) {
    		// ...
    	}
    }
    ```
    
    -   `subprocess.cancel()` has been removed. Please use either [`subprocess.kill()`](docs/api.md#subprocesskillsignal-error) or the [`cancelSignal`](docs/api.md#optionscancelsignal) option instead. ([#711](https://github.com/sindresorhus/execa/issues/711))
    
    ```diff
    - subprocess.cancel();
    + subprocess.kill();
    ```
    
    -   Renamed the `forceKillAfterTimeout` option to [`forceKillAfterDelay`](docs/api.md#optionsforcekillafterdelay). Also, it is now passed to [`execa()`](docs/api.md#execafile-arguments-options) instead of [`subprocess.kill()`](docs/api.md#subprocesskillsignal-error). ([#714](https://github.com/sindresorhus/execa/issues/714), [#723](https://github.com/sindresorhus/execa/issues/723))
    
    ```diff
    - const subprocess = execa('node', ['file.js']);
    - subprocess.kill('SIGTERM', {forceKillAfterTimeout: 1000});
    + const subprocess = execa('node', ['file.js'], {forceKillAfterDelay: 1000});
    + subprocess.kill('SIGTERM');
    ```
    
    -   The [`verbose`](docs/api.md#optionsverbose) option is now a string enum instead of a boolean. `false` has been renamed to `'none'` and `true` has been renamed to [`'short'`](docs/debugging.md#short-mode). ([#884](https://github.com/sindresorhus/execa/issues/884))
    
    ```diff
    - await execa('node', ['file.js'], {verbose: false});
    + await execa('node', ['file.js'], {verbose: 'none'});
    
    - await execa('node', ['file.js'], {verbose: true});
    + await execa('node', ['file.js'], {verbose: 'short'});
    ```
    
    -   The `execPath` option has been renamed to [`nodePath`](docs/api.md#optionsnodepath). It is now a noop unless the [`node`](docs/api.md#optionsnode) option is `true`. Also, it now works even if the [`preferLocal`](docs/api.md#optionspreferlocal) option is `false`. ([#812](https://github.com/sindresorhus/execa/issues/812), [#815](https://github.com/sindresorhus/execa/issues/815))
    
    ```diff
    - await execa('node', ['file.js'], {execPath: './path/to/node'});
    + await execa('node', ['file.js'], {nodePath: './path/to/node'});
    ```
    
    -   The [default value](docs/ipc.md#message-type) for the [`serialization`](docs/api.md#optionsserialization) option is now [`'advanced'`](https://nodejs.org/api/child_process.html#advanced-serialization) instead of `'json'`. In particular, when calling [`subprocess.send(object)`](docs/api.md#subprocesssendmessage) with an object that contains functions or symbols, those were previously silently removed. Now this will throw an exception. ([#905](https://github.com/sindresorhus/execa/issues/905))
    
    ```diff
    - subprocess.send({example: true, getExample() {}});
    + subprocess.send({example: true});
    ```
    
    -   If [`subprocess.stdout`](docs/api.md#subprocessstdout), [`subprocess.stderr`](docs/api.md#subprocessstderr) or [`subprocess.all`](docs/api.md#subprocessall) is manually piped, the [`.pipe()`](https://nodejs.org/api/stream.html#readablepipedestination-options) call must now happen as soon as `subprocess` is created. Otherwise, the output at the beginning of the subprocess might be missing. ([#658](https://github.com/sindresorhus/execa/issues/658), [#747](https://github.com/sindresorhus/execa/issues/747))
    
    ```diff
    const subprocess = execa('node', ['file.js']);
    - setTimeout(() => {
    	subprocess.stdout.pipe(process.stdout);
    - }, 0);
    ```
    
    -   Signals passed to [`subprocess.kill()`](docs/api.md#subprocesskillsignal-error) and to the [`killSignal`](docs/api.md#optionskillsignal) option cannot be lowercase anymore. ([#1025](https://github.com/sindresorhus/execa/issues/1025))
    
    ```diff
    - const subprocess = execa('node', ['file.js'], {killSignal: 'sigterm'});
    + const subprocess = execa('node', ['file.js'], {killSignal: 'SIGTERM'});
    
    - subprocess.kill('sigterm');
    + subprocess.kill('SIGTERM');
    ```
    
    #### Features
    
    ##### Execution
    
    -   Use the [template string syntax](docs/execution.md#template-string-syntax) with any method (including [`execa()`](docs/api.md#execacommand)), as opposed to only [`$`](docs/api.md#file-arguments-options). Conversely, `$` can now use the [regular array syntax](docs/scripts.md#template-string-syntax). ([#933](https://github.com/sindresorhus/execa/issues/933))
    -   A command's template string can span [multiple lines](docs/execution.md#multiple-lines). ([#843](https://github.com/sindresorhus/execa/issues/843))
    -   [Share options](docs/execution.md#globalshared-options) between multiple calls, or set global options, by using [`execa(options)`](docs/api#execaoptions). ([#933](https://github.com/sindresorhus/execa/issues/933), [#965](https://github.com/sindresorhus/execa/issues/965))
    -   Pass a file URL (as opposed to a file path string) to [`execa()`](docs/api.md#execafile-arguments-options), [`execaNode()`](docs/api.md#execanodescriptpath-arguments-options), the [`inputFile`](docs/api.md#optionsinputfile) option, the [`nodePath`](docs/api.md#optionsnodepath) option or the [`shell`](docs/api.md#optionsshell) option. ([#630](https://github.com/sindresorhus/execa/issues/630), [#631](https://github.com/sindresorhus/execa/issues/631), [#632](https://github.com/sindresorhus/execa/issues/632), [#635](https://github.com/sindresorhus/execa/issues/635))
    
    ##### Text lines
    
    -   [Split the output](docs/lines.md#simple-splitting) into text lines by using the [`lines`](docs/api.md#optionslines) option. ([#741](https://github.com/sindresorhus/execa/issues/741), [#929](https://github.com/sindresorhus/execa/issues/929), [#931](https://github.com/sindresorhus/execa/issues/931), [#948](https://github.com/sindresorhus/execa/issues/948), [#951](https://github.com/sindresorhus/execa/issues/951), [#957](https://github.com/sindresorhus/execa/issues/957))
    -   Subprocess is now an [async iterable](docs/api.md#subprocesssymbolasynciterator), [iterating over the output](docs/lines.md#progressive-splitting) lines while the subprocess is running. ([#923](https://github.com/sindresorhus/execa/issues/923))
    
    ##### Piping multiple subprocesses
    
    -   Simpler syntax: pass the [command directly](docs/pipe.md#array-syntax) to [`subprocess.pipe()`](docs/api.md#subprocesspipefile-arguments-options) without calling [`execa()`](docs/api.md#execafile-arguments-options). A [template string](docs/pipe.md#template-string-syntax) can also be used. ([#840](https://github.com/sindresorhus/execa/issues/840), [#859](https://github.com/sindresorhus/execa/issues/859), [#864](https://github.com/sindresorhus/execa/issues/864))
    -   [Wait for both subprocesses](docs/pipe.md#result) to complete. [Error handling](docs/pipe.md#errors) has been improved too. ([#757](https://github.com/sindresorhus/execa/issues/757), [#778](https://github.com/sindresorhus/execa/issues/778), [#834](https://github.com/sindresorhus/execa/issues/834), [#854](https://github.com/sindresorhus/execa/issues/854))
    -   Retrieve the [result](docs/pipe.md#result) of each subprocess (not only the last one) by using [`result.pipedFrom`](docs/api.md#resultpipedfrom) and [`error.pipedFrom`](docs/api.md#resultpipedfrom). ([#834](https://github.com/sindresorhus/execa/issues/834))
    -   Pipe 1 or [many subprocesses](docs/pipe.md#multiple-sources-1-destination) to 1 or [many subprocesses](docs/pipe.md#1-source-multiple-destinations). ([#834](https://github.com/sindresorhus/execa/issues/834))
    -   Pipe subprocesses using [other file descriptors](docs/pipe.md#source-file-descriptor) than `stdin`/`stdout`/`stderr` by using the [`from`](docs/api.md#pipeoptionsfrom) and [`to`](docs/api.md#pipeoptionsto) piping options. ([#757](https://github.com/sindresorhus/execa/issues/757), [#834](https://github.com/sindresorhus/execa/issues/834), [#903](https://github.com/sindresorhus/execa/issues/903), [#920](https://github.com/sindresorhus/execa/issues/920))
    -   [Cancel piping](docs/pipe.md#unpipe) subprocesses by using the [`unpipeSignal`](docs/api.md#pipeoptionsunpipesignal) piping option. ([#834](https://github.com/sindresorhus/execa/issues/834), [#852](https://github.com/sindresorhus/execa/issues/852))
    
    ##### Input/output
    
    -   Pass an array with [multiple values](docs/output.md#multiple-targets) to the [`stdin`](docs/api.md#optionsstdin), [`stdout`](docs/api.md#optionsstdout) and [`stderr`](docs/api.md#optionsstderr) options. For example, [`stdout: ['inherit', 'pipe']`](docs/output.md#multiple-targets) prints the output [to the terminal](docs/output.md#terminal-output) while still [returning it](docs/output.md#stdout-and-stderr) as [`result.stdout`](docs/api.md#resultstdout). ([#643](https://github.com/sindresorhus/execa/issues/643), [#765](https://github.com/sindresorhus/execa/issues/765), [#941](https://github.com/sindresorhus/execa/issues/941), [#954](https://github.com/sindresorhus/execa/issues/954))
    -   Redirect the [input](docs/input.md#file-input)/[output](docs/output.md#file-output) from/to a file by passing a `{file: './path'}` object or a file URL to the [`stdin`](docs/api.md#optionsstdin), [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) option. ([#610](https://github.com/sindresorhus/execa/issues/610), [#614](https://github.com/sindresorhus/execa/issues/614), [#621](https://github.com/sindresorhus/execa/issues/621), [#671](https://github.com/sindresorhus/execa/issues/671), [#1004](https://github.com/sindresorhus/execa/issues/1004))
    -   [Transform](docs/transform.md) or [filter](docs/transform.md#filtering) the input/output by passing a generator function to the [`stdin`](docs/api.md#optionsstdin), [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) option. ([#693](https://github.com/sindresorhus/execa/issues/693), [#697](https://github.com/sindresorhus/execa/issues/697), [#698](https://github.com/sindresorhus/execa/issues/698), [#699](https://github.com/sindresorhus/execa/issues/699), [#709](https://github.com/sindresorhus/execa/issues/709), [#736](https://github.com/sindresorhus/execa/issues/736), [#737](https://github.com/sindresorhus/execa/issues/737), [#739](https://github.com/sindresorhus/execa/issues/739), [#740](https://github.com/sindresorhus/execa/issues/740), [#746](https://github.com/sindresorhus/execa/issues/746), [#748](https://github.com/sindresorhus/execa/issues/748), [#755](https://github.com/sindresorhus/execa/issues/755), [#756](https://github.com/sindresorhus/execa/issues/756), [#780](https://github.com/sindresorhus/execa/issues/780), [#783](https://github.com/sindresorhus/execa/issues/783), [#867](https://github.com/sindresorhus/execa/issues/867), [#915](https://github.com/sindresorhus/execa/issues/915), [#916](https://github.com/sindresorhus/execa/issues/916), [#917](https://github.com/sindresorhus/execa/issues/917), [#919](https://github.com/sindresorhus/execa/issues/919), [#924](https://github.com/sindresorhus/execa/issues/924), [#926](https://github.com/sindresorhus/execa/issues/926), [#945](https://github.com/sindresorhus/execa/issues/945), [#969](https://github.com/sindresorhus/execa/issues/969))
    -   Provide some [binary input](docs/binary.md#binary-input) by passing an [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) to the [`input`](docs/api.md#optionsinput) or [`stdin`](docs/api.md#optionsstdin) option. ([`834e372`](https://github.com/sindresorhus/execa/commit/834e3726), [#670](https://github.com/sindresorhus/execa/issues/670), [#1029](https://github.com/sindresorhus/execa/issues/1029))
    -   Provide some [progressive input](docs/streams.md#iterables-as-input) by passing a sync/async [iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_async_iterator_and_async_iterable_protocols) to the [`stdin`](docs/api.md#optionsstdin) option. ([#604](https://github.com/sindresorhus/execa/issues/604), [#944](https://github.com/sindresorhus/execa/issues/944))
    -   Provide [multiple inputs](docs/output.md#multiple-targets) by combining the [`stdin`](docs/api.md#optionsstdin), [`input`](docs/api.md#optionsinput) and [`inputFile`](docs/api.md#optionsinputfile) options. ([#666](https://github.com/sindresorhus/execa/issues/666))
    -   Return [other file descriptors](docs/output.md#additional-file-descriptors) than [`result.stdout`](docs/api.md#resultstdout) and [`result.stderr`](docs/api.md#resultstderr) by using [`result.stdio`](docs/api.md#resultstdio). ([#676](https://github.com/sindresorhus/execa/issues/676))
    -   [Specify different values](docs/output.md#stdoutstderr-specific-options) for [`stdout`](docs/api.md#optionsstdout) and [`stderr`](docs/api.md#optionsstderr) with the following options: [`verbose`](docs/api.md#optionsverbose), [`lines`](docs/api.md#optionslines), [`stripFinalNewline`](docs/api.md#optionsstripfinalnewline), [`maxBuffer`](docs/api.md#optionsmaxbuffer), [`buffer`](docs/api.md#optionsbuffer). ([#966](https://github.com/sindresorhus/execa/issues/966), [#970](https://github.com/sindresorhus/execa/issues/970), [#971](https://github.com/sindresorhus/execa/issues/971), [#972](https://github.com/sindresorhus/execa/issues/972), [#973](https://github.com/sindresorhus/execa/issues/973), [#974](https://github.com/sindresorhus/execa/issues/974))
    
    ##### Streams
    
    -   Redirect the input/output from/to a [web stream](docs/streams.md#web-streams) by passing a [`ReadableStream`](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream) or [`WritableStream`](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) to the [`stdin`](docs/api.md#optionsstdin), [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) option. ([#615](https://github.com/sindresorhus/execa/issues/615), [#619](https://github.com/sindresorhus/execa/issues/619), [#645](https://github.com/sindresorhus/execa/issues/645))
    -   [Transform or filter](docs/transform.md#duplextransform-streams) the input/output by passing a [`Duplex`](https://nodejs.org/api/stream.html#class-streamduplex), Node.js [`Transform`](https://nodejs.org/api/stream.html#class-streamtransform) or web [`TransformStream`](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream) to the [`stdin`](docs/api.md#optionsstdin), [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) option. ([#937](https://github.com/sindresorhus/execa/issues/937), [#938](https://github.com/sindresorhus/execa/issues/938))
    -   [Convert the subprocess](docs/streams.md#converting-a-subprocess-to-a-stream) to a stream by using [`subprocess.readable()`](docs/api.md#subprocessreadablereadableoptions), [`subprocess.writable()`](docs/api.md#subprocesswritablewritableoptions) or [`subprocess.duplex()`](docs/api.md#subprocessduplexduplexoptions). ([#912](https://github.com/sindresorhus/execa/issues/912), [#922](https://github.com/sindresorhus/execa/issues/922), [#958](https://github.com/sindresorhus/execa/issues/958))
    
    ##### Verbose mode
    
    -   Print the subprocess' [completion, duration and errors](docs/debugging.md#short-mode) with the [`verbose: 'short'`](docs/api.md#optionsverbose) or `verbose: 'full'` option. ([#887](https://github.com/sindresorhus/execa/issues/887), [#890](https://github.com/sindresorhus/execa/issues/890))
    -   Print the subprocess' [output](docs/debugging.md#full-mode) with the [`verbose: 'full'`](docs/api.md#optionsverbose) option. ([#884](https://github.com/sindresorhus/execa/issues/884), [#950](https://github.com/sindresorhus/execa/issues/950), [#962](https://github.com/sindresorhus/execa/issues/962), [#990](https://github.com/sindresorhus/execa/issues/990))
    -   Prettier formatting and [colors](docs/debugging.md#colors) with the [`verbose`](docs/api.md#optionsverbose) option. ([#883](https://github.com/sindresorhus/execa/issues/883), [#893](https://github.com/sindresorhus/execa/issues/893), [#894](https://github.com/sindresorhus/execa/issues/894))
    
    ##### Debugging
    
    -   Retrieve the subprocess' [duration](docs/debugging.md#duration) by using [`result.durationMs`](docs/api.md#resultdurationms) and [`error.durationMs`](docs/api.md#resultdurationms). ([#896](https://github.com/sindresorhus/execa/issues/896))
    -   Retrieve the subprocess' [current directory](docs/environment.md#current-directory) by using [`result.cwd`](docs/api.md#resultcwd). Previously only [`error.cwd`](docs/api.md#execaerror) was available. Also, `result.cwd` and `error.cwd` are now normalized to absolute file paths. ([#803](https://github.com/sindresorhus/execa/issues/803))
    -   Printing [`result.escapedCommand`](docs/api.md#resultescapedcommand) in a terminal [is now safe](docs/debugging.md#command). ([#875](https://github.com/sindresorhus/execa/issues/875))
    
    ##### Errors
    
    -   The [`ExecaError`](docs/api.md#execaerror) and [`ExecaSyncError`](docs/api.md#execasyncerror) classes [are now exported](docs/errors.md#subprocess-failure). ([#911](https://github.com/sindresorhus/execa/issues/911))
    -   Find the subprocess failure's [root cause](docs/termination.md#error-message-and-stack-trace) by using [`error.cause`](docs/api.md#errorcause). ([#911](https://github.com/sindresorhus/execa/issues/911))
    -   Know whether [the subprocess failed](docs/errors.md#failure-reason) due to the [`maxBuffer`](docs/api.md#optionsmaxbuffer) option by using [`error.isMaxBuffer`](docs/api.md#errorismaxbuffer). ([#963](https://github.com/sindresorhus/execa/issues/963))
    -   Improved [`error.message`](docs/api.md#errormessage): [`error.stdout`](docs/api.md#resultstdout) and [`error.stderr`](docs/api.md#resultstderr) are now [interleaved](docs/output.md#interleaved-output) if the [`all`](docs/api.md#optionsall) option is `true`. [Additional file descriptors](docs/output.md#additional-file-descriptors) are now printed too. Also, the [formatting](docs/errors.md#error-message) has been improved. ([#676](https://github.com/sindresorhus/execa/issues/676), [#705](https://github.com/sindresorhus/execa/issues/705), [#991](https://github.com/sindresorhus/execa/issues/991), [#992](https://github.com/sindresorhus/execa/issues/992))
    -   [Control characters](https://en.wikipedia.org/wiki/Control_character) in [`error.message`](docs/api.md#errormessage) are now escaped, so they don't result in visual bugs when printed in a terminal. ([#879](https://github.com/sindresorhus/execa/issues/879))
    -   Improved stack trace when an [`error`](https://nodejs.org/api/stream.html#event-error\_1) event is emitted on [`subprocess.stdout`](docs/api.md#subprocessstdout) or [`subprocess.stderr`](docs/api.md#subprocessstderr). ([#814](https://github.com/sindresorhus/execa/issues/814))
    
    ##### Termination
    
    -   Specify an [error message or stack trace](docs/termination.md#error-message-and-stack-trace) when terminating a subprocess by passing an error instance to [`subprocess.kill()`](docs/api.md#subprocesskillerror). ([#811](https://github.com/sindresorhus/execa/issues/811), [#836](https://github.com/sindresorhus/execa/issues/836), [#1023](https://github.com/sindresorhus/execa/issues/1023))
    -   The [`forceKillAfterDelay`](docs/api.md#optionsforcekillafterdelay) and [`killSignal`](docs/api.md#optionskillsignal) options [now apply to terminations](docs/termination.md#default-signal) due not only to [`subprocess.kill()`](docs/api.md#subprocesskillsignal-error) but [also to](docs/termination.md#forceful-termination) the [`cancelSignal`](docs/api.md#optionscancelsignal), [`timeout`](docs/api.md#optionstimeout), [`maxBuffer`](docs/api.md#optionsmaxbuffer) and [`cleanup`](docs/api.md#optionscleanup) options. ([#714](https://github.com/sindresorhus/execa/issues/714), [#728](https://github.com/sindresorhus/execa/issues/728))
    
    ##### Node.js files
    
    -   Use the [`nodePath`](docs/api.md#optionsnodepath) and [`nodeOptions`](docs/api.md#optionsnodeoptions) options with [any method](docs/api.md#methods), as opposed to only [`execaNode()`](docs/api.md#execanodescriptpath-arguments-options), by passing the [`node: true`](docs/api.md#optionsnode) option. ([#804](https://github.com/sindresorhus/execa/issues/804), [#812](https://github.com/sindresorhus/execa/issues/812), [#815](https://github.com/sindresorhus/execa/issues/815))
    -   When using [`execaNode()`](docs/api.md#execanodescriptpath-arguments-options) or the [`node: true`](docs/api.md#optionsnode) option, the [current Node.js version](docs/node.md#nodejs-version) is now inherited deeply. If the subprocess spawns other subprocesses, they will all use the [same Node.js version](docs/api.md#optionsnodepath). ([#812](https://github.com/sindresorhus/execa/issues/812), [#815](https://github.com/sindresorhus/execa/issues/815), [#1011](https://github.com/sindresorhus/execa/issues/1011))
    
    ##### Synchronous execution
    
    -   Use the [`all`](docs/api.md#optionsall) and [`buffer: false`](docs/api.md#optionsbuffer) options with [`execaSync()`](docs/api.md#execasyncfile-arguments-options), as opposed to only [`execa()`](docs/api.md#execafile-arguments-options). ([#953](https://github.com/sindresorhus/execa/issues/953), [#956](https://github.com/sindresorhus/execa/issues/956))
    -   Added the [`$.s`](docs/api.md#file-arguments-options) alias for [`$.sync`](docs/api.md#file-arguments-options). ([#594](https://github.com/sindresorhus/execa/issues/594))
    
    ##### Inter-process communication
    
    -   Use the [`ipc: true`](docs/api.md#optionsipc) option, as [opposed to the more verbose](docs/ipc.md#exchanging-messages) [`stdio: ['pipe', 'pipe', 'pipe', 'ipc']`](docs/api.md#optionsstdio) option. ([#794](https://github.com/sindresorhus/execa/issues/794))
    
    ##### Input validation
    
    -   Improved the validation of the [`input`](docs/api.md#optionsinput), [`timeout`](docs/api.md#optionstimeout), [`cwd`](docs/api.md#optionscwd), [`detached`](docs/api.md#optionsdetached), [`cancelSignal`](docs/api.md#optionscancelsignal) and [`encoding`](docs/api.md#optionsencoding) options. ([#668](https://github.com/sindresorhus/execa/issues/668), [#715](https://github.com/sindresorhus/execa/issues/715), [#803](https://github.com/sindresorhus/execa/issues/803), [#928](https://github.com/sindresorhus/execa/issues/928), [#940](https://github.com/sindresorhus/execa/issues/940))
    -   Improved the validation of the arguments passed to [`execa()`](docs/api.md#execafile-arguments-options) and the [other exported methods](docs/api.md#methods). ([#838](https://github.com/sindresorhus/execa/issues/838), [#873](https://github.com/sindresorhus/execa/issues/873), [#899](https://github.com/sindresorhus/execa/issues/899))
    -   Improved the validation of signals passed to [`subprocess.kill()`](docs/api.md#subprocesskillsignal-error) and to the [`killSignal`](docs/api.md#optionskillsignal) option. ([#1025](https://github.com/sindresorhus/execa/issues/1025))
    
    #### Bug fixes
    
    -   Fixed passing `undefined` values as [options](docs/api.md#options). This now uses the option's default value. ([#712](https://github.com/sindresorhus/execa/issues/712))
    -   Fixed the process crashing when the [`inputFile`](docs/api.md#optionsinputfile) option points to a missing file. ([#609](https://github.com/sindresorhus/execa/issues/609))
    -   Fixed the process crashing when the [`buffer`](docs/api.md#optionsbuffer) option is `false` and [`subprocess.stdout`](docs/api.md#subprocessstdout) [errors](https://nodejs.org/api/stream.html#event-error\_1). ([#729](https://github.com/sindresorhus/execa/issues/729))
    -   Fixed the process crashing when passing [`'overlapped'`](docs/windows.md#asynchronous-io) to the [`stdout`](docs/api.md#optionsstdout) or [`stderr`](docs/api.md#optionsstderr) option with [`execaSync()`](docs/api.md#execasyncfile-arguments-options). ([#949](https://github.com/sindresorhus/execa/issues/949))
    -   Fixed the process crashing when multiple [`'error'`](https://nodejs.org/api/child_process.html#event-error) events are emitted on the subprocess. ([#790](https://github.com/sindresorhus/execa/issues/790))
    -   Fixed the [`reject: false`](docs/api.md#optionsreject) option not being used when the subprocess [fails to spawn](docs/errors.md#failure-reason). ([#734](https://github.com/sindresorhus/execa/issues/734))
    -   Fixed [some inaccuracies](docs/errors.md#failure-reason) with [`error.isTerminated`](docs/api.md#erroristerminated). ([#625](https://github.com/sindresorhus/execa/issues/625), [#719](https://github.com/sindresorhus/execa/issues/719))
        -   It is now `true` when the subprocess fails due to the [`timeout`](docs/api.md#optionstimeout) option.
        -   It is now `true` when calling [`process.kill(subprocess.pid)`](https://nodejs.org/api/process.html#processkillpid-signal), except on Windows.
        -   It is now `false` when using [non-terminating signals](https://nodejs.org/api/child_process.html#subprocesskillsignal) such as `subprocess.kill(0)`.
    -   Fixed missing [`error.signal`](docs/api.md#errorsignal) and [`error.signalDescription`](docs/api.md#errorsignaldescription) when the subprocess [is terminated](docs/termination.md#canceling) by the [`cancelSignal`](docs/api.md#optionscancelsignal) option. ([#724](https://github.com/sindresorhus/execa/issues/724))
    -   Fixed a situation where the [error](docs/api.md#execaerror) returned by an [`execa()`](docs/api.md#execafile-arguments-options) call might be modified by another `execa()` call. ([#796](https://github.com/sindresorhus/execa/issues/796), [#806](https://github.com/sindresorhus/execa/issues/806), [#911](https://github.com/sindresorhus/execa/issues/911))
    -   Fixed the [`verbose`](docs/api.md#optionsverbose) option [printing the command](docs/debugging.md#short-mode) in the wrong order. ([#600](https://github.com/sindresorhus/execa/issues/600))
    -   Fixed using both the [`maxBuffer`](docs/api.md#optionsmaxbuffer) and [`encoding`](docs/api.md#optionsencoding) options. For example, when using [`encoding: 'hex'`](docs/binary.md#encoding), `maxBuffer` will now be measured in hexadecimal characters. Also, [`error.stdout`](docs/api.md#resultstdout), [`error.stderr`](docs/api.md#resultstderr) and [`error.all`](docs/api.md#resultall) were previously not applying the `maxBuffer` option. ([#652](https://github.com/sindresorhus/execa/issues/652), [#696](https://github.com/sindresorhus/execa/issues/696))
    -   Fixed the [`maxBuffer`](docs/api.md#optionsmaxbuffer) option [not truncating](docs/output.md#big-output) [`result.stdout`](docs/api.md#resultstdout) and [`result.stderr`](docs/api.md#resultstderr) when using [`execaSync()`](docs/api.md#execasyncfile-arguments-options). ([#960](https://github.com/sindresorhus/execa/issues/960))
    -   Fixed empty output when using the [`buffer: true`](docs/api.md#optionsbuffer) option (its default value) and [iterating](https://nodejs.org/api/stream.html#readablesymbolasynciterator) over [`subprocess.stdout`](docs/api.md#subprocessstdout) or [`subprocess.stderr`](docs/api.md#subprocessstderr). ([#908](https://github.com/sindresorhus/execa/issues/908))
    -   Fixed [`subprocess.all`](docs/api.md#subprocessall) stream incorrectly being in [object mode](https://nodejs.org/api/stream.html#object-mode). ([#717](https://github.com/sindresorhus/execa/issues/717))
    -   Ensured [`subprocess.stdout`](docs/api.md#subprocessstdout) and [`subprocess.stderr`](docs/api.md#subprocessstderr) are properly [flushed](https://nodejs.org/api/stream.html#buffering) when the subprocess fails. ([#647](https://github.com/sindresorhus/execa/issues/647))
    -   Fixed a race condition leading to random behavior with the [`timeout`](docs/api.md#optionstimeout) option. ([#727](https://github.com/sindresorhus/execa/issues/727))
    
    #### Types (breaking changes)
    
    -   Renamed `CommonOptions` type to [`Options`](types/arguments/options.d.ts) (for [`execa()`](docs/api.md#execafile-arguments-options)) and [`SyncOptions`](types/arguments/options.d.ts) (for [`execaSync()`](docs/api.md#execasyncfile-arguments-options)). ([#678](https://github.com/sindresorhus/execa/issues/678), [#682](https://github.com/sindresorhus/execa/issues/682))
    
    ```diff
    import type {Options} from 'execa';
    
    - const options: CommonOptions = {timeout: 1000};
    + const options: Options = {timeout: 1000};
    ```
    
    -   Renamed `NodeOptions` type to [`Options`](types/arguments/options.d.ts). ([#804](https://github.com/sindresorhus/execa/issues/804))
    
    ```diff
    import type {Options} from 'execa';
    
    - const options: NodeOptions = {nodeOptions: ['--no-warnings']};
    + const options: Options = {nodeOptions: ['--no-warnings']};
    ```
    
    -   Renamed `KillOptions` type to [`Options`](types/arguments/options.d.ts). ([#714](https://github.com/sindresorhus/execa/issues/714))
    
    ```diff
    import type {Options} from 'execa';
    
    - const options: KillOptions = {forceKillAfterTimeout: 1000};
    + const options: Options = {forceKillAfterDelay: 1000};
    ```
    
    -   Removed generic parameters from the [`Options`](types/arguments/options.d.ts) and [`SyncOptions`](types/arguments/options.d.ts) types. ([#681](https://github.com/sindresorhus/execa/issues/681))
    
    ```diff
    import type {Options} from 'execa';
    
    - const options: Options<'utf8'> = {encoding: 'utf8'};
    + const options: Options = {encoding: 'utf8'};
    ```
    
    -   Renamed `ExecaChildProcess` type to [`ResultPromise`](types/subprocess/subprocess.d.ts). This is the type of [`execa()`](docs/api.md#execafile-arguments-options)'s [return value](docs/api.md#return-value), which is both a [`Promise<Result>`](docs/api.md#result) and a [`Subprocess`](docs/api.md#subprocess). ([#897](https://github.com/sindresorhus/execa/issues/897), [#1007](https://github.com/sindresorhus/execa/issues/1007), [#1009](https://github.com/sindresorhus/execa/issues/1009))
    
    ```diff
    import type {ResultPromise, Result} from 'execa';
    
    - const promiseOrSubprocess: ExecaChildProcess = execa('node', ['file.js']);
    + const promiseOrSubprocess: ResultPromise = execa('node', ['file.js']);
    const result: Result = await promiseOrSubprocess;
    promiseOrSubprocess.kill();
    ```
    
    -   Renamed `ExecaChildPromise` type to [`Subprocess`](types/subprocess/subprocess.d.ts). This is the type of the [subprocess instance](docs/api.md#subprocess). ([#897](https://github.com/sindresorhus/execa/issues/897), [#1007](https://github.com/sindresorhus/execa/issues/1007), [#1009](https://github.com/sindresorhus/execa/issues/1009))
    
    ```diff
    import type {Subprocess} from 'execa';
    
    - const subprocess: ExecaChildPromise = execa('node', ['file.js']);
    + const subprocess: Subprocess = execa('node', ['file.js']);
    subprocess.kill();
    ```
    
    -   Renamed `ExecaReturnBase`, `ExecaReturnValue` and `ExecaSyncReturnValue` type to [`Result`](types/return/result.d.ts) (for [`execa()`](docs/api.md#execafile-arguments-options)) and [`SyncResult`](types/return/result.d.ts) (for [`execaSync()`](docs/api.md#execasyncfile-arguments-options)). ([#897](https://github.com/sindresorhus/execa/issues/897), [#1009](https://github.com/sindresorhus/execa/issues/1009))
    
    ```diff
    import type {Result, SyncResult} from 'execa';
    
    - const result: ExecaReturnBase = await execa('node', ['file.js']);
    + const result: Result = await execa('node', ['file.js']);
    
    - const result: ExecaReturnValue = await execa('node', ['file.js']);
    + const result: Result = await execa('node', ['file.js']);
    
    - const result: ExecaSyncReturnValue = execaSync('node', ['file.js']);
    + const result: SyncResult = execaSync('node', ['file.js']);
    ```
    
    -   Renamed the type of the [`stdin`](docs/api.md#optionsstdin) option from `StdioOption` to [`StdinOption`](types/stdio/type.d.ts) (for [`execa()`](docs/api.md#execafile-arguments-options)) and [`StdinSyncOption`](types/stdio/type.d.ts) (for [`execaSync()`](docs/api.md#execasyncfile-arguments-options)). ([#942](https://github.com/sindresorhus/execa/issues/942), [#1008](https://github.com/sindresorhus/execa/issues/1008), [#1012](https://github.com/sindresorhus/execa/issues/1012))
    
    ```diff
    import {execa, type StdinOption} from 'execa';
    
    - const stdin: StdioOption = 'inherit';
    + const stdin: StdinOption = 'inherit';
    await execa('node', ['file.js'], {stdin});
    ```
    
    -   Renamed the type of the [`stdout`](docs/api.md#optionsstdout) and [`stderr`](docs/api.md#optionsstderr) options from `StdioOption` to [`StdoutStderrOption`](types/stdio/type.d.ts) (for [`execa()`](docs/api.md#execafile-arguments-options)) and [`StdoutStderrSyncOption`](types/stdio/type.d.ts) (for [`execaSync()`](docs/api.md#execasyncfile-arguments-options)). ([#942](https://github.com/sindresorhus/execa/issues/942), [#1008](https://github.com/sindresorhus/execa/issues/1008), [#1012](https://github.com/sindresorhus/execa/issues/1012))
    
    ```diff
    import {execa, type StdoutStderrOption} from 'execa';
    
    - const stdout: StdioOption = 'inherit';
    + const stdout: StdoutStderrOption = 'inherit';
    - const stderr: StdioOption = 'inherit';
    + const stderr: StdoutStderrOption = 'inherit';
    await execa('node', ['file.js'], {stdout, stderr});
    ```
    
    -   Renamed the type of the [`stdio`](docs/api.md#optionsstdio) option from `StdioOption[]` to [`Options['stdio']`](types/arguments/options.d.ts) (for [`execa()`](docs/api.md#execafile-arguments-options)) and [`SyncOptions['stdio']`](types/arguments/options.d.ts) (for [`execaSync()`](docs/api.md#execasyncfile-arguments-options)). ([#942](https://github.com/sindresorhus/execa/issues/942), [#1008](https://github.com/sindresorhus/execa/issues/1008))
    
    ```diff
    import {execa, type Options} from 'execa';
    
    - const stdio: readonly StdioOption[] = ['inherit', 'pipe', 'pipe'] as const;
    + const stdio: Options['stdio'] = ['inherit', 'pipe', 'pipe'] as const;
    await execa('node', ['file.js'], {stdio});
    ```
    
    -   The optional generic parameter passed to the [`Result`](types/return/result.d.ts), [`SyncResult`](types/return/result.d.ts), [`ExecaError`](types/return/final-error.d.ts), [`ExecaSyncError`](types/return/final-error.d.ts), [`ResultPromise`](types/subprocess/subprocess.d.ts) and [`Subprocess`](types/subprocess/subprocess.d.ts) types is now an [`Options`](types/arguments/options.d.ts) type. ([#681](https://github.com/sindresorhus/execa/issues/681))
    
    ```diff
    import type {Result} from 'execa';
    
    - const result: ExecaReturnValue<Buffer> = await execa('node', ['file.js'], {encoding: 'buffer'});
    + const result: Result<{encoding: 'buffer'}> = await execa('node', ['file.js'], {encoding: 'buffer'});
    // Or even better, since it is inferred:
    + const result: Result = await execa('node', ['file.js'], {encoding: 'buffer'});
    ```
    
    #### Types (improvements)
    
    -   Stricter types for the [`stdin`](docs/api.md#optionsstdin), [`stdout`](docs/api.md#optionsstdout), [`stderr`](docs/api.md#optionsstderr) and [`stdio`](docs/api.md#optionsstdio) options. ([#634](https://github.com/sindresorhus/execa/issues/634), [#943](https://github.com/sindresorhus/execa/issues/943), [#952](https://github.com/sindresorhus/execa/issues/952))
    -   Stricter types for [`result.stdout`](docs/api.md#resultstdout), [`result.stderr`](docs/api.md#resultstderr), [`result.all`](docs/api.md#resultall), [`subprocess.stdout`](docs/api.md#subprocessstdout), [`subprocess.stderr`](docs/api.md#subprocessstderr) and [`subprocess.all`](docs/api.md#subprocessall). ([#681](https://github.com/sindresorhus/execa/issues/681), [#684](https://github.com/sindresorhus/execa/issues/684), [#687](https://github.com/sindresorhus/execa/issues/687), [#689](https://github.com/sindresorhus/execa/issues/689), [#833](https://github.com/sindresorhus/execa/issues/833))
    -   Stricter types for the [synchronous methods](docs/execution.md#synchronous-execution) like [`execaSync()`](docs/api.md#execasyncfile-arguments-options). ([#678](https://github.com/sindresorhus/execa/issues/678), [#939](https://github.com/sindresorhus/execa/issues/939))
    -   Stricter types for the [`reject`](docs/api.md#optionsreject) option. ([#688](https://github.com/sindresorhus/execa/issues/688))
    -   Stricter types for [`error.signal`](docs/api.md#errorsignal) and the [`killSignal`](docs/api.md#optionskillsignal) option. ([#1025](https://github.com/sindresorhus/execa/issues/1025))
    -   Fixed the type of [`error.exitCode`](docs/api.md#errorexitcode), since that field is sometimes `undefined`. ([#680](https://github.com/sindresorhus/execa/issues/680))
    -   Refactored and improved the types. (by [@koshic](https://github.com/koshic)) ([#583](https://github.com/sindresorhus/execa/issues/583))
    
    #### Documentation
    
    -   Added [user guides](readme.md#documentation) to let you explore each feature with many examples. ([#989](https://github.com/sindresorhus/execa/issues/989), [#996](https://github.com/sindresorhus/execa/issues/996), [#1015](https://github.com/sindresorhus/execa/issues/1015), [#1022](https://github.com/sindresorhus/execa/issues/1022), [#1026](https://github.com/sindresorhus/execa/issues/1026))
    -   Improved the [documentation](readme.md#documentation) and fixed inaccuracies. ([#626](https://github.com/sindresorhus/execa/issues/626), [#637](https://github.com/sindresorhus/execa/issues/637), [#640](https://github.com/sindresorhus/execa/issues/640), [#641](https://github.com/sindresorhus/execa/issues/641), [#644](https://github.com/sindresorhus/execa/issues/644), [#669](https://github.com/sindresorhus/execa/issues/669), [#680](https://github.com/sindresorhus/execa/issues/680), [#710](https://github.com/sindresorhus/execa/issues/710), [#759](https://github.com/sindresorhus/execa/issues/759), [#800](https://github.com/sindresorhus/execa/issues/800), [#801](https://github.com/sindresorhus/execa/issues/801), [#802](https://github.com/sindresorhus/execa/issues/802), [#860](https://github.com/sindresorhus/execa/issues/860), [#870](https://github.com/sindresorhus/execa/issues/870), [#876](https://github.com/sindresorhus/execa/issues/876), [#888](https://github.com/sindresorhus/execa/issues/888), [#907](https://github.com/sindresorhus/execa/issues/907), [#921](https://github.com/sindresorhus/execa/issues/921), [#935](https://github.com/sindresorhus/execa/issues/935), [#967](https://github.com/sindresorhus/execa/issues/967), [#968](https://github.com/sindresorhus/execa/issues/968), [#994](https://github.com/sindresorhus/execa/issues/994), [#998](https://github.com/sindresorhus/execa/issues/998), [#999](https://github.com/sindresorhus/execa/issues/999), [#1000](https://github.com/sindresorhus/execa/issues/1000), [#1003](https://github.com/sindresorhus/execa/issues/1003), [#1005](https://github.com/sindresorhus/execa/issues/1005), [#1006](https://github.com/sindresorhus/execa/issues/1006), [#1010](https://github.com/sindresorhus/execa/issues/1010))
    -   Fixed the examples for the [Script interface](docs/bash.md). (by [@am0o0](https://github.com/am0o0)) ([#575](https://github.com/sindresorhus/execa/issues/575))
    -   Corrected some English grammar mistakes. (by [@codesmith-emmy](https://github.com/codesmith-emmy)) ([#731](https://github.com/sindresorhus/execa/issues/731))
    renovate[bot] authored Aug 22, 2024
    Configuration menu
    Copy the full SHA
    99c5b3c View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2024

  1. chore(deps): update dependency vitest to v2

    ##### [v2.0.5](https://github.com/vitest-dev/vitest/releases/tag/v2.0.5)
    
    #####    🚀 Features
    
    -   Introduce experimental reported tasks  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6149 [<samp>(13d85)</samp>](vitest-dev/vitest@13d85bd1)
        -   This is part of the experimental API and doesn't follow semver. We are hoping to stabilize it for 2.1. If you are working with custom reporters, give this a go!
    
    #####    🐞 Bug Fixes
    
    -   Show a difference between string characters if both values are strings  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6191 [<samp>(29176)</samp>](vitest-dev/vitest@291766d7)
    -   `testNamePattern` adds leading space  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6186 [<samp>(073a5)</samp>](vitest-dev/vitest@073a50c9)
    -   **browser**:
        -   Don't bundle `afterEach` cleanup hooks in node entrypoint  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6192 [<samp>(e6fbc)</samp>](vitest-dev/vitest@e6fbc620)
        -   UserEvent.setup initiates a separate state for userEvent instance  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6088 [<samp>(883f3)</samp>](vitest-dev/vitest@883f3482)
        -   Correctly import optimized module in vi.importActual  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6219 [<samp>(804ff)</samp>](vitest-dev/vitest@804ff2fd)
        -   Passing options to hover/unhover  -  by [@mneveroff](https://github.com/MNeverOff) in vitest-dev/vitest#6175 [<samp>(d4c00)</samp>](vitest-dev/vitest@d4c005bc)
        -   Improve unique CSS selector generation  -  by [@zacharyvoase](https://github.com/zacharyvoase) and **Zack Voase** in vitest-dev/vitest#6243 [<samp>(e7acd)</samp>](vitest-dev/vitest@e7acd0cf)
    -   **vitest**:
        -   Remove nuxt from auto inline deps  -  by [@sheremet-va](https://github.com/sheremet-va) [<samp>(93882)</samp>](vitest-dev/vitest@93882f38)
        -   Improve `defineProject` and `defineWorkspace` types  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6198 [<samp>(8cd82)</samp>](vitest-dev/vitest@8cd8272b)
        -   Correctly resolve mocked `node:*` imports in `__mocks__` folder  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6204 [<samp>(a48be)</samp>](vitest-dev/vitest@a48be6ff)
    -   **web-worker**:
        -   Expose globals on self  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6170 [<samp>(12bb5)</samp>](vitest-dev/vitest@12bb567e)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v2.0.4...v2.0.5)
    ##### [v2.0.4](https://github.com/vitest-dev/vitest/releases/tag/v2.0.4)
    
    #####    🐞 Bug Fixes
    
    -   One-line environment options  -  by [@hahanein](https://github.com/hahanein) in vitest-dev/vitest#5105 [<samp>(38269)</samp>](vitest-dev/vitest@38269415)
    -   Resolve assets imported with `require`  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6159 [<samp>(807a2)</samp>](vitest-dev/vitest@807a2cbc)
    -   **browser**:
        -   Don't panic if [@vitest/browser](https://github.com/vitest/browser) is installed outside of project root  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6135 [<samp>(ccfcd)</samp>](vitest-dev/vitest@ccfcd488)
        -   Set global filepath  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6190 [<samp>(0d0b4)</samp>](vitest-dev/vitest@0d0b46b1)
        -   Allow preview and open in the editor screenshot error from ui  -  by [@userquin](https://github.com/userquin) in vitest-dev/vitest#6113 [<samp>(2d620)</samp>](vitest-dev/vitest@2d62051f)
    -   **coverage**:
        -   Global thresholds to include files from glob thresholds  -  by [@thor-juhasz](https://github.com/thor-juhasz) and [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6172 [<samp>(02e3f)</samp>](vitest-dev/vitest@02e3f003)
        -   Consistent type-only file handling  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6183 [<samp>(90576)</samp>](vitest-dev/vitest@90576148)
        -   Ignore `*.cts` files  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6189 [<samp>(5da45)</samp>](vitest-dev/vitest@5da45db1)
        -   Add `thresholds.<glob>.100` option  -  by [@thor-juhasz](https://github.com/thor-juhasz) and [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6174 [<samp>(f6845)</samp>](vitest-dev/vitest@f68453f8)
    -   **spy**:
        -   Fix `mockImplementation` for function overload and unions  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6181 [<samp>(7a75b)</samp>](vitest-dev/vitest@7a75bd4c)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v2.0.3...v2.0.4)
    ##### [v2.0.3](https://github.com/vitest-dev/vitest/releases/tag/v2.0.3)
    
    #####    🚀 Features
    
    -   **ui**: Show all suites/tests when parent matches  -  by [@userquin](https://github.com/userquin) in vitest-dev/vitest#6106 [<samp>(840e0)</samp>](vitest-dev/vitest@840e02f1)
    
    #####    🐞 Bug Fixes
    
    -   `--inspect-brk` stop on Windows  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6110 [<samp>(f8519)</samp>](vitest-dev/vitest@f851982e)
    -   **browser**:
        -   Don't import from "vite"  -  by [@sheremet-va](https://github.com/sheremet-va) [<samp>(35655)</samp>](vitest-dev/vitest@35655419)
        -   Allow immidiate reinvalidation of mocked dependencies  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6108 [<samp>(f44cc)</samp>](vitest-dev/vitest@f44cc917)
    -   **spy**:
        -   Fix type error when assigning `vi.spyOn` to `MockInstance` of function overload  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6086 [<samp>(e9f9a)</samp>](vitest-dev/vitest@e9f9adcd)
    -   **vite-node**:
        -   Remove suffix slash on file protocol for window  -  by [@syi0808](https://github.com/syi0808) in vitest-dev/vitest#6109 [<samp>(93ebd)</samp>](vitest-dev/vitest@93ebdefc)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v2.0.2...v2.0.3)
    ##### [v2.0.2](vitest-dev/vitest@v2.0.1...v2.0.2)
    
    ##### [v2.0.1](https://github.com/vitest-dev/vitest/releases/tag/v2.0.1)
    
    #####    🐞 Bug Fixes
    
    -   **browser**: Correctly inherit browser config in a workspace  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6054 [<samp>(4b03e)</samp>](vitest-dev/vitest@4b03e72b)
    -   **ui**: Move virtual scroller to dev dependencies  -  by [@userquin](https://github.com/userquin) in vitest-dev/vitest#6053 [<samp>(f94ed)</samp>](vitest-dev/vitest@f94ede02)
    -   **vitest**: Print only running files, not every file  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6052 [<samp>(4d559)</samp>](vitest-dev/vitest@4d5597df)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v2.0.0...v2.0.1)
    ##### [v2.0.0](https://github.com/vitest-dev/vitest/releases/tag/v2.0.0)
    
    Vitest 2.0 is here! This release page lists all changes made to the project during the beta. For the migration guide, please refer to the [documentation](https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0).
    
    ##### 🚨 Breaking Changes
    
    -   Simplify mock function generic types and align with jest - by **[@hi-ogawa](https://github.com/hi-ogawa)** in vitest-dev/vitest#4784 [<samp>(a0c1d37)</samp>](vitest-dev/vitest@a0c1d37)
    -   Remove `--segfault-retry` - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5514 [<samp>(ed60e)</samp>](vitest-dev/vitest@ed60e405e)
        -   This flag was introduced to combat `threads` segfaults. Our current recommendation is to use the new default `forks` pool instead.
    -   Run suite hooks in a stack - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5609 [<samp>(1277d)</samp>](vitest-dev/vitest@1277dc1e3)
        -   This feels like a more sensible default. Especially with the new [`onTestFinished`](https://vitest.dev/api/#ontestfinished) hook. This can make your tests run a little bit slower.
    -   Enable `coverage.ignoreEmptyLines` by default - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5543 [<samp>(31994)</samp>](vitest-dev/vitest@31994942f)
        -   ⚠️ This change may cause significant differences in your coverage results compared to Vitest v1. These changes are expected as coverage reporting is now more accurate. See vitest-dev/vitest#5423 for more details.
    -   Add correct location and snapshot fields in json reporter - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5434 [<samp>(bcccc)</samp>](vitest-dev/vitest@bcccce6df)
        -   Previously, the `location` field pointed to the error location instead of the test location. Now it is aligned with jest and contains the `line` and `column` of a test function, but requires [`includeTaskLocation`](https://vitest.dev/config/#includeTaskLocation) to be enabled.
    -   Update dependency chai to v5 - by **renovate\[bot]** and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5135 [<samp>(73646)</samp>](vitest-dev/vitest@73646b638)
    -   Remove watchExclude - by [@patak-dev](https://github.com/patak-dev) in vitest-dev/vitest#5177 [<samp>(d7371)</samp>](vitest-dev/vitest@d7371eae3)
    -   Change default `pool` to `'forks'` - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5047 [<samp>(7f8f9)</samp>](vitest-dev/vitest@7f8f9c0c0)
        -   This change is done for compatibility issues
        -   This pool may be slightly slower than previous `threads` pool: https://vitest.dev/guide/improving-performance.html#pool
    -   `--merge-reports` to support coverage - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5736 [<samp>(b7438)</samp>](vitest-dev/vitest@b7438b9be)
    -   Add promise-based return assertions, do not auto-resolve returned promises - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5749 [<samp>(5f710)</samp>](vitest-dev/vitest@5f710182e)
        -   ⚠️ Vitest no longer unwraps promises in `spy.mock.returns`. If the function is async or returns a promise, it will always succeed and have a `Promise` in `results`. To make migration easier, we introduced `spy.mock.settledResults` that unwraps promises and `expect().toHaveResolved()` matcher that accepts unwrapped value.
    -   Do not exit process if global setup has failed - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5726 [<samp>(ddb09)</samp>](vitest-dev/vitest@ddb09eb12)
    -   Don't exit process if config failed - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5715 [<samp>(f232f)</samp>](vitest-dev/vitest@f232fdd61)
    -   Add meta to `json` output - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5802 [<samp>(dd754)</samp>](vitest-dev/vitest@dd754c103)
    -   Rename `indexScripts` to `orchestratorScripts` in the browser config - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5842 [<samp>(49f34)</samp>](vitest-dev/vitest@49f34ec47)
    -   Add "vitest list" API to print collected tests without running them - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6013 [<samp>(583dd)</samp>](vitest-dev/vitest@583dd8a98)
        -   ⚠️ This changes the custom `pool` API - now requires `collectTests` method alongside `runTests`.
    -   Remove the empty suite from the runner - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5435 [<samp>(dbbbe)</samp>](vitest-dev/vitest@dbbbe4304)
    -   Support concurrent suites - by **[@hi-ogawa](https://github.com/hi-ogawa)** in vitest-dev/vitest#5491 [<samp>(222ce44)</samp>](vitest-dev/vitest@222ce44)
    
    ##### 🚀 Features
    
    -   Pretty print diffs coming from cause - by [@dubzzz](https://github.com/dubzzz) in vitest-dev/vitest#5660 [<samp>(6faf8)</samp>](vitest-dev/vitest@6faf8f84b)
    -   Allow import statement as vi.mock path for better IDE support - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5690 [<samp>(a99a1)</samp>](vitest-dev/vitest@a99a14c1c)
    -   Remove deprecated options - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5696 [<samp>(5c308)</samp>](vitest-dev/vitest@5c308edc6)
    -   Add blob reporter - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5663 [<samp>(e2053)</samp>](vitest-dev/vitest@e20538a36)
    -   Add expect.poll utility - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5708 [<samp>(e2e0f)</samp>](vitest-dev/vitest@e2e0ff46a)
    -   Add browser.ui option - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5771 [<samp>(a5033)</samp>](vitest-dev/vitest@a50330eea)
    -   Add median to `--output-json` - by [@Joristdh](https://github.com/Joristdh) in vitest-dev/vitest#5745 [<samp>(0766b)</samp>](vitest-dev/vitest@0766b7f72)
    -   Allow augmenting config.test.env - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5784 [<samp>(b2469)</samp>](vitest-dev/vitest@b24691efd)
    -   Implement module mocking in browser mode - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5765 [<samp>(7b2f6)</samp>](vitest-dev/vitest@7b2f64cfa)
    -   Allow configuring expect options in the config - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5729 [<samp>(fc53f)</samp>](vitest-dev/vitest@fc53f5634)
    -   Add an option to print console stack trace - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5720 [<samp>(e4fe6)</samp>](vitest-dev/vitest@e4fe6f51a)
    -   Add browser frame to UI - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5808 [<samp>(3796d)</samp>](vitest-dev/vitest@3796dd7e0)
    -   Image type add bmp - by **btea** in vitest-dev/vitest#5921 [<samp>(98f9b)</samp>](vitest-dev/vitest@98f9b7ab9)
    -   Add an option to return base64 from page.screenshot - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5993 [<samp>(be323)</samp>](vitest-dev/vitest@be3231763)
    -   Expose `parseAst`, `parseAstAsync` from vite - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(f645e)</samp>](vitest-dev/vitest@f645e48c5)
    -   **browser**:
        -   Add commands to communicate betweens server and the browser - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5097 [<samp>(aa431)</samp>](vitest-dev/vitest@aa431f4db)
        -   Do not reload the page during watch mode - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5810 [<samp>(e5b9a)</samp>](vitest-dev/vitest@e5b9a0be4)
        -   Support changing the viewport - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5811 [<samp>(71851)</samp>](vitest-dev/vitest@718512d80)
        -   Add browser iframe mouse interaction - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5815 [<samp>(f29b9)</samp>](vitest-dev/vitest@f29b9d408)
        -   Support `click` event - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5777 [<samp>(839c3)</samp>](vitest-dev/vitest@839c39f06)
        -   Rename none provider to preview, make it default - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5826 [<samp>(18310)</samp>](vitest-dev/vitest@1831008b1)
        -   Run tests in parallel in headless mode, add `page.screenshot` method - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5853 [<samp>(81c42)</samp>](vitest-dev/vitest@81c42fc8a)
        -   Implement several `userEvent` methods, add `fill` and `dragAndDrop` events - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5882 [<samp>(4dbea)</samp>](vitest-dev/vitest@4dbea4aed)
        -   Introduce `expect.dom` method and bundle `jest-dom` matchers with `@vitest/browser` - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5910 [<samp>(3a96a)</samp>](vitest-dev/vitest@3a96a3d0e)
        -   Expose CDP in the browser - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5938 [<samp>(bec43)</samp>](vitest-dev/vitest@bec434cb6)
        -   Add "init" command for browser tests - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5960 [<samp>(49e97)</samp>](vitest-dev/vitest@49e973cb9)
        -   Add an option to take screenshots if the browser test fails - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5975 [<samp>(154cb)</samp>](vitest-dev/vitest@154cb22de)
        -   Add `tripleClick` to interactive api - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5987 [<samp>(200a4)</samp>](vitest-dev/vitest@200a4349a)
        -   Playwright provider doesn't allow resizing the browser viewport - by [@userquin](https://github.com/userquin) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5984 [<samp>(ff978)</samp>](vitest-dev/vitest@ff978e58d)
    -   **config**:
        -   Allow percentage value for workers option - by [@syi0808](https://github.com/syi0808) in vitest-dev/vitest#5982 [<samp>(b1a27)</samp>](vitest-dev/vitest@b1a27d404)
    -   **runner**:
        -   Implement `test.for` - by [@hi-ogawa](https://github.com/hi-ogawa) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5861 [<samp>(c2380)</samp>](vitest-dev/vitest@c238072fd)
    -   **spy**:
        -   Collect mock.contexts - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5955 [<samp>(3b31a)</samp>](vitest-dev/vitest@3b31a56d5)
    -   **ui**:
        -   Render tests in a tree - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5807 [<samp>(7900f)</samp>](vitest-dev/vitest@7900f9f89)
        -   Load module graph on tab selection - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5844 [<samp>(b117e)</samp>](vitest-dev/vitest@b117e8756)
        -   Replace navigation tree with test explorer - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5907 [<samp>(45dfc)</samp>](vitest-dev/vitest@45dfc95ae)
        -   Add initializing explorer logic - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5941 [<samp>(c31c4)</samp>](vitest-dev/vitest@c31c41c72)
        -   Add action to explorer item to show the test/suite line in the source code tab - by [@userquin](https://github.com/userquin) and **Anjorin Damilare** in vitest-dev/vitest#5948 [<samp>(7ec29)</samp>](vitest-dev/vitest@7ec298eb3)
    -   **ws-client**:
        -   Allow change reactive for state, filesMap and idMap - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5906 [<samp>(e6020)</samp>](vitest-dev/vitest@e6020b9c2)
    
    ##### 🐞 Bug Fixes
    
    -   Print console statements in vmThreads - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5678 [<samp>(34a80)</samp>](vitest-dev/vitest@34a80b392)
    -   Repeatable `--exclude` option - by [@fregante](https://github.com/fregante) in vitest-dev/vitest#5782 [<samp>(d6700)</samp>](vitest-dev/vitest@d6700bbd8)
    -   Remove browser.fileParallelism - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5790 [<samp>(b881e)</samp>](vitest-dev/vitest@b881e88b2)
    -   Install UI icons - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(b84f1)</samp>](vitest-dev/vitest@b84f1721d)
    -   Remove process.exit if workspace project failed to be created - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5804 [<samp>(a820e)</samp>](vitest-dev/vitest@a820e7ac6)
    -   Vi.waitFor/vi.waitUntil interval is now cleared after it times out - by [@pedro00dk](https://github.com/pedro00dk) in vitest-dev/vitest#5875 [<samp>(04107)</samp>](vitest-dev/vitest@041076e7c)
    -   ToJSON recursive error serialization - by [@eddienubes](https://github.com/eddienubes) in vitest-dev/vitest#5848 and vitest-dev/vitest#5884 [<samp>(8d55d)</samp>](vitest-dev/vitest@8d55d6bd4)
    -   Print error properties only in verbose reporter - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5917 [<samp>(2bd8d)</samp>](vitest-dev/vitest@2bd8d9d6f)
    -   Use TTY reporter when running in Deno - by [@marvinhagemeister](https://github.com/marvinhagemeister) in vitest-dev/vitest#5972 [<samp>(e0f45)</samp>](vitest-dev/vitest@e0f45cb57)
    -   Don't override uppercase - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(caef4)</samp>](vitest-dev/vitest@caef40a0b)
    -   Clear screen and scrollback on iTerm2 - by [@kxalex](https://github.com/kxalex) in vitest-dev/vitest#5978 [<samp>(d7f23)</samp>](vitest-dev/vitest@d7f23d08c)
    -   Include pretty-format in [@vitest/runner](https://github.com/vitest/runner) for optimization on npm - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(42bd4)</samp>](vitest-dev/vitest@42bd4a259)
    -   Transpile esnext to node18 to support newest JS and TS features - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#4409 [<samp>(8f65a)</samp>](vitest-dev/vitest@8f65ae906)
    -   **api**:
        -   Correct `project.provide` type - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5959 [<samp>(0eda9)</samp>](vitest-dev/vitest@0eda99de9)
        -   Don't call process.exit manually - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5926 [<samp>(e9b63)</samp>](vitest-dev/vitest@e9b638d40)
    -   **browser**:
        -   Display UI - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(d41e4)</samp>](vitest-dev/vitest@d41e46a81)
        -   Browser actions icons colors - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5816 [<samp>(f9d9b)</samp>](vitest-dev/vitest@f9d9b3bef)
        -   Restore the original viewport when unselecting the preset viewport - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5821 [<samp>(5ebb3)</samp>](vitest-dev/vitest@5ebb3abf5)
        -   Don't get stuck after the manual page refresh - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(2220b)</samp>](vitest-dev/vitest@2220bb3fe)
        -   Use iframe id instead of calculating it from filenames - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5823 [<samp>(34a31)</samp>](vitest-dev/vitest@34a310da1)
        -   Always clean up iframes on rerun - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5827 [<samp>(087fa)</samp>](vitest-dev/vitest@087fa87c3)
        -   Support [@testing-library/vue](https://github.com/testing-library/vue) in browser mode out of the box - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(76b82)</samp>](vitest-dev/vitest@76b82e5b9)
        -   Print correct transformed module graph - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5833 [<samp>(a7581)</samp>](vitest-dev/vitest@a75815756)
        -   Use `preview` provider when running in StackBlitz - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5836 [<samp>(76e13)</samp>](vitest-dev/vitest@76e13587c)
        -   Specify entries for correct deps optimization - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5839 [<samp>(c79b3)</samp>](vitest-dev/vitest@c79b3f1f9)
        -   Allow iframe to load even if there is a custom CSP header - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5841 [<samp>(caaaf)</samp>](vitest-dev/vitest@caaafd903)
        -   Don't optimize Vitest dependencies - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5843 [<samp>(f15b4)</samp>](vitest-dev/vitest@f15b4e99d)
        -   Set server.open to false and move error handling after init - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5845 [<samp>(47003)</samp>](vitest-dev/vitest@470036794)
        -   Show correct prepare time - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5852 [<samp>(52d54)</samp>](vitest-dev/vitest@52d545bf9)
        -   Resolve `coverage.reporter` from string values - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5920 [<samp>(f33da)</samp>](vitest-dev/vitest@f33dabbef)
        -   Correctly update inline snapshot if changed - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5925 [<samp>(2380c)</samp>](vitest-dev/vitest@2380cb95e)
        -   Remove "util" warning - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5935 [<samp>(48f28)</samp>](vitest-dev/vitest@48f28f731)
        -   Remove hacky retry - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5971 [<samp>(2a2c9)</samp>](vitest-dev/vitest@2a2c9085a)
        -   Make userEvent more stable when running in parallel - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5974 [<samp>(14a21)</samp>](vitest-dev/vitest@14a217d53)
        -   Print screenshot path alongside the test error message - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5992 [<samp>(15289)</samp>](vitest-dev/vitest@152891b3d)
        -   Print correct stack trace in source files - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6003 [<samp>(62aa7)</samp>](vitest-dev/vitest@62aa72081)
        -   Correctly mock optimized cjs dependencies - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6035 [<samp>(057b4)</samp>](vitest-dev/vitest@057b4f34b)
        -   Support shadow root and svg elements - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6036 [<samp>(2e3c8)</samp>](vitest-dev/vitest@2e3c872ae)
    -   **coverage**:
        -   Clean up empty coverage reports directory - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5731 [<samp>(c469c)</samp>](vitest-dev/vitest@c469c74d7)
        -   `thresholds.autoUpdate` to support `mergeConfig` - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5818 [<samp>(7afb3)</samp>](vitest-dev/vitest@7afb3682f)
        -   Pass thresholds errors to `stderr` of `startVitest()` - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5954 [<samp>(70805)</samp>](vitest-dev/vitest@708051319)
        -   Exclude bench files from coverage - by [@kouak](https://github.com/kouak) in vitest-dev/vitest#5983 [<samp>(429e1)</samp>](vitest-dev/vitest@429e1a7f8)
        -   Vite to ignore dynamic import of provider - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5998 [<samp>(6d884)</samp>](vitest-dev/vitest@6d8848e86)
        -   Istanbul to support import attributes - by [@Gravitonic](https://github.com/Gravitonic) in vitest-dev/vitest#6006 [<samp>(2898a)</samp>](vitest-dev/vitest@2898a525d)
        -   Support overriding `exclude` - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5997 [<samp>(169bc)</samp>](vitest-dev/vitest@169bc1fde)
        -   Remove work-around for implicit `else` - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6014 [<samp>(368c1)</samp>](vitest-dev/vitest@368c13728)
    -   **deps**:
        -   Update dependency [@testing-library/dom](https://github.com/testing-library/dom) to v10 - by **renovate\[bot]** in vitest-dev/vitest#5866 [<samp>(e9745)</samp>](vitest-dev/vitest@e9745997e)
        -   Update vulnerable `test-exclude` to v7 - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5867 [<samp>(0a715)</samp>](vitest-dev/vitest@0a715946b)
    -   **expect**:
        -   Fix immutable.js iterable equality - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5692 [<samp>(1532c)</samp>](vitest-dev/vitest@1532c19a0)
    -   **forks**:
        -   Resolve `poolOptions.<name>.isolate` from `forks` options - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#5840 [<samp>(a60a1)</samp>](vitest-dev/vitest@a60a140ef)
    -   **runner**:
        -   Ensure inner suite { sequential: true } correctly overrides outer suite { concurrent: true } - by [@pengooseDev](https://github.com/pengooseDev) in vitest-dev/vitest#5737 [<samp>(a20e7)</samp>](vitest-dev/vitest@a20e75b89)
        -   Ensure test.each print -0 and -NaN properly - by [@pengooseDev](https://github.com/pengooseDev) in vitest-dev/vitest#5806 [<samp>(9ac8f)</samp>](vitest-dev/vitest@9ac8ff9bd)
    -   **snapshot**:
        -   Fix `toMatchFileSnapshot` with empty file - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5894 [<samp>(88006)</samp>](vitest-dev/vitest@8800601d2)
    -   **spy**:
        -   Correctly track constructor's "this" type - by [@sheremet-va](https://github.com/sheremet-va) [<samp>(4776e)</samp>](vitest-dev/vitest@4776eca1d)
    -   **types**:
        -   Mark pool options as not available in project config - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5934 [<samp>(486fd)</samp>](vitest-dev/vitest@486fd1169)
    -   **ui**:
        -   Show correct module graph and project name in a Vitest workspace - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5792 [<samp>(48c50)</samp>](vitest-dev/vitest@48c502fbe)
        -   Update running todo tests inside todo suites (each) - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5939 [<samp>(63ae1)</samp>](vitest-dev/vitest@63ae10bd9)
        -   `FileDetails` title status icon not being updated - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5942 [<samp>(e9ddf)</samp>](vitest-dev/vitest@e9ddf9ce2)
    -   **ui, browser**:
        -   Disable mouse events when resizing main navigation panel - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5863 [<samp>(7cbd9)</samp>](vitest-dev/vitest@7cbd943c7)
    -   **utils**:
        -   Produce valid snapshot names - by [@dubzzz](https://github.com/dubzzz) in vitest-dev/vitest#5724 [<samp>(1ec61)</samp>](vitest-dev/vitest@1ec61ceee)
        -   Fix color util maximum call stack error - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#5733 [<samp>(a4ec5)</samp>](vitest-dev/vitest@a4ec58319)
        -   Package exports - by [@userquin](https://github.com/userquin) in vitest-dev/vitest#5847 [<samp>(07876)</samp>](vitest-dev/vitest@07876b7e0)
    -   **vite-node**:
        -   Expose all envs from .env file, not just with a prefix `VITE_` - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6017 [<samp>(d87be)</samp>](vitest-dev/vitest@d87bef961)
    -   **vitest**:
        -   Expose `provide` to the public API - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5897 [<samp>(66e64)</samp>](vitest-dev/vitest@66e648ff8)
        -   Cache fs code only for forks pool - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#5909 [<samp>(e30d9)</samp>](vitest-dev/vitest@e30d9b4d5)
        -   Allow testing unandled rejection/exception - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6016 [<samp>(c8d56)</samp>](vitest-dev/vitest@c8d56fe5f)
        -   Show all failed tests when rerunning a test - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6022 [<samp>(91ba6)</samp>](vitest-dev/vitest@91ba6f95e)
    
    ##### [View changes on GitHub](vitest-dev/vitest@6b29f3d...v2.0.0)
    renovate[bot] authored Aug 23, 2024
    Configuration menu
    Copy the full SHA
    431a8d7 View commit details
    Browse the repository at this point in the history
  2. fix(deps): update dependency @rushstack/eslint-config to v4

    ##### [v4.0.1](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#401)
    
    Wed, 14 Aug 2024 22:37:32 GMT
    
    *Version update only*
    ##### [v4.0.0](https://github.com/microsoft/rushstack/blob/HEAD/eslint/eslint-config/CHANGELOG.md#400)
    
    Tue, 13 Aug 2024 18:17:05 GMT
    
    ##### Breaking changes
    
    -   \[BREAKING CHANGE] Bump "[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin)" to "~8.1.0" and "[@typescript-eslint/eslint-parser](https://github.com/typescript-eslint/eslint-parser)" to "~8.1.0". Due to these changes, node@>=17.0.0 and eslint@^8.57.0 are now required due to breaking changes in the newer rules set.
    renovate[bot] authored Aug 23, 2024
    Configuration menu
    Copy the full SHA
    fbd1835 View commit details
    Browse the repository at this point in the history
  3. fix(deps): update dependency eslint-config-xo-typescript to v6

    ##### [v6.0.0](https://github.com/xojs/eslint-config-xo-typescript/releases/tag/v6.0.0)
    
    ##### New rules
    
    -   [`@typescript-eslint/no-wrapper-object-types`](https://typescript-eslint.io/rules/no-wrapper-object-types/)  [`69b266f`](xojs/eslint-config-xo-typescript@69b266f)
    -   [`@typescript-eslint/no-unsafe-function-type`](https://typescript-eslint.io/rules/no-unsafe-function-type/)  [`ecc1c11`](xojs/eslint-config-xo-typescript@ecc1c11)
    
    ##### Breaking
    
    -   Require Node.js 18.18
    -   Require ESLint 9
    -   Update to flat config, ESLint 9, and typescript-eslint 8  [`5c79f46`](xojs/eslint-config-xo-typescript@5c79f46)
        -   ESLint 9: https://eslint.org/blog/2024/04/eslint-v9.0.0-released/
        -   typescript-eslint 8: https://typescript-eslint.io/blog/announcing-typescript-eslint-v8
        -   Migrate config: https://eslint.org/docs/latest/use/configure/migration-guide
    -   You no longer need to install `eslint-config-xo` separately
    
    ##### Improvements
    
    -   Migrate deprecated rules to [`@stylistic`](https://eslint.style)
    ##### [v5.0.0](https://github.com/xojs/eslint-config-xo-typescript/releases/tag/v5.0.0)
    
    -   Add [`@typescript-eslint/no-unnecessary-parameter-property-assignment`](https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment/) rule  [`7dec07a`](xojs/eslint-config-xo-typescript@7dec07a)
    -   Add [`@typescript-eslint/use-unknown-in-catch-callback-variable`](https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable/) rule  [`047d2ba`](xojs/eslint-config-xo-typescript@047d2ba)
    -   Remove deprecated `@typescript-eslint/prefer-ts-expect-error` rule  [`3271346`](xojs/eslint-config-xo-typescript@3271346)
    ##### [v4.0.0](https://github.com/xojs/eslint-config-xo-typescript/releases/tag/v4.0.0)
    
    -   Disable `default-case` rule to avoid conflict with stricter `@typescript-eslint/switch-exhaustiveness-check` rule ([#85](xojs/eslint-config-xo-typescript#85))  [`8cb7722`](xojs/eslint-config-xo-typescript@8cb7722)
    ##### [v3.0.0](https://github.com/xojs/eslint-config-xo-typescript/releases/tag/v3.0.0)
    
    -   Revert "Revert "Update [@typescript-eslint](https://github.com/typescript-eslint) ([#82](xojs/eslint-config-xo-typescript#82))""  [`0f392ac`](xojs/eslint-config-xo-typescript@0f392ac)
    ##### [v2.1.1](https://github.com/xojs/eslint-config-xo-typescript/releases/tag/v2.1.1)
    
    -   Revert "Update `@typescript-eslint` ([#82](xojs/eslint-config-xo-typescript#82))"  [`fbafd4d`](xojs/eslint-config-xo-typescript@fbafd4d)
    ##### [v2.1.0](https://github.com/xojs/eslint-config-xo-typescript/releases/tag/v2.1.0)
    
    -   Update `@typescript-eslint` ([#82](xojs/eslint-config-xo-typescript#82))  [`9b65605`](xojs/eslint-config-xo-typescript@9b65605)
    ##### [v2.0.0](https://github.com/xojs/eslint-config-xo-typescript/releases/tag/v2.0.0)
    
    ##### Breaking
    
    -   Require Node.js 18  [`ae44391`](xojs/eslint-config-xo-typescript@ae44391)
    -   Ban `Buffer` type in favor of `Uint8Array`  [`d7fff2e`](xojs/eslint-config-xo-typescript@d7fff2e)
        -   [Learn more](https://sindresorhus.com/blog/goodbye-nodejs-buffer)
    
    ##### New rules
    
    -   [`@typescript-eslint/prefer-find`](https://typescript-eslint.io/rules/prefer-find/)  [`0b25758`](xojs/eslint-config-xo-typescript@0b25758)
    -   [`@typescript-eslint/no-array-delete`](https://typescript-eslint.io/rules/no-array-delete/)  [`819862d`](xojs/eslint-config-xo-typescript@819862d)
    -   [`@typescript-eslint/prefer-promise-reject-errors`](https://eslint.org/docs/latest/rules/prefer-promise-reject-errors)  [`9533972`](xojs/eslint-config-xo-typescript@9533972)
    
    ##### Improvements
    
    -   `@typescript-eslint/switch-exhaustiveness-check`: Make it stricter  [`df07e88`](xojs/eslint-config-xo-typescript@df07e88)
    renovate[bot] authored Aug 23, 2024
    Configuration menu
    Copy the full SHA
    2c87832 View commit details
    Browse the repository at this point in the history
  4. fix(deps): update dependency eslint-plugin-functional to v7

    ##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)
    
    ##### Bug Fixes
    
    -   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
    ##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)
    
    ##### Bug Fixes
    
    -   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))
    
    ##### Features
    
    -   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
    -   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
    -   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
    -   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
    -   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
    -   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
    -   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
    -   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))
    
    ##### BREAKING CHANGES
    
    -   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
    -   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
    -   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
    -   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))
    
    #### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)
    
    ##### Bug Fixes
    
    -   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)
    
    #### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)
    
    ##### Bug Fixes
    
    -   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
    -   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
    -   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))
    
    #### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
    renovate[bot] authored Aug 23, 2024
    Configuration menu
    Copy the full SHA
    b27268f View commit details
    Browse the repository at this point in the history
  5. fix(deps): update dependency eslint-plugin-markdown to v5

    ##### [v5.1.0](https://github.com/eslint/eslint-plugin-markdown/blob/HEAD/CHANGELOG.md#510-2024-07-05)
    
    ##### Features
    
    -   add name to flat configs ([#256](eslint/markdown#256)) ([001d51e](eslint/markdown@001d51e))
    ##### [v5.0.0](https://github.com/eslint/eslint-plugin-markdown/blob/HEAD/CHANGELOG.md#500-2024-05-01)
    
    ##### ⚠ BREAKING CHANGES
    
    -   map known code block languages to respective file extensions ([#246](eslint/markdown#246))
    
    ##### Features
    
    -   map known code block languages to respective file extensions ([#246](eslint/markdown#246)) ([096cff4](eslint/markdown@096cff4))
    
    ##### Bug Fixes
    
    -   check upper bounds of message line numbers for code blocks ([#247](eslint/markdown#247)) ([00adccb](eslint/markdown@00adccb))
    
    ##### Chores
    
    -   run tests in Node.js 22, with ESLint 9 ([#250](eslint/markdown#250)) ([085e6d5](eslint/markdown@085e6d5))
    -   switch to eslint v9, eslint-config-eslint v10 ([#251](eslint/markdown#251)) ([a76cdf5](eslint/markdown@a76cdf5))
    renovate[bot] authored Aug 23, 2024
    Configuration menu
    Copy the full SHA
    0ab5bc6 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2d08d1f View commit details
    Browse the repository at this point in the history
  7. fix(deps): update dependency eslint-plugin-unicorn to v55

    ##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)
    
    ##### New rules
    
    -   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)
    
    ##### Improvements
    
    -   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)
    
    ##### Fixes
    
    -   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
    -   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
    -   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
    ##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)
    
    ##### New rules
    
    -   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)
    
    ##### Breaking
    
    -   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)
    
    ##### Improvements
    
    -   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
    -   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
    -   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
    -   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)
    
    ##### Fixes
    
    -   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
    ##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)
    
    ##### New rules
    
    -   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
    -   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
    -   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
    -   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
    -   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)
    
    ##### Breaking
    
    -   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
    
    ##### Meta
    
    -   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)
    
    ##### Improvements
    
    -   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
    -   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
    -   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
    -   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
    -   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
    -   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
    -   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
    -   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
    -   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
    -   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
    ##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)
    
    ##### New rules
    
    -   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
    -   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
    -   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)
    
    ##### Improvements
    
    -   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
    -   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
    -   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
    -   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
    -   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)
    
    ##### Fixes
    
    -   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
    -   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
    ##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)
    
    -   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
    ##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)
    
    ##### Breaking
    
    -   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)
    
    ##### Improvements
    
    -   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)
    
    ##### Fixes
    
    -   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
    -   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
    ##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)
    
    ##### Fixes
    
    -   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
    ##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)
    
    ##### New rules
    
    -   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)
    
    ##### Improvements
    
    -   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
    -   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
    -   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
    -   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
    -   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)
    
    ##### Fixes
    
    -   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
    renovate[bot] authored Aug 23, 2024
    Configuration menu
    Copy the full SHA
    9b0e50f View commit details
    Browse the repository at this point in the history
  8. fix(deps): update dependency globals to v15

    ##### [v15.9.0](sindresorhus/globals@v15.8.0...b1d88b8)
    
    ##### [v15.8.0](sindresorhus/globals@v15.7.0...f6b3978)
    
    ##### [v15.7.0](https://github.com/sindresorhus/globals/releases/tag/v15.7.0)
    
    -   Update globals ([#255](sindresorhus/globals#255))  [`f017b0f`](sindresorhus/globals@f017b0f)
    ##### [v15.6.0](https://github.com/sindresorhus/globals/releases/tag/v15.6.0)
    
    -   Add Chai globals ([#247](sindresorhus/globals#247))  [`9b0c591`](sindresorhus/globals@9b0c591)
    ##### [v15.5.0](https://github.com/sindresorhus/globals/releases/tag/v15.5.0)
    
    -   Update globals ([#254](sindresorhus/globals#254))  [`19ea4cf`](sindresorhus/globals@19ea4cf)
    ##### [v15.4.0](https://github.com/sindresorhus/globals/releases/tag/v15.4.0)
    
    -   Add globals for every yearly es versions ([#252](sindresorhus/globals#252))  [`45c1b17`](sindresorhus/globals@45c1b17)
    ##### [v15.3.0](https://github.com/sindresorhus/globals/releases/tag/v15.3.0)
    
    -   Update globals ([#251](sindresorhus/globals#251))  [`90b42e5`](sindresorhus/globals@90b42e5)
    ##### [v15.2.0](https://github.com/sindresorhus/globals/releases/tag/v15.2.0)
    
    -   Add AudioWorklet globals ([#249](sindresorhus/globals#249))  [`7d163e3`](sindresorhus/globals@7d163e3)
    ##### [v15.1.0](https://github.com/sindresorhus/globals/releases/tag/v15.1.0)
    
    -   Update ([#246](sindresorhus/globals#246))  [`fa21dea`](sindresorhus/globals@fa21dea)
    ##### [v15.0.0](https://github.com/sindresorhus/globals/releases/tag/v15.0.0)
    
    ##### Breaking
    
    -   Remove `Object.prototype` properties from builtin and `es*` globals ([#237](sindresorhus/globals#237))  [`753b2b2`](sindresorhus/globals@753b2b2)
    
    ##### Improvements
    
    -   Add many missing globals sindresorhus/globals@v14.0.0...v15.0.0#diff-69f22d314a4ed7807a4f6eee8d91b4ec6c09b11cb13ce9d16e53fd163c5ca151
    
    ##### Meta
    
    -   Generate data programmatically ([#219](sindresorhus/globals#219))  [`0a02e03`](sindresorhus/globals@0a02e03)
    
    ***
    
    Big thanks to [@fisker](https://github.com/fisker) for all these improvements!
    
    ***
    renovate[bot] authored Aug 23, 2024
    Configuration menu
    Copy the full SHA
    5705c15 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2024

  1. fix(deps): update eslint monorepo to v9

    ##### [v9.9.1](https://github.com/eslint/eslint/compare/v9.9.0...cd5a0daa24b7ab019c42d64da478c84cc4d32c34)
    
    ##### [v9.9.0](https://github.com/eslint/eslint/compare/v9.8.0...59dba1b3404391f5d968be578f0205569d5d41b2)
    
    ##### [v9.8.0](https://github.com/eslint/eslint/compare/v9.7.0...4aaf2b39ba3659aff0c769de4ccefa3d5379ff93)
    
    ##### [v9.7.0](https://github.com/eslint/eslint/compare/v9.6.0...7ed6f9a4db702bbad941422f456451a8dba7a450)
    
    ##### [v9.6.0](https://github.com/eslint/eslint/compare/v9.5.0...d655503b1fc97acfb4e7c61b3d9b557733c189b7)
    
    ##### [v9.5.0](https://github.com/eslint/eslint/releases/tag/v9.5.0)
    
    #### Features
    
    -   [`b2d256c`](https://github.com/eslint/eslint/commit/b2d256c7356838f908c4a5762d6dc64b41bbce5d) feat: `no-sparse-arrays` report on "comma" instead of the whole array ([#18579](https://github.com/eslint/eslint/issues/18579)) (fisker Cheung)
    
    #### Bug Fixes
    
    -   [`6880286`](https://github.com/eslint/eslint/commit/6880286e17375b08323512f38ea59fed440a4fb5) fix: treat `*` as a universal pattern ([#18586](https://github.com/eslint/eslint/issues/18586)) (Milos Djermanovic)
    -   [`7fbe211`](https://github.com/eslint/eslint/commit/7fbe211427432aba5fa972252b9b6b5cf9866624) fix: message template for all files ignored ([#18564](https://github.com/eslint/eslint/issues/18564)) (Milos Djermanovic)
    -   [`469cb36`](https://github.com/eslint/eslint/commit/469cb363f87564bafb8e628e738e01b53f4d6911) fix: Don't lint the same file multiple times ([#18552](https://github.com/eslint/eslint/issues/18552)) (Milos Djermanovic)
    -   [`5cff638`](https://github.com/eslint/eslint/commit/5cff638c03183204d09eb0a7a8bd2e032630db17) fix: improve message for ignored files without a matching config ([#18404](https://github.com/eslint/eslint/issues/18404)) (Francesco Trotta)
    
    #### Documentation
    
    -   [`455f7fd`](https://github.com/eslint/eslint/commit/455f7fd1662069e9e0f4dc912ecda72962679fbe) docs: add section about including `.gitignore` files ([#18590](https://github.com/eslint/eslint/issues/18590)) (Milos Djermanovic)
    -   [`721eafe`](https://github.com/eslint/eslint/commit/721eafeae45b33b95addf385c23eca1e2f8017d0) docs: update info about universal `files` patterns ([#18587](https://github.com/eslint/eslint/issues/18587)) (Francesco Trotta)
    -   [`8127127`](https://github.com/eslint/eslint/commit/8127127386180a2882bb1b75a8fbc7ffda78dce1) docs: Update README (GitHub Actions Bot)
    -   [`55c2a66`](https://github.com/eslint/eslint/commit/55c2a6621cc403f2fc11eb4ad762eadc70a54874) docs: Update README (GitHub Actions Bot)
    -   [`eb76282`](https://github.com/eslint/eslint/commit/eb76282e0a2db8aa10a3d5659f5f9237d9729121) docs: Update README (GitHub Actions Bot)
    -   [`ff6e96e`](https://github.com/eslint/eslint/commit/ff6e96ec30862a4eb77a201551ec8c618335bfc2) docs: `baseConfig` and `overrideConfig` can be arrays ([#18571](https://github.com/eslint/eslint/issues/18571)) (Milos Djermanovic)
    -   [`d2d83e0`](https://github.com/eslint/eslint/commit/d2d83e045ad03f024d1679275708054d789ebe20) docs: Add mention of eslint-transforms to v9 migration guide ([#18566](https://github.com/eslint/eslint/issues/18566)) (Nicholas C. Zakas)
    -   [`9ce6832`](https://github.com/eslint/eslint/commit/9ce6832578d5798b591f490a8609c87235e881c7) docs: add callout box for unintuitive behavior ([#18567](https://github.com/eslint/eslint/issues/18567)) (Ben McCann)
    -   [`b8db99c`](https://github.com/eslint/eslint/commit/b8db99c575c75edc9b42e6333e1b0aa7d26d9a01) docs: Add VS Code info to config migration guide ([#18555](https://github.com/eslint/eslint/issues/18555)) (Nicholas C. Zakas)
    -   [`518a35c`](https://github.com/eslint/eslint/commit/518a35c8fa9161522cbe9066d48e6c6fcd8aadf3) docs: Mention config migrator ([#18561](https://github.com/eslint/eslint/issues/18561)) (Nicholas C. Zakas)
    -   [`eb440fc`](https://github.com/eslint/eslint/commit/eb440fcf16bd2f62d58b7aa9bbaf546cd94e9918) docs: specifying files with arbitrary or no extension ([#18539](https://github.com/eslint/eslint/issues/18539)) (Francesco Trotta)
    -   [`38c159e`](https://github.com/eslint/eslint/commit/38c159e7dda812ce6dfdbf8c5b78db7cdd676c62) docs: Provide example of reading package.json for plugins meta ([#18530](https://github.com/eslint/eslint/issues/18530)) (Nicholas C. Zakas)
    -   [`d16a659`](https://github.com/eslint/eslint/commit/d16a6599cad35726f62eb230bb95af463611c6c6) docs: add link to migration guide for `--ext` CLI option ([#18537](https://github.com/eslint/eslint/issues/18537)) (Milos Djermanovic)
    -   [`73408de`](https://github.com/eslint/eslint/commit/73408de08dbe1873bf6b5564533c0d81134cfeee) docs: add link to configuration file docs before examples ([#18535](https://github.com/eslint/eslint/issues/18535)) (Milos Djermanovic)
    
    #### Chores
    
    -   [`f588160`](https://github.com/eslint/eslint/commit/f588160c2f9996c9c62b787f1fe678f71740ec43) chore: upgrade [@eslint/js](https://github.com/eslint/js)[@9](https://github.com/9).5.0 ([#18591](https://github.com/eslint/eslint/issues/18591)) (Milos Djermanovic)
    -   [`5890841`](https://github.com/eslint/eslint/commit/58908415c3e9e7924d39a2ff96573f7677ddb806) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`e9f4ccd`](https://github.com/eslint/eslint/commit/e9f4ccd8a182801e08d96d4246df10246ea82a58) chore: remove unused eslint-disable directive ([#18589](https://github.com/eslint/eslint/issues/18589)) (Milos Djermanovic)
    -   [`4b23ffd`](https://github.com/eslint/eslint/commit/4b23ffd6454cfb1a269430f5fe28e7d1c37b9d3e) refactor: Move JS parsing logic into JS language ([#18448](https://github.com/eslint/eslint/issues/18448)) (Nicholas C. Zakas)
    -   [`1495b93`](https://github.com/eslint/eslint/commit/1495b93d6fac4d7b6c9efa24c46b613f47feb1d4) chore: update WebdriverIO packages ([#18558](https://github.com/eslint/eslint/issues/18558)) (Christian Bromann)
    -   [`cea7ede`](https://github.com/eslint/eslint/commit/cea7ede4618d789180d37ee12a57939b30a5c4ee) chore: add website donate link instead of opencollective ([#18582](https://github.com/eslint/eslint/issues/18582)) (Strek)
    -   [`ec94880`](https://github.com/eslint/eslint/commit/ec948803c99ab1b001f093c7a2c412945fbb385f) chore: package.json update for eslint-config-eslint release (Jenkins)
    -   [`6912586`](https://github.com/eslint/eslint/commit/69125865b058c08ded162d4395d606dd22acb77d) chore: extract formatting rules into separate config ([#18560](https://github.com/eslint/eslint/issues/18560)) (Milos Djermanovic)
    -   [`9738f7e`](https://github.com/eslint/eslint/commit/9738f7e9dee49a9a3a7b8bfce87eb236ede6f572) ci: fix CLI flags for c8, raise thresholds ([#18554](https://github.com/eslint/eslint/issues/18554)) (Francesco Trotta)
    -   [`c6de7bb`](https://github.com/eslint/eslint/commit/c6de7bba57054efd4620e0630c23e2c63b1927b2) chore: update dependency markdownlint-cli to ^0.41.0 ([#18538](https://github.com/eslint/eslint/issues/18538)) (renovate\[bot])
    -   [`2c8fd34`](https://github.com/eslint/eslint/commit/2c8fd34bf1471efbd6e616b50d4e25ea858a6989) ci: pin [@wdio/browser-runner](https://github.com/wdio/browser-runner) v8.36.0 ([#18540](https://github.com/eslint/eslint/issues/18540)) (唯然)
    ##### [v9.4.0](https://github.com/eslint/eslint/releases/tag/v9.4.0)
    
    #### Features
    
    -   [`89a4a0a`](https://github.com/eslint/eslint/commit/89a4a0a260b8eb11487fe3d5d4d80f4630933eb3) feat: ignore IIFE's in the `no-loop-func` rule ([#17528](https://github.com/eslint/eslint/issues/17528)) (Nitin Kumar)
    
    #### Bug Fixes
    
    -   [`f6534d1`](https://github.com/eslint/eslint/commit/f6534d14033e04f6c7c88a1f0c44a8077148ec6b) fix: skip processor code blocks that match only universal patterns ([#18507](https://github.com/eslint/eslint/issues/18507)) (Milos Djermanovic)
    -   [`7226ebd`](https://github.com/eslint/eslint/commit/7226ebd69df04a4cc5fe546641f3443b60ec47e9) fix: allow implicit undefined return in `no-constructor-return` ([#18515](https://github.com/eslint/eslint/issues/18515)) (Ali Rezvani)
    -   [`389744b`](https://github.com/eslint/eslint/commit/389744be255717c507fafc158746e579ac08d77e) fix: use `@eslint/config-inspector@latest` ([#18483](https://github.com/eslint/eslint/issues/18483)) (唯然)
    -   [`70118a5`](https://github.com/eslint/eslint/commit/70118a5b11860fce364028d3c515393b6a586aae) fix: `func-style` false positive with arrow functions and `super` ([#18473](https://github.com/eslint/eslint/issues/18473)) (Milos Djermanovic)
    
    #### Documentation
    
    -   [`d7ab6f5`](https://github.com/eslint/eslint/commit/d7ab6f589d39c64bc5daaef4be3a972032f04c05) docs: update theme when when `prefers-color-scheme` changes ([#18510](https://github.com/eslint/eslint/issues/18510)) (Nitin Kumar)
    -   [`525fdff`](https://github.com/eslint/eslint/commit/525fdffde4cb34010bc503f6d54855b3f9d07811) docs: fix components files ([#18519](https://github.com/eslint/eslint/issues/18519)) (Tanuj Kanti)
    -   [`80747d2`](https://github.com/eslint/eslint/commit/80747d23dec69b30ea2c3620a1198f7d06b012b8) docs: refactor `prefer-destructuring` rule ([#18472](https://github.com/eslint/eslint/issues/18472)) (Tanuj Kanti)
    -   [`f06e0b5`](https://github.com/eslint/eslint/commit/f06e0b5f51ae1aad8957d27aa0ea4d6d0ad51455) docs: clarify func-style ([#18477](https://github.com/eslint/eslint/issues/18477)) (Cameron Steffen)
    
    #### Chores
    
    -   [`010dd2e`](https://github.com/eslint/eslint/commit/010dd2ef50456a1ba5892152192b6c9d9d5fd470) chore: upgrade to `@eslint/js@9.4.0` ([#18534](https://github.com/eslint/eslint/issues/18534)) (Francesco Trotta)
    -   [`5e1b5dc`](https://github.com/eslint/eslint/commit/5e1b5dc9a3d839737125571c8fd4e239d81608de) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`594145f`](https://github.com/eslint/eslint/commit/594145f493d913e2b7e25a27accf33c44e1d4687) refactor: switch to `@eslint/config-array` ([#18527](https://github.com/eslint/eslint/issues/18527)) (Francesco Trotta)
    ##### [v9.3.0](https://github.com/eslint/eslint/releases/tag/v9.3.0)
    
    #### Features
    
    -   [`b32153c`](https://github.com/eslint/eslint/commit/b32153c97317c6fc593c2abbf6ae994519d473b4) feat: add `overrides.namedExports` to `func-style` rule ([#18444](https://github.com/eslint/eslint/issues/18444)) (Percy Ma)
    -   [`b67eba4`](https://github.com/eslint/eslint/commit/b67eba4514026ef7e489798fd883beb678817a46) feat: add `restrictedNamedExportsPattern` to `no-restricted-exports` ([#18431](https://github.com/eslint/eslint/issues/18431)) (Akul Srivastava)
    -   [`069aa68`](https://github.com/eslint/eslint/commit/069aa680c78b8516b9a1b568519f1d01e74fb2a2) feat: add option `allowEscape` to `no-misleading-character-class` rule ([#18208](https://github.com/eslint/eslint/issues/18208)) (Francesco Trotta)
    -   [`05ef92d`](https://github.com/eslint/eslint/commit/05ef92dd15949014c0735125c89b7bd70dec58c8) feat: deprecate `multiline-comment-style` & `line-comment-position` ([#18435](https://github.com/eslint/eslint/issues/18435)) (唯然)
    -   [`db0b174`](https://github.com/eslint/eslint/commit/db0b174c3ace60e29585bfc3520727c44cefcfc5) feat: add `enforceForInnerExpressions` option to `no-extra-boolean-cast` ([#18222](https://github.com/eslint/eslint/issues/18222)) (Kirk Waiblinger)
    
    #### Bug Fixes
    
    -   [`8db0eff`](https://github.com/eslint/eslint/commit/8db0eff4ba89b45f439c27ba1202ed056ae92e83) fix: Improve config error messages ([#18457](https://github.com/eslint/eslint/issues/18457)) (Nicholas C. Zakas)
    -   [`5c28d9a`](https://github.com/eslint/eslint/commit/5c28d9a367e1608e097c491f40b8afd0730a8b9e) fix: don't remove comments between key and value in object-shorthand ([#18442](https://github.com/eslint/eslint/issues/18442)) (Kuba Jastrzębski)
    -   [`39fb0ee`](https://github.com/eslint/eslint/commit/39fb0ee9cd33f952707294e67f194d414261a571) fix: object-shorthand loses type parameters when auto-fixing ([#18438](https://github.com/eslint/eslint/issues/18438)) (dalaoshu)
    -   [`37eba48`](https://github.com/eslint/eslint/commit/37eba48d6f2d3c99c5ecf2fc3967e428a6051dbb) fix: don't crash when `fs.readFile` returns promise from another realm ([#18416](https://github.com/eslint/eslint/issues/18416)) (Milos Djermanovic)
    
    #### Documentation
    
    -   [`ceada8c`](https://github.com/eslint/eslint/commit/ceada8c702d4903d6872f46a25d68b672d2c6289) docs: explain how to use "tsc waiting" label ([#18466](https://github.com/eslint/eslint/issues/18466)) (Francesco Trotta)
    -   [`62e686c`](https://github.com/eslint/eslint/commit/62e686c5e90411fed2b5561be5688d7faf64d791) docs: Add troubleshooting info for plugin compatibility ([#18451](https://github.com/eslint/eslint/issues/18451)) (Nicholas C. Zakas)
    -   [`e17e1c0`](https://github.com/eslint/eslint/commit/e17e1c0dd5d5dc5a4cae5888116913f6555b1f1e) docs: Update README (GitHub Actions Bot)
    -   [`2465a1e`](https://github.com/eslint/eslint/commit/2465a1e3f3b78f302f64e62e5f0d851626b81b3c) docs: Update README (GitHub Actions Bot)
    -   [`d23574c`](https://github.com/eslint/eslint/commit/d23574c5c0275c8b3714a7a6d3e8bf2108af60f1) docs: Clarify usage of `no-unreachable` with TypeScript ([#18445](https://github.com/eslint/eslint/issues/18445)) (benj-dobs)
    -   [`1db9bae`](https://github.com/eslint/eslint/commit/1db9bae944b69945e3b05f76754cced16ae83838) docs: Fix typos ([#18443](https://github.com/eslint/eslint/issues/18443)) (Frieder Bluemle)
    -   [`7065196`](https://github.com/eslint/eslint/commit/70651968beb0f907c9689c2477721c0b991acc4a) docs: Update README (GitHub Actions Bot)
    -   [`04e7c6e`](https://github.com/eslint/eslint/commit/04e7c6e0a24bd2d7691ae641e2dc0e6d538dcdfd) docs: update deprecation notice of `no-return-await` ([#18433](https://github.com/eslint/eslint/issues/18433)) (Tanuj Kanti)
    -   [`e763512`](https://github.com/eslint/eslint/commit/e7635126f36145b47fe5d135ab258af43b2715c9) docs: Link global ignores section in config object property list ([#18430](https://github.com/eslint/eslint/issues/18430)) (MaoShizhong)
    -   [`ac7f718`](https://github.com/eslint/eslint/commit/ac7f718de66131187302387fc26907c4c93196f9) docs: reflect release of v9 in config migration guide ([#18412](https://github.com/eslint/eslint/issues/18412)) (Peter Briggs)
    -   [`0de0909`](https://github.com/eslint/eslint/commit/0de0909e001191a3464077d37e8c0b3f67e9a1cb) docs: fix grammar in configuration file resolution ([#18419](https://github.com/eslint/eslint/issues/18419)) (Mike McCready)
    
    #### Chores
    
    -   [`58e2719`](https://github.com/eslint/eslint/commit/58e271924aeb8ac2b8864845cd787ef3f9239939) chore: update dependencies for v9.3.0 release ([#18469](https://github.com/eslint/eslint/issues/18469)) (Francesco Trotta)
    -   [`b681ecb`](https://github.com/eslint/eslint/commit/b681ecbdf0882cbb7902682a9d35c1e76ac76c30) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`06f1d1c`](https://github.com/eslint/eslint/commit/06f1d1cd874dfc40a6651b08d766f6522a67b3f0) chore: update dependency [@humanwhocodes/retry](https://github.com/humanwhocodes/retry) to ^0.3.0 ([#18463](https://github.com/eslint/eslint/issues/18463)) (renovate\[bot])
    -   [`a63ed72`](https://github.com/eslint/eslint/commit/a63ed722a64040d2be90f36e45f1f5060a9fe28e) refactor: Use `node:` protocol for built-in Node.js modules ([#18434](https://github.com/eslint/eslint/issues/18434)) (Milos Djermanovic)
    -   [`040700a`](https://github.com/eslint/eslint/commit/040700a7a19726bb9568fc190bff95e88fb87269) chore: update dependency markdownlint-cli to ^0.40.0 ([#18425](https://github.com/eslint/eslint/issues/18425)) (renovate\[bot])
    -   [`f47847c`](https://github.com/eslint/eslint/commit/f47847c1b45ef1ac5f05f3a37f5f8c46b860c57f) chore: update actions/stale action to v9 ([#18426](https://github.com/eslint/eslint/issues/18426)) (renovate\[bot])
    -   [`c18ad25`](https://github.com/eslint/eslint/commit/c18ad252c280443e85f788c70ce597e1941f8ff5) chore: update actions/upload-artifact action to v4 ([#18427](https://github.com/eslint/eslint/issues/18427)) (renovate\[bot])
    -   [`27e3060`](https://github.com/eslint/eslint/commit/27e3060f7519d84501a11218343c34df4947b303) chore: Disable documentation label ([#18423](https://github.com/eslint/eslint/issues/18423)) (Nicholas C. Zakas)
    ##### [v9.2.0](https://github.com/eslint/eslint/releases/tag/v9.2.0)
    
    #### Features
    
    -   [`8485d76`](https://github.com/eslint/eslint/commit/8485d76134bdbd29230780fadc284c482cd1d963) feat: `no-case-declarations` add suggestions ([#18388](https://github.com/eslint/eslint/issues/18388)) (Josh Goldberg ✨)
    -   [`a498f35`](https://github.com/eslint/eslint/commit/a498f35cef4df9c9f5387fafafaf482d913d5765) feat: update Unicode letter detection in capitalized-comments rule ([#18375](https://github.com/eslint/eslint/issues/18375)) (Francesco Trotta)
    
    #### Bug Fixes
    
    -   [`eeec413`](https://github.com/eslint/eslint/commit/eeec41346738afb491958fdbf0bcf45a302ca1b7) fix: do not throw when defining a global named **defineSetter** ([#18364](https://github.com/eslint/eslint/issues/18364)) (唯然)
    
    #### Documentation
    
    -   [`0f5df50`](https://github.com/eslint/eslint/commit/0f5df509a4bc00cff2c62b90fab184bdf0231322) docs: Update README (GitHub Actions Bot)
    -   [`1579ce0`](https://github.com/eslint/eslint/commit/1579ce05cbb523cb5b04ff77fab06ba1ecd18dce) docs: update wording regarding indirect eval ([#18394](https://github.com/eslint/eslint/issues/18394)) (Kirk Waiblinger)
    -   [`f12a02c`](https://github.com/eslint/eslint/commit/f12a02c5749d31beefe46d2753a0d68b56f2281d) docs: update to eslint v9 in custom-rule-tutorial ([#18383](https://github.com/eslint/eslint/issues/18383)) (唯然)
    
    #### Chores
    
    -   [`b346605`](https://github.com/eslint/eslint/commit/b3466052802a1586560ad56a8128d603284d58c2) chore: upgrade [@eslint/js](https://github.com/eslint/js)[@9](https://github.com/9).2.0 ([#18413](https://github.com/eslint/eslint/issues/18413)) (Milos Djermanovic)
    -   [`c4c18e0`](https://github.com/eslint/eslint/commit/c4c18e05fc866b73218dbe58b760546f39a2a620) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`284722c`](https://github.com/eslint/eslint/commit/284722ca8375c9a9e4f741bfdd78e765542da61f) chore: package.json update for eslint-config-eslint release (Jenkins)
    -   [`347d44f`](https://github.com/eslint/eslint/commit/347d44f96b3d9d690e4f7380029e8a5a60b2fdc7) chore: remove eslintrc export from eslint-config-eslint ([#18400](https://github.com/eslint/eslint/issues/18400)) (Milos Djermanovic)
    -   [`f316e20`](https://github.com/eslint/eslint/commit/f316e2009a8aa902fa447a49b6b5e560848f0711) ci: run tests in Node.js 22 ([#18393](https://github.com/eslint/eslint/issues/18393)) (Francesco Trotta)
    ##### [v9.1.1](https://github.com/eslint/eslint/releases/tag/v9.1.1)
    
    #### Bug Fixes
    
    -   [`a26b402`](https://github.com/eslint/eslint/commit/a26b40279f283853717236b44602b27b57f0b627) fix: use [@eslint/create-config](https://github.com/eslint/create-config) latest ([#18373](https://github.com/eslint/eslint/issues/18373)) (唯然)
    ##### [v9.1.0](https://github.com/eslint/eslint/releases/tag/v9.1.0)
    
    #### Features
    
    -   [`03068f1`](https://github.com/eslint/eslint/commit/03068f13c0e3e6b34b8ca63628cfc79dd256feac) feat: Provide helpful error message for nullish configs ([#18357](https://github.com/eslint/eslint/issues/18357)) (Nicholas C. Zakas)
    -   [`751b518`](https://github.com/eslint/eslint/commit/751b518f02b1e9f4f0cb4a4007ffacb1be2246af) feat: replace dependency graphemer with `Intl.Segmenter` ([#18110](https://github.com/eslint/eslint/issues/18110)) (Francesco Trotta)
    -   [`4d11e56`](https://github.com/eslint/eslint/commit/4d11e567baff575146fd267b3765ab2c788aa1e5) feat: add `name` to eslint configs ([#18289](https://github.com/eslint/eslint/issues/18289)) (唯然)
    -   [`1cbe1f6`](https://github.com/eslint/eslint/commit/1cbe1f6d38272784307c260f2375ab30e68716e8) feat: allow `while(true)` in `no-constant-condition` ([#18286](https://github.com/eslint/eslint/issues/18286)) (Tanuj Kanti)
    -   [`0db676f`](https://github.com/eslint/eslint/commit/0db676f9c64d2622ada86b653136d2bda4f0eee0) feat: add `Intl` in es6 globals ([#18318](https://github.com/eslint/eslint/issues/18318)) (唯然)
    
    #### Bug Fixes
    
    -   [`8d18958`](https://github.com/eslint/eslint/commit/8d189586d60f9beda7be8cdefd4156c023c4fdde) fix: Remove name from eslint/js packages ([#18368](https://github.com/eslint/eslint/issues/18368)) (Nicholas C. Zakas)
    -   [`594eb0e`](https://github.com/eslint/eslint/commit/594eb0e5c2b14a418d686c33d2d40fb439888b70) fix: do not crash on error in `fs.walk` filter ([#18295](https://github.com/eslint/eslint/issues/18295)) (Francesco Trotta)
    -   [`0d8cf63`](https://github.com/eslint/eslint/commit/0d8cf6350ce3dc417d6e23922e6d4ad03952aaaa) fix: EMFILE errors ([#18313](https://github.com/eslint/eslint/issues/18313)) (Nicholas C. Zakas)
    -   [`e1ac0b5`](https://github.com/eslint/eslint/commit/e1ac0b5c035bfdff7be08b69e89e1470a7becac3) fix: --inspect-config only for flat config and respect -c ([#18306](https://github.com/eslint/eslint/issues/18306)) (Nicholas C. Zakas)
    -   [`09675e1`](https://github.com/eslint/eslint/commit/09675e153169d4d0f4a85a95007dcd17d34d70c7) fix: `--no-ignore` should not apply to non-global ignores ([#18334](https://github.com/eslint/eslint/issues/18334)) (Milos Djermanovic)
    
    #### Documentation
    
    -   [`fb50077`](https://github.com/eslint/eslint/commit/fb50077fec497fbf01d754fc75aa22cff43ef066) docs: include notes about globals in migration-guide ([#18356](https://github.com/eslint/eslint/issues/18356)) (Gabriel Rohden)
    -   [`71c771f`](https://github.com/eslint/eslint/commit/71c771fb390cf178220d06fd7316033a385128a9) docs: Fix missing accessible name for scroll-to-top link ([#18329](https://github.com/eslint/eslint/issues/18329)) (Germán Freixinós)
    -   [`200fd4e`](https://github.com/eslint/eslint/commit/200fd4e3223d1ad22dca3dc79aa6eaa860fefe32) docs: indicate eslintrc mode for `.eslintignore` ([#18285](https://github.com/eslint/eslint/issues/18285)) (Francesco Trotta)
    -   [`16b6a8b`](https://github.com/eslint/eslint/commit/16b6a8b469d2e0ba6d904b9e858711590568b246) docs: Update README (GitHub Actions Bot)
    -   [`df5f8a9`](https://github.com/eslint/eslint/commit/df5f8a9bc1042c13f1969c9fbd8c72eee0662daa) docs: `paths` and `patterns` difference in `no-restricted-imports` ([#18273](https://github.com/eslint/eslint/issues/18273)) (Tanuj Kanti)
    -   [`c537d76`](https://github.com/eslint/eslint/commit/c537d76327586616b7ca5d00e76eaf6c76e6bcd2) docs: update `npm init @eslint/config` generated file names ([#18298](https://github.com/eslint/eslint/issues/18298)) (唯然)
    -   [`e1e305d`](https://github.com/eslint/eslint/commit/e1e305defaab98605d79c81d67ee5a48558c458a) docs: fix `linebreak-style` examples ([#18262](https://github.com/eslint/eslint/issues/18262)) (Francesco Trotta)
    -   [`113f51e`](https://github.com/eslint/eslint/commit/113f51ec4e52d3082a74b9682239a6e28d1a70ee) docs: Mention package.json config support dropped ([#18305](https://github.com/eslint/eslint/issues/18305)) (Nicholas C. Zakas)
    -   [`5c35321`](https://github.com/eslint/eslint/commit/5c353215e05818e17e83192acbb4d3730c716afa) docs: add eslintrc-only note to `--rulesdir` ([#18281](https://github.com/eslint/eslint/issues/18281)) (Adam Lui 刘展鹏)
    
    #### Build Related
    
    -   [`1fa6622`](https://github.com/eslint/eslint/commit/1fa66220ad130eeb69cfa0207d3896b7bb09c576) build: do not use `--force` flag to install dependencies ([#18284](https://github.com/eslint/eslint/issues/18284)) (Francesco Trotta)
    
    #### Chores
    
    -   [`d9a2983`](https://github.com/eslint/eslint/commit/d9a2983e1301599117cf554aa6a9bd44b84f2e55) chore: upgrade [@eslint/js](https://github.com/eslint/js) to v9.1.1 ([#18367](https://github.com/eslint/eslint/issues/18367)) (Francesco Trotta)
    -   [`50d406d`](https://github.com/eslint/eslint/commit/50d406d68c0304370fa47d156a407258b68dfa1b) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`155c71c`](https://github.com/eslint/eslint/commit/155c71c210aaa7235ddadabb067813d8b1c76f65) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`0588fc5`](https://github.com/eslint/eslint/commit/0588fc5ecb87fddd70e1848e417ba712b48473c3) refactor: Move directive gathering to SourceCode ([#18328](https://github.com/eslint/eslint/issues/18328)) (Nicholas C. Zakas)
    -   [`9048e21`](https://github.com/eslint/eslint/commit/9048e2184c19799bb9b8a5908345d4ce05020c41) chore: lint `docs/src/_data` js files ([#18335](https://github.com/eslint/eslint/issues/18335)) (Milos Djermanovic)
    -   [`4820790`](https://github.com/eslint/eslint/commit/48207908a8291916a124af60e02d0327276f8957) chore: upgrade globals@15.0.0 dev dependency ([#18332](https://github.com/eslint/eslint/issues/18332)) (Milos Djermanovic)
    -   [`698d9ff`](https://github.com/eslint/eslint/commit/698d9ff2c9c4e24836d69358b93d42c356eb853b) chore: upgrade jsdoc & unicorn plugins in eslint-config-eslint ([#18333](https://github.com/eslint/eslint/issues/18333)) (Milos Djermanovic)
    -   [`32c08cf`](https://github.com/eslint/eslint/commit/32c08cf66536e595e93284500b0b8d702e30cfd8) chore: drop Node < 18 and use [@eslint/js](https://github.com/eslint/js) v9 in eslint-config-eslint ([#18323](https://github.com/eslint/eslint/issues/18323)) (Milos Djermanovic)
    -   [`a76fb55`](https://github.com/eslint/eslint/commit/a76fb55004ea095c68dde134ca7db0212c93c86e) chore: [@eslint-community/eslint-plugin-eslint-comments](https://github.com/eslint-community/eslint-plugin-eslint-comments) v4.3.0 ([#18319](https://github.com/eslint/eslint/issues/18319)) (Milos Djermanovic)
    -   [`78e45b1`](https://github.com/eslint/eslint/commit/78e45b1d8d6b673ced233ca82b9ff1dddcdd1fec) chore: eslint-plugin-eslint-plugin v6.0.0 ([#18316](https://github.com/eslint/eslint/issues/18316)) (唯然)
    -   [`36103a5`](https://github.com/eslint/eslint/commit/36103a52432fffa20b90f2c6960757e6b9dc778f) chore: eslint-plugin-n v17.0.0 ([#18315](https://github.com/eslint/eslint/issues/18315)) (唯然)
    ##### [v9.0.0](https://github.com/eslint/eslint/releases/tag/v9.0.0)
    
    #### Breaking Changes
    
    -   [`b7cf3bd`](https://github.com/eslint/eslint/commit/b7cf3bd29f25a0bab4102a51029bf47c50f406b5) fix!: correct `camelcase` rule schema for `allow` option ([#18232](https://github.com/eslint/eslint/issues/18232)) (eMerzh)
    -   [`09bd7fe`](https://github.com/eslint/eslint/commit/09bd7fe09ad255a263286e90accafbe2bf04ccfc) feat!: move AST traversal into SourceCode ([#18167](https://github.com/eslint/eslint/issues/18167)) (Nicholas C. Zakas)
    -   [`79a95eb`](https://github.com/eslint/eslint/commit/79a95eb7da7fe657b6448c225d4f8ac31117456a) feat!: disallow multiple configuration comments for same rule ([#18157](https://github.com/eslint/eslint/issues/18157)) (Milos Djermanovic)
    -   [`9163646`](https://github.com/eslint/eslint/commit/916364692bae6a93c10b5d48fc1e9de1677d0d09) feat!: Rule Tester checks for missing placeholder data in the message ([#18073](https://github.com/eslint/eslint/issues/18073)) (fnx)
    -   [`3c4d51d`](https://github.com/eslint/eslint/commit/3c4d51d55fa5435ab18b6bf46f6b97df0f480ae7) feat!: default for `enforceForClassMembers` in `no-useless-computed-key` ([#18054](https://github.com/eslint/eslint/issues/18054)) (Francesco Trotta)
    -   [`47e60f8`](https://github.com/eslint/eslint/commit/47e60f85e0c3f275207bb4be9b5947166a190477) feat!: Stricter rule test validations ([#17654](https://github.com/eslint/eslint/issues/17654)) (fnx)
    -   [`1a94589`](https://github.com/eslint/eslint/commit/1a945890105d307541dcbff15f6438c19b476ade) feat!: `no-unused-vars` default caughtErrors to 'all' ([#18043](https://github.com/eslint/eslint/issues/18043)) (Josh Goldberg ✨)
    -   [`57089cb`](https://github.com/eslint/eslint/commit/57089cb5166acf8b8bdba8a8dbeb0a129f841478) feat!: no-restricted-imports allow multiple config entries for same path ([#18021](https://github.com/eslint/eslint/issues/18021)) (Milos Djermanovic)
    -   [`2e1d549`](https://github.com/eslint/eslint/commit/2e1d54960051b59e1c731fa44c2ef843290b1335) feat!: detect duplicate test cases ([#17955](https://github.com/eslint/eslint/issues/17955)) (Bryan Mishkin)
    -   [`701f1af`](https://github.com/eslint/eslint/commit/701f1afbee34e458b56d2dfa36d9153d6aebea3a) feat!: no-inner-declaration new default behaviour and option ([#17885](https://github.com/eslint/eslint/issues/17885)) (Tanuj Kanti)
    -   [`bde5105`](https://github.com/eslint/eslint/commit/bde51055530d4a71bd9f48c90ed7de9c0b767d86) fix!: handle `--output-file` for empty output when saving to disk ([#17957](https://github.com/eslint/eslint/issues/17957)) (Nitin Kumar)
    -   [`07107a5`](https://github.com/eslint/eslint/commit/07107a5904c2580243971c8ad7f26a04738b712e) fix!: upgrade eslint-scope@8.0.0 ([#17942](https://github.com/eslint/eslint/issues/17942)) (Milos Djermanovic)
    -   [`3ee0f6c`](https://github.com/eslint/eslint/commit/3ee0f6ca5d756da647e4e76bf3daa82a5905a792) fix!: no-unused-vars `varsIgnorePattern` behavior with catch arguments ([#17932](https://github.com/eslint/eslint/issues/17932)) (Tanuj Kanti)
    -   [`51f8bc8`](https://github.com/eslint/eslint/commit/51f8bc836bf0b13dad3a897ae84259bcdaed2431) fix!: configuration comments with just severity should retain options ([#17945](https://github.com/eslint/eslint/issues/17945)) (Milos Djermanovic)
    -   [`d191bdd`](https://github.com/eslint/eslint/commit/d191bdd67214c33e65bd605e616ca7cc947fd045) feat!: Remove CodePath#currentSegments ([#17936](https://github.com/eslint/eslint/issues/17936)) (Milos Djermanovic)
    -   [`946ae00`](https://github.com/eslint/eslint/commit/946ae00457265eb298eb169d6d48ca7ec71b9eef) feat!: FlatRuleTester -> RuleTester ([#17922](https://github.com/eslint/eslint/issues/17922)) (Nicholas C. Zakas)
    -   [`baff28c`](https://github.com/eslint/eslint/commit/baff28ce8f167f564471f1d70d6e9c4b0cb1a508) feat!: remove `no-inner-declarations` from `eslint:recommended` ([#17920](https://github.com/eslint/eslint/issues/17920)) (Milos Djermanovic)
    -   [`cadfbcd`](https://github.com/eslint/eslint/commit/cadfbcd468737fc9447243edd1d15058efb6d3d8) feat!: Rename FlatESLint to ESLint ([#17914](https://github.com/eslint/eslint/issues/17914)) (Nicholas C. Zakas)
    -   [`d1018fc`](https://github.com/eslint/eslint/commit/d1018fc5e59db0495aa4a7f501c9d3f831981f35) feat!: skip running warnings in --quiet mode ([#17274](https://github.com/eslint/eslint/issues/17274)) (Maddy Miller)
    -   [`fb81b1c`](https://github.com/eslint/eslint/commit/fb81b1cb78d2692a87fd3591fdc0f96b0c95e760) feat!: Set default `schema: []`, drop support for function-style rules ([#17792](https://github.com/eslint/eslint/issues/17792)) (Milos Djermanovic)
    -   [`0b21e1f`](https://github.com/eslint/eslint/commit/0b21e1fd67d94f907d007a7a9707a3ae1cc08575) feat!: add two more cases to `no-implicit-coercion` ([#17832](https://github.com/eslint/eslint/issues/17832)) (Gürgün Dayıoğlu)
    -   [`2916c63`](https://github.com/eslint/eslint/commit/2916c63046603e0cdc578d3c2eef8fca5b2e8847) feat!: Switch Linter to flat config by default ([#17851](https://github.com/eslint/eslint/issues/17851)) (Nicholas C. Zakas)
    -   [`200518e`](https://github.com/eslint/eslint/commit/200518eb6d42de4c3b0c6ef190fc09a95718297e) fix!: Parsing 'exported' comment using parseListConfig ([#17675](https://github.com/eslint/eslint/issues/17675)) (amondev)
    -   [`bdd6ba1`](https://github.com/eslint/eslint/commit/bdd6ba138645dba0442bb0ed2ee73049df56f38d) feat!: Remove valid-jsdoc and require-jsdoc ([#17694](https://github.com/eslint/eslint/issues/17694)) (Nicholas C. Zakas)
    -   [`12be307`](https://github.com/eslint/eslint/commit/12be3071d014814149e8e6d602f5c192178ca771) fix!: Behavior of CLI when no arguments are passed ([#17644](https://github.com/eslint/eslint/issues/17644)) (Nicholas C. Zakas)
    -   [`8fe8c56`](https://github.com/eslint/eslint/commit/8fe8c5626b98840d6a8580004f6ceffeff56264f) feat!: Update shouldUseFlatConfig and CLI so flat config is default ([#17748](https://github.com/eslint/eslint/issues/17748)) (Nicholas C. Zakas)
    -   [`60dea3e`](https://github.com/eslint/eslint/commit/60dea3e3abd6c0b6aab25437b2d0501b0d30b70c) feat!: deprecate no-new-symbol, recommend no-new-native-nonconstructor ([#17710](https://github.com/eslint/eslint/issues/17710)) (Francesco Trotta)
    -   [`5aa9c49`](https://github.com/eslint/eslint/commit/5aa9c499da48b2d3187270d5d8ece71ad7521f56) feat!: check for parsing errors in suggestion fixes ([#16639](https://github.com/eslint/eslint/issues/16639)) (Bryan Mishkin)
    -   [`b3e0bb0`](https://github.com/eslint/eslint/commit/b3e0bb03cc814e78b06a1acc4e5347b4c90d72bf) feat!: assert suggestion messages are unique in rule testers ([#17532](https://github.com/eslint/eslint/issues/17532)) (Josh Goldberg ✨)
    -   [`e563c52`](https://github.com/eslint/eslint/commit/e563c52e35d25f726d423cc3b1dffcd80027fd99) feat!: `no-invalid-regexp` make allowConstructorFlags case-sensitive ([#17533](https://github.com/eslint/eslint/issues/17533)) (Josh Goldberg ✨)
    -   [`e5f02c7`](https://github.com/eslint/eslint/commit/e5f02c70084c4f80900c0875b08f665e1f030af2) fix!: no-sequences rule schema correction ([#17878](https://github.com/eslint/eslint/issues/17878)) (MHO)
    -   [`6ee3e9e`](https://github.com/eslint/eslint/commit/6ee3e9eb5df7bdfdaa1746214793ed511112be76) feat!: Update `eslint:recommended` configuration ([#17716](https://github.com/eslint/eslint/issues/17716)) (Milos Djermanovic)
    -   [`c2cf85a`](https://github.com/eslint/eslint/commit/c2cf85a7447777e6b499cbb5c49de919bb5c817f) feat!: drop support for string configurations in flat config array ([#17717](https://github.com/eslint/eslint/issues/17717)) (Milos Djermanovic)
    -   [`c314fd6`](https://github.com/eslint/eslint/commit/c314fd612587c42cfbe6acbe286629c4178be3f7) feat!: Remove `SourceCode#getComments()` ([#17715](https://github.com/eslint/eslint/issues/17715)) (Milos Djermanovic)
    -   [`ae78ff1`](https://github.com/eslint/eslint/commit/ae78ff16558a1a2ca07b2b9cd294157d1bdcce2e) feat!: Remove deprecated context methods ([#17698](https://github.com/eslint/eslint/issues/17698)) (Nicholas C. Zakas)
    -   [`f71c328`](https://github.com/eslint/eslint/commit/f71c328e2786e2d73f168e43c7f96de172484a49) feat!: Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API ([#17823](https://github.com/eslint/eslint/issues/17823)) (Nicholas C. Zakas)
    -   [`5304da0`](https://github.com/eslint/eslint/commit/5304da03d94dc8cb19060e2efc9206784c4cec0e) feat!: remove formatters except html, json(-with-metadata), and stylish ([#17531](https://github.com/eslint/eslint/issues/17531)) (Josh Goldberg ✨)
    -   [`e1e827f`](https://github.com/eslint/eslint/commit/e1e827ffcbd73faa40dbac3b97529452e9c67108) feat!: Require Node.js `^18.18.0 || ^20.9.0 || >=21.1.0` ([#17725](https://github.com/eslint/eslint/issues/17725)) (Milos Djermanovic)
    
    #### Features
    
    -   [`d54a412`](https://github.com/eslint/eslint/commit/d54a41200483b7dd90531841a48a1f3a91f172fe) feat: Add --inspect-config CLI flag ([#18270](https://github.com/eslint/eslint/issues/18270)) (Nicholas C. Zakas)
    -   [`97ce45b`](https://github.com/eslint/eslint/commit/97ce45bcdaf2320efd59bb7974e0c8e073aab672) feat: Add `reportUsedIgnorePattern` option to `no-unused-vars` rule ([#17662](https://github.com/eslint/eslint/issues/17662)) (Pearce Ropion)
    -   [`3e9fcea`](https://github.com/eslint/eslint/commit/3e9fcea3808af83bda1e610aa2d33fb92135b5de) feat: Show config names in error messages ([#18256](https://github.com/eslint/eslint/issues/18256)) (Nicholas C. Zakas)
    -   [`de40874`](https://github.com/eslint/eslint/commit/de408743b5c3fc25ebd7ef5fb11ab49ab4d06c36) feat: Rule Performance Statistics for flat ESLint ([#17850](https://github.com/eslint/eslint/issues/17850)) (Mara Kiefer)
    -   [`d85c436`](https://github.com/eslint/eslint/commit/d85c436353d566d261798c51dadb8ed50def1a7d) feat: use-isnan report NaN in `indexOf` and `lastIndexOf` with fromIndex ([#18225](https://github.com/eslint/eslint/issues/18225)) (Tanuj Kanti)
    -   [`b8fb572`](https://github.com/eslint/eslint/commit/b8fb57256103b908712302ccd508f464eff1c9dc) feat: add `reportUnusedFallthroughComment` option to no-fallthrough rule ([#18188](https://github.com/eslint/eslint/issues/18188)) (Kirk Waiblinger)
    -   [`1c173dc`](https://github.com/eslint/eslint/commit/1c173dc1f3d36a28cb2543e93675c2fbdb6fa9f1) feat: add `ignoreClassWithStaticInitBlock` option to `no-unused-vars` ([#18170](https://github.com/eslint/eslint/issues/18170)) (Tanuj Kanti)
    -   [`a451b32`](https://github.com/eslint/eslint/commit/a451b32b33535a57b4b7e24291f30760f65460ba) feat: make `no-misleading-character-class` report more granular errors ([#18082](https://github.com/eslint/eslint/issues/18082)) (Francesco Trotta)
    -   [`c49ed63`](https://github.com/eslint/eslint/commit/c49ed63265fc8e0cccea404810a4c5075d396a15) feat: update complexity rule for optional chaining & default values ([#18152](https://github.com/eslint/eslint/issues/18152)) (Mathias Schreck)
    -   [`11144a2`](https://github.com/eslint/eslint/commit/11144a2671b2404b293f656be111221557f3390f) feat: `no-restricted-imports` option added `allowImportNames` ([#16196](https://github.com/eslint/eslint/issues/16196)) (M Pater)
    -   [`74124c2`](https://github.com/eslint/eslint/commit/74124c20287fac1995c3f4e553f0723c066f311d) feat: add suggestions to `use-isnan` in `indexOf` & `lastIndexOf` calls ([#18063](https://github.com/eslint/eslint/issues/18063)) (StyleShit)
    -   [`53f0f47`](https://github.com/eslint/eslint/commit/53f0f47badffa1b04ec2836f2ae599f4fc464da2) feat: Add loadESLint() API method for v9 ([#18097](https://github.com/eslint/eslint/issues/18097)) (Nicholas C. Zakas)
    -   [`2d11d46`](https://github.com/eslint/eslint/commit/2d11d46e890a9f1b5f639b8ee034ffa9bd453e42) feat: add suggestions to `use-isnan` in binary expressions ([#17996](https://github.com/eslint/eslint/issues/17996)) (StyleShit)
    -   [`26093c7`](https://github.com/eslint/eslint/commit/26093c76903310d12f21e24e73d97c0d2ac1f359) feat: fix false negatives in `no-this-before-super` ([#17762](https://github.com/eslint/eslint/issues/17762)) (Yosuke Ota)
    -   [`5471e43`](https://github.com/eslint/eslint/commit/5471e435d12bf5add9869d81534b147e445a2368) feat: convert unsafe autofixes to suggestions in `no-implicit-coercion` ([#17985](https://github.com/eslint/eslint/issues/17985)) (Gürgün Dayıoğlu)
    -   [`e3051be`](https://github.com/eslint/eslint/commit/e3051be6366b00e1571e702023a351177d24e443) feat: emit warning when `.eslintignore` file is detected ([#17952](https://github.com/eslint/eslint/issues/17952)) (Nitin Kumar)
    -   [`a630edd`](https://github.com/eslint/eslint/commit/a630edd809894dc38752705bb5954d847987f031) feat: maintain latest ecma version in ESLint ([#17958](https://github.com/eslint/eslint/issues/17958)) (Milos Djermanovic)
    -   [`b4e0503`](https://github.com/eslint/eslint/commit/b4e0503a56beea1222be266cc6b186d89410d1f2) feat: add `no-useless-assignment` rule ([#17625](https://github.com/eslint/eslint/issues/17625)) (Yosuke Ota)
    -   [`287c4b7`](https://github.com/eslint/eslint/commit/287c4b7d498746b43392ee4fecd6904a9cd4b30b) feat: `no-misleading-character-class` granular errors ([#17515](https://github.com/eslint/eslint/issues/17515)) (Josh Goldberg ✨)
    -   [`8792464`](https://github.com/eslint/eslint/commit/8792464ee7956af82dab582ca9ee59da596a608e) feat: Enable eslint.config.mjs and eslint.config.cjs ([#17909](https://github.com/eslint/eslint/issues/17909)) (Nicholas C. Zakas)
    -   [`24ce927`](https://github.com/eslint/eslint/commit/24ce9276d472b85541c4b01db488c789f33fd234) feat: warn by default for unused disable directives ([#17879](https://github.com/eslint/eslint/issues/17879)) (Bryan Mishkin)
    
    #### Bug Fixes
    
    -   [`610c148`](https://github.com/eslint/eslint/commit/610c1486dc54a095667822113eb08062a1aad2b7) fix: Support `using` declarations in no-lone-blocks ([#18269](https://github.com/eslint/eslint/issues/18269)) (Kirk Waiblinger)
    -   [`e508800`](https://github.com/eslint/eslint/commit/e508800658d0a71356ccc8b94a30e06140fc8858) fix: rule tester ignore irrelevant test case properties ([#18235](https://github.com/eslint/eslint/issues/18235)) (fnx)
    -   [`a129acb`](https://github.com/eslint/eslint/commit/a129acba0bd2d44480b56fd96c3d5444e850ba5b) fix: flat config name on ignores object ([#18258](https://github.com/eslint/eslint/issues/18258)) (Nicholas C. Zakas)
    -   [`dadc5bf`](https://github.com/eslint/eslint/commit/dadc5bf843a7181b9724a261c7ac0486091207aa) fix: `constructor-super` false positives with loops ([#18226](https://github.com/eslint/eslint/issues/18226)) (Milos Djermanovic)
    -   [`ae8103d`](https://github.com/eslint/eslint/commit/ae8103de69c12c6e71644a1de9589644e6767d15) fix: load plugins in the CLI in flat config mode ([#18185](https://github.com/eslint/eslint/issues/18185)) (Francesco Trotta)
    -   [`e37153f`](https://github.com/eslint/eslint/commit/e37153f71f173e8667273d6298bef81e0d33f9ba) fix: improve error message for invalid rule config ([#18147](https://github.com/eslint/eslint/issues/18147)) (Nitin Kumar)
    -   [`af6e170`](https://github.com/eslint/eslint/commit/af6e17081fa6c343474959712e7a4a20f8b304e2) fix: stop linting files after an error ([#18155](https://github.com/eslint/eslint/issues/18155)) (Francesco Trotta)
    -   [`0cb4914`](https://github.com/eslint/eslint/commit/0cb4914ef93cd572ba368d390b1cf0b93f578a9d) fix: validate options when comment with just severity enables rule ([#18133](https://github.com/eslint/eslint/issues/18133)) (Milos Djermanovic)
    -   [`c4d26fd`](https://github.com/eslint/eslint/commit/c4d26fd3d1f59c1c0f2266664887ad18692039f3) fix: `use-isnan` doesn't report on `SequenceExpression`s ([#18059](https://github.com/eslint/eslint/issues/18059)) (StyleShit)
    -   [`39076fb`](https://github.com/eslint/eslint/commit/39076fb5e4c7fa10b305d510f489aff34a5f5d99) fix: handle absolute file paths in `RuleTester` ([#17989](https://github.com/eslint/eslint/issues/17989)) (Nitin Kumar)
    -   [`6d11f3d`](https://github.com/eslint/eslint/commit/6d11f3dac1b76188d7fda6e772e89b5c3945ac4d) fix: Ensure config keys are printed for config errors ([#17980](https://github.com/eslint/eslint/issues/17980)) (Nicholas C. Zakas)
    -   [`806f708`](https://github.com/eslint/eslint/commit/806f70878e787f2c56aaa42a3e7adb61bc015278) fix: `no-misleading-character-class` edge cases with granular errors ([#17970](https://github.com/eslint/eslint/issues/17970)) (Milos Djermanovic)
    -   [`f182114`](https://github.com/eslint/eslint/commit/f182114144ae0bb7187de34a1661f31fb70f1357) fix: deep merge behavior in flat config ([#17906](https://github.com/eslint/eslint/issues/17906)) (Francesco Trotta)
    -   [`b577e8a`](https://github.com/eslint/eslint/commit/b577e8a55750c5e842074f62f1babb1836c4571c) fix: allow circular references in config ([#17752](https://github.com/eslint/eslint/issues/17752)) (Francesco Trotta)
    
    #### Documentation
    
    -   [`e151050`](https://github.com/eslint/eslint/commit/e151050e64b57f156c32f6d0d1f20dce08b5a610) docs: update get-started to the new `@eslint/create-config` ([#18217](https://github.com/eslint/eslint/issues/18217)) (唯然)
    -   [`94178ad`](https://github.com/eslint/eslint/commit/94178ad5cf4cfa1c8664dd8ac878790e72c90d8c) docs: mention about `name` field in flat config ([#18252](https://github.com/eslint/eslint/issues/18252)) (Anthony Fu)
    -   [`1765c24`](https://github.com/eslint/eslint/commit/1765c24df2f48ab1c1565177b8c6dbef63acf977) docs: add Troubleshooting page ([#18181](https://github.com/eslint/eslint/issues/18181)) (Josh Goldberg ✨)
    -   [`96607d0`](https://github.com/eslint/eslint/commit/96607d0581845fab19f832cd435547f9da960733) docs: version selectors synchronization ([#18260](https://github.com/eslint/eslint/issues/18260)) (Milos Djermanovic)
    -   [`651ec91`](https://github.com/eslint/eslint/commit/651ec9122d0bd8dd08082098bd1e1a24892983f2) docs: remove `/* eslint-env */` comments from rule examples ([#18249](https://github.com/eslint/eslint/issues/18249)) (Milos Djermanovic)
    -   [`950c4f1`](https://github.com/eslint/eslint/commit/950c4f11c6797de56a5b056affd0c74211840957) docs: Update README (GitHub Actions Bot)
    -   [`12f5746`](https://github.com/eslint/eslint/commit/12f574628f2adbe1bfed07aafecf5152b5fc3f4d) docs: add info about dot files and dir in flat config ([#18239](https://github.com/eslint/eslint/issues/18239)) (Tanuj Kanti)
    -   [`b93f408`](https://github.com/eslint/eslint/commit/b93f4085c105117a1081b249bd50c0831127fab3) docs: update shared settings example ([#18251](https://github.com/eslint/eslint/issues/18251)) (Tanuj Kanti)
    -   [`26384d3`](https://github.com/eslint/eslint/commit/26384d3367e11bd4909a3330b72741742897fa1f) docs: fix `ecmaVersion` in one example, add checks ([#18241](https://github.com/eslint/eslint/issues/18241)) (Milos Djermanovic)
    -   [`7747097`](https://github.com/eslint/eslint/commit/77470973a0c2cae8ce07a456f2ad95896bc8d1d3) docs: Update PR review process ([#18233](https://github.com/eslint/eslint/issues/18233)) (Nicholas C. Zakas)
    -   [`b07d427`](https://github.com/eslint/eslint/commit/b07d427826f81c2bdb683d04879093c687479edf) docs: fix typo ([#18246](https://github.com/eslint/eslint/issues/18246)) (Kirill Gavrilov)
    -   [`778082d`](https://github.com/eslint/eslint/commit/778082d4fa5e2fc97549c9e5acaecc488ef928f5) docs: add Glossary page ([#18187](https://github.com/eslint/eslint/issues/18187)) (Josh Goldberg ✨)
    -   [`239a7e2`](https://github.com/eslint/eslint/commit/239a7e27209a6b861d634b3ef245ebbb805793a3) docs: Clarify the description of `sort-imports` options ([#18198](https://github.com/eslint/eslint/issues/18198)) (gyeongwoo park)
    -   [`4769c86`](https://github.com/eslint/eslint/commit/4769c86cc16e0b54294c0a394a1ec7ed88fc334f) docs: fix incorrect example in `no-lone-blocks` ([#18215](https://github.com/eslint/eslint/issues/18215)) (Tanuj Kanti)
    -   [`5251327`](https://github.com/eslint/eslint/commit/5251327711a2d7083e3c629cb8e48d9d1e809add) docs: Update README (GitHub Actions Bot)
    -   [`1dc8618`](https://github.com/eslint/eslint/commit/1dc861897e8b47280e878d609c13c9e41892f427) docs: Update README (GitHub Actions Bot)
    -   [`ba1c1bb`](https://github.com/eslint/eslint/commit/ba1c1bbc6ba9d57a83d04f450566337d3c3b0448) docs: Update README (GitHub Actions Bot)
    -   [`337cdf9`](https://github.com/eslint/eslint/commit/337cdf9f7ad939df7bc55c23d953e12d847b6ecc) docs: Explain limitations of RuleTester fix testing ([#18175](https://github.com/eslint/eslint/issues/18175)) (Nicholas C. Zakas)
    -   [`c7abd89`](https://github.com/eslint/eslint/commit/c7abd8936193a87be274174c47d6775e6220e354) docs: Explain Node.js version support ([#18176](https://github.com/eslint/eslint/issues/18176)) (Nicholas C. Zakas)
    -   [`d961eeb`](https://github.com/eslint/eslint/commit/d961eeb855b6dd9118a78165e358e454eb1d090d) docs: show red underlines in examples in rules docs ([#18041](https://github.com/eslint/eslint/issues/18041)) (Yosuke Ota)
    -   [`558274a`](https://github.com/eslint/eslint/commit/558274abbd25ef269f4994cf258b2e44afbad548) docs: Update README (GitHub Actions Bot)
    -   [`2908b9b`](https://github.com/eslint/eslint/commit/2908b9b96ab7a25fe8044a1755030b18186a75b0) docs: Update release documentation ([#18174](https://github.com/eslint/eslint/issues/18174)) (Nicholas C. Zakas)
    -   [`1f1260e`](https://github.com/eslint/eslint/commit/1f1260e863f53e2a5891163485a67c55d41993aa) docs: replace HackerOne link with GitHub advisory ([#18165](https://github.com/eslint/eslint/issues/18165)) (Francesco Trotta)
    -   [`e5ef3cd`](https://github.com/eslint/eslint/commit/e5ef3cd6953bb40108556e0465653898ffed8420) docs: add inline cases condition in `no-fallthrough` ([#18158](https://github.com/eslint/eslint/issues/18158)) (Tanuj Kanti)
    -   [`450d0f0`](https://github.com/eslint/eslint/commit/450d0f044023843b1790bd497dfca45dcbdb41e4) docs: fix `ignore` option docs ([#18154](https://github.com/eslint/eslint/issues/18154)) (Francesco Trotta)
    -   [`5fe095c`](https://github.com/eslint/eslint/commit/5fe095cf718b063dc5e58089b0a6cbcd53da7925) docs: show v8.57.0 as latest version in dropdown ([#18142](https://github.com/eslint/eslint/issues/18142)) (Milos Djermanovic)
    -   [`7db5bb2`](https://github.com/eslint/eslint/commit/7db5bb270f95d1472de0bfed0e33ed5ab294942e) docs: Show prerelease version in dropdown ([#18135](https://github.com/eslint/eslint/issues/18135)) (Nicholas C. Zakas)
    -   [`73a5f06`](https://github.com/eslint/eslint/commit/73a5f0641b43e169247b0000f44a366ee6bbc4f2) docs: Update README (GitHub Actions Bot)
    -   [`f95cd27`](https://github.com/eslint/eslint/commit/f95cd27679eef228173e27e170429c9710c939b3) docs: Disallow multiple rule configuration comments in the same example ([#18116](https://github.com/eslint/eslint/issues/18116)) (Milos Djermanovic)
    -   [`d8068ec`](https://github.com/eslint/eslint/commit/d8068ec70fac050e900dc400510a4ad673e17633) docs: Update link for schema examples ([#18112](https://github.com/eslint/eslint/issues/18112)) (Svetlana)
    -   [`f1c7e6f`](https://github.com/eslint/eslint/commit/f1c7e6fc8ea77fcdae4ad1f8fe1cd104a281d2e9) docs: Switch to Ethical Ads ([#18090](https://github.com/eslint/eslint/issues/18090)) (Strek)
    -   [`15c143f`](https://github.com/eslint/eslint/commit/15c143f96ef164943fd3d39b5ad79d9a4a40de8f) docs: JS Foundation -> OpenJS Foundation in PR template ([#18092](https://github.com/eslint/eslint/issues/18092)) (Nicholas C. Zakas)
    -   [`6ea339e`](https://github.com/eslint/eslint/commit/6ea339e658d29791528ab26aabd86f1683cab6c3) docs: add stricter rule test validations to v9 migration guide ([#18085](https://github.com/eslint/eslint/issues/18085)) (Milos Djermanovic)
    -   [`3c816f1`](https://github.com/eslint/eslint/commit/3c816f193eecace5efc6166efa2852a829175ef8) docs: use relative link from CLI to core concepts ([#18083](https://github.com/eslint/eslint/issues/18083)) (Milos Djermanovic)
    -   [`9458735`](https://github.com/eslint/eslint/commit/9458735381269d12b24f76e1b2b6fda1bc5a509b) docs: fix malformed `eslint` config comments in rule examples ([#18078](https://github.com/eslint/eslint/issues/18078)) (Francesco Trotta)
    -   [`07a1ada`](https://github.com/eslint/eslint/commit/07a1ada7166b76c7af6186f4c5e5de8b8532edba) docs: link from `--fix` CLI doc to the relevant core concept ([#18080](https://github.com/eslint/eslint/issues/18080)) (Bryan Mishkin)
    -   [`b844324`](https://github.com/eslint/eslint/commit/b844324e4e8f511c9985a96c7aca063269df9570) docs: Update team responsibilities ([#18048](https://github.com/eslint/eslint/issues/18048)) (Nicholas C. Zakas)
    -   [`aadfb60`](https://github.com/eslint/eslint/commit/aadfb609f1b847e492fc3b28ced62f830fe7f294) docs: document languageOptions and other v9 changes for context ([#18074](https://github.com/eslint/eslint/issues/18074)) (fnx)
    -   [`857e242`](https://github.com/eslint/eslint/commit/857e242584227181ecb8af79fc6bc236b9975228) docs: tweak explanation for meta.docs rule properties ([#18057](https://github.com/eslint/eslint/issues/18057)) (Bryan Mishkin)
    -   [`10485e8`](https://github.com/eslint/eslint/commit/10485e8b961d045514bc1e34227cf09867a6c4b7) docs: recommend messageId over message for reporting rule violations ([#18050](https://github.com/eslint/eslint/issues/18050)) (Bryan Mishkin)
    -   [`98b5ab4`](https://github.com/eslint/eslint/commit/98b5ab406bac6279eadd84e8a5fd5a01fc586ff1) docs: Update README (GitHub Actions Bot)
    -   [`505fbf4`](https://github.com/eslint/eslint/commit/505fbf4b35c14332bffb0c838cce4843a00fad68) docs: update `no-restricted-imports` rule ([#18015](https://github.com/eslint/eslint/issues/18015)) (Tanuj Kanti)
    -   [`c25b4af`](https://github.com/eslint/eslint/commit/c25b4aff1fe35e5bd9d4fcdbb45b739b6d253828) docs: Update README (GitHub Actions Bot)
    -   [`33d1ab0`](https://github.com/eslint/eslint/commit/33d1ab0b6ea5fcebca7284026d2396df41b06566) docs: add more examples to flat config ignores docs ([#18020](https://github.com/eslint/eslint/issues/18020)) (Milos Djermanovic)
    -   [`e6eebca`](https://github.com/eslint/eslint/commit/e6eebca90750ef5c7c99d4fe3658553cf737dab8) docs: Update sort-keys options properties count ([#18025](https://github.com/eslint/eslint/issues/18025)) (LB (Ben Johnston))
    -   [`1fedfd2`](https://github.com/eslint/eslint/commit/1fedfd28a46d86b2fbcf06a2328befafd6535a88) docs: Improve flat config ignores docs ([#17997](https://github.com/eslint/eslint/issues/17997)) (Nicholas C. Zakas)
    -   [`38b9b06`](https://github.com/eslint/eslint/commit/38b9b06695f88c70441dd15ae5d97ffd8088be23) docs: update valid-typeof rule ([#18001](https://github.com/eslint/eslint/issues/18001)) (Tanuj Kanti)
    -   [`b4abfea`](https://github.com/eslint/eslint/commit/b4abfea4c1703a50f1ce639e3207ad342a56f79d) docs: Update note about ECMAScript support ([#17991](https://github.com/eslint/eslint/issues/17991)) (Francesco Trotta)
    -   [`6788873`](https://github.com/eslint/eslint/commit/6788873328a7f974d5e45c0be06ca0c7dd409acd) docs: Update release blog post template ([#17994](https://github.com/eslint/eslint/issues/17994)) (Nicholas C. Zakas)
    -   [`1f37442`](https://github.com/eslint/eslint/commit/1f3744278433006042b8d5f4e9e1e488b2bbb011) docs: Add sections on non-npm plugin configuration ([#17984](https://github.com/eslint/eslint/issues/17984)) (Nicholas C. Zakas)
    -   [`96307da`](https://github.com/eslint/eslint/commit/96307da837c407c9a1275124b65ca29c07ffd5e4) docs: migration guide entry for `no-inner-declarations` ([#17977](https://github.com/eslint/eslint/issues/17977)) (Tanuj Kanti)
    -   [`40be60e`](https://github.com/eslint/eslint/commit/40be60e0186cdde76219df4e8e628125df2912d8) docs: Update README (GitHub Actions Bot)
    -   [`d31c180`](https://github.com/eslint/eslint/commit/d31c180312260d1a286cc8162907b6a33368edc9) docs: fix number of code-path events on custom rules page ([#17969](https://github.com/eslint/eslint/issues/17969)) (Richard Hunter)
    -   [`1529ab2`](https://github.com/eslint/eslint/commit/1529ab288ec815b2690864e04dd6d0a1f0b537c6) docs: reorder entries in v9 migration guide ([#17967](https://github.com/eslint/eslint/issues/17967)) (Milos Djermanovic)
    -   [`9507525`](https://github.com/eslint/eslint/commit/95075251fb3ce35aaf7eadbd1d0a737106c13ec6) docs: Explain how to combine configs ([#17947](https://github.com/eslint/eslint/issues/17947)) (Nicholas C. Zakas)
    -   [`7c78576`](https://github.com/eslint/eslint/commit/7c785769fd177176966de7f6c1153480f7405000) docs: Add more removed `context` methods to migrate to v9 guide ([#17951](https://github.com/eslint/eslint/issues/17951)) (Milos Djermanovic)
    -   [`3a877d6`](https://github.com/eslint/eslint/commit/3a877d68d0151679f8bf1cabc39746778754b3dd) docs: Update removed CLI flags migration ([#17939](https://github.com/eslint/eslint/issues/17939)) (Nicholas C. Zakas)
    -   [`4a9cd1e`](https://github.com/eslint/eslint/commit/4a9cd1ea1cd0c115b98d07d1b6018ca918a9c73f) docs: Update Linter API for v9 ([#17937](https://github.com/eslint/eslint/issues/17937)) (Milos Djermanovic)
    -   [`2a8eea8`](https://github.com/eslint/eslint/commit/2a8eea8e5847f4103d90d667a2b08edf9795545f) docs: update docs for v9.0.0-alpha.0 ([#17929](https://github.com/eslint/eslint/issues/17929)) (Milos Djermanovic)
    -   [`7f0ba51`](https://github.com/eslint/eslint/commit/7f0ba51bcef3e6fbf972ceb20403238f0e1f0ea9) docs: show `NEXT` in version selectors ([#17911](https://github.com/eslint/eslint/issues/17911)) (Milos Djermanovic)
    -   [`0a7911e`](https://github.com/eslint/eslint/commit/0a7911e09adf2aca4d93c81f4be1cd80db7dd735) docs: add flat config default to v9 migration guide ([#17927](https://github.com/eslint/eslint/issues/17927)) (Milos Djermanovic)
    -   [`94f8065`](https://github.com/eslint/eslint/commit/94f80652aca302e2715ea51c10c3a1010786b751) docs: Add CLI updates to migrate to v9 guide ([#17924](https://github.com/eslint/eslint/issues/17924)) (Nicholas C. Zakas)
    -   [`16187f2`](https://github.com/eslint/eslint/commit/16187f23c6e5aaed3b50ff551a66f758893d5422) docs: Add exported and string config notes to migrate to v9 guide ([#17926](https://github.com/eslint/eslint/issues/17926)) (Nicholas C. Zakas)
    -   [`3ae50cc`](https://github.com/eslint/eslint/commit/3ae50cc788c3cdd209e642573e3c831dd86fa0cd) docs: Add RuleTester changes to migrate to v9 guide ([#17923](https://github.com/eslint/eslint/issues/17923)) (Nicholas C. Zakas)
    -   [`0831b58`](https://github.com/eslint/eslint/commit/0831b58fe6fb5778c92aeb4cefa9ecedbbfbf48b) docs: add rule changes to v9 migration guide ([#17925](https://github.com/eslint/eslint/issues/17925)) (Milos Djermanovic)
    -   [`037abfc`](https://github.com/eslint/eslint/commit/037abfc21f264fca3a910c4a5cd23d1bf6826c3d) docs: update API docs ([#17919](https://github.com/eslint/eslint/issues/17919)) (Milos Djermanovic)
    -   [`afc3c03`](https://github.com/eslint/eslint/commit/afc3c038ed3132a99659604624cc24e702eec45a) docs: add function-style and `meta.schema` changes to v9 migration guide ([#17912](https://github.com/eslint/eslint/issues/17912)) (Milos Djermanovic)
    -   [`1da0723`](https://github.com/eslint/eslint/commit/1da0723695d080008b22f30c8b5c86fe386c6242) docs: update `eslint:recommended` section in Migrate to v9.x ([#17908](https://github.com/eslint/eslint/issues/17908)) (Milos Djermanovic)
    -   [`f55881f`](https://github.com/eslint/eslint/commit/f55881f492d10e9c759e459ba6bade1be3dad84b) docs: remove configuration-files-new.md ([#17907](https://github.com/eslint/eslint/issues/17907)) (Milos Djermanovic)
    -   [`63ae191`](https://github.com/eslint/eslint/commit/63ae191070569a9118b5972c90a98633b0a336e1) docs: Migrate to v9.0.0 ([#17905](https://github.com/eslint/eslint/issues/17905)) (Nicholas C. Zakas)
    -   [`e708496`](https://github.com/eslint/eslint/commit/e7084963c73f3cbaae5d569b4a2bee1509dd8cef) docs: Switch to flat config by default ([#17840](https://github.com/eslint/eslint/issues/17840)) (Nicholas C. Zakas)
    -   [`fdf0424`](https://github.com/eslint/eslint/commit/fdf0424c5c08c058479a6cd7676be6985e0f400f) docs: Update Create a Plugin for flat config ([#17826](https://github.com/eslint/eslint/issues/17826)) (Nicholas C. Zakas)
    -   [`e6a91bd`](https://github.com/eslint/eslint/commit/e6a91bdf401e3b765f2b712e447154e4a2419fbc) docs: Switch shareable config docs to use flat config ([#17827](https://github.com/eslint/eslint/issues/17827)) (Nicholas C. Zakas)
    -   [`3831fb7`](https://github.com/eslint/eslint/commit/3831fb78daa3da296b71823f61f8e3a4556ff7d3) docs: updated examples of `max-lines` rule ([#17898](https://github.com/eslint/eslint/issues/17898)) (Tanuj Kanti)
    -   [`cd1ac20`](https://github.com/eslint/eslint/commit/cd1ac2041f48f2b6d743ebf671d0279a70de6eea) docs: Update README (GitHub Actions Bot)
    
    #### Build Related
    
    -   [`26010c2`](https://github.com/eslint/eslint/commit/26010c209d2657cd401bf2550ba4f276cb318f7d) Build: changelog update for 9.0.0-rc.0 (Jenkins)
    -   [`b91f9dc`](https://github.com/eslint/eslint/commit/b91f9dc072f17f5ea79803deb86cf002d031b4cf) build: fix TypeError in prism-eslint-hooks.js ([#18209](https://github.com/eslint/eslint/issues/18209)) (Francesco Trotta)
    -   [`d7ec0d1`](https://github.com/eslint/eslint/commit/d7ec0d1fbdbafa139d090ffd8b42d33bd4aa46f8) Build: changelog update for 9.0.0-beta.2 (Jenkins)
    -   [`fd9c0a9`](https://github.com/eslint/eslint/commit/fd9c0a9f0e50da617fe1f2e60ba3df0276a7f06b) Build: changelog update for 9.0.0-beta.1 (Jenkins)
    -   [`c9f2f33`](https://github.com/eslint/eslint/commit/c9f2f3343e7c197e5e962c68ef202d6a1646866e) build: changelog update for 8.57.0 ([#18144](https://github.com/eslint/eslint/issues/18144)) (Milos Djermanovic)
    -   [`1bbc495`](https://github.com/eslint/eslint/commit/1bbc495aecbd3e4a4aaf54d7c489191809c1b65b) Build: changelog update for 9.0.0-beta.0 (Jenkins)
    -   [`96f8877`](https://github.com/eslint/eslint/commit/96f8877de7dd3d92ac5afb77c92d821002d24929) Build: changelog update for 9.0.0-alpha.2 (Jenkins)
    -   [`52d5e7a`](https://github.com/eslint/eslint/commit/52d5e7a41d37a1a6d9aa1dffba3b688573800536) Build: changelog update for 9.0.0-alpha.1 (Jenkins)
    -   [`c2bf27d`](https://github.com/eslint/eslint/commit/c2bf27def29ef1ca7f5bfe20c1306bf78087ea29) build: update docs files when publishing prereleases ([#17940](https://github.com/eslint/eslint/issues/17940)) (Milos Djermanovic)
    -   [`e91d85d`](https://github.com/eslint/eslint/commit/e91d85db76c7bd8a5998f7ff52d2cc844d0e953e) Build: changelog update for 9.0.0-alpha.0 (Jenkins)
    
    #### Chores
    
    -   [`19f9a89`](https://github.com/eslint/eslint/commit/19f9a8926bd7888ab4a813ae323ad3c332fd5d5c) chore: Update dependencies for v9.0.0 ([#18275](https://github.com/eslint/eslint/issues/18275)) (Nicholas C. Zakas)
    -   [`7c957f2`](https://github.com/eslint/eslint/commit/7c957f295dcd97286016cfb3c121dbae72f26a91) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`d73a33c`](https://github.com/eslint/eslint/commit/d73a33caddc34ab1eb62039f0f661a338836147c) chore: ignore `/docs/v8.x` in link checker ([#18274](https://github.com/eslint/eslint/issues/18274)) (Milos Djermanovic)
    -   [`44a81c6`](https://github.com/eslint/eslint/commit/44a81c6151c58a3f4c1f6bb2927b0996f81c2daa) chore: upgrade knip ([#18272](https://github.com/eslint/eslint/issues/18272)) (Lars Kappert)
    -   [`e80b60c`](https://github.com/eslint/eslint/commit/e80b60c342f59db998afefd856b31159a527886a) chore: remove code for testing version selectors ([#18266](https://github.com/eslint/eslint/issues/18266)) (Milos Djermanovic)
    -   [`a98babc`](https://github.com/eslint/eslint/commit/a98babcda227649b2299d10e3f887241099406f7) chore: add npm script to run WebdriverIO test ([#18238](https://github.com/eslint/eslint/issues/18238)) (Francesco Trotta)
    -   [`9b7bd3b`](https://github.com/eslint/eslint/commit/9b7bd3be066ac1f72fa35c4d31a1b178c7e2b683) chore: update dependency markdownlint to ^0.34.0 ([#18237](https://github.com/eslint/eslint/issues/18237)) (renovate\[bot])
    -   [`297416d`](https://github.com/eslint/eslint/commit/297416d2b41f5880554d052328aa36cd79ceb051) chore: package.json update for eslint-9.0.0-rc.0 ([#18223](https://github.com/eslint/eslint/issues/18223)) (Francesco Trotta)
    -   [`d363c51`](https://github.com/eslint/eslint/commit/d363c51b177e085b011c7fde1c5a5a09b3db9cdb) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`1b841bb`](https://github.com/eslint/eslint/commit/1b841bb04ac642c5ee84d1e44be3e53317579526) chore: fix some comments ([#18213](https://github.com/eslint/eslint/issues/18213)) (avoidaway)
    -   [`29c3595`](https://github.com/eslint/eslint/commit/29c359599c2ddd168084a2c8cbca626c51d0dc13) chore: remove repetitive words ([#18193](https://github.com/eslint/eslint/issues/18193)) (cuithon)
    -   [`acc2e06`](https://github.com/eslint/eslint/commit/acc2e06edd55eaab58530d891c0a572c1f0ec453) chore: Introduce Knip ([#18005](https://github.com/eslint/eslint/issues/18005)) (Lars Kappert)
    -   [`7509276`](https://github.com/eslint/eslint/commit/75092764db117252067558bd3fbbf0c66ac081b7) chore: upgrade [@eslint/js](https://github.com/eslint/js)[@9](https://github.com/9).0.0-beta.2 ([#18180](https://github.com/eslint/eslint/issues/18180)) (Milos Djermanovic)
    -   [`96087b3`](https://github.com/eslint/eslint/commit/96087b33dc10311bba83e22cc968919c358a0188) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`925afa2`](https://github.com/eslint/eslint/commit/925afa2b0c882f77f6b4411bdca3cb8ad6934b56) chore: Remove some uses of `lodash.merge` ([#18179](https://github.com/eslint/eslint/issues/18179)) (Milos Djermanovic)
    -   [`972ef15`](https://github.com/eslint/eslint/commit/972ef155a94ad2cc85db7d209ad869869222c14c) chore: remove invalid type in [@eslint/js](https://github.com/eslint/js) ([#18164](https://github.com/eslint/eslint/issues/18164)) (Nitin Kumar)
    -   [`32ffdd1`](https://github.com/eslint/eslint/commit/32ffdd181aa673ccc596f714d10a2f879ec622a7) chore: upgrade [@eslint/js](https://github.com/eslint/js)[@9](https://github.com/9).0.0-beta.1 ([#18146](https://github.com/eslint/eslint/issues/18146)) (Milos Djermanovic)
    -   [`e41425b`](https://github.com/eslint/eslint/commit/e41425b5c3b4c885f2679a3663bd081911a8b570) chore: package.json update for [@eslint/js](https://github.com/eslint/js) release (Jenkins)
    -   [`bb3b9c6`](https://github.com/eslint/eslint/commit/bb3b9c68fe714bb8aa305be5f019a7a42f4374ee) chore: upgrade [@eslint/eslintrc](https://github.com/eslint/eslintrc)[@3](https://github.com/3).0.2 ([#18145](https://github.com/eslint/eslint/issues/18145)) (Milos Djermanovic)
    -   [`e462524`](https://github.com/eslint/eslint/commit/e462524cc318ffacecd266e6fe1038945a0b02e9) chore: upgrade eslint-release@3.2.2 ([#18138](https://github.com/eslint/eslint/issues/18138)) (Milos Djermanovic)
    -   [`8e13a6b`](https://github.com/eslint/eslint/commit/8e13a6beb587e624cc95ae16eefe503ad024b11b) chore: fix spelling mistake in README.md ([#18128](https://github.com/eslint/eslint/issues/18128)) (Will Eastcott)
    -   [`66f52e2`](https://github.com/eslint/eslint/commit/66f52e276c31487424bcf54e490c4ac7ef70f77f) chore: remove unused tools rule-types.json, update-rule-types.js ([#18125](https://github.com/eslint/eslint/issues/18125)) (Josh Goldberg ✨)
    -   [`bf0c7ef`](https://github.com/eslint/eslint/commit/bf0c7effdba51c48b929d06ce1965408a912dc77) ci: fix sync-labels value of pr-labeler ([#18124](https://github.com/eslint/eslint/issues/18124)) (Tanuj Kanti)
    -   [`cace6d0`](https://github.com/eslint/eslint/commit/cace6d0a3afa5c84b18abee4ef8c598125143461) ci: add PR labeler action ([#18109](https://github.com/eslint/eslint/issues/18109)) (Nitin Kumar)
    -   [`1a65d3e`](https://github.com/eslint/eslint/commit/1a65d3e4a6ee16e3f607d69b998a08c3fed505ca) chore: export `base` config from `eslint-conf…
    renovate[bot] authored Aug 24, 2024
    Configuration menu
    Copy the full SHA
    f0cb571 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    25b3fd8 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2024

  1. Configuration menu
    Copy the full SHA
    0b7933e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    36b461e View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2024

  1. fix(deps): update dependency eslint-plugin-import-x to v4

    ##### [v4.0.0](https://github.com/un-ts/eslint-plugin-import-x/blob/HEAD/CHANGELOG.md#400)
    
    ##### Major Changes
    
    -   [#112](un-ts/eslint-plugin-import-x#112) [`4ba14da`](un-ts/eslint-plugin-import-x@4ba14da) Thanks [@SukkaW](https://github.com/SukkaW)! - Use typescript-eslint v8. The minimum supported ESLint version is now >= 8.57.0 and the minimum required Node.js version is now 18.18.0.
    renovate[bot] authored Aug 27, 2024
    Configuration menu
    Copy the full SHA
    4c13f7c View commit details
    Browse the repository at this point in the history
  2. chore(deps): update pnpm to v9.9.0 (#26)

    [![Mend
    Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)
    
    This PR contains the following updates:
    
    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [pnpm](https://pnpm.io) ([source](https://togithub.com/pnpm/pnpm)) |
    [`9.8.0` -> `9.9.0`](https://renovatebot.com/diffs/npm/pnpm/9.8.0/9.9.0)
    |
    [![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/9.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/9.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/9.8.0/9.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/9.8.0/9.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - At any time (no schedule defined),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Enabled.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend
    Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
    [repository job
    log](https://developer.mend.io/github/mmkal/eslint-plugin-mmkal).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6ImRlcHMiLCJsYWJlbHMiOltdfQ==-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Aug 27, 2024
    Configuration menu
    Copy the full SHA
    44d6f88 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ef0a63a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    527b5bd View commit details
    Browse the repository at this point in the history
  5. fix(deps): update dependency eslint-plugin-import-x to v4.1.0

    ##### [v4.1.0](https://github.com/un-ts/eslint-plugin-import-x/blob/HEAD/CHANGELOG.md#410)
    
    ##### Minor Changes
    
    -   [#122](un-ts/eslint-plugin-import-x#122) [`cd52e86`](un-ts/eslint-plugin-import-x@cd52e86) Thanks [@michaelfaith](https://github.com/michaelfaith)! - Add ESLint flat configuration presets. You can access them with:
    
        ```ts
        import eslintPluginImportX from "eslint-plugin-import-x";
    
        eslintPluginImportX.flatConfigs.recommended;
        eslintPluginImportX.flatConfigs.react;
        eslintPluginImportX.flatConfigs.typescript;
        eslintPluginImportX.flatConfigs.electron;
        ```
    
    -   [#132](un-ts/eslint-plugin-import-x#132) [`9948c78`](un-ts/eslint-plugin-import-x@9948c78) Thanks [@SukkaW](https://github.com/SukkaW)! - Added `no-rename-default` that forbid importing a default export by a different name. Originally created by [@whitneyit](https://github.com/whitneyit), ported by [@SukkaW](https://github.com/SukkaW)
    renovate[bot] authored Aug 27, 2024
    Configuration menu
    Copy the full SHA
    9e57003 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2024

  1. Configuration menu
    Copy the full SHA
    fb0922b View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2024

  1. fix(deps): update dependency eslint-plugin-import-x to v4.1.1

    ##### [v4.1.1](https://github.com/un-ts/eslint-plugin-import-x/blob/HEAD/CHANGELOG.md#411)
    
    ##### Patch Changes
    
    -   [#133](un-ts/eslint-plugin-import-x#133) [`757ffa9`](un-ts/eslint-plugin-import-x@757ffa9) Thanks [@SukkaW](https://github.com/SukkaW)! - Fix [#123](un-ts/eslint-plugin-import-x#123) where the rule `no-named-as-default` will confuse TypeScript namespace exports with actual exports.
    renovate[bot] authored Aug 29, 2024
    Configuration menu
    Copy the full SHA
    2bc3dcf View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2024

  1. chore(deps): update dependency pkg-pr-new to ^0.0.23 (#27)

    This PR contains the following updates:
    
    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [pkg-pr-new](https://togithub.com/stackblitz-labs/pkg.pr.new)
    ([source](https://togithub.com/stackblitz-labs/pkg.pr.new/tree/HEAD/packages/cli))
    | [`^0.0.20` ->
    `^0.0.23`](https://renovatebot.com/diffs/npm/pkg-pr-new/0.0.20/0.0.23) |
    [![age](https://developer.mend.io/api/mc/badges/age/npm/pkg-pr-new/0.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pkg-pr-new/0.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pkg-pr-new/0.0.20/0.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pkg-pr-new/0.0.20/0.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - At any time (no schedule defined),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Enabled.
    
    ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/mmkal/eslint-plugin-mmkal).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6ImRlcHMiLCJsYWJlbHMiOltdfQ==-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Sep 1, 2024
    Configuration menu
    Copy the full SHA
    4308aa4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c0daa42 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2024

  1. Configuration menu
    Copy the full SHA
    831288a View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2024

  1. Configuration menu
    Copy the full SHA
    ad4a432 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2024

  1. Configuration menu
    Copy the full SHA
    73bd867 View commit details
    Browse the repository at this point in the history
  2. fix(deps): update dependency eslint-plugin-jsx-a11y to v6.10.0

    ##### [v6.10.0](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/CHANGELOG.md#v6100---2024-09-03)
    
    ##### Fixed
    
    -   \[New] `label-has-associated-control`: add additional error message [`#1005`](jsx-eslint/eslint-plugin-jsx-a11y#1005)
    -   \[Fix] `label-has-associated-control`: ignore undetermined label text [`#966`](jsx-eslint/eslint-plugin-jsx-a11y#966)
    
    ##### Commits
    
    -   \[Tests] switch from jest to tape [`a284cbf`](jsx-eslint/eslint-plugin-jsx-a11y@a284cbf)
    -   \[New] add eslint 9 support [`deac4fd`](jsx-eslint/eslint-plugin-jsx-a11y@deac4fd)
    -   \[New] add `attributes` setting [`a1ee7f8`](jsx-eslint/eslint-plugin-jsx-a11y@a1ee7f8)
    -   \[New] allow polymorphic linting to be restricted [`6cd1a70`](jsx-eslint/eslint-plugin-jsx-a11y@6cd1a70)
    -   \[Tests] remove duplicate tests [`74d5dec`](jsx-eslint/eslint-plugin-jsx-a11y@74d5dec)
    -   \[Dev Deps] update `@babel/cli`, `@babel/core`, `@babel/eslint-parser`, `@babel/plugin-transform-flow-strip-types` [`6eca235`](jsx-eslint/eslint-plugin-jsx-a11y@6eca235)
    -   \[readme] remove deprecated travis ci badge; add github actions badge [`0be7ea9`](jsx-eslint/eslint-plugin-jsx-a11y@0be7ea9)
    -   \[Tests] use `npm audit` instead of `aud` [`05a5e49`](jsx-eslint/eslint-plugin-jsx-a11y@05a5e49)
    -   \[Deps] update `axobject-query` [`912e98c`](jsx-eslint/eslint-plugin-jsx-a11y@912e98c)
    -   \[Deps] unpin `axobject-query` [`75147aa`](jsx-eslint/eslint-plugin-jsx-a11y@75147aa)
    -   \[Deps] update `axe-core` [`27ff7cb`](jsx-eslint/eslint-plugin-jsx-a11y@27ff7cb)
    -   \[readme] fix jsxA11y import name [`ce846e0`](jsx-eslint/eslint-plugin-jsx-a11y@ce846e0)
    -   \[readme] fix typo in shareable config section in readme [`cca288b`](jsx-eslint/eslint-plugin-jsx-a11y@cca288b)
    renovate[bot] authored Sep 4, 2024
    Configuration menu
    Copy the full SHA
    32a02d5 View commit details
    Browse the repository at this point in the history
  3. fix(deps): update dependency eslint-plugin-import-x to v4.2.0

    ##### [v4.2.0](https://github.com/un-ts/eslint-plugin-import-x/blob/HEAD/CHANGELOG.md#420)
    
    ##### Minor Changes
    
    -   [#142](un-ts/eslint-plugin-import-x#142) [`f12447e`](un-ts/eslint-plugin-import-x@f12447e) Thanks [@Zamiell](https://github.com/Zamiell)! - Add new option "whitelist" for rule "no-extraneous-dependencies"
    
    ##### Patch Changes
    
    -   [#146](un-ts/eslint-plugin-import-x#146) [`e5e4580`](un-ts/eslint-plugin-import-x@e5e4580) Thanks [@SukkaW](https://github.com/SukkaW)! - Fix nuxt/eslint#494 by avoid importing from `@typescript-eslint/typescript-estree`.
    renovate[bot] authored Sep 4, 2024
    Configuration menu
    Copy the full SHA
    db3278d View commit details
    Browse the repository at this point in the history
  4. fix(deps): update dependency eslint-plugin-import-x to v4.2.1

    ##### [v4.2.1](https://github.com/un-ts/eslint-plugin-import-x/blob/HEAD/CHANGELOG.md#421)
    
    ##### Patch Changes
    
    -   [#148](un-ts/eslint-plugin-import-x#148) [`d228129`](un-ts/eslint-plugin-import-x@d228129) Thanks [@SukkaW](https://github.com/SukkaW)! - Fix `newline-after-import`'s `considerComments` options when linting `require`, backports import-js/eslint-plugin-import#2952
    
    -   [#147](un-ts/eslint-plugin-import-x#147) [`eca73ed`](un-ts/eslint-plugin-import-x@eca73ed) Thanks [@nchevsky](https://github.com/nchevsky)! - Fix regression in rule `no-unused-modules` which would incorrectly initialize option `src` to `[]` instead of `[process.cwd()]`, breaking file discovery.
    
    -   [#148](un-ts/eslint-plugin-import-x#148) [`d228129`](un-ts/eslint-plugin-import-x@d228129) Thanks [@SukkaW](https://github.com/SukkaW)! - Fix `no-duplicates` for TypeScript, backports import-js/eslint-plugin-import#3033
    renovate[bot] authored Sep 4, 2024
    Configuration menu
    Copy the full SHA
    e53796d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7a56748 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2024

  1. Configuration menu
    Copy the full SHA
    df09c1c View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2024

  1. Configuration menu
    Copy the full SHA
    66c7c59 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a96e932 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2024

  1. chore(deps): update pnpm to v9.10.0

    ##### [v9.10.0](https://github.com/pnpm/pnpm/releases/tag/v9.10.0)
    
    #### Minor Changes
    
    -   Support for a new CLI flag, `--exclude-peers`, added to the `list` and `why` commands. When `--exclude-peers` is used, peer dependencies are not printed in the results, but dependencies of peer dependencies are still scanned [#8506](pnpm/pnpm#8506).
    -   Added a new setting to `package.json` at `pnpm.auditConfig.ignoreGhsas` for ignoring vulnerabilities by their GHSA code [#6838](pnpm/pnpm#6838).
    
        For instance:
    
        ```json
        {
          "pnpm": {
            "auditConfig": {
              "ignoreGhsas": [
                "GHSA-42xw-2xvc-qx8m",
                "GHSA-4w2v-q235-vp99",
                "GHSA-cph5-m8f7-6c5x",
                "GHSA-vh95-rmgr-6w4m"
              ]
            }
          }
        }
        ```
    
    #### Patch Changes
    
    -   Throw an exception if pnpm switches to the same version of itself.
    -   Reduce memory usage during peer dependencies resolution.
    
    #### Platinum Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://bit.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80"></a>
          </td>
          <td align="center" valign="middle">
            <a href="https://figma.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank"><img src="https://pnpm.io/img/users/figma.svg" width="80"></a>
          </td>
        </tr>
      </tbody>
    </table>
    #### Gold Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" />
                <img src="https://pnpm.io/img/users/discord.svg" width="220" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://prisma.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/prisma.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/prisma_light.svg" />
                <img src="https://pnpm.io/img/users/prisma.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://uscreen.de/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/uscreen.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/uscreen_light.svg" />
                <img src="https://pnpm.io/img/users/uscreen.svg" width="180" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://www.jetbrains.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/jetbrains.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/jetbrains.svg" />
                <img src="https://pnpm.io/img/users/jetbrains.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" />
                <img src="https://pnpm.io/img/users/nx.svg" width="120" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
                <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" />
              </picture>
            </a>
          </td>
        </tr>
      </tbody>
    </table>
    #### Our Silver Sponsors
    
    <table>
      <tbody>
        <tr>
          <td align="center" valign="middle">
            <a href="https://leniolabs.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <img src="https://pnpm.io/img/users/leniolabs.jpg" width="80">
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://vercel.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/vercel.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/vercel_light.svg" />
                <img src="https://pnpm.io/img/users/vercel.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://depot.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/depot.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/depot_light.svg" />
                <img src="https://pnpm.io/img/users/depot.svg" width="200" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://moonrepo.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/moonrepo.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/moonrepo_light.svg" />
                <img src="https://pnpm.io/img/users/moonrepo.svg" width="200" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://devowl.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/devowlio.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/devowlio.svg" />
                <img src="https://pnpm.io/img/users/devowlio.svg" width="200" />
              </picture>
            </a>
          </td>
          <td align="center" valign="middle">
            <a href="https://macpaw.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/macpaw.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/macpaw_light.svg" />
                <img src="https://pnpm.io/img/users/macpaw.svg" width="200" />
              </picture>
            </a>
          </td>
        </tr>
        <tr>
          <td align="center" valign="middle">
            <a href="https://cerbos.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank">
              <picture>
                <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/cerbos.svg" />
                <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/cerbos_light.svg" />
                <img src="https://pnpm.io/img/users/cerbos.svg" width="180" />
              </picture>
            </a>
          </td>
        </tr>
      </tbody>
    </table>
    renovate[bot] authored Sep 9, 2024
    Configuration menu
    Copy the full SHA
    337bf36 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b12ba4e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2105fb7 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2024

  1. Configuration menu
    Copy the full SHA
    96547f6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8855e5b View commit details
    Browse the repository at this point in the history
  3. chore(deps): update dependency vitest to v2.1.0

    ##### [v2.1.0](https://github.com/vitest-dev/vitest/releases/tag/v2.1.0)
    
    This release makes another big change to the Browser Mode by introducing [locators API](https://vitest.dev/guide/browser/locators.html):
    
    ```ts
    test('renders blog posts', async () => {
      const screen = page.render(<Blog />)
    
      await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument()
    
      const [firstPost] = screen.getByRole('listitem').all()
    
      await firstPost.getByRole('button', { name: 'Delete' }).click()
    
      expect(screen.getByRole('listitem').all()).toHaveLength(3)
    })
    ```
    
    You can use either [vitest-browser-vue](https://github.com/vitest-dev/vitest-browser-vue), [vitest-browser-svelte ](https://github.com/vitest-dev/vitest-browser-svelte) or [vitest-browser-react](https://github.com/vitest-dev/vitest-browser-react) to render components and make assertions using locators. Locators are also available on the `page` object from `@vitest/browser/context`.
    
    #####    🚀 Features
    
    -   **api**:
        -   Make spec into a class instead of a tuple  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6355 [<samp>(874a1)</samp>](vitest-dev/vitest@874a121e)
    -   **browser**:
        -   Move page.config to server.config, add more docs  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6252 [<samp>(af2b8)</samp>](vitest-dev/vitest@af2b813c)
        -   Make iframe scalable, improve documentation  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6257 [<samp>(74ca1)</samp>](vitest-dev/vitest@74ca11a4)
        -   Introduce built-in locators  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6084 [<samp>(3347f)</samp>](vitest-dev/vitest@3347f83e)
        -   Support v8 coverage  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6273 [<samp>(34199)</samp>](vitest-dev/vitest@34199bdf)
        -   Support `userEvent.upload` in playwright provider  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6442 [<samp>(cf148)</samp>](vitest-dev/vitest@cf148645)
        -   Support `--inspect`  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6433 [<samp>(0499a)</samp>](vitest-dev/vitest@0499a315)
        -   Support `--inspect-brk`  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6434 [<samp>(7ab0f)</samp>](vitest-dev/vitest@7ab0f4a8)
    -   **cli**:
        -   Extend existing list command to output only a list of file names  -  by [@Ma-hawaj](https://github.com/Ma-hawaj) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6392 [<samp>(008f0)</samp>](vitest-dev/vitest@008f00b2)
    -   **coverage**:
        -   Add `--exclude-after-remap`  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6309 [<samp>(5932a)</samp>](vitest-dev/vitest@5932a7f9)
    -   **mocker**:
        -   Introduce [@vitest/mocker](https://github.com/vitest/mocker) package, allow `{ spy: true }` instead of a factory  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6289 [<samp>(95f02)</samp>](vitest-dev/vitest@95f0203f)
    -   **vitest**:
        -   Add "provide" option  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6253 [<samp>(4409d)</samp>](vitest-dev/vitest@4409d779)
        -   Add return type and promisable mockFactory  -  by [@syi0808](https://github.com/syi0808) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6139 [<samp>(f5e0b)</samp>](vitest-dev/vitest@f5e0b987)
        -   Add `vi.advanceTimersToNextFrame`  -  by [@bnjm](https://github.com/bnjm) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6347 [<samp>(8ff63)</samp>](vitest-dev/vitest@8ff63560)
        -   Allow env to be stubbed to undefined  -  by [@JSanchezIO](https://github.com/JSanchezIO) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6359 [<samp>(c3b27)</samp>](vitest-dev/vitest@c3b2757c)
    
    #####    🐞 Bug Fixes
    
    -   Correctly resolve nested mocks with `index` file  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6266 [<samp>(081cf)</samp>](vitest-dev/vitest@081cfe03)
    -   Don't panic when coverage.reporter is a string  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6267 [<samp>(7b37d)</samp>](vitest-dev/vitest@7b37d27b)
    -   Align RawMatcherFn type definition with Jest  -  by [@wheresrhys](https://github.com/wheresrhys) in vitest-dev/vitest#6351 [<samp>(d09f0)</samp>](vitest-dev/vitest@d09f00c7)
    -   Cjs build of vite node server  -  by [@AkaraChen](https://github.com/AkaraChen) in vitest-dev/vitest#6389 [<samp>(12e70)</samp>](vitest-dev/vitest@12e702bd)
    -   Allow inlining vite's cached dependencies  -  by [@chriswheeldon-peakon](https://github.com/chriswheeldon-peakon) in vitest-dev/vitest#6284 [<samp>(03208)</samp>](vitest-dev/vitest@03208017)
    -   Print unexpected error message if peer dependencies have a different version  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6446 [<samp>(b992b)</samp>](vitest-dev/vitest@b992b346)
    -   Ignore importer when resolving Vitest  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6469 [<samp>(0b447)</samp>](vitest-dev/vitest@0b447226)
    -   `expect.getState().testPath` always returns correct path  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6472 [<samp>(ac698)</samp>](vitest-dev/vitest@ac698b1c)
    -   UserEvent works consistently between providers  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6480 [<samp>(0b4da)</samp>](vitest-dev/vitest@0b4da69e)
    -   **browser**:
        -   Print correct stack trace for unhandled errors  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6134 [<samp>(1da6c)</samp>](vitest-dev/vitest@1da6cebe)
        -   Use documentElement as the root for selector  -  by [@sheremet-va](https://github.com/sheremet-va) [<samp>(d8077)</samp>](vitest-dev/vitest@d807767f)
        -   Keep querying elements even if locator is created with elementLocator, add pubic @vitest/browser/utils  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6296 [<samp>(30dc5)</samp>](vitest-dev/vitest@30dc5793)
        -   Produce valid config file if preview provider is used  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6305 [<samp>(7f0ae)</samp>](vitest-dev/vitest@7f0ae292)
        -   Correctly run in-source tests in the browser  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6440 [<samp>(c8531)</samp>](vitest-dev/vitest@c853126e)
        -   Exclude missed packages from optimization, print help message  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6445 [<samp>(8d883)</samp>](vitest-dev/vitest@8d883cf0)
        -   Define mocker as a dependency  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6476 [<samp>(9560a)</samp>](vitest-dev/vitest@9560ab7f)
    -   **coverage**:
        -   Warn if `vitest` and `@vitest/*` versions don't match  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6317 [<samp>(e662c)</samp>](vitest-dev/vitest@e662c7b2)
        -   V8 to support source maps with multiple sources  -  by [@AriPerkkio](https://github.com/AriPerkkio) and [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6120 [<samp>(1f6cb)</samp>](vitest-dev/vitest@1f6cb59f)
        -   V8 to warn instead of crash when conversion fails  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6318 [<samp>(91dea)</samp>](vitest-dev/vitest@91dea8c1)
        -   Use project specific `vitenode` for uncovered files  -  by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#6044 [<samp>(da52d)</samp>](vitest-dev/vitest@da52d23f)
    -   **runner**:
        -   Use `performance.now` instead of `Date.now` for duration  -  by [@LuciNyan](https://github.com/LuciNyan) in vitest-dev/vitest#6382 [<samp>(fe489)</samp>](vitest-dev/vitest@fe489432)
        -   Async assertion auto await should timeout  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6391 [<samp>(ad6e7)</samp>](vitest-dev/vitest@ad6e72fc)
    -   **snapshot**:
        -   Reject multiple `toMatchInlineSnapshot` updates at the same location  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6332 [<samp>(1606f)</samp>](vitest-dev/vitest@1606f34f)
        -   Improve inline snapshot inside loop rejection  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6339 [<samp>(e0368)</samp>](vitest-dev/vitest@e03683c5)
    -   **typecheck**:
        -   Run both runtime and typecheck tests if `typecheck.include` overlaps with `include`  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6256 [<samp>(153ff)</samp>](vitest-dev/vitest@153ff01b)
    -   **types**:
        -   Allow Callbacks Passed to before\*/after\* to Return Anything  -  by [@LuciNyan](https://github.com/LuciNyan) in vitest-dev/vitest#6393 [<samp>(f6217)</samp>](vitest-dev/vitest@f6217a22)
    -   **ui**:
        -   Remove "filters" flickering  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6463 [<samp>(0223b)</samp>](vitest-dev/vitest@0223bb79)
        -   Render project name consistently  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6329 [<samp>(94a18)</samp>](vitest-dev/vitest@94a186ec)
    -   **vite-node**:
        -   Disable watcher if hmr is disabled  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6251 [<samp>(c51c6)</samp>](vitest-dev/vitest@c51c67aa)
        -   Fix watch on vite 6  -  by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#6422 [<samp>(c3ac4)</samp>](vitest-dev/vitest@c3ac43c1)
    -   **vitest**:
        -   Update json reporter output  -  by [@Emiyaaaaa](https://github.com/Emiyaaaaa) in vitest-dev/vitest#6064 [<samp>(c9979)</samp>](vitest-dev/vitest@c997937b)
        -   Add more type guards for --merge-reports  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6307 [<samp>(0a5d8)</samp>](vitest-dev/vitest@0a5d8169)
        -   Always resolve vitest to the root version  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6369 [<samp>(163d7)</samp>](vitest-dev/vitest@163d7624)
        -   Dispose vmForks listeners to avoid memory leak  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6448 [<samp>(2673c)</samp>](vitest-dev/vitest@2673c3bb)
    -   **workspace**:
        -   Correctly resolve workspace globs and file paths  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6316 [<samp>(afdcb)</samp>](vitest-dev/vitest@afdcb8f2)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v2.0.5...v2.1.0)
    renovate[bot] authored Sep 12, 2024
    Configuration menu
    Copy the full SHA
    6e6709a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c47a4c3 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2024

  1. chore(deps): update dependency vitest to v2.1.1

    ##### [v2.1.1](https://github.com/vitest-dev/vitest/releases/tag/v2.1.1)
    
    #####    🐞 Bug Fixes
    
    -   **browser**:
        -   Make example test callbacks async  -  by [@aqandrew](https://github.com/aqandrew) in vitest-dev/vitest#6484 [<samp>(16aa7)</samp>](vitest-dev/vitest@16aa76c2)
        -   Optimize vitest-browser-vue correctly  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6490 [<samp>(5cbb0)</samp>](vitest-dev/vitest@5cbb0bba)
    -   **workspace**:
        -   Resolve glob pattern once to avoid name collision  -  by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#6489 [<samp>(36b5a)</samp>](vitest-dev/vitest@36b5aceb)
    
    #####     [View changes on GitHub](vitest-dev/vitest@v2.1.0...v2.1.1)
    renovate[bot] authored Sep 13, 2024
    Configuration menu
    Copy the full SHA
    15630cc View commit details
    Browse the repository at this point in the history
  2. fix(deps): update typescript-eslint monorepo to v8

    ##### [v8.5.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#850-2024-09-09)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[no-duplicate-type-constituents] prevent unnecessary \`
    
    -   **eslint-plugin:** \[no-unsafe-argument] differentiate error types
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] fix TSNonNullExpression fixer
    
    -   **eslint-plugin:** \[no-misused-promises] handle static method
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] fix AST quick path scope analysis
    
    -   **eslint-plugin:** \[consistent-type-assertions] access parser services lazily
    
    ##### ❤️  Thank You
    
    -   [`f44da95`](typescript-eslint/typescript-eslint@f44da958e)
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v8.4.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#840-2024-09-02)
    
    This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v8.3.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#830-2024-08-26)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[no-deprecation] add rule
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unnecessary-template-expression] add missing parentheses in autofix
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] check mapped alias type arguments
    
    -   **utils:** add `TSDeclareFunction` to `functionTypeTypes`
    
    -   **ast-spec:** use `Expression` in argument of `ThrowStatement`
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Daichi Kamiyama
    -   Josh Goldberg ✨
    -   Kim Sang Du
    -   Sukka
    -   Vida Xie
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v8.2.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#820-2024-08-19)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** add suggestion to `require-await` to remove `async` keyword
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[use-unknown-in-catch-callback-variable] flag second argument of `.then`
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] conflict with TS for variables used before assignment
    
    -   **eslint-plugin:** delete \[] in message if ReadOnly\<string\[]> is detected
    
    -   **eslint-plugin:** \[no-redundant-type-constituents] differentiate a types-error any from a true any
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] check mapped constraint types if necessary
    
    -   **eslint-plugin:** \[no-unsafe-enum-comparison] add logic to see through intersections
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Dave
    -   Jake Bailey
    -   James
    -   Josh Goldberg ✨
    -   liuxingbaoyu
    -   Yukihiro Hasegawa
    -   Yutong Zhu
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v8.1.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#810-2024-08-12)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[no-floating-promises] enable "add await" suggestion if ignoreVoid is true
    
    -   **typescript-estree:** restrict variable declarator definite/init combinations
    
    -   **eslint-plugin:** \[no-unsafe-return] check promise any
    
    -   **eslint-plugin:** \[no-misused-promises] check subtype methods against heritage type methods
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unsafe-enum-comparison] typo in test
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] skip checking function bodies for AST references
    
    -   **eslint-plugin:** \[member-ordering] get accessor member name & take into account `abstract` and decorator
    
    -   **eslint-plugin:** \[prefer-optional-chain] wrong parenthesis fix output
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] clarify message
    
    ##### ❤️  Thank You
    
    -   Aly Thobani
    -   Brad Zacher
    -   James
    -   Josh Goldberg ✨
    -   Joshua Chen
    -   Olivier Zalmanski
    -   YeonJuan
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v8.0.1](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#801-2024-08-05)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unused-vars] ignore imports used only as types
    
    ##### ❤️  Thank You
    
    -   Jake Bailey
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    ##### [v8.0.0](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#800-2024-07-31)
    
    ##### 🚀 Features
    
    -   stricter parent types for the AST
    
    -   **typescript-estree:** split TSMappedType typeParameter into constraint and key
    
    -   **eslint-plugin:** remove formatting/layout rules
    
    -   **eslint-plugin:** \[prefer-nullish-coalescing] change ignoreConditionalTests default to true
    
    -   **eslint-plugin:** deprecate no-loss-of-precision extension rule
    
    -   **eslint-plugin:** \[no-unused-vars] align catch behavior to ESLint 9
    
    -   **typescript-estree:** rename automaticSingleRunInference to disallowAutomaticSingleRunInference
    
    -   **utils:** allow specifying additional rule meta.docs in RuleCreator
    
    -   **eslint-plugin:** split no-empty-object-type out from ban-types and no-empty-interfaces
    
    -   **rule-tester:** support multipass fixes
    
    -   **typescript-estree:** stabilize EXPERIMENTAL_useProjectService as projectService
    
    -   **eslint-plugin:** remove deprecated no-throw-literal rule
    
    -   **eslint-plugin:** apply initial config changes for v8
    
    -   **eslint-plugin:** remove no-useless-template-literals
    
    -   **eslint-plugin:** \[no-floating-promises] add 'allowForKnownSafeCalls' option
    
    -   **eslint-plugin:** replace ban-types with no-restricted-types, no-unsafe-function-type, no-wrapper-object-types
    
    -   **eslint-plugin:** \[no-unused-vars] add `reportUnusedIgnorePattern` option
    
    -   **eslint-plugin:** \[no-unused-vars] support `ignoreClassWithStaticInitBlock`
    
    -   **eslint-plugin:** \[no-unused-vars] handle comma operator for assignments, treat for-of the same as for-in
    
    -   **eslint-plugin:** \[no-unused-vars] report if var used only in typeof
    
    -   **eslint-plugin:** \[no-floating-promises] disable checkThenables by default for v8
    
    -   **rule-tester:** switched to flat config
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] promote to strict
    
    ##### 🩹 Fixes
    
    -   correct eslint-plugin's peerDependency on parser@8
    
    -   disable `projectService` in `disabled-type-checked` shared config
    
    -   **typescript-estree:** add TSEnumBody node for TSEnumDeclaration body
    
    -   **eslint-plugin:** include alpha pre-releases in parser peer dependency
    
    -   **eslint-plugin:** correct rules.d.ts types to not rely on non-existent imports
    
    -   **eslint-plugin:** remove duplicate import `RuleModuleWithMetaDocs`
    
    -   **type-utils:** also check declared modules for package names in TypeOrValueSpecifier
    
    -   **eslint-plugin:** \[no-unnecessary-template-expression] do not render escaped strings in autofixes
    
    -   **eslint-plugin:** \[no-unused-vars] incorporate upstream changes around caught errors report messages
    
    -   **eslint-plugin:** \[no-misused-promises] perf: avoid getting types of variables/functions if the annotated type is obviously not a function
    
    -   **rule-tester:** provide Linter a cwd in its constructor
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Alfred Ringstad
    -   auvred
    -   Brad Zacher
    -   Christopher Aubut
    -   Collin Bachman
    -   James Henry
    -   Josh Goldberg
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   StyleShit
    -   Victor Lin
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.18.0 (2024-07-29)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] prevent runtime error when asserting a variable declared in default TS lib
    
    -   **eslint-plugin:** \[unbound-method] report on destructuring in function parameters
    
    -   **eslint-plugin:** \[no-duplicate-type-constituents] shouldn't report on error types
    
    -   **eslint-plugin:** \[strict-boolean-expressions] support branded booleans
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Oliver Salzburg
    -   Vinccool96
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.17.0 (2024-07-22)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** backport no-unsafe-function type, no-wrapper-object-types from v8 to v7
    
    -   **eslint-plugin:** \[return-await] add option to report in error-handling scenarios only, and deprecate "never"
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-floating-promises] check top-level type assertions (and more)
    
    -   **eslint-plugin:** \[strict-boolean-expressions] consider assertion function argument a boolean context
    
    -   **eslint-plugin:** \[no-unnecessary-condition] false positive on optional private field
    
    ##### ❤️  Thank You
    
    -   Armano
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   StyleShit
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.16.1 (2024-07-15)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unnecessary-type-parameters] descend into all parts of mapped types in no-unnecessary-type-parameters
    
    ##### ❤️  Thank You
    
    -   Dan Vanderkam
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.16.0 (2024-07-08)
    
    ##### 🚀 Features
    
    -   **rule-tester:** stricter rule test validations
    
    -   **eslint-plugin:** \[no-unnecessary-parameter-property-assignment] add new rule
    
    -   **eslint-plugin:** add support for nested namespaces to unsafe-member-access
    
    -   **eslint-plugin:** \[no-floating-promises] add checkThenables option
    
    ##### 🩹 Fixes
    
    -   **deps:** update dependency [@eslint-community/regexpp](https://github.com/eslint-community/regexpp) to v4.11.0
    
    -   **eslint-plugin:** \[no-floating-promises] add `suggestions` to tests from [#9263](typescript-eslint/typescript-eslint#9263) `checkThenables`
    
    -   **website:** react key error on internal pages of website
    
    -   **eslint-plugin:** \[restrict-template-expressions] don't report tuples if `allowArray` option is enabled
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   auvred
    -   Josh Goldberg ✨
    -   Juan Sanchez
    -   Vinccool96
    -   YeonJuan
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.15.0 (2024-07-01)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[array-type] detect `Readonly<string[]>` case
    
    -   **eslint-plugin:** back-port new rules around empty object types from v8
    
    ##### 🩹 Fixes
    
    -   disable `EXPERIMENTAL_useProjectService` in `disabled-type-checked` shared config
    
    -   **eslint-plugin:** \[no-unsafe-return] differentiate a types-error any from a true any
    
    -   **eslint-plugin:** \[no-unsafe-call] differentiate a types-error any from a true any
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Kim Sang Du
    -   rgehbt
    -   Vinccool96
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.14.1 (2024-06-24)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-nullish-coalescing] treat enums and literals as their underlying primitive types
    
    -   **eslint-plugin:** \[prefer-nullish-coalescing] ensure ternary fix does not remove parens
    
    ##### ❤️  Thank You
    
    -   Jake Bailey
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.14.0 (2024-06-24)
    
    ##### 🚀 Features
    
    -   support TypeScript 5.5
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-extraneous-class] handle abstract members
    
    -   **eslint-plugin:** \[prefer-nullish-coalescing] handle intersected primitive types
    
    -   **eslint-plugin:** \[no-invalid-this] support AccessorProperty
    
    ##### ❤️  Thank You
    
    -   Brad Zacher
    -   cm-ayf
    -   Jake Bailey
    -   James Zhan
    -   Joshua Chen
    -   yoshi2no
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.13.1 (2024-06-17)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-readonly] refine report locations
    
    -   **eslint-plugin:** \[return-await] support explicit resource management
    
    -   **eslint-plugin:** \[no-unsafe-member-access] differentiate a types-error any from a true any
    
    ##### ❤️  Thank You
    
    -   Kirk Waiblinger
    -   Yukihiro Hasegawa
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.13.0 (2024-06-10)
    
    ##### 🚀 Features
    
    -   **typescript-estree:** require `import = require()` argument to be a string literal
    
    -   **typescript-estree:** forbid `.body`, `.async`, `.generator` on `declare function`
    
    -   **eslint-plugin:** \[no-dynamic-delete] allow all string literals as index
    
    ##### 🩹 Fixes
    
    -   **ast-spec:** function-call-like callee should be Expression not LeftHandSideExpression
    
    -   **scope-manager:** handle index signature in class
    
    -   **eslint-plugin:** \[init-declarations] refine report locations
    
    -   **eslint-plugin:** \[no-base-to-string] make error message more nuanced
    
    -   **eslint-plugin:** \[no-unsafe-assignment] be more specific about error types
    
    -   **eslint-plugin:** \[no-magic-numbers] fix implementation of the `ignore` option
    
    ##### ❤️  Thank You
    
    -   Fotis Papadogeorgopoulos
    -   Joshua Chen
    -   Kirk Waiblinger
    -   Tobiloba Adedeji
    -   Vinccool96
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.12.0 (2024-06-03)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[no-useless-template-literals] rename to `no-useless-template-expression` (deprecate `no-useless-template-literals`)
    
    -   **rule-tester:** check for parsing errors in suggestion fixes
    
    -   **rule-tester:** port `checkDuplicateTestCases` from ESLint
    
    -   **eslint-plugin:** \[no-floating-promises] add option 'allowForKnownSafePromises'
    
    ##### 🩹 Fixes
    
    -   no-useless-template-expression -> no-unnecessary-template-expression
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] combine template literal check with `const` variable check
    
    -   **eslint-plugin:** \[dot-notation] fix false positive when accessing private/protected property with optional chaining
    
    -   **eslint-plugin:** \[explicit-member-accessibility] refine report locations
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] declares are always defined, so always check `declare`s
    
    -   **eslint-plugin:** \[prefer-literal-enum-member] allow using member it self on allowBitwiseExpressions
    
    -   **eslint-plugin:** \[return-await] clean up in-try-catch detection and make autofixes safe
    
    -   **eslint-plugin:** \[member-ordering] also TSMethodSignature can be get/set
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Han Yeong-woo
    -   Joshua Chen
    -   Kim Sang Du
    -   Kirk Waiblinger
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.11.0 (2024-05-27)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** deprecate prefer-ts-expect-error in favor of ban-ts-comment
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[consistent-type-assertions] prevent syntax errors on arrow functions
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   auvred
    -   Dom Armstrong
    -   Kirk Waiblinger
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.10.0 (2024-05-20)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[sort-type-constituents] support case sensitive sorting
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-regexp-exec] fix heuristic to check whether regex may contain global flag
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Emanuel Hoogeveen
    -   jsfm01
    -   Kirk Waiblinger
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.9.0 (2024-05-13)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[explicit-function-return-types] fix false positive on default parameters
    
    ##### ❤️  Thank You
    
    -   Kirk Waiblinger
    -   Sheetal Nandi
    -   Vinccool96
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.8.0 (2024-04-29)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unsafe-argument] handle  tagged templates
    
    -   **eslint-plugin:** \[prefer-optional-chain] suggests optional chaining during strict null equality check
    
    -   **eslint-plugin:** \[consistent-type-assertions] handle tagged templates
    
    -   **eslint-plugin:** \[no-unsafe-return] handle union types
    
    -   **eslint-plugin:** \[no-unused-vars] clear error report range
    
    ##### ❤️  Thank You
    
    -   auvred
    -   Josh Goldberg ✨
    -   jsfm01
    -   Kim Sang Du
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.7.1 (2024-04-22)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-unsafe-assignment] handle shorthand property assignment
    
    -   **eslint-plugin:** \[explicit-function-return-type] fix checking wrong ancestor's return type
    
    -   **eslint-plugin:** \[prefer-optional-chain] only look at left operand for `requireNullish`
    
    -   **eslint-plugin:** \[no-for-in-array] refine report location
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] allow non-null assertion for void type
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Kirk Waiblinger
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.7.0 (2024-04-15)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** replace `no-new-symbol` with `no-new-native-nonconstructor`
    
    ##### ❤️  Thank You
    
    -   Dave
    -   Josh Goldberg ✨
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.6.0 (2024-04-08)
    
    ##### 🚀 Features
    
    -   bump npm dependency ranges
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   auvred
    -   Brad Zacher
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.5.0 (2024-04-01)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-floating-promises] handle TaggedTemplateExpression
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] handle exactOptionalPropertyTypes compiler option
    
    ##### ❤️  Thank You
    
    -   Brad Zacher
    -   Kim Sang Du
    -   Mark de Dios
    -   Naru
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.4.0 (2024-03-25)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[consistent-type-imports] ignore files with decorators, experimentalDecorators, and emitDecoratorMetadata
    
    -   **eslint-plugin:** \[no-unnecessary-type-arguments] handle tagged templates
    
    -   **eslint-plugin:** deprecate no-throw-literal and add a renamed only-throw-error
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-optional-chain] address multipart nullish checks false positive
    
    -   **eslint-plugin:** \[prefer-optional-chain] properly disambiguate between `boolean` and `false`
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] avoid remove const casting on template literals with expressions inside
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Brad Zacher
    -   Josh Goldberg ✨
    -   Kim Sang Du
    -   Kirk Waiblinger
    -   Marco Pasqualetti
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.3.1 (2024-03-18)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[no-floating-promises] revert disable of ignoreVoid in strict config
    
    ##### ❤️  Thank You
    
    -   Josh Goldberg ✨
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.3.0 (2024-03-18)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** \[restrict-template-expressions] add `allowArray` option
    
    -   **eslint-plugin:** add meta.docs.recommended setting for strict config options
    
    -   **eslint-plugin:** add rule `use-unknown-in-catch-callback-variables`
    
    -   **eslint-plugin:** \[prefer-reduce-type-parameter] supports tuple, union, intersection
    
    ##### 🩹 Fixes
    
    -   correct `engines.node` constraints in `package.json`
    
    -   **eslint-plugin:** \[unbound-method] check method definition in object literal using longhand form
    
    -   **eslint-plugin:** \[consistent-type-imports] handle imports without specifiers
    
    -   **eslint-plugin:** \[no-redundant-type-constituents] incorrectly marks & string as redundant
    
    -   **eslint-plugin:** \[no-unnecessary-qualifier] handle merge namespace with enum
    
    -   **eslint-plugin:** \[no-unused-expressions] false negatives when using assertions
    
    -   **eslint-plugin:** \[ban-ts-comment] more accurate handling of multiline comments
    
    -   **eslint-plugin:** \[explicit-function-return-type, explicit-module-boundary-types] improved checking for allowHigherOrderFunctions option
    
    -   **eslint-plugin:** \[class-literal-property-style] ignore property assigned in constructor
    
    -   **eslint-plugin:** \[no-unnecessary-type-assertion] fix false negative for const variable declarations
    
    ##### ❤️  Thank You
    
    -   Abraham Guo
    -   Alexu
    -   Arka Pratim Chaudhuri
    -   auvred
    -   Derrick Isaacson
    -   fnx
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   Marta Cardoso
    -   Michaël De Boey
    -   Tristan Rasmussen
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.2.0 (2024-03-11)
    
    ##### 🚀 Features
    
    -   support TS 5.4
    
    -   **eslint-plugin:** \[prefer-string-starts-ends-with] add allowSingleElementEquality option
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** expose \*-type-checked-only configs for extension
    
    -   **eslint-plugin:** \[member-ordering] report alphabetical sorting for all groups instead of just the first failing group
    
    -   **eslint-plugin:** \[no-var-requires, no-require-imports] support template literal
    
    -   **eslint-plugin:** \[no-useless-template-literals] detect TemplateLiteral
    
    -   **eslint-plugin:** \[no-unnecessary-condition] handle union array and tuple type
    
    -   **eslint-plugin:** \[prefer-find] support ternary branches in prefer-find
    
    ##### ❤️  Thank You
    
    -   Arka Pratim Chaudhuri
    -   auvred
    -   Chris Plummer
    -   Fotis Papadogeorgopoulos
    -   Josh Goldberg ✨
    -   Kirk Waiblinger
    -   Wayne Zhang
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.1.1 (2024-03-04)
    
    This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.1.0 (2024-02-26)
    
    ##### 🚀 Features
    
    -   **eslint-plugin:** add \*-type-checked-only configs
    
    -   **eslint-plugin:** \[naming-convention] support the auto-accessor syntax
    
    -   **eslint-plugin:** \[consistent-return] add new rule
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** \[prefer-optional-chan] allow typeof for avoiding reference error
    
    -   **eslint-plugin:** \[no-misused-promises] improve check union types
    
    -   **eslint-plugin:** \[no-use-before-define] fix false positive type reference in as, satisfies
    
    ##### ❤️  Thank You
    
    -   Arka Pratim Chaudhuri
    -   Josh Goldberg ✨
    -   YeonJuan
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.0.2 (2024-02-19)
    
    ##### 🩹 Fixes
    
    -   fix tsconfig-less check errors, fix `@types/eslint` incompatibilities, add tests
    
    ##### ❤️  Thank You
    
    -   Brad Zacher
    -   Gareth Jones
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    
    #### 7.0.1 (2024-02-12)
    
    ##### 🩹 Fixes
    
    -   **eslint-plugin:** update peer dep for parser
    
    ##### ❤️  Thank You
    
    -   Tim Dorr
    
    You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
    renovate[bot] authored Sep 13, 2024
    Configuration menu
    Copy the full SHA
    08514ea View commit details
    Browse the repository at this point in the history