Skip to content

Commit

Permalink
chore(deps): update typescript-eslint monorepo to v8 (major) (#836)
Browse files Browse the repository at this point in the history
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`^7.18.0` ->
`^8.0.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.18.0/8.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.18.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.18.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://typescript-eslint.io/packages/parser)
([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`^7.18.0` ->
`^8.0.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.18.0/8.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.18.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.18.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`^7.18.0` ->
`^8.0.0`](https://renovatebot.com/diffs/npm/typescript-eslint/7.18.0/8.14.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/7.18.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/7.18.0/8.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v8.14.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8140-2024-11-11)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.13.0...v8.14.0)

##### 🚀 Features

- **eslint-plugin:** \[await-thenable] report unnecessary `await using`
statements
([#&#8203;10209](https://github.com/typescript-eslint/typescript-eslint/pull/10209))
- **eslint-plugin:** \[no-confusing-void-expression] add an option to
ignore void<->void
([#&#8203;10067](https://github.com/typescript-eslint/typescript-eslint/pull/10067))

##### 🩹 Fixes

- **scope-manager:** fix asserted increments not being marked as write
references
([#&#8203;10271](https://github.com/typescript-eslint/typescript-eslint/pull/10271))
- **eslint-plugin:** \[no-misused-promises] improve report loc for
methods
([#&#8203;10216](https://github.com/typescript-eslint/typescript-eslint/pull/10216))
- **eslint-plugin:** \[no-unnecessary-condition] improve error message
for literal comparisons
([#&#8203;10194](https://github.com/typescript-eslint/typescript-eslint/pull/10194))

##### ❤️  Thank You

-   Gyumong [@&#8203;Gyumong](https://github.com/Gyumong)
-   Jan Ochwat [@&#8203;janek515](https://github.com/janek515)
- Kirk Waiblinger
[@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger)
-   Ronen Amiel

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.13.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8130-2024-11-04)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.12.2...v8.13.0)

##### 🚀 Features

- **eslint-plugin:** \[only-throw-error] add allow option
([#&#8203;10221](https://github.com/typescript-eslint/typescript-eslint/pull/10221))
- **eslint-plugin:** \[prefer-nullish-coalescing] add option
`ignoreBooleanCoercion`
([#&#8203;9924](https://github.com/typescript-eslint/typescript-eslint/pull/9924))
- **eslint-plugin:** disable `no-class-assign` rule in
`eslint-recommended` config
([#&#8203;10250](https://github.com/typescript-eslint/typescript-eslint/pull/10250))

##### 🩹 Fixes

- **eslint-plugin:** \[switch-exhaustiveness-check] add support for
covering a missing property with `undefined`
([#&#8203;10232](https://github.com/typescript-eslint/typescript-eslint/pull/10232))
- **eslint-plugin:** \[consistent-type-definitions] don't leave trailing
parens when fixing type to interface
([#&#8203;10235](https://github.com/typescript-eslint/typescript-eslint/pull/10235))
- **eslint-plugin:** \[no-deprecated] report when exported class
implements/extends deprecated entity
([#&#8203;10259](https://github.com/typescript-eslint/typescript-eslint/pull/10259))
- **eslint-plugin:** \[no-deprecated] report on deprecated variables
used inside dynamic imports
([#&#8203;10261](https://github.com/typescript-eslint/typescript-eslint/pull/10261))
- **eslint-plugin:** \[no-unnecessary-condition] falsey bigint should be
falsey
([#&#8203;10205](https://github.com/typescript-eslint/typescript-eslint/pull/10205))

##### ❤️  Thank You

-   auvred [@&#8203;auvred](https://github.com/auvred)
- Kim Sang Du
[@&#8203;developer-bandi](https://github.com/developer-bandi)
- Kirk Waiblinger
[@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger)
- Mark de Dios
[@&#8203;peanutenthusiast](https://github.com/peanutenthusiast)
-   Ronen Amiel
-   YeonJuan [@&#8203;yeonjuan](https://github.com/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.12.2`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8122-2024-10-29)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.12.1...v8.12.2)

##### 🩹 Fixes

- **eslint-plugin:** \[switch-exhaustiveness-check] invert
`considerDefaultExhaustiveForUnions`
([#&#8203;10223](https://github.com/typescript-eslint/typescript-eslint/pull/10223))

##### ❤️  Thank You

- Kirk Waiblinger
[@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger)

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.12.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8121-2024-10-28)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.12.0...v8.12.1)

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.12.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8120-2024-10-28)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.11.0...v8.12.0)

##### 🚀 Features

- **eslint-plugin:** \[no-base-to-string] handle String()
([#&#8203;10005](https://github.com/typescript-eslint/typescript-eslint/pull/10005))
- **eslint-plugin:** \[switch-exhaustiveness-check] add
allowDefaultCaseMatchUnionMember option
([#&#8203;9954](https://github.com/typescript-eslint/typescript-eslint/pull/9954))
- **eslint-plugin:** \[consistent-indexed-object-style] report mapped
types
([#&#8203;10160](https://github.com/typescript-eslint/typescript-eslint/pull/10160))
- **eslint-plugin:** \[prefer-nullish-coalescing] add support for
assignment expressions
([#&#8203;10152](https://github.com/typescript-eslint/typescript-eslint/pull/10152))

##### ❤️  Thank You

-   Abraham Guo
- Kim Sang Du
[@&#8203;developer-bandi](https://github.com/developer-bandi)
- Kirk Waiblinger
[@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger)
-   YeonJuan [@&#8203;yeonjuan](https://github.com/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.11.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8110-2024-10-21)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.10.0...v8.11.0)

##### 🚀 Features

- **eslint-plugin:** \[no-unnecessary-type-parameters] add suggestion
fixer
([#&#8203;10149](https://github.com/typescript-eslint/typescript-eslint/pull/10149))
- **eslint-plugin:** \[no-base-to-string] add support for catching
toLocaleString
([#&#8203;10138](https://github.com/typescript-eslint/typescript-eslint/pull/10138))

##### 🩹 Fixes

- **eslint-plugin:** \[class-literal-property-style] don't report nodes
with `override` keyword
([#&#8203;10135](https://github.com/typescript-eslint/typescript-eslint/pull/10135))

##### ❤️  Thank You

- Kirk Waiblinger
[@&#8203;kirkwaiblinger](https://github.com/kirkwaiblinger)
- Yukihiro Hasegawa [@&#8203;y-hsgw](https://github.com/y-hsgw)

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.10.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8100-2024-10-17)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.9.0...v8.10.0)

##### 🚀 Features

- support TypeScript 5.6
([#&#8203;9972](https://github.com/typescript-eslint/typescript-eslint/pull/9972))

##### ❤️  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.

###
[`v8.9.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#890-2024-10-14)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.8.1...v8.9.0)

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-parameters] cannot assume
variables are either type or value

- **scope-manager:** \[no-use-before-define] do not treat nested
namespace aliases as variable references

- **eslint-plugin:** \[return-await] sync the behavior with
await-thenable

- **eslint-plugin:** \[prefer-literal-enum-member] report a different
error message when `allowBitwiseExpressions` is enabled

-   **eslint-plugin:** \[no-loop-func] sync from upstream base rule

- **eslint-plugin:** \[no-unused-vars] never report the naming of an
enum member

-   **eslint-plugin:** correct use-at-your-own-risk type definitions

-   **eslint-plugin:** handle unions in await...for

##### ❤️  Thank You

-   Abraham Guo
-   Anna Bocharova
-   Arya Emami
-   auvred
-   Joshua Chen
-   Kirk Waiblinger
-   Lotfi Meklati
-   mdm317
-   Ronen Amiel
-   Sukka
-   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.8.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#881-2024-10-07)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.8.0...v8.8.1)

##### 🩹 Fixes

- **eslint-plugin:** stop warning on
[@&#8203;ts-nocheck](https://github.com/ts-nocheck) comments
which aren't at the beginning of the file

##### ❤️  Thank You

-   Brad Zacher
-   Ronen Amiel
-   WhitePiano

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.8.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#880-2024-09-30)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.7.0...v8.8.0)

##### 🚀 Features

- **eslint-plugin:** \[no-unnecessary-condition] add checkTypePredicates

-   **eslint-plugin:** \[return-await] check for-await loop iteree

##### 🩹 Fixes

-   remove `export type *` in d.ts to support TS<5.0

- **eslint-plugin:** \[no-unnecessary-template-expression] should
underline template syntax with squiggly lines

- **type-utils:** check for type parameters on
`isBuiltinSymbolLikeRecurser()`

- **eslint-plugin:** \[no-deprecated] max callstack exceeded when class
implements itself

-   **eslint-plugin:** \[no-misused-promises] check contextual type

- **eslint-plugin:** \[prefer-literal-enum-member] allow nested bitwise
operations

##### ❤️  Thank You

-   auvred
-   Josh Goldberg ✨
-   Kirk Waiblinger
-   Ronen Amiel
-   Tarun Chauhan
-   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.7.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#870-2024-09-23)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.6.0...v8.7.0)

##### 🚀 Features

-   **eslint-plugin:** \[no-unsafe-call] check calls of Function

- **eslint-plugin:** \[consistent-type-exports] check `export *` exports
to see if all exported members are types

##### 🩹 Fixes

- **eslint-plugin:** properly coerce all types to string in
`getStaticMemberAccessValue`

- **eslint-plugin:** \[no-deprecated] report on imported deprecated
variables

- **eslint-plugin:** \[no-confusing-non-null-assertion] check !in and
!instanceof

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Brian Donovan
-   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.

###
[`v8.6.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#860-2024-09-16)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.5.0...v8.6.0)

##### 🚀 Features

-   add `allow` option for `restrict-template-expressions`

-   **type-utils:** isNullableType add Void logic

-   **eslint-plugin:** \[no-unnecessary-condition] check switch cases

- **eslint-plugin:** \[no-misused-promises] check array predicate return

##### 🩹 Fixes

- **eslint-plugin:** \[no-deprecated] don't report recursive types in
destructuring assignment twice

- **eslint-plugin:** \[no-deprecated] report on deprecated variables
used in destructuring assignment

- **eslint-plugin:** \[no-deprecated] report on deprecated properties
with function-like types

- **eslint-plugin:** \[no-unnecessary-condition] properly reflect
multiple negations in message

##### ❤️  Thank You

-   Abraham Guo
-   auvred
-   Josh Goldberg ✨
-   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.

###
[`v8.5.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#850-2024-09-09)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.4.0...v8.5.0)

##### 🚀 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`](https://github.com/typescript-eslint/typescript-eslint/commit/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)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.3.0...v8.4.0)

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)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.2.0...v8.3.0)

##### 🚀 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)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.1.0...v8.2.0)

##### 🚀 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)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.0.1...v8.1.0)

##### 🚀 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)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.0.0...v8.0.1)

##### 🩹 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)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.18.0...v8.0.0)

##### 🚀 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
[@&#8203;eslint-community/regexpp](https://github.com/eslint-community/regexpp)
to v4.11.0

- **eslint-plugin:** \[no-floating-promises] add `suggestions` to tests
from
[#&#8203;9263](https://github.com/typescript-eslint/typescript-eslint/issues/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.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v8.14.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8140-2024-11-11)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.13.0...v8.14.0)

This was a version bump only for parser 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.13.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8130-2024-11-04)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.12.2...v8.13.0)

This was a version bump only for parser 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.12.2`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8122-2024-10-29)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.12.1...v8.12.2)

This was a version bump only for parser 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.12.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8121-2024-10-28)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.12.0...v8.12.1)

This was a version bump only for parser 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.12.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8120-2024-10-28)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.11.0...v8.12.0)

This was a version bump only for parser 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.11.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8110-2024-10-21)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.10.0...v8.11.0)

This was a version bump only for parser 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.10.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#8100-2024-10-17)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.9.0...v8.10.0)

##### 🚀 Features

- support TypeScript 5.6
([#&#8203;9972](https://github.com/typescript-eslint/typescript-eslint/pull/9972))

##### ❤️  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.

###
[`v8.9.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#890-2024-10-14)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.8.1...v8.9.0)

This was a version bump only for parser 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.8.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#881-2024-10-07)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.8.0...v8.8.1)

This was a version bump only for parser 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.8.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#880-2024-09-30)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.7.0...v8.8.0)

This was a version bump only for parser 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.7.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#870-2024-09-23)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.6.0...v8.7.0)

This was a version bump only for parser 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.6.0`](https://github.com/typescript-eslint/typescript-eslint/compare/v8.5.0...343710e0b68868836ae01c0271472adcea4f1676)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.5.0...v8.6.0)

###
[`v8.5.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#850-2024-09-09)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.4.0...v8.5.0)

This was a version bump only for parser 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.4.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#840-2024-09-02)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.3.0...v8.4.0)

This was a version bump only for parser 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/parser/CHANGELOG.md#830-2024-08-26)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.2.0...v8.3.0)

This was a version bump only for parser 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.2.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#820-2024-08-19)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.1.0...v8.2.0)

This was a version bump only for parser 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.1.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#810-2024-08-12)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.0.1...v8.1.0)

This was a version bump only for parser 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.0.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#801-2024-08-05)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v8.0.0...v8.0.1)

This was a version bump only for parser 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.0.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#800-2024-07-31)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.18.0...v8.0.0)

##### 🚀 Features

-   **parser:** always enable comment, loc, range, tokens

- **typescript-estree:** stabilize EXPERIMENTAL_useProjectService as
projectService

##### ❤️  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)

This was a version bump only for parser 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.17.0 (2024-07-22)

This was a version bump only for parser 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.16.1 (2024-07-15)

This was a version bump only for parser 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.16.0 (2024-07-08)

##### 🩹 Fixes

- **deps:** update dependency
[@&#8203;eslint-community/regexpp](https://github.com/eslint-community/regexpp)
to v4.11.0

-   **website:** react key error on internal pages of website

##### ❤️  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)

This was a version bump only for parser 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.14.1 (2024-06-24)

This was a version bump only for parser 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.14.0 (2024-06-24)

##### 🚀 Features

-   support TypeScript 5.5

##### ❤️  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)

This was a version bump only for parser 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.13.0 (2024-06-10)

##### 🚀 Features

- **parser, typescript-estree:** export withoutProjectParserOptions
utility

##### ❤️  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 we

</details>

---

### 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 these
updates 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/sveltejs/eslint-plugin-svelte).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM5LjExLjUiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: yosuke ota <otameshiyo23@gmail.com>
  • Loading branch information
renovate[bot] and ota-meshi authored Nov 27, 2024
1 parent 5da98c9 commit 3fa90aa
Show file tree
Hide file tree
Showing 17 changed files with 118 additions and 65 deletions.
5 changes: 5 additions & 0 deletions .changeset/quiet-toys-burn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'eslint-plugin-svelte': minor
---

feat: support for typescript-eslint v8 to `svelte/indent` rule
32 changes: 16 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@
},
"devDependencies": {
"@changesets/changelog-github": "^0.5.0",
"@changesets/cli": "^2.27.9",
"@changesets/get-release-plan": "^4.0.4",
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
"@changesets/cli": "^2.27.10",
"@changesets/get-release-plan": "^4.0.5",
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
"@ota-meshi/eslint-plugin": "^0.17.5",
"@types/eslint": "^9.6.1",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"@typescript-eslint/eslint-plugin": "^8.16.0",
"@typescript-eslint/parser": "^8.16.0",
"env-cmd": "^10.1.0",
"eslint": "~9.14.0",
"eslint-config-prettier": "^9.1.0",
"eslint-formatter-friendly": "^7.0.0",
"eslint-plugin-eslint-plugin": "^6.2.0",
"eslint-plugin-jsdoc": "^50.4.1",
"eslint-plugin-eslint-plugin": "^6.3.2",
"eslint-plugin-jsdoc": "^50.6.0",
"eslint-plugin-json-schema-validator": "^5.1.3",
"eslint-plugin-jsonc": "^2.16.0",
"eslint-plugin-jsonc": "^2.18.2",
"eslint-plugin-markdown": "^5.1.0",
"eslint-plugin-mdx": "^3.1.5",
"eslint-plugin-n": "^17.11.1",
"eslint-plugin-n": "^17.14.0",
"eslint-plugin-node-dependencies": "^0.12.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-regexp": "^2.6.0",
"eslint-plugin-yml": "^1.14.0",
"npm-run-all2": "^7.0.0",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.7",
"eslint-plugin-regexp": "^2.7.0",
"eslint-plugin-yml": "^1.15.0",
"npm-run-all2": "^7.0.1",
"prettier": "^3.4.1",
"prettier-plugin-svelte": "^3.3.2",
"rimraf": "^6.0.1",
"typescript": "~5.7.0",
"typescript-eslint": "^7.18.0"
"typescript": "~5.7.2",
"typescript-eslint": "^8.16.0"
},
"publishConfig": {
"access": "public"
Expand Down
46 changes: 23 additions & 23 deletions packages/eslint-plugin-svelte/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,52 +56,52 @@
}
},
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@jridgewell/sourcemap-codec": "^1.4.15",
"eslint-compat-utils": "^0.6.0",
"@eslint-community/eslint-utils": "^4.4.1",
"@jridgewell/sourcemap-codec": "^1.5.0",
"eslint-compat-utils": "^0.6.3",
"esutils": "^2.0.3",
"known-css-properties": "^0.35.0",
"postcss": "^8.4.38",
"postcss": "^8.4.49",
"postcss-load-config": "^3.1.4",
"postcss-safe-parser": "^6.0.0",
"postcss-selector-parser": "^7.0.0",
"semver": "^7.6.2",
"semver": "^7.6.3",
"svelte-eslint-parser": "^1.0.0-0"
},
"devDependencies": {
"@babel/core": "^7.25.8",
"@babel/eslint-parser": "^7.25.8",
"@babel/plugin-proposal-function-bind": "^7.25.8",
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
"@babel/core": "^7.26.0",
"@babel/eslint-parser": "^7.25.9",
"@babel/plugin-proposal-function-bind": "^7.25.9",
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
"@types/babel__core": "^7.20.5",
"@types/eslint-utils": "^3.0.5",
"@types/esutils": "^2.0.2",
"@types/json-schema": "^7.0.15",
"@types/less": "^3.0.6",
"@types/mocha": "^10.0.9",
"@types/node": "^22.0.0",
"@types/less": "^3.0.7",
"@types/mocha": "^10.0.10",
"@types/node": "^22.10.0",
"@types/postcss-safe-parser": "^5.0.4",
"@types/semver": "^7.5.8",
"@types/stylus": "^0.48.43",
"acorn": "^8.13.0",
"acorn": "^8.14.0",
"assert": "^2.1.0",
"esbuild": "^0.24.0",
"esbuild-register": "^3.6.0",
"eslint-scope": "^8.1.0",
"eslint-scope": "^8.2.0",
"eslint-typegen": "^0.3.2",
"eslint-visitor-keys": "^4.1.0",
"espree": "^10.2.0",
"less": "^4.2.0",
"mocha": "^10.7.3",
"eslint-visitor-keys": "^4.2.0",
"espree": "^10.3.0",
"less": "^4.2.1",
"mocha": "^10.8.2",
"nyc": "^17.1.0",
"postcss-nested": "^7.0.0",
"sass": "^1.79.5",
"postcss-nested": "^7.0.2",
"sass": "^1.81.0",
"source-map-js": "^1.2.1",
"stylus": "^0.64.0",
"svelte": "^5.0.0",
"svelte-i18n": "^4.0.0",
"svelte": "^5.2.9",
"svelte-i18n": "^4.0.1",
"type-coverage": "^2.29.7",
"yaml": "^2.6.0"
"yaml": "^2.6.1"
},
"publishConfig": {
"access": "public"
Expand Down
10 changes: 8 additions & 2 deletions packages/eslint-plugin-svelte/src/rules/indent-helpers/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
visitor.BreakStatement(node);
},
CallExpression(node: TSESTree.CallExpression) {
const typeArguments = node.typeArguments ?? node.typeParameters;
const typeArguments =
node.typeArguments ??
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
(node as any).typeParameters;
const firstToken = sourceCode.getFirstToken(node);
const leftParenToken = sourceCode.getTokenAfter(typeArguments || node.callee, {
filter: isOpeningParenToken,
Expand Down Expand Up @@ -706,7 +709,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
visitor.MethodDefinition(node);
},
NewExpression(node: TSESTree.NewExpression) {
const typeArguments = node.typeArguments ?? node.typeParameters;
const typeArguments =
node.typeArguments ??
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
(node as any).typeParameters;
const newToken = sourceCode.getFirstToken(node);
const calleeTokens = getFirstAndLastTokens(sourceCode, node.callee);
offsets.setOffsetToken(calleeTokens.firstToken, 1, newToken);
Expand Down
48 changes: 41 additions & 7 deletions packages/eslint-plugin-svelte/src/rules/indent-helpers/ts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
// or
// const ErrorMap = Map<string, Error>
// ^^^^^^^^^^^^^^^^^^
const typeArguments = node.typeArguments ?? node.typeParameters;
const typeArguments =
node.typeArguments ??
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
(node as any).typeParameters;
if (typeArguments) {
const firstToken = sourceCode.getFirstToken(node);
offsets.setOffsetToken(sourceCode.getFirstToken(typeArguments), 1, firstToken);
Expand Down Expand Up @@ -254,20 +257,34 @@ export function defineVisitor(context: IndentContext): NodeListener {
// {[key in foo]: bar}
const leftBraceToken = sourceCode.getFirstToken(node);

const leftBracketToken = sourceCode.getTokenBefore(node.typeParameter)!;
const rightBracketToken = sourceCode.getTokenAfter(node.nameType || node.typeParameter)!;
const leftBracketToken = sourceCode.getTokenBefore(node.key || node.typeParameter)!;
const rightBracketToken = sourceCode.getTokenAfter(
node.nameType || node.constraint || node.typeParameter
)!;
offsets.setOffsetToken(
[...sourceCode.getTokensBetween(leftBraceToken, leftBracketToken), leftBracketToken],
1,
leftBraceToken
);
offsets.setOffsetElementList(
[node.typeParameter, node.nameType],
[node.key, node.constraint, node.typeParameter, node.nameType],
leftBracketToken,
rightBracketToken,
1
);

if (node.key && node.constraint) {
const firstToken = sourceCode.getFirstToken(node.key);
offsets.setOffsetToken(
[
...sourceCode.getTokensBetween(firstToken, node.constraint),
sourceCode.getFirstToken(node.constraint)
],
1,
firstToken
);
}

const rightBraceToken = sourceCode.getLastToken(node);
if (node.typeAnnotation) {
const typeAnnotationToken = sourceCode.getFirstToken(node.typeAnnotation);
Expand Down Expand Up @@ -402,7 +419,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
TSClassImplements(node: TSESTree.TSClassImplements | TSESTree.TSInterfaceHeritage) {
// class C implements T {}
// ^
const typeArguments = node.typeArguments ?? node.typeParameters;
const typeArguments =
node.typeArguments ??
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
(node as any).typeParameters;
if (typeArguments) {
offsets.setOffsetToken(
sourceCode.getFirstToken(typeArguments),
Expand All @@ -427,6 +447,14 @@ export function defineVisitor(context: IndentContext): NodeListener {
const leftBraceToken = sourceCode.getTokenAfter(idTokens.lastToken)!;
const rightBraceToken = sourceCode.getLastToken(node);
offsets.setOffsetToken(leftBraceToken, 0, firstToken);
if (node.members)
offsets.setOffsetElementList(node.members, leftBraceToken, rightBraceToken, 1);
},
TSEnumBody(node: TSESTree.TSEnumBody) {
// enum E {...}
// ^^^^^
const leftBraceToken = sourceCode.getFirstToken(node);
const rightBraceToken = sourceCode.getLastToken(node);
offsets.setOffsetElementList(node.members, leftBraceToken, rightBraceToken, 1);
},
TSModuleDeclaration(node: TSESTree.TSModuleDeclaration) {
Expand Down Expand Up @@ -677,7 +705,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
},
TSImportType(node: TSESTree.TSImportType) {
// import('foo').B
const typeArguments = node.typeArguments ?? node.typeParameters;
const typeArguments =
node.typeArguments ??
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
(node as any).typeParameters;
const firstToken = sourceCode.getFirstToken(node);
const leftParenToken = sourceCode.getTokenAfter(firstToken, {
filter: isOpeningParenToken,
Expand Down Expand Up @@ -1057,7 +1088,10 @@ export function defineVisitor(context: IndentContext): NodeListener {
sourceCode.getFirstToken(node.id || node)
);
}
const superTypeArguments = node.superTypeArguments ?? node.superTypeParameters;
const superTypeArguments =
node.superTypeArguments ??
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
(node as any).superTypeParameters;
if (superTypeArguments != null && node.superClass != null) {
offsets.setOffsetToken(
sourceCode.getFirstToken(superTypeArguments),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,11 @@ export default createRule('require-event-dispatcher-types', {
}
})) {
const node = n as TSESTree.CallExpression;
if ((node.typeArguments ?? node.typeParameters) === undefined) {
if (
(node.typeArguments ??
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Support old typescript-eslint
(node as any).typeParameters) === undefined
) {
context.report({ node, messageId: 'missingTypeParameter' });
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export function transform(
output: output.code!,
mappings: output.map!.mappings
};
} catch (_e) {
} catch {
return null;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export function transform(
output: output.css,
mappings: JSON.parse(output.map).mappings
};
} catch (_e) {
} catch {
return null;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export function transform(
output: result.content,
mappings: result.map.toJSON().mappings
};
} catch (_e) {
} catch {
// console.log(e)
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export function transform(
output: output.css,
mappings: output.sourceMap!.mappings
};
} catch (_e) {
} catch {
return null;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export function transform(
output,
mappings: (style as unknown as { sourcemap: RawSourceMap }).sourcemap.mappings
};
} catch (_e) {
} catch {
return null;
}
}
Expand Down
14 changes: 8 additions & 6 deletions packages/eslint-plugin-svelte/src/types-for-node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ export type ASTNodeListener = {
TSEmptyBodyFunctionExpression?: (
node: TSESTree.TSEmptyBodyFunctionExpression & ASTNodeWithParent
) => void;
TSEnumBody?: (node: TSESTree.TSEnumBody & ASTNodeWithParent) => void;
TSEnumDeclaration?: (node: TSESTree.TSEnumDeclaration & ASTNodeWithParent) => void;
TSEnumMember?: (node: TSESTree.TSEnumMember & ASTNodeWithParent) => void;
TSExportAssignment?: (node: TSESTree.TSExportAssignment & ASTNodeWithParent) => void;
Expand All @@ -143,16 +144,16 @@ export type ASTNodeListener = {
node: TSESTree.TSExternalModuleReference & ASTNodeWithParent
) => void;
TSFunctionType?: (node: TSESTree.TSFunctionType & ASTNodeWithParent) => void;
TSInstantiationExpression?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
TSImportEqualsDeclaration?: (
node: TSESTree.TSImportEqualsDeclaration & ASTNodeWithParent
) => void;
TSImportType?: (node: TSESTree.TSImportType & ASTNodeWithParent) => void;
TSIndexedAccessType?: (node: TSESTree.TSIndexedAccessType & ASTNodeWithParent) => void;
TSIndexSignature?: (node: TSESTree.TSIndexSignature & ASTNodeWithParent) => void;
TSInferType?: (node: TSESTree.TSInferType & ASTNodeWithParent) => void;
TSInstantiationExpression?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
TSInterfaceBody?: (node: TSESTree.TSInterfaceBody & ASTNodeWithParent) => void;
TSInterfaceDeclaration?: (node: TSESTree.TSInterfaceDeclaration & ASTNodeWithParent) => void;
TSInterfaceHeritage?: (node: TSESTree.TSInterfaceHeritage & ASTNodeWithParent) => void;
Expand Down Expand Up @@ -354,6 +355,7 @@ export type TSNodeListener = {
TSEmptyBodyFunctionExpression?: (
node: TSESTree.TSEmptyBodyFunctionExpression & ASTNodeWithParent
) => void;
TSEnumBody?: (node: TSESTree.TSEnumBody & ASTNodeWithParent) => void;
TSEnumDeclaration?: (node: TSESTree.TSEnumDeclaration & ASTNodeWithParent) => void;
TSEnumMember?: (node: TSESTree.TSEnumMember & ASTNodeWithParent) => void;
TSExportAssignment?: (node: TSESTree.TSExportAssignment & ASTNodeWithParent) => void;
Expand All @@ -362,16 +364,16 @@ export type TSNodeListener = {
node: TSESTree.TSExternalModuleReference & ASTNodeWithParent
) => void;
TSFunctionType?: (node: TSESTree.TSFunctionType & ASTNodeWithParent) => void;
TSInstantiationExpression?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
TSImportEqualsDeclaration?: (
node: TSESTree.TSImportEqualsDeclaration & ASTNodeWithParent
) => void;
TSImportType?: (node: TSESTree.TSImportType & ASTNodeWithParent) => void;
TSIndexedAccessType?: (node: TSESTree.TSIndexedAccessType & ASTNodeWithParent) => void;
TSIndexSignature?: (node: TSESTree.TSIndexSignature & ASTNodeWithParent) => void;
TSInferType?: (node: TSESTree.TSInferType & ASTNodeWithParent) => void;
TSInstantiationExpression?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
TSInterfaceBody?: (node: TSESTree.TSInterfaceBody & ASTNodeWithParent) => void;
TSInterfaceDeclaration?: (node: TSESTree.TSInterfaceDeclaration & ASTNodeWithParent) => void;
TSInterfaceHeritage?: (node: TSESTree.TSInterfaceHeritage & ASTNodeWithParent) => void;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ function readPackageJson(dir: string): PackageJson | null {
data.filePath = filePath;
return data;
}
} catch (_err) {
} catch {
// do nothing.
}

Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-svelte/src/utils/svelte-kit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ function hasSvelteKit(filePath: string): boolean {
return Boolean(
packageJson.dependencies?.['@sveltejs/kit'] ?? packageJson.devDependencies?.['@sveltejs/kit']
);
} catch (_e) {
} catch {
return false;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ const tester = new RuleTester({
ts: '@typescript-eslint/parser',
js: 'espree'
},
project: RULES_PROJECT
project: RULES_PROJECT,
disallowAutomaticSingleRunInference: true
}
}
});
Expand Down
Loading

0 comments on commit 3fa90aa

Please sign in to comment.