@pengzhanbo/eslint-config 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.mts +960 -582
  2. package/dist/index.mjs +53 -157
  3. package/package.json +45 -46
package/dist/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ConfigWithExtends, FlatConfigComposer } from "eslint-flat-config-utils";
2
+ import pluginE18e from "@e18e/eslint-plugin";
2
3
  import pluginComments from "@eslint-community/eslint-plugin-eslint-comments";
3
4
  import pluginAntfu from "eslint-plugin-antfu";
4
5
  import pluginImportLite from "eslint-plugin-import-lite";
@@ -6,11 +7,11 @@ import pluginNode from "eslint-plugin-n";
6
7
  import pluginPerfectionist from "eslint-plugin-perfectionist";
7
8
  import pluginUnicorn from "eslint-plugin-unicorn";
8
9
  import pluginUnusedImports from "eslint-plugin-unused-imports";
10
+ import { Linter } from "eslint";
9
11
  import { StylisticCustomizeOptions } from "@stylistic/eslint-plugin";
10
12
  import { ParserOptions } from "@typescript-eslint/parser";
11
13
  import { FlatGitignoreOptions } from "eslint-config-flat-gitignore";
12
14
  import { Options } from "eslint-processor-vue-blocks";
13
- import { Linter } from "eslint";
14
15
 
15
16
  //#region src/typegen.d.ts
16
17
  interface RuleOptions {
@@ -130,10 +131,15 @@ interface RuleOptions {
130
131
  */
131
132
  'angular-template/no-negated-async'?: Linter.RuleEntry<[]>;
132
133
  /**
133
- * Denies nesting of <p> and <a> tags.
134
+ * Denies nesting of `<p>` and `<a>` tags.
134
135
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/no-nested-tags.md
135
136
  */
136
137
  'angular-template/no-nested-tags'?: Linter.RuleEntry<[]>;
138
+ /**
139
+ * Disallows the non-null assertion operator (!) in templates
140
+ * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/no-non-null-assertion.md
141
+ */
142
+ 'angular-template/no-non-null-assertion'?: Linter.RuleEntry<[]>;
137
143
  /**
138
144
  * Ensures that the `tabindex` attribute is not positive
139
145
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/no-positive-tabindex.md
@@ -224,6 +230,11 @@ interface RuleOptions {
224
230
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-selector.md
225
231
  */
226
232
  'angular/component-selector'?: Linter.RuleEntry<AngularComponentSelector>;
233
+ /**
234
+ * Ensures that computed() returns a value. Omitting the value is likely a mistake.
235
+ * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/computed-must-return.md
236
+ */
237
+ 'angular/computed-must-return'?: Linter.RuleEntry<[]>;
227
238
  /**
228
239
  * Ensures consistent usage of `styles`/`styleUrls`/`styleUrl` within Component metadata
229
240
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/consistent-component-styles.md
@@ -992,6 +1003,7 @@ interface RuleOptions {
992
1003
  /**
993
1004
  * disallow unused `eslint-disable` comments
994
1005
  * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html
1006
+ * @deprecated
995
1007
  */
996
1008
  'eslint-comments/no-unused-disable'?: Linter.RuleEntry<[]>;
997
1009
  /**
@@ -1987,6 +1999,11 @@ interface RuleOptions {
1987
1999
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-language.md
1988
2000
  */
1989
2001
  'markdown/fenced-code-language'?: Linter.RuleEntry<MarkdownFencedCodeLanguage>;
2002
+ /**
2003
+ * Require or disallow metadata for fenced code blocks
2004
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-meta.md
2005
+ */
2006
+ 'markdown/fenced-code-meta'?: Linter.RuleEntry<MarkdownFencedCodeMeta>;
1990
2007
  /**
1991
2008
  * Enforce heading levels increment by one
1992
2009
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/heading-increment.md
@@ -3365,6 +3382,11 @@ interface RuleOptions {
3365
3382
  * @see https://perfectionist.dev/rules/sort-array-includes
3366
3383
  */
3367
3384
  'perfectionist/sort-array-includes'?: Linter.RuleEntry<PerfectionistSortArrayIncludes>;
3385
+ /**
3386
+ * Enforce sorted arrays.
3387
+ * @see https://perfectionist.dev/rules/sort-arrays
3388
+ */
3389
+ 'perfectionist/sort-arrays'?: Linter.RuleEntry<PerfectionistSortArrays>;
3368
3390
  /**
3369
3391
  * Enforce sorted classes.
3370
3392
  * @see https://perfectionist.dev/rules/sort-classes
@@ -3598,601 +3620,742 @@ interface RuleOptions {
3598
3620
  * @see https://eslint.org/docs/latest/rules/radix
3599
3621
  */
3600
3622
  'radix'?: Linter.RuleEntry<Radix>;
3623
+ 'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>;
3624
+ /**
3625
+ * Disallows higher order functions that define components or hooks inside them.
3626
+ * @see https://eslint-react.xyz/docs/rules/component-hook-factories
3627
+ */
3628
+ 'react/component-hook-factories'?: Linter.RuleEntry<[]>;
3601
3629
  /**
3602
3630
  * Disallows DOM elements from using 'dangerouslySetInnerHTML'.
3603
3631
  * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
3604
3632
  */
3605
- 'react-dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>;
3633
+ 'react/dom-no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>;
3606
3634
  /**
3607
3635
  * Disallows DOM elements from using 'dangerouslySetInnerHTML' and 'children' at the same time.
3608
3636
  * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
3609
3637
  */
3610
- 'react-dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>;
3638
+ 'react/dom-no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>;
3611
3639
  /**
3612
3640
  * Disallows 'findDOMNode'.
3613
3641
  * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
3614
3642
  */
3615
- 'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>;
3643
+ 'react/dom-no-find-dom-node'?: Linter.RuleEntry<[]>;
3616
3644
  /**
3617
3645
  * Disallows 'flushSync'.
3618
3646
  * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
3619
3647
  */
3620
- 'react-dom/no-flush-sync'?: Linter.RuleEntry<[]>;
3648
+ 'react/dom-no-flush-sync'?: Linter.RuleEntry<[]>;
3621
3649
  /**
3622
3650
  * Replaces usage of 'ReactDOM.hydrate()' with 'hydrateRoot()'.
3623
3651
  * @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
3624
3652
  */
3625
- 'react-dom/no-hydrate'?: Linter.RuleEntry<[]>;
3653
+ 'react/dom-no-hydrate'?: Linter.RuleEntry<[]>;
3626
3654
  /**
3627
3655
  * Enforces an explicit 'type' attribute for 'button' elements.
3628
3656
  * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
3629
3657
  */
3630
- 'react-dom/no-missing-button-type'?: Linter.RuleEntry<[]>;
3658
+ 'react/dom-no-missing-button-type'?: Linter.RuleEntry<[]>;
3631
3659
  /**
3632
3660
  * Enforces an explicit 'sandbox' attribute for 'iframe' elements.
3633
3661
  * @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
3634
3662
  */
3635
- 'react-dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>;
3636
- /**
3637
- * Enforces the absence of a 'namespace' in React elements.
3638
- * @see https://eslint-react.xyz/docs/rules/dom-no-namespace
3639
- */
3640
- 'react-dom/no-namespace'?: Linter.RuleEntry<[]>;
3663
+ 'react/dom-no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>;
3641
3664
  /**
3642
3665
  * Replaces usage of 'ReactDOM.render()' with 'createRoot(node).render()'.
3643
3666
  * @see https://eslint-react.xyz/docs/rules/dom-no-render
3644
3667
  */
3645
- 'react-dom/no-render'?: Linter.RuleEntry<[]>;
3668
+ 'react/dom-no-render'?: Linter.RuleEntry<[]>;
3646
3669
  /**
3647
3670
  * Disallows the return value of 'ReactDOM.render'.
3648
3671
  * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
3649
3672
  */
3650
- 'react-dom/no-render-return-value'?: Linter.RuleEntry<[]>;
3673
+ 'react/dom-no-render-return-value'?: Linter.RuleEntry<[]>;
3651
3674
  /**
3652
3675
  * Disallows 'javascript:' URLs as attribute values.
3653
3676
  * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
3654
3677
  */
3655
- 'react-dom/no-script-url'?: Linter.RuleEntry<[]>;
3678
+ 'react/dom-no-script-url'?: Linter.RuleEntry<[]>;
3656
3679
  /**
3657
3680
  * Disallows the use of string style prop in JSX. Use an object instead.
3658
3681
  * @see https://eslint-react.xyz/docs/rules/dom-no-string-style-prop
3659
3682
  */
3660
- 'react-dom/no-string-style-prop'?: Linter.RuleEntry<[]>;
3683
+ 'react/dom-no-string-style-prop'?: Linter.RuleEntry<[]>;
3661
3684
  /**
3662
3685
  * Disallows unknown 'DOM' properties.
3663
3686
  * @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
3664
3687
  */
3665
- 'react-dom/no-unknown-property'?: Linter.RuleEntry<ReactDomNoUnknownProperty>;
3688
+ 'react/dom-no-unknown-property'?: Linter.RuleEntry<ReactDomNoUnknownProperty>;
3666
3689
  /**
3667
3690
  * Enforces that the 'sandbox' attribute for 'iframe' elements is not set to unsafe combinations.
3668
3691
  * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
3669
3692
  */
3670
- 'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>;
3693
+ 'react/dom-no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>;
3671
3694
  /**
3672
3695
  * Disallows 'target="_blank"' without 'rel="noreferrer noopener"'.
3673
3696
  * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
3674
3697
  */
3675
- 'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>;
3698
+ 'react/dom-no-unsafe-target-blank'?: Linter.RuleEntry<[]>;
3676
3699
  /**
3677
3700
  * Replaces usage of 'useFormState' with 'useActionState'.
3678
3701
  * @see https://eslint-react.xyz/docs/rules/dom-no-use-form-state
3679
3702
  */
3680
- 'react-dom/no-use-form-state'?: Linter.RuleEntry<[]>;
3703
+ 'react/dom-no-use-form-state'?: Linter.RuleEntry<[]>;
3681
3704
  /**
3682
3705
  * Disallows 'children' in void DOM elements.
3683
3706
  * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
3684
3707
  */
3685
- 'react-dom/no-void-elements-with-children'?: Linter.RuleEntry<[]>;
3708
+ 'react/dom-no-void-elements-with-children'?: Linter.RuleEntry<[]>;
3686
3709
  /**
3687
3710
  * Enforces importing React DOM via a namespace import.
3688
3711
  * @see https://eslint-react.xyz/docs/rules/dom-prefer-namespace-import
3689
3712
  */
3690
- 'react-dom/prefer-namespace-import'?: Linter.RuleEntry<[]>;
3713
+ 'react/dom-prefer-namespace-import'?: Linter.RuleEntry<[]>;
3691
3714
  /**
3692
- * Disallows direct calls to the ['set' function](https://react.dev/reference/react/useState#setstate) of 'useState' in 'useEffect'.
3693
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
3715
+ * Validates usage of Error Boundaries instead of try/catch for errors in child components.
3716
+ * @see https://eslint-react.xyz/docs/rules/error-boundaries
3694
3717
  */
3695
- 'react-hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>;
3718
+ 'react/error-boundaries'?: Linter.RuleEntry<[]>;
3696
3719
  /**
3697
- * Verifies that automatic effect dependencies are compiled if opted-in
3720
+ * Verifies the list of dependencies for Hooks like 'useEffect' and similar.
3721
+ * @see https://github.com/facebook/react/issues/14920
3698
3722
  */
3699
- 'react-hooks/automatic-effect-dependencies'?: Linter.RuleEntry<ReactHooksAutomaticEffectDependencies>;
3723
+ 'react/exhaustive-deps'?: Linter.RuleEntry<ReactExhaustiveDeps>;
3700
3724
  /**
3701
- * Validates against calling capitalized functions/methods instead of using JSX
3725
+ * Validates against mutating props, state, and other values that are immutable.
3726
+ * @see https://eslint-react.xyz/docs/rules/immutability
3702
3727
  */
3703
- 'react-hooks/capitalized-calls'?: Linter.RuleEntry<ReactHooksCapitalizedCalls>;
3728
+ 'react/immutability'?: Linter.RuleEntry<[]>;
3704
3729
  /**
3705
- * Validates against higher order functions defining nested components or hooks. Components and hooks should be defined at the module level
3730
+ * Disallows passing 'children' as a prop.
3731
+ * @see https://eslint-react.xyz/docs/rules/no-children-prop
3706
3732
  */
3707
- 'react-hooks/component-hook-factories'?: Linter.RuleEntry<ReactHooksComponentHookFactories>;
3733
+ 'react/jsx-no-children-prop'?: Linter.RuleEntry<[]>;
3708
3734
  /**
3709
- * Validates the compiler configuration options
3735
+ * Disallows passing 'children' as a prop when children are also passed as nested content.
3736
+ * @see https://eslint-react.xyz/docs/rules/no-children-prop-with-children
3710
3737
  */
3711
- 'react-hooks/config'?: Linter.RuleEntry<ReactHooksConfig>;
3738
+ 'react/jsx-no-children-prop-with-children'?: Linter.RuleEntry<[]>;
3712
3739
  /**
3713
- * Validates usage of error boundaries instead of try/catch for errors in child components
3740
+ * Prevents comment strings from being accidentally inserted into a JSX element's text nodes.
3741
+ * @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
3714
3742
  */
3715
- 'react-hooks/error-boundaries'?: Linter.RuleEntry<ReactHooksErrorBoundaries>;
3743
+ 'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
3716
3744
  /**
3717
- * verifies the list of dependencies for Hooks like useEffect and similar
3718
- * @see https://github.com/facebook/react/issues/14920
3745
+ * Prevent patterns that cause deoptimization when using the automatic JSX runtime.
3746
+ * @see https://eslint-react.xyz/docs/rules/no-key-after-spread
3719
3747
  */
3720
- 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>;
3748
+ 'react/jsx-no-key-after-spread'?: Linter.RuleEntry<[]>;
3721
3749
  /**
3722
- * Validates usage of fbt
3750
+ * Catches `$` before `{expr}` in JSX — typically from template literal `${expr}` being copy-pasted into JSX without removing the `$`. The `$` "leaks" into the rendered output.
3751
+ * @see https://eslint-react.xyz/docs/rules/no-leaked-dollar
3723
3752
  */
3724
- 'react-hooks/fbt'?: Linter.RuleEntry<ReactHooksFbt>;
3753
+ 'react/jsx-no-leaked-dollar'?: Linter.RuleEntry<[]>;
3725
3754
  /**
3726
- * Validates usage of `fire`
3755
+ * Catches `;` at the start of JSX text nodes — typically from accidentally placing a statement-ending `;` inside JSX. The `;` "leaks" into the rendered output.
3756
+ * @see https://eslint-react.xyz/docs/rules/no-leaked-semicolon
3727
3757
  */
3728
- 'react-hooks/fire'?: Linter.RuleEntry<ReactHooksFire>;
3758
+ 'react/jsx-no-leaked-semicolon'?: Linter.RuleEntry<[]>;
3729
3759
  /**
3730
- * Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating)
3760
+ * Disallow JSX namespace syntax, as React does not support them.
3761
+ * @see https://eslint-react.xyz/docs/rules/no-namespace
3731
3762
  */
3732
- 'react-hooks/gating'?: Linter.RuleEntry<ReactHooksGating>;
3763
+ 'react/jsx-no-namespace'?: Linter.RuleEntry<[]>;
3733
3764
  /**
3734
- * Validates against assignment/mutation of globals during render, part of ensuring that [side effects must render outside of render](https://react.dev/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render)
3765
+ * Disallows useless fragment elements.
3766
+ * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
3735
3767
  */
3736
- 'react-hooks/globals'?: Linter.RuleEntry<ReactHooksGlobals>;
3768
+ 'react/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactJsxNoUselessFragment>;
3737
3769
  /**
3738
- * Validates the rules of hooks
3770
+ * Enforces the context name to be a valid component name with the suffix 'Context'.
3771
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
3739
3772
  */
3740
- 'react-hooks/hooks'?: Linter.RuleEntry<ReactHooksHooks>;
3773
+ 'react/naming-convention-context-name'?: Linter.RuleEntry<[]>;
3741
3774
  /**
3742
- * Validates against mutating props, state, and other values that [are immutable](https://react.dev/reference/rules/components-and-hooks-must-be-pure#props-and-state-are-immutable)
3775
+ * Enforces identifier names assigned from 'useId' calls to be either 'id' or end with 'Id'.
3776
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-id-name
3743
3777
  */
3744
- 'react-hooks/immutability'?: Linter.RuleEntry<ReactHooksImmutability>;
3778
+ 'react/naming-convention-id-name'?: Linter.RuleEntry<[]>;
3745
3779
  /**
3746
- * Validates against usage of libraries which are incompatible with memoization (manual or automatic)
3780
+ * Enforces identifier names assigned from 'useRef' calls to be either 'ref' or end with 'Ref'.
3781
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-ref-name
3747
3782
  */
3748
- 'react-hooks/incompatible-library'?: Linter.RuleEntry<ReactHooksIncompatibleLibrary>;
3783
+ 'react/naming-convention-ref-name'?: Linter.RuleEntry<[]>;
3749
3784
  /**
3750
- * Internal invariants
3785
+ * Disallows accessing 'this.state' inside 'setState' calls.
3786
+ * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
3751
3787
  */
3752
- 'react-hooks/invariant'?: Linter.RuleEntry<ReactHooksInvariant>;
3788
+ 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
3753
3789
  /**
3754
- * Validates that effect dependencies are memoized
3790
+ * Disallows using an item's index in the array as its key.
3791
+ * @see https://eslint-react.xyz/docs/rules/no-array-index-key
3755
3792
  */
3756
- 'react-hooks/memoized-effect-dependencies'?: Linter.RuleEntry<ReactHooksMemoizedEffectDependencies>;
3793
+ 'react/no-array-index-key'?: Linter.RuleEntry<[]>;
3757
3794
  /**
3758
- * Validates against deriving values from state in an effect
3795
+ * Disallows the use of 'Children.count' from the 'react' package.
3796
+ * @see https://eslint-react.xyz/docs/rules/no-children-count
3759
3797
  */
3760
- 'react-hooks/no-deriving-state-in-effects'?: Linter.RuleEntry<ReactHooksNoDerivingStateInEffects>;
3798
+ 'react/no-children-count'?: Linter.RuleEntry<[]>;
3761
3799
  /**
3762
- * Validates that existing manual memoized is preserved by the compiler. React Compiler will only compile components and hooks if its inference [matches or exceeds the existing manual memoization](https://react.dev/learn/react-compiler/introduction#what-should-i-do-about-usememo-usecallback-and-reactmemo)
3800
+ * Disallows the use of 'Children.forEach' from the 'react' package.
3801
+ * @see https://eslint-react.xyz/docs/rules/no-children-for-each
3763
3802
  */
3764
- 'react-hooks/preserve-manual-memoization'?: Linter.RuleEntry<ReactHooksPreserveManualMemoization>;
3803
+ 'react/no-children-for-each'?: Linter.RuleEntry<[]>;
3765
3804
  /**
3766
- * Validates that [components/hooks are pure](https://react.dev/reference/rules/components-and-hooks-must-be-pure) by checking that they do not call known-impure functions
3805
+ * Disallows the use of 'Children.map' from the 'react' package.
3806
+ * @see https://eslint-react.xyz/docs/rules/no-children-map
3767
3807
  */
3768
- 'react-hooks/purity'?: Linter.RuleEntry<ReactHooksPurity>;
3808
+ 'react/no-children-map'?: Linter.RuleEntry<[]>;
3769
3809
  /**
3770
- * Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [`useRef()` usage](https://react.dev/reference/react/useRef#usage)
3810
+ * Disallows the use of 'Children.only' from the 'react' package.
3811
+ * @see https://eslint-react.xyz/docs/rules/no-children-only
3771
3812
  */
3772
- 'react-hooks/refs'?: Linter.RuleEntry<ReactHooksRefs>;
3813
+ 'react/no-children-only'?: Linter.RuleEntry<[]>;
3773
3814
  /**
3774
- * Validates against suppression of other rules
3815
+ * Disallows the use of 'Children.toArray' from the 'react' package.
3816
+ * @see https://eslint-react.xyz/docs/rules/no-children-to-array
3775
3817
  */
3776
- 'react-hooks/rule-suppression'?: Linter.RuleEntry<ReactHooksRuleSuppression>;
3818
+ 'react/no-children-to-array'?: Linter.RuleEntry<[]>;
3777
3819
  /**
3778
- * enforces the Rules of Hooks
3779
- * @see https://react.dev/reference/rules/rules-of-hooks
3820
+ * Disallows class components except for error boundaries.
3821
+ * @see https://eslint-react.xyz/docs/rules/no-class-component
3780
3822
  */
3781
- 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<ReactHooksRulesOfHooks>;
3823
+ 'react/no-class-component'?: Linter.RuleEntry<[]>;
3782
3824
  /**
3783
- * Validates against calling setState synchronously in an effect, which can lead to re-renders that degrade performance
3825
+ * Disallows 'cloneElement'.
3826
+ * @see https://eslint-react.xyz/docs/rules/no-clone-element
3784
3827
  */
3785
- 'react-hooks/set-state-in-effect'?: Linter.RuleEntry<ReactHooksSetStateInEffect>;
3828
+ 'react/no-clone-element'?: Linter.RuleEntry<[]>;
3786
3829
  /**
3787
- * Validates against setting state during render, which can trigger additional renders and potential infinite render loops
3830
+ * Replaces usage of 'componentWillMount' with 'UNSAFE_componentWillMount'.
3831
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
3788
3832
  */
3789
- 'react-hooks/set-state-in-render'?: Linter.RuleEntry<ReactHooksSetStateInRender>;
3833
+ 'react/no-component-will-mount'?: Linter.RuleEntry<[]>;
3790
3834
  /**
3791
- * Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering
3835
+ * Replaces usage of 'componentWillReceiveProps' with 'UNSAFE_componentWillReceiveProps'.
3836
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
3792
3837
  */
3793
- 'react-hooks/static-components'?: Linter.RuleEntry<ReactHooksStaticComponents>;
3838
+ 'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>;
3794
3839
  /**
3795
- * Validates against invalid syntax
3840
+ * Replaces usage of 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'.
3841
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-update
3796
3842
  */
3797
- 'react-hooks/syntax'?: Linter.RuleEntry<ReactHooksSyntax>;
3843
+ 'react/no-component-will-update'?: Linter.RuleEntry<[]>;
3798
3844
  /**
3799
- * Unimplemented features
3845
+ * Replaces usage of '<Context.Provider>' with '<Context>'.
3846
+ * @see https://eslint-react.xyz/docs/rules/no-context-provider
3800
3847
  */
3801
- 'react-hooks/todo'?: Linter.RuleEntry<ReactHooksTodo>;
3848
+ 'react/no-context-provider'?: Linter.RuleEntry<[]>;
3802
3849
  /**
3803
- * Validates against syntax that we do not plan to support in React Compiler
3850
+ * Disallows 'createRef' in function components.
3851
+ * @see https://eslint-react.xyz/docs/rules/no-create-ref
3804
3852
  */
3805
- 'react-hooks/unsupported-syntax'?: Linter.RuleEntry<ReactHooksUnsupportedSyntax>;
3853
+ 'react/no-create-ref'?: Linter.RuleEntry<[]>;
3806
3854
  /**
3807
- * Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
3855
+ * Disallows direct mutation of 'this.state'.
3856
+ * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
3808
3857
  */
3809
- 'react-hooks/use-memo'?: Linter.RuleEntry<ReactHooksUseMemo>;
3858
+ 'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>;
3810
3859
  /**
3811
- * Validates that useMemos always return a value and that the result of the useMemo is used by the component/hook. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
3860
+ * Prevents duplicate 'key' props on sibling elements when rendering lists.
3861
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
3812
3862
  */
3813
- 'react-hooks/void-use-memo'?: Linter.RuleEntry<ReactHooksVoidUseMemo>;
3863
+ 'react/no-duplicate-key'?: Linter.RuleEntry<[]>;
3814
3864
  /**
3815
- * Enforces naming conventions for components.
3816
- * @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
3865
+ * Replaces usage of 'forwardRef' with passing 'ref' as a prop.
3866
+ * @see https://eslint-react.xyz/docs/rules/no-forward-ref
3817
3867
  */
3818
- 'react-naming-convention/component-name'?: Linter.RuleEntry<ReactNamingConventionComponentName>;
3868
+ 'react/no-forward-ref'?: Linter.RuleEntry<[]>;
3819
3869
  /**
3820
- * Enforces the context name to be a valid component name with the suffix 'Context'.
3821
- * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
3870
+ * Prevents implicitly passing the 'children' prop to components.
3871
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-children
3822
3872
  */
3823
- 'react-naming-convention/context-name'?: Linter.RuleEntry<[]>;
3873
+ 'react/no-implicit-children'?: Linter.RuleEntry<[]>;
3824
3874
  /**
3825
- * Enforces consistent file-naming conventions.
3826
- * @see https://eslint-react.xyz/docs/rules/naming-convention-filename
3875
+ * Prevents implicitly passing the 'key' prop to components.
3876
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-key
3827
3877
  */
3828
- 'react-naming-convention/filename'?: Linter.RuleEntry<ReactNamingConventionFilename>;
3878
+ 'react/no-implicit-key'?: Linter.RuleEntry<[]>;
3829
3879
  /**
3830
- * Enforces consistent use of the JSX file extension.
3831
- * @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
3880
+ * Prevents implicitly passing the 'ref' prop to components.
3881
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-ref
3832
3882
  */
3833
- 'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>;
3883
+ 'react/no-implicit-ref'?: Linter.RuleEntry<[]>;
3834
3884
  /**
3835
- * Enforces identifier names assigned from 'useId' calls to be either 'id' or end with 'Id'.
3836
- * @see https://eslint-react.xyz/docs/rules/naming-convention-id-name
3885
+ * Prevents problematic leaked values from being rendered.
3886
+ * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
3837
3887
  */
3838
- 'react-naming-convention/id-name'?: Linter.RuleEntry<[]>;
3888
+ 'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
3839
3889
  /**
3840
- * Enforces identifier names assigned from 'useRef' calls to be either 'ref' or end with 'Ref'.
3841
- * @see https://eslint-react.xyz/docs/rules/naming-convention-ref-name
3890
+ * Enforces that all components have a 'displayName' that can be used in DevTools.
3891
+ * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
3842
3892
  */
3843
- 'react-naming-convention/ref-name'?: Linter.RuleEntry<[]>;
3893
+ 'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>;
3844
3894
  /**
3845
- * Enforces destructuring and symmetric naming of the 'useState' hook value and setter.
3846
- * @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
3895
+ * Enforces that all contexts have a 'displayName' that can be used in DevTools.
3896
+ * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
3847
3897
  */
3848
- 'react-naming-convention/use-state'?: Linter.RuleEntry<ReactNamingConventionUseState>;
3849
- 'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>;
3898
+ 'react/no-missing-context-display-name'?: Linter.RuleEntry<[]>;
3899
+ /**
3900
+ * Disallows missing 'key' on items in list rendering.
3901
+ * @see https://eslint-react.xyz/docs/rules/no-missing-key
3902
+ */
3903
+ 'react/no-missing-key'?: Linter.RuleEntry<[]>;
3904
+ /**
3905
+ * Prevents incorrect usage of 'captureOwnerStack'.
3906
+ * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
3907
+ */
3908
+ 'react/no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>;
3909
+ /**
3910
+ * Disallows nesting component definitions inside other components.
3911
+ * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
3912
+ */
3913
+ 'react/no-nested-component-definitions'?: Linter.RuleEntry<[]>;
3914
+ /**
3915
+ * Disallows nesting lazy component declarations inside other components or hooks.
3916
+ * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
3917
+ */
3918
+ 'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
3919
+ /**
3920
+ * Disallows 'shouldComponentUpdate' when extending 'React.PureComponent'.
3921
+ * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
3922
+ */
3923
+ 'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>;
3924
+ /**
3925
+ * Disallows calling 'this.setState' in 'componentDidMount' outside functions such as callbacks.
3926
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
3927
+ */
3928
+ 'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>;
3929
+ /**
3930
+ * Disallows calling 'this.setState' in 'componentDidUpdate' outside functions such as callbacks.
3931
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
3932
+ */
3933
+ 'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>;
3934
+ /**
3935
+ * Disallows calling 'this.setState' in 'componentWillUpdate' outside functions such as callbacks.
3936
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
3937
+ */
3938
+ 'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
3939
+ /**
3940
+ * Disallows unnecessary usage of 'useCallback'.
3941
+ * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-callback
3942
+ */
3943
+ 'react/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
3944
+ /**
3945
+ * Disallows unnecessary usage of 'useMemo'.
3946
+ * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-memo
3947
+ */
3948
+ 'react/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
3949
+ /**
3950
+ * Enforces that a function with the 'use' prefix uses at least one Hook inside it.
3951
+ * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
3952
+ */
3953
+ 'react/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
3954
+ /**
3955
+ * Warns about the use of 'UNSAFE_componentWillMount' in class components.
3956
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
3957
+ */
3958
+ 'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>;
3959
+ /**
3960
+ * Warns about the use of 'UNSAFE_componentWillReceiveProps' in class components.
3961
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
3962
+ */
3963
+ 'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>;
3964
+ /**
3965
+ * Warns about the use of 'UNSAFE_componentWillUpdate' in class components.
3966
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
3967
+ */
3968
+ 'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>;
3969
+ /**
3970
+ * Prevents non-stable values (i.e., object literals) from being used as a value for 'Context.Provider'.
3971
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
3972
+ */
3973
+ 'react/no-unstable-context-value'?: Linter.RuleEntry<[]>;
3974
+ /**
3975
+ * Prevents using referential-type values as default props in object destructuring.
3976
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
3977
+ */
3978
+ 'react/no-unstable-default-props'?: Linter.RuleEntry<ReactNoUnstableDefaultProps>;
3979
+ /**
3980
+ * Warns about unused class component methods and properties.
3981
+ * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
3982
+ */
3983
+ 'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>;
3984
+ /**
3985
+ * Warns about component props that are defined but never used.
3986
+ * @see https://eslint-react.xyz/docs/rules/no-unused-props
3987
+ */
3988
+ 'react/no-unused-props'?: Linter.RuleEntry<[]>;
3989
+ /**
3990
+ * Warns about unused class component state.
3991
+ * @see https://eslint-react.xyz/docs/rules/no-unused-state
3992
+ */
3993
+ 'react/no-unused-state'?: Linter.RuleEntry<[]>;
3994
+ /**
3995
+ * Replaces usage of 'useContext' with 'use'.
3996
+ * @see https://eslint-react.xyz/docs/rules/no-use-context
3997
+ */
3998
+ 'react/no-use-context'?: Linter.RuleEntry<[]>;
3999
+ /**
4000
+ * Enforces destructuring assignment for component props and context.
4001
+ * @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
4002
+ */
4003
+ 'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
4004
+ /**
4005
+ * Enforces importing React via a namespace import.
4006
+ * @see https://eslint-react.xyz/docs/rules/prefer-namespace-import
4007
+ */
4008
+ 'react/prefer-namespace-import'?: Linter.RuleEntry<[]>;
3850
4009
  /**
3851
- * Validate and transform React Client/Server Function definitions.
4010
+ * Validates that components and hooks are pure by checking that they do not call known-impure functions during render.
4011
+ * @see https://eslint-react.xyz/docs/rules/purity
4012
+ */
4013
+ 'react/purity'?: Linter.RuleEntry<[]>;
4014
+ /**
4015
+ * Validates correct usage of refs by checking that 'ref.current' is not read or written during render.
4016
+ * @see https://eslint-react.xyz/docs/rules/refs
4017
+ */
4018
+ 'react/refs'?: Linter.RuleEntry<[]>;
4019
+ /**
4020
+ * Validates and transforms React Client/Server Function definitions.
3852
4021
  * @see https://eslint-react.xyz/docs/rules/function-definition
3853
4022
  */
3854
- 'react-rsc/function-definition'?: Linter.RuleEntry<[]>;
4023
+ 'react/rsc-function-definition'?: Linter.RuleEntry<[]>;
3855
4024
  /**
3856
- * Enforces that every 'addEventListener' in a component or custom hook has a corresponding 'removeEventListener'.
3857
- * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
4025
+ * Enforces the Rules of Hooks.
4026
+ * @see https://react.dev/reference/rules/rules-of-hooks
3858
4027
  */
3859
- 'react-web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>;
4028
+ 'react/rules-of-hooks'?: Linter.RuleEntry<ReactRulesOfHooks>;
3860
4029
  /**
3861
- * Enforces that every 'setInterval' in a component or custom hook has a corresponding 'clearInterval'.
3862
- * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
4030
+ * Validates against setting state synchronously in an effect, which can lead to re-renders that degrade performance.
4031
+ * @see https://eslint-react.xyz/docs/rules/set-state-in-effect
3863
4032
  */
3864
- 'react-web-api/no-leaked-interval'?: Linter.RuleEntry<[]>;
4033
+ 'react/set-state-in-effect'?: Linter.RuleEntry<[]>;
3865
4034
  /**
3866
- * Enforces that every 'ResizeObserver' created in a component or custom hook has a corresponding 'ResizeObserver.disconnect()'.
3867
- * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
4035
+ * Validates against unconditionally setting state during render, which can trigger additional renders and potential infinite render loops.
4036
+ * @see https://eslint-react.xyz/docs/rules/set-state-in-render
3868
4037
  */
3869
- 'react-web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>;
4038
+ 'react/set-state-in-render'?: Linter.RuleEntry<[]>;
3870
4039
  /**
3871
- * Enforces that every 'setTimeout' in a component or custom hook has a corresponding 'clearTimeout'.
3872
- * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
4040
+ * Validates against syntax that React Compiler does not support.
4041
+ * @see https://eslint-react.xyz/docs/rules/unsupported-syntax
3873
4042
  */
3874
- 'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>;
4043
+ 'react/unsupported-syntax'?: Linter.RuleEntry<[]>;
3875
4044
  /**
3876
- * Prevents unintentional '$' sign before expression.
3877
- * @see https://eslint-react.xyz/docs/rules/jsx-dollar
4045
+ * Validates that 'useMemo' is called with a callback that returns a value.
4046
+ * @see https://eslint-react.xyz/docs/rules/use-memo
3878
4047
  */
3879
- 'react/jsx-dollar'?: Linter.RuleEntry<[]>;
4048
+ 'react/use-memo'?: Linter.RuleEntry<[]>;
3880
4049
  /**
3881
- * Enforces 'key' prop placement before spread props.
3882
- * @see https://eslint-react.xyz/docs/rules/jsx-key-before-spread
4050
+ * Enforces correct usage of 'useState', including destructuring, symmetric naming of the value and setter, and wrapping expensive initializers in a lazy initializer function.
4051
+ * @see https://eslint-react.xyz/docs/rules/use-state
3883
4052
  */
3884
- 'react/jsx-key-before-spread'?: Linter.RuleEntry<[]>;
4053
+ 'react/use-state'?: Linter.RuleEntry<ReactUseState>;
3885
4054
  /**
3886
- * Prevents comment strings (e.g., beginning with '//' or '/*') from being accidentally inserted into a JSX element's text nodes.
3887
- * @see https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes
4055
+ * Enforces that every 'addEventListener' in a component or custom hook has a corresponding 'removeEventListener'.
4056
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
3888
4057
  */
3889
- 'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
4058
+ 'react/web-api-no-leaked-event-listener'?: Linter.RuleEntry<[]>;
3890
4059
  /**
3891
- * Disallows duplicate props in JSX elements.
3892
- * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
4060
+ * Enforces that every 'setInterval' in a component or custom hook has a corresponding 'clearInterval'.
4061
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
3893
4062
  */
3894
- 'react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>;
4063
+ 'react/web-api-no-leaked-interval'?: Linter.RuleEntry<[]>;
3895
4064
  /**
3896
- * Disallows immediately-invoked function expressions in JSX.
3897
- * @see https://eslint-react.xyz/docs/rules/jsx-no-iife
4065
+ * Enforces that every 'ResizeObserver' created in a component or custom hook has a corresponding 'ResizeObserver.disconnect()'.
4066
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
3898
4067
  */
3899
- 'react/jsx-no-iife'?: Linter.RuleEntry<[]>;
4068
+ 'react/web-api-no-leaked-resize-observer'?: Linter.RuleEntry<[]>;
3900
4069
  /**
3901
- * Prevents using variables in JSX that are not defined in the scope.
3902
- * @see https://eslint-react.xyz/docs/rules/jsx-no-undef
4070
+ * Enforces that every 'setTimeout' in a component or custom hook has a corresponding 'clearTimeout'.
4071
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
3903
4072
  */
3904
- 'react/jsx-no-undef'?: Linter.RuleEntry<[]>;
4073
+ 'react/web-api-no-leaked-timeout'?: Linter.RuleEntry<[]>;
3905
4074
  /**
3906
- * Enforces shorthand syntax for boolean props.
3907
- * @see https://eslint-react.xyz/docs/rules/jsx-shorthand-boolean
4075
+ * Disallows higher order functions that define components or hooks inside them.
4076
+ * @see https://eslint-react.xyz/docs/rules/component-hook-factories
3908
4077
  */
3909
- 'react/jsx-shorthand-boolean'?: Linter.RuleEntry<ReactJsxShorthandBoolean>;
4078
+ 'react/x-component-hook-factories'?: Linter.RuleEntry<[]>;
3910
4079
  /**
3911
- * Enforces shorthand syntax for fragment elements.
3912
- * @see https://eslint-react.xyz/docs/rules/jsx-shorthand-fragment
4080
+ * Validates usage of Error Boundaries instead of try/catch for errors in child components.
4081
+ * @see https://eslint-react.xyz/docs/rules/error-boundaries
3913
4082
  */
3914
- 'react/jsx-shorthand-fragment'?: Linter.RuleEntry<ReactJsxShorthandFragment>;
4083
+ 'react/x-error-boundaries'?: Linter.RuleEntry<[]>;
3915
4084
  /**
3916
- * Marks React variables as used when JSX is present.
3917
- * @see https://eslint-react.xyz/docs/rules/jsx-uses-react
4085
+ * Verifies the list of dependencies for Hooks like 'useEffect' and similar.
4086
+ * @see https://github.com/facebook/react/issues/14920
3918
4087
  */
3919
- 'react/jsx-uses-react'?: Linter.RuleEntry<[]>;
4088
+ 'react/x-exhaustive-deps'?: Linter.RuleEntry<ReactXExhaustiveDeps>;
3920
4089
  /**
3921
- * Marks JSX element variables as used.
3922
- * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
4090
+ * Validates against mutating props, state, and other values that are immutable.
4091
+ * @see https://eslint-react.xyz/docs/rules/immutability
3923
4092
  */
3924
- 'react/jsx-uses-vars'?: Linter.RuleEntry<[]>;
4093
+ 'react/x-immutability'?: Linter.RuleEntry<[]>;
3925
4094
  /**
3926
4095
  * Disallows accessing 'this.state' inside 'setState' calls.
3927
4096
  * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
3928
4097
  */
3929
- 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
4098
+ 'react/x-no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
3930
4099
  /**
3931
4100
  * Disallows using an item's index in the array as its key.
3932
4101
  * @see https://eslint-react.xyz/docs/rules/no-array-index-key
3933
4102
  */
3934
- 'react/no-array-index-key'?: Linter.RuleEntry<[]>;
4103
+ 'react/x-no-array-index-key'?: Linter.RuleEntry<[]>;
3935
4104
  /**
3936
4105
  * Disallows the use of 'Children.count' from the 'react' package.
3937
4106
  * @see https://eslint-react.xyz/docs/rules/no-children-count
3938
4107
  */
3939
- 'react/no-children-count'?: Linter.RuleEntry<[]>;
4108
+ 'react/x-no-children-count'?: Linter.RuleEntry<[]>;
3940
4109
  /**
3941
4110
  * Disallows the use of 'Children.forEach' from the 'react' package.
3942
4111
  * @see https://eslint-react.xyz/docs/rules/no-children-for-each
3943
4112
  */
3944
- 'react/no-children-for-each'?: Linter.RuleEntry<[]>;
4113
+ 'react/x-no-children-for-each'?: Linter.RuleEntry<[]>;
3945
4114
  /**
3946
4115
  * Disallows the use of 'Children.map' from the 'react' package.
3947
4116
  * @see https://eslint-react.xyz/docs/rules/no-children-map
3948
4117
  */
3949
- 'react/no-children-map'?: Linter.RuleEntry<[]>;
4118
+ 'react/x-no-children-map'?: Linter.RuleEntry<[]>;
3950
4119
  /**
3951
4120
  * Disallows the use of 'Children.only' from the 'react' package.
3952
4121
  * @see https://eslint-react.xyz/docs/rules/no-children-only
3953
4122
  */
3954
- 'react/no-children-only'?: Linter.RuleEntry<[]>;
3955
- /**
3956
- * Disallows passing 'children' as a prop.
3957
- * @see https://eslint-react.xyz/docs/rules/no-children-prop
3958
- */
3959
- 'react/no-children-prop'?: Linter.RuleEntry<[]>;
4123
+ 'react/x-no-children-only'?: Linter.RuleEntry<[]>;
3960
4124
  /**
3961
4125
  * Disallows the use of 'Children.toArray' from the 'react' package.
3962
4126
  * @see https://eslint-react.xyz/docs/rules/no-children-to-array
3963
4127
  */
3964
- 'react/no-children-to-array'?: Linter.RuleEntry<[]>;
4128
+ 'react/x-no-children-to-array'?: Linter.RuleEntry<[]>;
3965
4129
  /**
3966
4130
  * Disallows class components except for error boundaries.
3967
4131
  * @see https://eslint-react.xyz/docs/rules/no-class-component
3968
4132
  */
3969
- 'react/no-class-component'?: Linter.RuleEntry<[]>;
4133
+ 'react/x-no-class-component'?: Linter.RuleEntry<[]>;
3970
4134
  /**
3971
4135
  * Disallows 'cloneElement'.
3972
4136
  * @see https://eslint-react.xyz/docs/rules/no-clone-element
3973
4137
  */
3974
- 'react/no-clone-element'?: Linter.RuleEntry<[]>;
4138
+ 'react/x-no-clone-element'?: Linter.RuleEntry<[]>;
3975
4139
  /**
3976
4140
  * Replaces usage of 'componentWillMount' with 'UNSAFE_componentWillMount'.
3977
4141
  * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
3978
4142
  */
3979
- 'react/no-component-will-mount'?: Linter.RuleEntry<[]>;
4143
+ 'react/x-no-component-will-mount'?: Linter.RuleEntry<[]>;
3980
4144
  /**
3981
4145
  * Replaces usage of 'componentWillReceiveProps' with 'UNSAFE_componentWillReceiveProps'.
3982
4146
  * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
3983
4147
  */
3984
- 'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>;
4148
+ 'react/x-no-component-will-receive-props'?: Linter.RuleEntry<[]>;
3985
4149
  /**
3986
4150
  * Replaces usage of 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'.
3987
4151
  * @see https://eslint-react.xyz/docs/rules/no-component-will-update
3988
4152
  */
3989
- 'react/no-component-will-update'?: Linter.RuleEntry<[]>;
4153
+ 'react/x-no-component-will-update'?: Linter.RuleEntry<[]>;
3990
4154
  /**
3991
4155
  * Replaces usage of '<Context.Provider>' with '<Context>'.
3992
4156
  * @see https://eslint-react.xyz/docs/rules/no-context-provider
3993
4157
  */
3994
- 'react/no-context-provider'?: Linter.RuleEntry<[]>;
4158
+ 'react/x-no-context-provider'?: Linter.RuleEntry<[]>;
3995
4159
  /**
3996
4160
  * Disallows 'createRef' in function components.
3997
4161
  * @see https://eslint-react.xyz/docs/rules/no-create-ref
3998
4162
  */
3999
- 'react/no-create-ref'?: Linter.RuleEntry<[]>;
4000
- /**
4001
- * Disallows the 'defaultProps' property in favor of ES6 default parameters.
4002
- * @see https://eslint-react.xyz/docs/rules/no-default-props
4003
- */
4004
- 'react/no-default-props'?: Linter.RuleEntry<[]>;
4163
+ 'react/x-no-create-ref'?: Linter.RuleEntry<[]>;
4005
4164
  /**
4006
4165
  * Disallows direct mutation of 'this.state'.
4007
4166
  * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
4008
4167
  */
4009
- 'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>;
4168
+ 'react/x-no-direct-mutation-state'?: Linter.RuleEntry<[]>;
4010
4169
  /**
4011
4170
  * Prevents duplicate 'key' props on sibling elements when rendering lists.
4012
4171
  * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
4013
4172
  */
4014
- 'react/no-duplicate-key'?: Linter.RuleEntry<[]>;
4015
- /**
4016
- * Disallows certain props on components.
4017
- * @see https://eslint-react.xyz/docs/rules/no-forbidden-props
4018
- * @deprecated
4019
- */
4020
- 'react/no-forbidden-props'?: Linter.RuleEntry<ReactNoForbiddenProps>;
4173
+ 'react/x-no-duplicate-key'?: Linter.RuleEntry<[]>;
4021
4174
  /**
4022
4175
  * Replaces usage of 'forwardRef' with passing 'ref' as a prop.
4023
4176
  * @see https://eslint-react.xyz/docs/rules/no-forward-ref
4024
4177
  */
4025
- 'react/no-forward-ref'?: Linter.RuleEntry<[]>;
4178
+ 'react/x-no-forward-ref'?: Linter.RuleEntry<[]>;
4179
+ /**
4180
+ * Prevents implicitly passing the 'children' prop to components.
4181
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-children
4182
+ */
4183
+ 'react/x-no-implicit-children'?: Linter.RuleEntry<[]>;
4026
4184
  /**
4027
4185
  * Prevents implicitly passing the 'key' prop to components.
4028
4186
  * @see https://eslint-react.xyz/docs/rules/no-implicit-key
4029
4187
  */
4030
- 'react/no-implicit-key'?: Linter.RuleEntry<[]>;
4188
+ 'react/x-no-implicit-key'?: Linter.RuleEntry<[]>;
4189
+ /**
4190
+ * Prevents implicitly passing the 'ref' prop to components.
4191
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-ref
4192
+ */
4193
+ 'react/x-no-implicit-ref'?: Linter.RuleEntry<[]>;
4031
4194
  /**
4032
4195
  * Prevents problematic leaked values from being rendered.
4033
4196
  * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
4034
4197
  */
4035
- 'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
4198
+ 'react/x-no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
4036
4199
  /**
4037
4200
  * Enforces that all components have a 'displayName' that can be used in DevTools.
4038
4201
  * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
4039
4202
  */
4040
- 'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>;
4203
+ 'react/x-no-missing-component-display-name'?: Linter.RuleEntry<[]>;
4041
4204
  /**
4042
4205
  * Enforces that all contexts have a 'displayName' that can be used in DevTools.
4043
4206
  * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
4044
4207
  */
4045
- 'react/no-missing-context-display-name'?: Linter.RuleEntry<[]>;
4208
+ 'react/x-no-missing-context-display-name'?: Linter.RuleEntry<[]>;
4046
4209
  /**
4047
4210
  * Disallows missing 'key' on items in list rendering.
4048
4211
  * @see https://eslint-react.xyz/docs/rules/no-missing-key
4049
4212
  */
4050
- 'react/no-missing-key'?: Linter.RuleEntry<[]>;
4213
+ 'react/x-no-missing-key'?: Linter.RuleEntry<[]>;
4051
4214
  /**
4052
4215
  * Prevents incorrect usage of 'captureOwnerStack'.
4053
4216
  * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
4054
4217
  */
4055
- 'react/no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>;
4218
+ 'react/x-no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>;
4056
4219
  /**
4057
4220
  * Disallows nesting component definitions inside other components.
4058
4221
  * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
4059
4222
  */
4060
- 'react/no-nested-component-definitions'?: Linter.RuleEntry<[]>;
4223
+ 'react/x-no-nested-component-definitions'?: Linter.RuleEntry<[]>;
4061
4224
  /**
4062
- * Disallows nesting lazy component declarations inside other components.
4225
+ * Disallows nesting lazy component declarations inside other components or hooks.
4063
4226
  * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
4064
4227
  */
4065
- 'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
4066
- /**
4067
- * Disallows 'propTypes' in favor of TypeScript or another type-checking solution.
4068
- * @see https://eslint-react.xyz/docs/rules/no-prop-types
4069
- */
4070
- 'react/no-prop-types'?: Linter.RuleEntry<[]>;
4228
+ 'react/x-no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
4071
4229
  /**
4072
4230
  * Disallows 'shouldComponentUpdate' when extending 'React.PureComponent'.
4073
4231
  * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
4074
4232
  */
4075
- 'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>;
4233
+ 'react/x-no-redundant-should-component-update'?: Linter.RuleEntry<[]>;
4076
4234
  /**
4077
4235
  * Disallows calling 'this.setState' in 'componentDidMount' outside functions such as callbacks.
4078
4236
  * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
4079
4237
  */
4080
- 'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>;
4238
+ 'react/x-no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>;
4081
4239
  /**
4082
4240
  * Disallows calling 'this.setState' in 'componentDidUpdate' outside functions such as callbacks.
4083
4241
  * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
4084
4242
  */
4085
- 'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>;
4243
+ 'react/x-no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>;
4086
4244
  /**
4087
4245
  * Disallows calling 'this.setState' in 'componentWillUpdate' outside functions such as callbacks.
4088
4246
  * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
4089
4247
  */
4090
- 'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
4091
- /**
4092
- * Replaces string refs with callback refs.
4093
- * @see https://eslint-react.xyz/docs/rules/no-string-refs
4094
- */
4095
- 'react/no-string-refs'?: Linter.RuleEntry<[]>;
4096
- /**
4097
- * Disallows unnecessary 'key' props on nested child elements when rendering lists.
4098
- * @see https://eslint-react.xyz/docs/rules/no-unnecessary-key
4099
- */
4100
- 'react/no-unnecessary-key'?: Linter.RuleEntry<[]>;
4248
+ 'react/x-no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
4101
4249
  /**
4102
4250
  * Disallows unnecessary usage of 'useCallback'.
4103
4251
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-callback
4104
4252
  */
4105
- 'react/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
4253
+ 'react/x-no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
4106
4254
  /**
4107
4255
  * Disallows unnecessary usage of 'useMemo'.
4108
4256
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-memo
4109
4257
  */
4110
- 'react/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
4258
+ 'react/x-no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
4111
4259
  /**
4112
4260
  * Enforces that a function with the 'use' prefix uses at least one Hook inside it.
4113
4261
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
4114
4262
  */
4115
- 'react/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
4116
- /**
4117
- * Disallows unnecessary usage of 'useRef'.
4118
- * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-ref
4119
- */
4120
- 'react/no-unnecessary-use-ref'?: Linter.RuleEntry<[]>;
4263
+ 'react/x-no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
4121
4264
  /**
4122
4265
  * Warns about the use of 'UNSAFE_componentWillMount' in class components.
4123
4266
  * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
4124
4267
  */
4125
- 'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>;
4268
+ 'react/x-no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>;
4126
4269
  /**
4127
4270
  * Warns about the use of 'UNSAFE_componentWillReceiveProps' in class components.
4128
4271
  * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
4129
4272
  */
4130
- 'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>;
4273
+ 'react/x-no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>;
4131
4274
  /**
4132
4275
  * Warns about the use of 'UNSAFE_componentWillUpdate' in class components.
4133
4276
  * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
4134
4277
  */
4135
- 'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>;
4278
+ 'react/x-no-unsafe-component-will-update'?: Linter.RuleEntry<[]>;
4136
4279
  /**
4137
4280
  * Prevents non-stable values (i.e., object literals) from being used as a value for 'Context.Provider'.
4138
4281
  * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
4139
4282
  */
4140
- 'react/no-unstable-context-value'?: Linter.RuleEntry<[]>;
4283
+ 'react/x-no-unstable-context-value'?: Linter.RuleEntry<[]>;
4141
4284
  /**
4142
4285
  * Prevents using referential-type values as default props in object destructuring.
4143
4286
  * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
4144
4287
  */
4145
- 'react/no-unstable-default-props'?: Linter.RuleEntry<ReactNoUnstableDefaultProps>;
4288
+ 'react/x-no-unstable-default-props'?: Linter.RuleEntry<ReactXNoUnstableDefaultProps>;
4146
4289
  /**
4147
4290
  * Warns about unused class component methods and properties.
4148
4291
  * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
4149
4292
  */
4150
- 'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>;
4293
+ 'react/x-no-unused-class-component-members'?: Linter.RuleEntry<[]>;
4151
4294
  /**
4152
4295
  * Warns about component props that are defined but never used.
4153
4296
  * @see https://eslint-react.xyz/docs/rules/no-unused-props
4154
4297
  */
4155
- 'react/no-unused-props'?: Linter.RuleEntry<[]>;
4298
+ 'react/x-no-unused-props'?: Linter.RuleEntry<[]>;
4156
4299
  /**
4157
4300
  * Warns about unused class component state.
4158
4301
  * @see https://eslint-react.xyz/docs/rules/no-unused-state
4159
4302
  */
4160
- 'react/no-unused-state'?: Linter.RuleEntry<[]>;
4303
+ 'react/x-no-unused-state'?: Linter.RuleEntry<[]>;
4161
4304
  /**
4162
4305
  * Replaces usage of 'useContext' with 'use'.
4163
4306
  * @see https://eslint-react.xyz/docs/rules/no-use-context
4164
4307
  */
4165
- 'react/no-use-context'?: Linter.RuleEntry<[]>;
4166
- /**
4167
- * Disallows useless 'forwardRef' calls on components that don't use 'ref's.
4168
- * @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
4169
- */
4170
- 'react/no-useless-forward-ref'?: Linter.RuleEntry<[]>;
4171
- /**
4172
- * Disallows useless fragment elements.
4173
- * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
4174
- */
4175
- 'react/no-useless-fragment'?: Linter.RuleEntry<ReactNoUselessFragment>;
4308
+ 'react/x-no-use-context'?: Linter.RuleEntry<[]>;
4176
4309
  /**
4177
4310
  * Enforces destructuring assignment for component props and context.
4178
4311
  * @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
4179
4312
  */
4180
- 'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
4313
+ 'react/x-prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
4181
4314
  /**
4182
4315
  * Enforces importing React via a namespace import.
4183
4316
  * @see https://eslint-react.xyz/docs/rules/prefer-namespace-import
4184
4317
  */
4185
- 'react/prefer-namespace-import'?: Linter.RuleEntry<[]>;
4318
+ 'react/x-prefer-namespace-import'?: Linter.RuleEntry<[]>;
4319
+ /**
4320
+ * Validates that components and hooks are pure by checking that they do not call known-impure functions during render.
4321
+ * @see https://eslint-react.xyz/docs/rules/purity
4322
+ */
4323
+ 'react/x-purity'?: Linter.RuleEntry<[]>;
4324
+ /**
4325
+ * Validates correct usage of refs by checking that 'ref.current' is not read or written during render.
4326
+ * @see https://eslint-react.xyz/docs/rules/refs
4327
+ */
4328
+ 'react/x-refs'?: Linter.RuleEntry<[]>;
4186
4329
  /**
4187
- * Enforces read-only props in components.
4188
- * @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
4330
+ * Enforces the Rules of Hooks.
4331
+ * @see https://react.dev/reference/rules/rules-of-hooks
4189
4332
  */
4190
- 'react/prefer-read-only-props'?: Linter.RuleEntry<[]>;
4333
+ 'react/x-rules-of-hooks'?: Linter.RuleEntry<ReactXRulesOfHooks>;
4191
4334
  /**
4192
- * Enforces wrapping function calls made inside 'useState' in an 'initializer function'.
4193
- * @see https://eslint-react.xyz/docs/rules/prefer-use-state-lazy-initialization
4335
+ * Validates against setting state synchronously in an effect, which can lead to re-renders that degrade performance.
4336
+ * @see https://eslint-react.xyz/docs/rules/set-state-in-effect
4194
4337
  */
4195
- 'react/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>;
4338
+ 'react/x-set-state-in-effect'?: Linter.RuleEntry<[]>;
4339
+ /**
4340
+ * Validates against unconditionally setting state during render, which can trigger additional renders and potential infinite render loops.
4341
+ * @see https://eslint-react.xyz/docs/rules/set-state-in-render
4342
+ */
4343
+ 'react/x-set-state-in-render'?: Linter.RuleEntry<[]>;
4344
+ /**
4345
+ * Validates against syntax that React Compiler does not support.
4346
+ * @see https://eslint-react.xyz/docs/rules/unsupported-syntax
4347
+ */
4348
+ 'react/x-unsupported-syntax'?: Linter.RuleEntry<[]>;
4349
+ /**
4350
+ * Validates that 'useMemo' is called with a callback that returns a value.
4351
+ * @see https://eslint-react.xyz/docs/rules/use-memo
4352
+ */
4353
+ 'react/x-use-memo'?: Linter.RuleEntry<[]>;
4354
+ /**
4355
+ * Enforces correct usage of 'useState', including destructuring, symmetric naming of the value and setter, and wrapping expensive initializers in a lazy initializer function.
4356
+ * @see https://eslint-react.xyz/docs/rules/use-state
4357
+ */
4358
+ 'react/x-use-state'?: Linter.RuleEntry<ReactXUseState>;
4196
4359
  /**
4197
4360
  * disallow confusing quantifiers
4198
4361
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -5373,6 +5536,11 @@ interface RuleOptions {
5373
5536
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/max-attributes-per-line/
5374
5537
  */
5375
5538
  'svelte/max-attributes-per-line'?: Linter.RuleEntry<SvelteMaxAttributesPerLine>;
5539
+ /**
5540
+ * enforce maximum number of lines in svelte component blocks
5541
+ * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/max-lines-per-block/
5542
+ */
5543
+ 'svelte/max-lines-per-block'?: Linter.RuleEntry<SvelteMaxLinesPerBlock>;
5376
5544
  /**
5377
5545
  * enforce unified spacing in mustache
5378
5546
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/mustache-spacing/
@@ -5472,7 +5640,7 @@ interface RuleOptions {
5472
5640
  */
5473
5641
  'svelte/no-navigation-without-base'?: Linter.RuleEntry<SvelteNoNavigationWithoutBase>;
5474
5642
  /**
5475
- * disallow using navigation (links, goto, pushState, replaceState) without a resolve()
5643
+ * disallow internal navigation (links, `goto()`, `pushState()`, `replaceState()`) without a `resolve()`
5476
5644
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-resolve/
5477
5645
  */
5478
5646
  'svelte/no-navigation-without-resolve'?: Linter.RuleEntry<SvelteNoNavigationWithoutResolve>;
@@ -6100,6 +6268,11 @@ interface RuleOptions {
6100
6268
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-top-level-describe.md
6101
6269
  */
6102
6270
  'test/require-top-level-describe'?: Linter.RuleEntry<TestRequireTopLevelDescribe>;
6271
+ /**
6272
+ * enforce unbound methods are called with their expected scope
6273
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/unbound-method.md
6274
+ */
6275
+ 'test/unbound-method'?: Linter.RuleEntry<TestUnboundMethod>;
6103
6276
  /**
6104
6277
  * enforce valid describe callback
6105
6278
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
@@ -6930,730 +7103,750 @@ interface RuleOptions {
6930
7103
  'unicode-bom'?: Linter.RuleEntry<UnicodeBom>;
6931
7104
  /**
6932
7105
  * Improve regexes by making them shorter, consistent, and safer.
6933
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/better-regex.md
7106
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/better-regex.md
6934
7107
  */
6935
7108
  'unicorn/better-regex'?: Linter.RuleEntry<UnicornBetterRegex>;
6936
7109
  /**
6937
7110
  * Enforce a specific parameter name in catch clauses.
6938
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/catch-error-name.md
7111
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/catch-error-name.md
6939
7112
  */
6940
7113
  'unicorn/catch-error-name'?: Linter.RuleEntry<UnicornCatchErrorName>;
6941
7114
  /**
6942
7115
  * Enforce consistent assertion style with `node:assert`.
6943
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-assert.md
7116
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-assert.md
6944
7117
  */
6945
7118
  'unicorn/consistent-assert'?: Linter.RuleEntry<[]>;
6946
7119
  /**
6947
7120
  * Prefer passing `Date` directly to the constructor when cloning.
6948
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-date-clone.md
7121
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-date-clone.md
6949
7122
  */
6950
7123
  'unicorn/consistent-date-clone'?: Linter.RuleEntry<[]>;
6951
7124
  /**
6952
7125
  * Use destructured variables over properties.
6953
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-destructuring.md
7126
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-destructuring.md
6954
7127
  */
6955
7128
  'unicorn/consistent-destructuring'?: Linter.RuleEntry<[]>;
6956
7129
  /**
6957
7130
  * Prefer consistent types when spreading a ternary in an array literal.
6958
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-empty-array-spread.md
7131
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-empty-array-spread.md
6959
7132
  */
6960
7133
  'unicorn/consistent-empty-array-spread'?: Linter.RuleEntry<[]>;
6961
7134
  /**
6962
7135
  * Enforce consistent style for element existence checks with `indexOf()`, `lastIndexOf()`, `findIndex()`, and `findLastIndex()`.
6963
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-existence-index-check.md
7136
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-existence-index-check.md
6964
7137
  */
6965
7138
  'unicorn/consistent-existence-index-check'?: Linter.RuleEntry<[]>;
6966
7139
  /**
6967
7140
  * Move function definitions to the highest possible scope.
6968
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-function-scoping.md
7141
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-function-scoping.md
6969
7142
  */
6970
7143
  'unicorn/consistent-function-scoping'?: Linter.RuleEntry<UnicornConsistentFunctionScoping>;
7144
+ /**
7145
+ * Enforce consistent style for escaping `${` in template literals.
7146
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-template-literal-escape.md
7147
+ */
7148
+ 'unicorn/consistent-template-literal-escape'?: Linter.RuleEntry<[]>;
6971
7149
  /**
6972
7150
  * Enforce correct `Error` subclassing.
6973
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/custom-error-definition.md
7151
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/custom-error-definition.md
6974
7152
  */
6975
7153
  'unicorn/custom-error-definition'?: Linter.RuleEntry<[]>;
6976
7154
  /**
6977
7155
  * Enforce no spaces between braces.
6978
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/empty-brace-spaces.md
7156
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/empty-brace-spaces.md
6979
7157
  */
6980
7158
  'unicorn/empty-brace-spaces'?: Linter.RuleEntry<[]>;
6981
7159
  /**
6982
7160
  * Enforce passing a `message` value when creating a built-in error.
6983
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/error-message.md
7161
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/error-message.md
6984
7162
  */
6985
7163
  'unicorn/error-message'?: Linter.RuleEntry<[]>;
6986
7164
  /**
6987
7165
  * Require escape sequences to use uppercase or lowercase values.
6988
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/escape-case.md
7166
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/escape-case.md
6989
7167
  */
6990
7168
  'unicorn/escape-case'?: Linter.RuleEntry<UnicornEscapeCase>;
6991
7169
  /**
6992
7170
  * Add expiration conditions to TODO comments.
6993
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/expiring-todo-comments.md
7171
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/expiring-todo-comments.md
6994
7172
  */
6995
7173
  'unicorn/expiring-todo-comments'?: Linter.RuleEntry<UnicornExpiringTodoComments>;
6996
7174
  /**
6997
7175
  * Enforce explicitly comparing the `length` or `size` property of a value.
6998
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/explicit-length-check.md
7176
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/explicit-length-check.md
6999
7177
  */
7000
7178
  'unicorn/explicit-length-check'?: Linter.RuleEntry<UnicornExplicitLengthCheck>;
7001
7179
  /**
7002
7180
  * Enforce a case style for filenames.
7003
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/filename-case.md
7181
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/filename-case.md
7004
7182
  */
7005
7183
  'unicorn/filename-case'?: Linter.RuleEntry<UnicornFilenameCase>;
7006
7184
  /**
7007
7185
  * Enforce specific import styles per module.
7008
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/import-style.md
7186
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/import-style.md
7009
7187
  */
7010
7188
  'unicorn/import-style'?: Linter.RuleEntry<UnicornImportStyle>;
7011
7189
  /**
7012
7190
  * Prevent usage of variables from outside the scope of isolated functions.
7013
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/isolated-functions.md
7191
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/isolated-functions.md
7014
7192
  */
7015
7193
  'unicorn/isolated-functions'?: Linter.RuleEntry<UnicornIsolatedFunctions>;
7016
7194
  /**
7017
7195
  * Enforce the use of `new` for all builtins, except `String`, `Number`, `Boolean`, `Symbol` and `BigInt`.
7018
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/new-for-builtins.md
7196
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/new-for-builtins.md
7019
7197
  */
7020
7198
  'unicorn/new-for-builtins'?: Linter.RuleEntry<[]>;
7021
7199
  /**
7022
7200
  * Enforce specifying rules to disable in `eslint-disable` comments.
7023
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-abusive-eslint-disable.md
7201
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-abusive-eslint-disable.md
7024
7202
  */
7025
7203
  'unicorn/no-abusive-eslint-disable'?: Linter.RuleEntry<[]>;
7026
7204
  /**
7027
7205
  * Disallow recursive access to `this` within getters and setters.
7028
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-accessor-recursion.md
7206
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-accessor-recursion.md
7029
7207
  */
7030
7208
  'unicorn/no-accessor-recursion'?: Linter.RuleEntry<[]>;
7031
7209
  /**
7032
7210
  * Disallow anonymous functions and classes as the default export.
7033
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-anonymous-default-export.md
7211
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-anonymous-default-export.md
7034
7212
  */
7035
7213
  'unicorn/no-anonymous-default-export'?: Linter.RuleEntry<[]>;
7036
7214
  /**
7037
7215
  * Prevent passing a function reference directly to iterator methods.
7038
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-callback-reference.md
7216
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-callback-reference.md
7039
7217
  */
7040
7218
  'unicorn/no-array-callback-reference'?: Linter.RuleEntry<[]>;
7041
7219
  /**
7042
7220
  * Prefer `for…of` over the `forEach` method.
7043
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-for-each.md
7221
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-for-each.md
7044
7222
  */
7045
7223
  'unicorn/no-array-for-each'?: Linter.RuleEntry<[]>;
7046
7224
  /**
7047
7225
  * Disallow using the `this` argument in array methods.
7048
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-method-this-argument.md
7226
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-method-this-argument.md
7049
7227
  */
7050
7228
  'unicorn/no-array-method-this-argument'?: Linter.RuleEntry<[]>;
7051
7229
  /**
7052
7230
  * Replaced by `unicorn/prefer-single-call` which covers more cases.
7053
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/deleted-and-deprecated-rules.md#no-array-push-push
7231
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/deleted-and-deprecated-rules.md#no-array-push-push
7054
7232
  * @deprecated
7055
7233
  */
7056
7234
  'unicorn/no-array-push-push'?: Linter.RuleEntry<[]>;
7057
7235
  /**
7058
7236
  * Disallow `Array#reduce()` and `Array#reduceRight()`.
7059
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-reduce.md
7237
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-reduce.md
7060
7238
  */
7061
7239
  'unicorn/no-array-reduce'?: Linter.RuleEntry<UnicornNoArrayReduce>;
7062
7240
  /**
7063
7241
  * Prefer `Array#toReversed()` over `Array#reverse()`.
7064
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-reverse.md
7242
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-reverse.md
7065
7243
  */
7066
7244
  'unicorn/no-array-reverse'?: Linter.RuleEntry<UnicornNoArrayReverse>;
7067
7245
  /**
7068
7246
  * Prefer `Array#toSorted()` over `Array#sort()`.
7069
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-sort.md
7247
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-sort.md
7070
7248
  */
7071
7249
  'unicorn/no-array-sort'?: Linter.RuleEntry<UnicornNoArraySort>;
7072
7250
  /**
7073
7251
  * Disallow member access from await expression.
7074
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-await-expression-member.md
7252
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-await-expression-member.md
7075
7253
  */
7076
7254
  'unicorn/no-await-expression-member'?: Linter.RuleEntry<[]>;
7077
7255
  /**
7078
7256
  * Disallow using `await` in `Promise` method parameters.
7079
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-await-in-promise-methods.md
7257
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-await-in-promise-methods.md
7080
7258
  */
7081
7259
  'unicorn/no-await-in-promise-methods'?: Linter.RuleEntry<[]>;
7082
7260
  /**
7083
7261
  * Do not use leading/trailing space between `console.log` parameters.
7084
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-console-spaces.md
7262
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-console-spaces.md
7085
7263
  */
7086
7264
  'unicorn/no-console-spaces'?: Linter.RuleEntry<[]>;
7087
7265
  /**
7088
7266
  * Do not use `document.cookie` directly.
7089
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-document-cookie.md
7267
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-document-cookie.md
7090
7268
  */
7091
7269
  'unicorn/no-document-cookie'?: Linter.RuleEntry<[]>;
7092
7270
  /**
7093
7271
  * Disallow empty files.
7094
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-empty-file.md
7272
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-empty-file.md
7095
7273
  */
7096
7274
  'unicorn/no-empty-file'?: Linter.RuleEntry<[]>;
7097
7275
  /**
7098
7276
  * Do not use a `for` loop that can be replaced with a `for-of` loop.
7099
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-for-loop.md
7277
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-for-loop.md
7100
7278
  */
7101
7279
  'unicorn/no-for-loop'?: Linter.RuleEntry<[]>;
7102
7280
  /**
7103
7281
  * Enforce the use of Unicode escapes instead of hexadecimal escapes.
7104
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-hex-escape.md
7282
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-hex-escape.md
7105
7283
  */
7106
7284
  'unicorn/no-hex-escape'?: Linter.RuleEntry<[]>;
7107
7285
  /**
7108
7286
  * Disallow immediate mutation after variable assignment.
7109
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-immediate-mutation.md
7287
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-immediate-mutation.md
7110
7288
  */
7111
7289
  'unicorn/no-immediate-mutation'?: Linter.RuleEntry<[]>;
7112
7290
  /**
7113
7291
  * Replaced by `unicorn/no-instanceof-builtins` which covers more cases.
7114
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/deleted-and-deprecated-rules.md#no-instanceof-array
7292
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/deleted-and-deprecated-rules.md#no-instanceof-array
7115
7293
  * @deprecated
7116
7294
  */
7117
7295
  'unicorn/no-instanceof-array'?: Linter.RuleEntry<[]>;
7118
7296
  /**
7119
7297
  * Disallow `instanceof` with built-in objects
7120
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-instanceof-builtins.md
7298
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-instanceof-builtins.md
7121
7299
  */
7122
7300
  'unicorn/no-instanceof-builtins'?: Linter.RuleEntry<UnicornNoInstanceofBuiltins>;
7123
7301
  /**
7124
7302
  * Disallow invalid options in `fetch()` and `new Request()`.
7125
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-invalid-fetch-options.md
7303
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-invalid-fetch-options.md
7126
7304
  */
7127
7305
  'unicorn/no-invalid-fetch-options'?: Linter.RuleEntry<[]>;
7128
7306
  /**
7129
7307
  * Prevent calling `EventTarget#removeEventListener()` with the result of an expression.
7130
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-invalid-remove-event-listener.md
7308
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-invalid-remove-event-listener.md
7131
7309
  */
7132
7310
  'unicorn/no-invalid-remove-event-listener'?: Linter.RuleEntry<[]>;
7133
7311
  /**
7134
7312
  * Disallow identifiers starting with `new` or `class`.
7135
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-keyword-prefix.md
7313
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-keyword-prefix.md
7136
7314
  */
7137
7315
  'unicorn/no-keyword-prefix'?: Linter.RuleEntry<UnicornNoKeywordPrefix>;
7138
7316
  /**
7139
7317
  * Replaced by `unicorn/no-unnecessary-slice-end` which covers more cases.
7140
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/deleted-and-deprecated-rules.md#no-length-as-slice-end
7318
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/deleted-and-deprecated-rules.md#no-length-as-slice-end
7141
7319
  * @deprecated
7142
7320
  */
7143
7321
  'unicorn/no-length-as-slice-end'?: Linter.RuleEntry<[]>;
7144
7322
  /**
7145
7323
  * Disallow `if` statements as the only statement in `if` blocks without `else`.
7146
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-lonely-if.md
7324
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-lonely-if.md
7147
7325
  */
7148
7326
  'unicorn/no-lonely-if'?: Linter.RuleEntry<[]>;
7149
7327
  /**
7150
7328
  * Disallow a magic number as the `depth` argument in `Array#flat(…).`
7151
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-magic-array-flat-depth.md
7329
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-magic-array-flat-depth.md
7152
7330
  */
7153
7331
  'unicorn/no-magic-array-flat-depth'?: Linter.RuleEntry<[]>;
7154
7332
  /**
7155
7333
  * Disallow named usage of default import and export.
7156
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-named-default.md
7334
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-named-default.md
7157
7335
  */
7158
7336
  'unicorn/no-named-default'?: Linter.RuleEntry<[]>;
7159
7337
  /**
7160
7338
  * Disallow negated conditions.
7161
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-negated-condition.md
7339
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-negated-condition.md
7162
7340
  */
7163
7341
  'unicorn/no-negated-condition'?: Linter.RuleEntry<[]>;
7164
7342
  /**
7165
7343
  * Disallow negated expression in equality check.
7166
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-negation-in-equality-check.md
7344
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-negation-in-equality-check.md
7167
7345
  */
7168
7346
  'unicorn/no-negation-in-equality-check'?: Linter.RuleEntry<[]>;
7169
7347
  /**
7170
7348
  * Disallow nested ternary expressions.
7171
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-nested-ternary.md
7349
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-nested-ternary.md
7172
7350
  */
7173
7351
  'unicorn/no-nested-ternary'?: Linter.RuleEntry<[]>;
7174
7352
  /**
7175
7353
  * Disallow `new Array()`.
7176
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-new-array.md
7354
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-new-array.md
7177
7355
  */
7178
7356
  'unicorn/no-new-array'?: Linter.RuleEntry<[]>;
7179
7357
  /**
7180
7358
  * Enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`.
7181
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-new-buffer.md
7359
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-new-buffer.md
7182
7360
  */
7183
7361
  'unicorn/no-new-buffer'?: Linter.RuleEntry<[]>;
7184
7362
  /**
7185
7363
  * Disallow the use of the `null` literal.
7186
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-null.md
7364
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-null.md
7187
7365
  */
7188
7366
  'unicorn/no-null'?: Linter.RuleEntry<UnicornNoNull>;
7189
7367
  /**
7190
7368
  * Disallow the use of objects as default parameters.
7191
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-object-as-default-parameter.md
7369
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-object-as-default-parameter.md
7192
7370
  */
7193
7371
  'unicorn/no-object-as-default-parameter'?: Linter.RuleEntry<[]>;
7194
7372
  /**
7195
7373
  * Disallow `process.exit()`.
7196
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-process-exit.md
7374
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-process-exit.md
7197
7375
  */
7198
7376
  'unicorn/no-process-exit'?: Linter.RuleEntry<[]>;
7199
7377
  /**
7200
7378
  * Disallow passing single-element arrays to `Promise` methods.
7201
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-single-promise-in-promise-methods.md
7379
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-single-promise-in-promise-methods.md
7202
7380
  */
7203
7381
  'unicorn/no-single-promise-in-promise-methods'?: Linter.RuleEntry<[]>;
7204
7382
  /**
7205
7383
  * Disallow classes that only have static members.
7206
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-static-only-class.md
7384
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-static-only-class.md
7207
7385
  */
7208
7386
  'unicorn/no-static-only-class'?: Linter.RuleEntry<[]>;
7209
7387
  /**
7210
7388
  * Disallow `then` property.
7211
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-thenable.md
7389
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-thenable.md
7212
7390
  */
7213
7391
  'unicorn/no-thenable'?: Linter.RuleEntry<[]>;
7214
7392
  /**
7215
7393
  * Disallow assigning `this` to a variable.
7216
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-this-assignment.md
7394
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-this-assignment.md
7217
7395
  */
7218
7396
  'unicorn/no-this-assignment'?: Linter.RuleEntry<[]>;
7219
7397
  /**
7220
7398
  * Disallow comparing `undefined` using `typeof`.
7221
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-typeof-undefined.md
7399
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-typeof-undefined.md
7222
7400
  */
7223
7401
  'unicorn/no-typeof-undefined'?: Linter.RuleEntry<UnicornNoTypeofUndefined>;
7224
7402
  /**
7225
7403
  * Disallow using `1` as the `depth` argument of `Array#flat()`.
7226
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-array-flat-depth.md
7404
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-array-flat-depth.md
7227
7405
  */
7228
7406
  'unicorn/no-unnecessary-array-flat-depth'?: Linter.RuleEntry<[]>;
7229
7407
  /**
7230
7408
  * Disallow using `.length` or `Infinity` as the `deleteCount` or `skipCount` argument of `Array#{splice,toSpliced}()`.
7231
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-array-splice-count.md
7409
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-array-splice-count.md
7232
7410
  */
7233
7411
  'unicorn/no-unnecessary-array-splice-count'?: Linter.RuleEntry<[]>;
7234
7412
  /**
7235
7413
  * Disallow awaiting non-promise values.
7236
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-await.md
7414
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-await.md
7237
7415
  */
7238
7416
  'unicorn/no-unnecessary-await'?: Linter.RuleEntry<[]>;
7239
7417
  /**
7240
7418
  * Enforce the use of built-in methods instead of unnecessary polyfills.
7241
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-polyfills.md
7419
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-polyfills.md
7242
7420
  */
7243
7421
  'unicorn/no-unnecessary-polyfills'?: Linter.RuleEntry<UnicornNoUnnecessaryPolyfills>;
7244
7422
  /**
7245
7423
  * Disallow using `.length` or `Infinity` as the `end` argument of `{Array,String,TypedArray}#slice()`.
7246
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-slice-end.md
7424
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-slice-end.md
7247
7425
  */
7248
7426
  'unicorn/no-unnecessary-slice-end'?: Linter.RuleEntry<[]>;
7249
7427
  /**
7250
7428
  * Disallow unreadable array destructuring.
7251
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unreadable-array-destructuring.md
7429
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unreadable-array-destructuring.md
7252
7430
  */
7253
7431
  'unicorn/no-unreadable-array-destructuring'?: Linter.RuleEntry<[]>;
7254
7432
  /**
7255
7433
  * Disallow unreadable IIFEs.
7256
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unreadable-iife.md
7434
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unreadable-iife.md
7257
7435
  */
7258
7436
  'unicorn/no-unreadable-iife'?: Linter.RuleEntry<[]>;
7259
7437
  /**
7260
7438
  * Disallow unused object properties.
7261
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unused-properties.md
7439
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unused-properties.md
7262
7440
  */
7263
7441
  'unicorn/no-unused-properties'?: Linter.RuleEntry<[]>;
7264
7442
  /**
7265
7443
  * Disallow useless values or fallbacks in `Set`, `Map`, `WeakSet`, or `WeakMap`.
7266
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-collection-argument.md
7444
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-collection-argument.md
7267
7445
  */
7268
7446
  'unicorn/no-useless-collection-argument'?: Linter.RuleEntry<[]>;
7269
7447
  /**
7270
7448
  * Disallow unnecessary `Error.captureStackTrace(…)`.
7271
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-error-capture-stack-trace.md
7449
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-error-capture-stack-trace.md
7272
7450
  */
7273
7451
  'unicorn/no-useless-error-capture-stack-trace'?: Linter.RuleEntry<[]>;
7274
7452
  /**
7275
7453
  * Disallow useless fallback when spreading in object literals.
7276
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-fallback-in-spread.md
7454
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-fallback-in-spread.md
7277
7455
  */
7278
7456
  'unicorn/no-useless-fallback-in-spread'?: Linter.RuleEntry<[]>;
7457
+ /**
7458
+ * Disallow unnecessary `.toArray()` on iterators.
7459
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-iterator-to-array.md
7460
+ */
7461
+ 'unicorn/no-useless-iterator-to-array'?: Linter.RuleEntry<[]>;
7279
7462
  /**
7280
7463
  * Disallow useless array length check.
7281
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-length-check.md
7464
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-length-check.md
7282
7465
  */
7283
7466
  'unicorn/no-useless-length-check'?: Linter.RuleEntry<[]>;
7284
7467
  /**
7285
7468
  * Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
7286
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-promise-resolve-reject.md
7469
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-promise-resolve-reject.md
7287
7470
  */
7288
7471
  'unicorn/no-useless-promise-resolve-reject'?: Linter.RuleEntry<[]>;
7289
7472
  /**
7290
7473
  * Disallow unnecessary spread.
7291
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-spread.md
7474
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-spread.md
7292
7475
  */
7293
7476
  'unicorn/no-useless-spread'?: Linter.RuleEntry<[]>;
7294
7477
  /**
7295
7478
  * Disallow useless case in switch statements.
7296
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-switch-case.md
7479
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-switch-case.md
7297
7480
  */
7298
7481
  'unicorn/no-useless-switch-case'?: Linter.RuleEntry<[]>;
7299
7482
  /**
7300
7483
  * Disallow useless `undefined`.
7301
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-undefined.md
7484
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-undefined.md
7302
7485
  */
7303
7486
  'unicorn/no-useless-undefined'?: Linter.RuleEntry<UnicornNoUselessUndefined>;
7304
7487
  /**
7305
7488
  * Disallow number literals with zero fractions or dangling dots.
7306
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-zero-fractions.md
7489
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-zero-fractions.md
7307
7490
  */
7308
7491
  'unicorn/no-zero-fractions'?: Linter.RuleEntry<[]>;
7309
7492
  /**
7310
7493
  * Enforce proper case for numeric literals.
7311
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/number-literal-case.md
7494
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/number-literal-case.md
7312
7495
  */
7313
7496
  'unicorn/number-literal-case'?: Linter.RuleEntry<UnicornNumberLiteralCase>;
7314
7497
  /**
7315
7498
  * Enforce the style of numeric separators by correctly grouping digits.
7316
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/numeric-separators-style.md
7499
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/numeric-separators-style.md
7317
7500
  */
7318
7501
  'unicorn/numeric-separators-style'?: Linter.RuleEntry<UnicornNumericSeparatorsStyle>;
7319
7502
  /**
7320
7503
  * Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.
7321
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-add-event-listener.md
7504
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-add-event-listener.md
7322
7505
  */
7323
7506
  'unicorn/prefer-add-event-listener'?: Linter.RuleEntry<UnicornPreferAddEventListener>;
7324
7507
  /**
7325
7508
  * Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.
7326
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-find.md
7509
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-find.md
7327
7510
  */
7328
7511
  'unicorn/prefer-array-find'?: Linter.RuleEntry<UnicornPreferArrayFind>;
7329
7512
  /**
7330
7513
  * Prefer `Array#flat()` over legacy techniques to flatten arrays.
7331
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-flat.md
7514
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-flat.md
7332
7515
  */
7333
7516
  'unicorn/prefer-array-flat'?: Linter.RuleEntry<UnicornPreferArrayFlat>;
7334
7517
  /**
7335
7518
  * Prefer `.flatMap(…)` over `.map(…).flat()`.
7336
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-flat-map.md
7519
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-flat-map.md
7337
7520
  */
7338
7521
  'unicorn/prefer-array-flat-map'?: Linter.RuleEntry<[]>;
7339
7522
  /**
7340
7523
  * Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.
7341
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-index-of.md
7524
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-index-of.md
7342
7525
  */
7343
7526
  'unicorn/prefer-array-index-of'?: Linter.RuleEntry<[]>;
7344
7527
  /**
7345
7528
  * Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.
7346
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-some.md
7529
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-some.md
7347
7530
  */
7348
7531
  'unicorn/prefer-array-some'?: Linter.RuleEntry<[]>;
7349
7532
  /**
7350
7533
  * Prefer `.at()` method for index access and `String#charAt()`.
7351
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-at.md
7534
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-at.md
7352
7535
  */
7353
7536
  'unicorn/prefer-at'?: Linter.RuleEntry<UnicornPreferAt>;
7354
7537
  /**
7355
7538
  * Prefer `BigInt` literals over the constructor.
7356
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-bigint-literals.md
7539
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-bigint-literals.md
7357
7540
  */
7358
7541
  'unicorn/prefer-bigint-literals'?: Linter.RuleEntry<[]>;
7359
7542
  /**
7360
7543
  * Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.
7361
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-blob-reading-methods.md
7544
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-blob-reading-methods.md
7362
7545
  */
7363
7546
  'unicorn/prefer-blob-reading-methods'?: Linter.RuleEntry<[]>;
7364
7547
  /**
7365
7548
  * Prefer class field declarations over `this` assignments in constructors.
7366
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-class-fields.md
7549
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-class-fields.md
7367
7550
  */
7368
7551
  'unicorn/prefer-class-fields'?: Linter.RuleEntry<[]>;
7369
7552
  /**
7370
7553
  * Prefer using `Element#classList.toggle()` to toggle class names.
7371
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-classlist-toggle.md
7554
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-classlist-toggle.md
7372
7555
  */
7373
7556
  'unicorn/prefer-classlist-toggle'?: Linter.RuleEntry<[]>;
7374
7557
  /**
7375
7558
  * Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.
7376
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-code-point.md
7559
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-code-point.md
7377
7560
  */
7378
7561
  'unicorn/prefer-code-point'?: Linter.RuleEntry<[]>;
7379
7562
  /**
7380
7563
  * Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.
7381
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-date-now.md
7564
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-date-now.md
7382
7565
  */
7383
7566
  'unicorn/prefer-date-now'?: Linter.RuleEntry<[]>;
7384
7567
  /**
7385
7568
  * Prefer default parameters over reassignment.
7386
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-default-parameters.md
7569
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-default-parameters.md
7387
7570
  */
7388
7571
  'unicorn/prefer-default-parameters'?: Linter.RuleEntry<[]>;
7389
7572
  /**
7390
7573
  * Prefer `Node#append()` over `Node#appendChild()`.
7391
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-append.md
7574
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-append.md
7392
7575
  */
7393
7576
  'unicorn/prefer-dom-node-append'?: Linter.RuleEntry<[]>;
7394
7577
  /**
7395
7578
  * Prefer using `.dataset` on DOM elements over calling attribute methods.
7396
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-dataset.md
7579
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-dataset.md
7397
7580
  */
7398
7581
  'unicorn/prefer-dom-node-dataset'?: Linter.RuleEntry<[]>;
7399
7582
  /**
7400
7583
  * Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.
7401
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-remove.md
7584
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-remove.md
7402
7585
  */
7403
7586
  'unicorn/prefer-dom-node-remove'?: Linter.RuleEntry<[]>;
7404
7587
  /**
7405
7588
  * Prefer `.textContent` over `.innerText`.
7406
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-text-content.md
7589
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-text-content.md
7407
7590
  */
7408
7591
  'unicorn/prefer-dom-node-text-content'?: Linter.RuleEntry<[]>;
7409
7592
  /**
7410
7593
  * Prefer `EventTarget` over `EventEmitter`.
7411
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-event-target.md
7594
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-event-target.md
7412
7595
  */
7413
7596
  'unicorn/prefer-event-target'?: Linter.RuleEntry<[]>;
7414
7597
  /**
7415
7598
  * Prefer `export…from` when re-exporting.
7416
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-export-from.md
7599
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-export-from.md
7417
7600
  */
7418
7601
  'unicorn/prefer-export-from'?: Linter.RuleEntry<UnicornPreferExportFrom>;
7419
7602
  /**
7420
7603
  * Prefer `globalThis` over `window`, `self`, and `global`.
7421
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-global-this.md
7604
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-global-this.md
7422
7605
  */
7423
7606
  'unicorn/prefer-global-this'?: Linter.RuleEntry<[]>;
7424
7607
  /**
7425
7608
  * Prefer `import.meta.{dirname,filename}` over legacy techniques for getting file paths.
7426
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-import-meta-properties.md
7609
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-import-meta-properties.md
7427
7610
  */
7428
7611
  'unicorn/prefer-import-meta-properties'?: Linter.RuleEntry<[]>;
7429
7612
  /**
7430
7613
  * Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.
7431
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-includes.md
7614
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-includes.md
7432
7615
  */
7433
7616
  'unicorn/prefer-includes'?: Linter.RuleEntry<[]>;
7434
7617
  /**
7435
7618
  * Prefer reading a JSON file as a buffer.
7436
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-json-parse-buffer.md
7619
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-json-parse-buffer.md
7437
7620
  */
7438
7621
  'unicorn/prefer-json-parse-buffer'?: Linter.RuleEntry<[]>;
7439
7622
  /**
7440
7623
  * Prefer `KeyboardEvent#key` over `KeyboardEvent#keyCode`.
7441
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-keyboard-event-key.md
7624
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-keyboard-event-key.md
7442
7625
  */
7443
7626
  'unicorn/prefer-keyboard-event-key'?: Linter.RuleEntry<[]>;
7444
7627
  /**
7445
7628
  * Prefer using a logical operator over a ternary.
7446
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-logical-operator-over-ternary.md
7629
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-logical-operator-over-ternary.md
7447
7630
  */
7448
7631
  'unicorn/prefer-logical-operator-over-ternary'?: Linter.RuleEntry<[]>;
7449
7632
  /**
7450
7633
  * Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
7451
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-math-min-max.md
7634
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-math-min-max.md
7452
7635
  */
7453
7636
  'unicorn/prefer-math-min-max'?: Linter.RuleEntry<[]>;
7454
7637
  /**
7455
7638
  * Enforce the use of `Math.trunc` instead of bitwise operators.
7456
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-math-trunc.md
7639
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-math-trunc.md
7457
7640
  */
7458
7641
  'unicorn/prefer-math-trunc'?: Linter.RuleEntry<[]>;
7459
7642
  /**
7460
7643
  * Prefer `.before()` over `.insertBefore()`, `.replaceWith()` over `.replaceChild()`, prefer one of `.before()`, `.after()`, `.append()` or `.prepend()` over `insertAdjacentText()` and `insertAdjacentElement()`.
7461
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-modern-dom-apis.md
7644
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-modern-dom-apis.md
7462
7645
  */
7463
7646
  'unicorn/prefer-modern-dom-apis'?: Linter.RuleEntry<[]>;
7464
7647
  /**
7465
7648
  * Prefer modern `Math` APIs over legacy patterns.
7466
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-modern-math-apis.md
7649
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-modern-math-apis.md
7467
7650
  */
7468
7651
  'unicorn/prefer-modern-math-apis'?: Linter.RuleEntry<[]>;
7469
7652
  /**
7470
7653
  * Prefer JavaScript modules (ESM) over CommonJS.
7471
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-module.md
7654
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-module.md
7472
7655
  */
7473
7656
  'unicorn/prefer-module'?: Linter.RuleEntry<[]>;
7474
7657
  /**
7475
7658
  * Prefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly.
7476
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-native-coercion-functions.md
7659
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-native-coercion-functions.md
7477
7660
  */
7478
7661
  'unicorn/prefer-native-coercion-functions'?: Linter.RuleEntry<[]>;
7479
7662
  /**
7480
7663
  * Prefer negative index over `.length - index` when possible.
7481
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-negative-index.md
7664
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-negative-index.md
7482
7665
  */
7483
7666
  'unicorn/prefer-negative-index'?: Linter.RuleEntry<[]>;
7484
7667
  /**
7485
7668
  * Prefer using the `node:` protocol when importing Node.js builtin modules.
7486
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-node-protocol.md
7669
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-node-protocol.md
7487
7670
  */
7488
7671
  'unicorn/prefer-node-protocol'?: Linter.RuleEntry<[]>;
7489
7672
  /**
7490
7673
  * Prefer `Number` static properties over global ones.
7491
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-number-properties.md
7674
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-number-properties.md
7492
7675
  */
7493
7676
  'unicorn/prefer-number-properties'?: Linter.RuleEntry<UnicornPreferNumberProperties>;
7494
7677
  /**
7495
7678
  * Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.
7496
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-object-from-entries.md
7679
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-object-from-entries.md
7497
7680
  */
7498
7681
  'unicorn/prefer-object-from-entries'?: Linter.RuleEntry<UnicornPreferObjectFromEntries>;
7499
7682
  /**
7500
7683
  * Prefer omitting the `catch` binding parameter.
7501
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-optional-catch-binding.md
7684
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-optional-catch-binding.md
7502
7685
  */
7503
7686
  'unicorn/prefer-optional-catch-binding'?: Linter.RuleEntry<[]>;
7504
7687
  /**
7505
7688
  * Prefer borrowing methods from the prototype instead of the instance.
7506
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-prototype-methods.md
7689
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-prototype-methods.md
7507
7690
  */
7508
7691
  'unicorn/prefer-prototype-methods'?: Linter.RuleEntry<[]>;
7509
7692
  /**
7510
7693
  * Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()` and `.getElementsByName()`.
7511
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-query-selector.md
7694
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-query-selector.md
7512
7695
  */
7513
7696
  'unicorn/prefer-query-selector'?: Linter.RuleEntry<[]>;
7514
7697
  /**
7515
7698
  * Prefer `Reflect.apply()` over `Function#apply()`.
7516
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-reflect-apply.md
7699
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-reflect-apply.md
7517
7700
  */
7518
7701
  'unicorn/prefer-reflect-apply'?: Linter.RuleEntry<[]>;
7519
7702
  /**
7520
7703
  * Prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`.
7521
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-regexp-test.md
7704
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-regexp-test.md
7522
7705
  */
7523
7706
  'unicorn/prefer-regexp-test'?: Linter.RuleEntry<[]>;
7524
7707
  /**
7525
7708
  * Prefer `Response.json()` over `new Response(JSON.stringify())`.
7526
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-response-static-json.md
7709
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-response-static-json.md
7527
7710
  */
7528
7711
  'unicorn/prefer-response-static-json'?: Linter.RuleEntry<[]>;
7529
7712
  /**
7530
7713
  * Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
7531
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-set-has.md
7714
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-set-has.md
7532
7715
  */
7533
7716
  'unicorn/prefer-set-has'?: Linter.RuleEntry<[]>;
7534
7717
  /**
7535
7718
  * Prefer using `Set#size` instead of `Array#length`.
7536
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-set-size.md
7719
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-set-size.md
7537
7720
  */
7538
7721
  'unicorn/prefer-set-size'?: Linter.RuleEntry<[]>;
7722
+ /**
7723
+ * Prefer simple conditions first in logical expressions.
7724
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-simple-condition-first.md
7725
+ */
7726
+ 'unicorn/prefer-simple-condition-first'?: Linter.RuleEntry<[]>;
7539
7727
  /**
7540
7728
  * Enforce combining multiple `Array#push()`, `Element#classList.{add,remove}()`, and `importScripts()` into one call.
7541
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-single-call.md
7729
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-single-call.md
7542
7730
  */
7543
7731
  'unicorn/prefer-single-call'?: Linter.RuleEntry<UnicornPreferSingleCall>;
7544
7732
  /**
7545
7733
  * Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()` and `String#split('')`.
7546
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-spread.md
7734
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-spread.md
7547
7735
  */
7548
7736
  'unicorn/prefer-spread'?: Linter.RuleEntry<[]>;
7549
7737
  /**
7550
7738
  * Prefer using the `String.raw` tag to avoid escaping `\`.
7551
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-raw.md
7739
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-raw.md
7552
7740
  */
7553
7741
  'unicorn/prefer-string-raw'?: Linter.RuleEntry<[]>;
7554
7742
  /**
7555
7743
  * Prefer `String#replaceAll()` over regex searches with the global flag.
7556
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-replace-all.md
7744
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-replace-all.md
7557
7745
  */
7558
7746
  'unicorn/prefer-string-replace-all'?: Linter.RuleEntry<[]>;
7559
7747
  /**
7560
7748
  * Prefer `String#slice()` over `String#substr()` and `String#substring()`.
7561
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-slice.md
7749
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-slice.md
7562
7750
  */
7563
7751
  'unicorn/prefer-string-slice'?: Linter.RuleEntry<[]>;
7564
7752
  /**
7565
7753
  * Prefer `String#startsWith()` & `String#endsWith()` over `RegExp#test()`.
7566
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-starts-ends-with.md
7754
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-starts-ends-with.md
7567
7755
  */
7568
7756
  'unicorn/prefer-string-starts-ends-with'?: Linter.RuleEntry<[]>;
7569
7757
  /**
7570
7758
  * Prefer `String#trimStart()` / `String#trimEnd()` over `String#trimLeft()` / `String#trimRight()`.
7571
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-trim-start-end.md
7759
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-trim-start-end.md
7572
7760
  */
7573
7761
  'unicorn/prefer-string-trim-start-end'?: Linter.RuleEntry<[]>;
7574
7762
  /**
7575
7763
  * Prefer using `structuredClone` to create a deep clone.
7576
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-structured-clone.md
7764
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-structured-clone.md
7577
7765
  */
7578
7766
  'unicorn/prefer-structured-clone'?: Linter.RuleEntry<UnicornPreferStructuredClone>;
7579
7767
  /**
7580
7768
  * Prefer `switch` over multiple `else-if`.
7581
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-switch.md
7769
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-switch.md
7582
7770
  */
7583
7771
  'unicorn/prefer-switch'?: Linter.RuleEntry<UnicornPreferSwitch>;
7584
7772
  /**
7585
7773
  * Prefer ternary expressions over simple `if-else` statements.
7586
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-ternary.md
7774
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-ternary.md
7587
7775
  */
7588
7776
  'unicorn/prefer-ternary'?: Linter.RuleEntry<UnicornPreferTernary>;
7589
7777
  /**
7590
7778
  * Prefer top-level await over top-level promises and async function calls.
7591
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-top-level-await.md
7779
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-top-level-await.md
7592
7780
  */
7593
7781
  'unicorn/prefer-top-level-await'?: Linter.RuleEntry<[]>;
7594
7782
  /**
7595
7783
  * Enforce throwing `TypeError` in type checking conditions.
7596
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-type-error.md
7784
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-type-error.md
7597
7785
  */
7598
7786
  'unicorn/prefer-type-error'?: Linter.RuleEntry<[]>;
7599
7787
  /**
7600
7788
  * Prevent abbreviations.
7601
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prevent-abbreviations.md
7789
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prevent-abbreviations.md
7602
7790
  */
7603
7791
  'unicorn/prevent-abbreviations'?: Linter.RuleEntry<UnicornPreventAbbreviations>;
7604
7792
  /**
7605
7793
  * Enforce consistent relative URL style.
7606
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/relative-url-style.md
7794
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/relative-url-style.md
7607
7795
  */
7608
7796
  'unicorn/relative-url-style'?: Linter.RuleEntry<UnicornRelativeUrlStyle>;
7609
7797
  /**
7610
7798
  * Enforce using the separator argument with `Array#join()`.
7611
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-array-join-separator.md
7799
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-array-join-separator.md
7612
7800
  */
7613
7801
  'unicorn/require-array-join-separator'?: Linter.RuleEntry<[]>;
7614
7802
  /**
7615
7803
  * Require non-empty module attributes for imports and exports
7616
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-module-attributes.md
7804
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-module-attributes.md
7617
7805
  */
7618
7806
  'unicorn/require-module-attributes'?: Linter.RuleEntry<[]>;
7619
7807
  /**
7620
7808
  * Require non-empty specifier list in import and export statements.
7621
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-module-specifiers.md
7809
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-module-specifiers.md
7622
7810
  */
7623
7811
  'unicorn/require-module-specifiers'?: Linter.RuleEntry<[]>;
7624
7812
  /**
7625
7813
  * Enforce using the digits argument with `Number#toFixed()`.
7626
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-number-to-fixed-digits-argument.md
7814
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-number-to-fixed-digits-argument.md
7627
7815
  */
7628
7816
  'unicorn/require-number-to-fixed-digits-argument'?: Linter.RuleEntry<[]>;
7629
7817
  /**
7630
7818
  * Enforce using the `targetOrigin` argument with `window.postMessage()`.
7631
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-post-message-target-origin.md
7819
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-post-message-target-origin.md
7632
7820
  */
7633
7821
  'unicorn/require-post-message-target-origin'?: Linter.RuleEntry<[]>;
7634
7822
  /**
7635
7823
  * Enforce better string content.
7636
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/string-content.md
7824
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/string-content.md
7637
7825
  */
7638
7826
  'unicorn/string-content'?: Linter.RuleEntry<UnicornStringContent>;
7639
7827
  /**
7640
7828
  * Enforce consistent brace style for `case` clauses.
7641
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/switch-case-braces.md
7829
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/switch-case-braces.md
7642
7830
  */
7643
7831
  'unicorn/switch-case-braces'?: Linter.RuleEntry<UnicornSwitchCaseBraces>;
7832
+ /**
7833
+ * Enforce consistent `break`/`return`/`continue`/`throw` position in `case` clauses.
7834
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/switch-case-break-position.md
7835
+ */
7836
+ 'unicorn/switch-case-break-position'?: Linter.RuleEntry<[]>;
7644
7837
  /**
7645
7838
  * Fix whitespace-insensitive template indentation.
7646
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/template-indent.md
7839
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/template-indent.md
7647
7840
  */
7648
7841
  'unicorn/template-indent'?: Linter.RuleEntry<UnicornTemplateIndent>;
7649
7842
  /**
7650
7843
  * Enforce consistent case for text encoding identifiers.
7651
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/text-encoding-identifier-case.md
7844
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/text-encoding-identifier-case.md
7652
7845
  */
7653
7846
  'unicorn/text-encoding-identifier-case'?: Linter.RuleEntry<UnicornTextEncodingIdentifierCase>;
7654
7847
  /**
7655
7848
  * Require `new` when creating an error.
7656
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/throw-new-error.md
7849
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/throw-new-error.md
7657
7850
  */
7658
7851
  'unicorn/throw-new-error'?: Linter.RuleEntry<[]>;
7659
7852
  /**
@@ -11119,13 +11312,15 @@ type LogicalAssignmentOperators = (([] | ["always"] | ["always", {
11119
11312
  }] | ["never"]) & unknown[]); // ----- markdown/fenced-code-language -----
11120
11313
  type MarkdownFencedCodeLanguage = [] | [{
11121
11314
  required?: string[];
11122
- }]; // ----- markdown/heading-increment -----
11315
+ }]; // ----- markdown/fenced-code-meta -----
11316
+ type MarkdownFencedCodeMeta = [] | [("always" | "never")]; // ----- markdown/heading-increment -----
11123
11317
  type MarkdownHeadingIncrement = [] | [{
11124
11318
  frontmatterTitle?: string;
11125
11319
  }]; // ----- markdown/no-duplicate-definitions -----
11126
11320
  type MarkdownNoDuplicateDefinitions = [] | [{
11127
11321
  allowDefinitions?: string[];
11128
11322
  allowFootnoteDefinitions?: string[];
11323
+ checkFootnoteDefinitions?: boolean;
11129
11324
  }]; // ----- markdown/no-duplicate-headings -----
11130
11325
  type MarkdownNoDuplicateHeadings = [] | [{
11131
11326
  checkSiblingsOnly?: boolean;
@@ -11158,6 +11353,7 @@ type MarkdownNoSpaceInEmphasis = [] | [{
11158
11353
  type MarkdownNoUnusedDefinitions = [] | [{
11159
11354
  allowDefinitions?: string[];
11160
11355
  allowFootnoteDefinitions?: string[];
11356
+ checkFootnoteDefinitions?: boolean;
11161
11357
  }]; // ----- markdown/table-column-count -----
11162
11358
  type MarkdownTableColumnCount = [] | [{
11163
11359
  checkMissingCells?: boolean;
@@ -11912,26 +12108,132 @@ type OperatorLinebreak = [] | [("after" | "before" | "none" | null)] | [("after"
11912
12108
  overrides?: {
11913
12109
  [k: string]: ("after" | "before" | "none" | "ignore") | undefined;
11914
12110
  };
11915
- }]; // ----- padded-blocks -----
11916
- type PaddedBlocks = [] | [(("always" | "never") | {
11917
- blocks?: ("always" | "never");
11918
- switches?: ("always" | "never");
11919
- classes?: ("always" | "never");
11920
- })] | [(("always" | "never") | {
11921
- blocks?: ("always" | "never");
11922
- switches?: ("always" | "never");
11923
- classes?: ("always" | "never");
11924
- }), {
11925
- allowSingleLineBlocks?: boolean;
11926
- }]; // ----- padding-line-between-statements -----
11927
- type _PaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
11928
- type _PaddingLineBetweenStatementsStatementType = (("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with") | [("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"), ...(("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"))[]]);
11929
- type PaddingLineBetweenStatements = {
11930
- blankLine: _PaddingLineBetweenStatementsPaddingType;
11931
- prev: _PaddingLineBetweenStatementsStatementType;
11932
- next: _PaddingLineBetweenStatementsStatementType;
11933
- }[]; // ----- perfectionist/sort-array-includes -----
11934
- type PerfectionistSortArrayIncludes = {
12111
+ }]; // ----- padded-blocks -----
12112
+ type PaddedBlocks = [] | [(("always" | "never") | {
12113
+ blocks?: ("always" | "never");
12114
+ switches?: ("always" | "never");
12115
+ classes?: ("always" | "never");
12116
+ })] | [(("always" | "never") | {
12117
+ blocks?: ("always" | "never");
12118
+ switches?: ("always" | "never");
12119
+ classes?: ("always" | "never");
12120
+ }), {
12121
+ allowSingleLineBlocks?: boolean;
12122
+ }]; // ----- padding-line-between-statements -----
12123
+ type _PaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
12124
+ type _PaddingLineBetweenStatementsStatementType = (("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with") | [("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"), ...(("*" | "block-like" | "cjs-export" | "cjs-import" | "directive" | "expression" | "iife" | "multiline-block-like" | "multiline-expression" | "multiline-const" | "multiline-let" | "multiline-var" | "singleline-const" | "singleline-let" | "singleline-var" | "block" | "empty" | "function" | "break" | "case" | "class" | "const" | "continue" | "debugger" | "default" | "do" | "export" | "for" | "if" | "import" | "let" | "return" | "switch" | "throw" | "try" | "var" | "while" | "with"))[]]);
12125
+ type PaddingLineBetweenStatements = {
12126
+ blankLine: _PaddingLineBetweenStatementsPaddingType;
12127
+ prev: _PaddingLineBetweenStatementsStatementType;
12128
+ next: _PaddingLineBetweenStatementsStatementType;
12129
+ }[]; // ----- perfectionist/sort-array-includes -----
12130
+ type PerfectionistSortArrayIncludes = {
12131
+ fallbackSort?: {
12132
+ type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12133
+ order?: ("asc" | "desc");
12134
+ };
12135
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12136
+ specialCharacters?: ("remove" | "trim" | "keep");
12137
+ ignoreCase?: boolean;
12138
+ alphabet?: string;
12139
+ locales?: (string | string[]);
12140
+ order?: ("asc" | "desc");
12141
+ customGroups?: ({
12142
+ fallbackSort?: {
12143
+ type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12144
+ order?: ("asc" | "desc");
12145
+ };
12146
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12147
+ groupName: string;
12148
+ newlinesInside?: ("ignore" | number);
12149
+ order?: ("asc" | "desc");
12150
+ anyOf: [{
12151
+ elementNamePattern?: (({
12152
+ pattern: string;
12153
+ flags?: string;
12154
+ } | string)[] | ({
12155
+ pattern: string;
12156
+ flags?: string;
12157
+ } | string));
12158
+ selector?: "literal";
12159
+ }, ...({
12160
+ elementNamePattern?: (({
12161
+ pattern: string;
12162
+ flags?: string;
12163
+ } | string)[] | ({
12164
+ pattern: string;
12165
+ flags?: string;
12166
+ } | string));
12167
+ selector?: "literal";
12168
+ })[]];
12169
+ } | {
12170
+ fallbackSort?: {
12171
+ type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12172
+ order?: ("asc" | "desc");
12173
+ };
12174
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12175
+ groupName: string;
12176
+ newlinesInside?: ("ignore" | number);
12177
+ order?: ("asc" | "desc");
12178
+ elementNamePattern?: (({
12179
+ pattern: string;
12180
+ flags?: string;
12181
+ } | string)[] | ({
12182
+ pattern: string;
12183
+ flags?: string;
12184
+ } | string));
12185
+ selector?: "literal";
12186
+ })[];
12187
+ newlinesInside?: (("ignore" | number) | "newlinesBetween");
12188
+ groups?: (string | [string, ...(string)[]] | {
12189
+ newlinesBetween: ("ignore" | number);
12190
+ } | {
12191
+ group: (string | [string, ...(string)[]]);
12192
+ fallbackSort?: {
12193
+ type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12194
+ order?: ("asc" | "desc");
12195
+ };
12196
+ commentAbove?: string;
12197
+ type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12198
+ newlinesInside?: ("ignore" | number);
12199
+ order?: ("asc" | "desc");
12200
+ })[];
12201
+ newlinesBetween?: ("ignore" | number);
12202
+ useConfigurationIf?: {
12203
+ allNamesMatchPattern?: (({
12204
+ pattern: string;
12205
+ flags?: string;
12206
+ } | string)[] | ({
12207
+ pattern: string;
12208
+ flags?: string;
12209
+ } | string));
12210
+ matchesAstSelector?: string;
12211
+ };
12212
+ partitionByComment?: (boolean | (({
12213
+ pattern: string;
12214
+ flags?: string;
12215
+ } | string)[] | ({
12216
+ pattern: string;
12217
+ flags?: string;
12218
+ } | string)) | {
12219
+ block?: (boolean | (({
12220
+ pattern: string;
12221
+ flags?: string;
12222
+ } | string)[] | ({
12223
+ pattern: string;
12224
+ flags?: string;
12225
+ } | string)));
12226
+ line?: (boolean | (({
12227
+ pattern: string;
12228
+ flags?: string;
12229
+ } | string)[] | ({
12230
+ pattern: string;
12231
+ flags?: string;
12232
+ } | string)));
12233
+ });
12234
+ partitionByNewLine?: boolean;
12235
+ }[]; // ----- perfectionist/sort-arrays -----
12236
+ type PerfectionistSortArrays = {
11935
12237
  fallbackSort?: {
11936
12238
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
11937
12239
  order?: ("asc" | "desc");
@@ -12003,7 +12305,7 @@ type PerfectionistSortArrayIncludes = {
12003
12305
  order?: ("asc" | "desc");
12004
12306
  })[];
12005
12307
  newlinesBetween?: ("ignore" | number);
12006
- useConfigurationIf?: {
12308
+ useConfigurationIf: {
12007
12309
  allNamesMatchPattern?: (({
12008
12310
  pattern: string;
12009
12311
  flags?: string;
@@ -12011,6 +12313,7 @@ type PerfectionistSortArrayIncludes = {
12011
12313
  pattern: string;
12012
12314
  flags?: string;
12013
12315
  } | string));
12316
+ matchesAstSelector?: string;
12014
12317
  };
12015
12318
  partitionByComment?: (boolean | (({
12016
12319
  pattern: string;
@@ -12036,7 +12339,7 @@ type PerfectionistSortArrayIncludes = {
12036
12339
  });
12037
12340
  partitionByNewLine?: boolean;
12038
12341
  }[]; // ----- perfectionist/sort-classes -----
12039
- type PerfectionistSortClasses = [] | [{
12342
+ type PerfectionistSortClasses = {
12040
12343
  fallbackSort?: {
12041
12344
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12042
12345
  order?: ("asc" | "desc");
@@ -12153,6 +12456,16 @@ type PerfectionistSortClasses = [] | [{
12153
12456
  order?: ("asc" | "desc");
12154
12457
  })[];
12155
12458
  newlinesBetween?: ("ignore" | number);
12459
+ useConfigurationIf?: {
12460
+ allNamesMatchPattern?: (({
12461
+ pattern: string;
12462
+ flags?: string;
12463
+ } | string)[] | ({
12464
+ pattern: string;
12465
+ flags?: string;
12466
+ } | string));
12467
+ matchesAstSelector?: string;
12468
+ };
12156
12469
  useExperimentalDependencyDetection?: boolean;
12157
12470
  ignoreCallbackDependenciesPatterns?: (({
12158
12471
  pattern: string;
@@ -12184,7 +12497,7 @@ type PerfectionistSortClasses = [] | [{
12184
12497
  } | string)));
12185
12498
  });
12186
12499
  partitionByNewLine?: boolean;
12187
- }]; // ----- perfectionist/sort-decorators -----
12500
+ }[]; // ----- perfectionist/sort-decorators -----
12188
12501
  type PerfectionistSortDecorators = {
12189
12502
  fallbackSort?: {
12190
12503
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
@@ -12283,7 +12596,7 @@ type PerfectionistSortDecorators = {
12283
12596
  });
12284
12597
  partitionByNewLine?: boolean;
12285
12598
  }[]; // ----- perfectionist/sort-enums -----
12286
- type PerfectionistSortEnums = [] | [{
12599
+ type PerfectionistSortEnums = {
12287
12600
  fallbackSort?: {
12288
12601
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12289
12602
  order?: ("asc" | "desc");
@@ -12373,6 +12686,16 @@ type PerfectionistSortEnums = [] | [{
12373
12686
  order?: ("asc" | "desc");
12374
12687
  })[];
12375
12688
  newlinesBetween?: ("ignore" | number);
12689
+ useConfigurationIf?: {
12690
+ allNamesMatchPattern?: (({
12691
+ pattern: string;
12692
+ flags?: string;
12693
+ } | string)[] | ({
12694
+ pattern: string;
12695
+ flags?: string;
12696
+ } | string));
12697
+ matchesAstSelector?: string;
12698
+ };
12376
12699
  sortByValue?: ("always" | "ifNumericEnum" | "never");
12377
12700
  useExperimentalDependencyDetection?: boolean;
12378
12701
  partitionByComment?: (boolean | (({
@@ -12398,7 +12721,7 @@ type PerfectionistSortEnums = [] | [{
12398
12721
  } | string)));
12399
12722
  });
12400
12723
  partitionByNewLine?: boolean;
12401
- }]; // ----- perfectionist/sort-export-attributes -----
12724
+ }[]; // ----- perfectionist/sort-export-attributes -----
12402
12725
  type PerfectionistSortExportAttributes = {
12403
12726
  fallbackSort?: {
12404
12727
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
@@ -12468,6 +12791,16 @@ type PerfectionistSortExportAttributes = {
12468
12791
  order?: ("asc" | "desc");
12469
12792
  })[];
12470
12793
  newlinesBetween?: ("ignore" | number);
12794
+ useConfigurationIf?: {
12795
+ allNamesMatchPattern?: (({
12796
+ pattern: string;
12797
+ flags?: string;
12798
+ } | string)[] | ({
12799
+ pattern: string;
12800
+ flags?: string;
12801
+ } | string));
12802
+ matchesAstSelector?: string;
12803
+ };
12471
12804
  partitionByComment?: (boolean | (({
12472
12805
  pattern: string;
12473
12806
  flags?: string;
@@ -12660,6 +12993,16 @@ type PerfectionistSortHeritageClauses = {
12660
12993
  order?: ("asc" | "desc");
12661
12994
  })[];
12662
12995
  newlinesBetween?: ("ignore" | number);
12996
+ useConfigurationIf?: {
12997
+ allNamesMatchPattern?: (({
12998
+ pattern: string;
12999
+ flags?: string;
13000
+ } | string)[] | ({
13001
+ pattern: string;
13002
+ flags?: string;
13003
+ } | string));
13004
+ matchesAstSelector?: string;
13005
+ };
12663
13006
  partitionByNewLine?: boolean;
12664
13007
  partitionByComment?: (boolean | (({
12665
13008
  pattern: string;
@@ -12753,6 +13096,16 @@ type PerfectionistSortImportAttributes = {
12753
13096
  order?: ("asc" | "desc");
12754
13097
  })[];
12755
13098
  newlinesBetween?: ("ignore" | number);
13099
+ useConfigurationIf?: {
13100
+ allNamesMatchPattern?: (({
13101
+ pattern: string;
13102
+ flags?: string;
13103
+ } | string)[] | ({
13104
+ pattern: string;
13105
+ flags?: string;
13106
+ } | string));
13107
+ matchesAstSelector?: string;
13108
+ };
12756
13109
  partitionByComment?: (boolean | (({
12757
13110
  pattern: string;
12758
13111
  flags?: string;
@@ -13021,6 +13374,7 @@ type PerfectionistSortInterfaces = {
13021
13374
  pattern: string;
13022
13375
  flags?: string;
13023
13376
  } | string));
13377
+ matchesAstSelector?: string;
13024
13378
  declarationMatchesPattern?: (({
13025
13379
  scope?: ("shallow" | "deep");
13026
13380
  pattern: string;
@@ -13127,6 +13481,16 @@ type PerfectionistSortIntersectionTypes = {
13127
13481
  order?: ("asc" | "desc");
13128
13482
  })[];
13129
13483
  newlinesBetween?: ("ignore" | number);
13484
+ useConfigurationIf?: {
13485
+ allNamesMatchPattern?: (({
13486
+ pattern: string;
13487
+ flags?: string;
13488
+ } | string)[] | ({
13489
+ pattern: string;
13490
+ flags?: string;
13491
+ } | string));
13492
+ matchesAstSelector?: string;
13493
+ };
13130
13494
  partitionByComment?: (boolean | (({
13131
13495
  pattern: string;
13132
13496
  flags?: string;
@@ -13255,6 +13619,7 @@ type PerfectionistSortJsxProps = {
13255
13619
  pattern: string;
13256
13620
  flags?: string;
13257
13621
  } | string));
13622
+ matchesAstSelector?: string;
13258
13623
  tagMatchesPattern?: (({
13259
13624
  pattern: string;
13260
13625
  flags?: string;
@@ -13342,6 +13707,7 @@ type PerfectionistSortMaps = {
13342
13707
  pattern: string;
13343
13708
  flags?: string;
13344
13709
  } | string));
13710
+ matchesAstSelector?: string;
13345
13711
  };
13346
13712
  partitionByComment?: (boolean | (({
13347
13713
  pattern: string;
@@ -13563,6 +13929,16 @@ type PerfectionistSortNamedExports = {
13563
13929
  order?: ("asc" | "desc");
13564
13930
  })[];
13565
13931
  newlinesBetween?: ("ignore" | number);
13932
+ useConfigurationIf?: {
13933
+ allNamesMatchPattern?: (({
13934
+ pattern: string;
13935
+ flags?: string;
13936
+ } | string)[] | ({
13937
+ pattern: string;
13938
+ flags?: string;
13939
+ } | string));
13940
+ matchesAstSelector?: string;
13941
+ };
13566
13942
  ignoreAlias?: boolean;
13567
13943
  partitionByComment?: (boolean | (({
13568
13944
  pattern: string;
@@ -13663,6 +14039,16 @@ type PerfectionistSortNamedImports = {
13663
14039
  order?: ("asc" | "desc");
13664
14040
  })[];
13665
14041
  newlinesBetween?: ("ignore" | number);
14042
+ useConfigurationIf?: {
14043
+ allNamesMatchPattern?: (({
14044
+ pattern: string;
14045
+ flags?: string;
14046
+ } | string)[] | ({
14047
+ pattern: string;
14048
+ flags?: string;
14049
+ } | string));
14050
+ matchesAstSelector?: string;
14051
+ };
13666
14052
  ignoreAlias?: boolean;
13667
14053
  partitionByComment?: (boolean | (({
13668
14054
  pattern: string;
@@ -13810,6 +14196,7 @@ type PerfectionistSortObjectTypes = {
13810
14196
  pattern: string;
13811
14197
  flags?: string;
13812
14198
  } | string));
14199
+ matchesAstSelector?: string;
13813
14200
  declarationMatchesPattern?: (({
13814
14201
  scope?: ("shallow" | "deep");
13815
14202
  pattern: string;
@@ -13976,6 +14363,7 @@ type PerfectionistSortObjects = {
13976
14363
  pattern: string;
13977
14364
  flags?: string;
13978
14365
  } | string));
14366
+ matchesAstSelector?: string;
13979
14367
  declarationMatchesPattern?: (({
13980
14368
  scope?: ("shallow" | "deep");
13981
14369
  pattern: string;
@@ -13986,6 +14374,7 @@ type PerfectionistSortObjects = {
13986
14374
  flags?: string;
13987
14375
  } | string));
13988
14376
  };
14377
+ partitionByComputedKey?: boolean;
13989
14378
  styledComponents?: boolean;
13990
14379
  useExperimentalDependencyDetection?: boolean;
13991
14380
  partitionByComment?: (boolean | (({
@@ -14092,6 +14481,7 @@ type PerfectionistSortSets = {
14092
14481
  pattern: string;
14093
14482
  flags?: string;
14094
14483
  } | string));
14484
+ matchesAstSelector?: string;
14095
14485
  };
14096
14486
  partitionByComment?: (boolean | (({
14097
14487
  pattern: string;
@@ -14201,6 +14591,16 @@ type PerfectionistSortUnionTypes = {
14201
14591
  order?: ("asc" | "desc");
14202
14592
  })[];
14203
14593
  newlinesBetween?: ("ignore" | number);
14594
+ useConfigurationIf?: {
14595
+ allNamesMatchPattern?: (({
14596
+ pattern: string;
14597
+ flags?: string;
14598
+ } | string)[] | ({
14599
+ pattern: string;
14600
+ flags?: string;
14601
+ } | string));
14602
+ matchesAstSelector?: string;
14603
+ };
14204
14604
  partitionByComment?: (boolean | (({
14205
14605
  pattern: string;
14206
14606
  flags?: string;
@@ -14225,7 +14625,7 @@ type PerfectionistSortUnionTypes = {
14225
14625
  });
14226
14626
  partitionByNewLine?: boolean;
14227
14627
  }[]; // ----- perfectionist/sort-variable-declarations -----
14228
- type PerfectionistSortVariableDeclarations = [] | [{
14628
+ type PerfectionistSortVariableDeclarations = {
14229
14629
  fallbackSort?: {
14230
14630
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
14231
14631
  order?: ("asc" | "desc");
@@ -14297,6 +14697,16 @@ type PerfectionistSortVariableDeclarations = [] | [{
14297
14697
  order?: ("asc" | "desc");
14298
14698
  })[];
14299
14699
  newlinesBetween?: ("ignore" | number);
14700
+ useConfigurationIf?: {
14701
+ allNamesMatchPattern?: (({
14702
+ pattern: string;
14703
+ flags?: string;
14704
+ } | string)[] | ({
14705
+ pattern: string;
14706
+ flags?: string;
14707
+ } | string));
14708
+ matchesAstSelector?: string;
14709
+ };
14300
14710
  useExperimentalDependencyDetection?: boolean;
14301
14711
  partitionByComment?: (boolean | (({
14302
14712
  pattern: string;
@@ -14321,7 +14731,7 @@ type PerfectionistSortVariableDeclarations = [] | [{
14321
14731
  } | string)));
14322
14732
  });
14323
14733
  partitionByNewLine?: boolean;
14324
- }]; // ----- pnpm/json-enforce-catalog -----
14734
+ }[]; // ----- pnpm/json-enforce-catalog -----
14325
14735
  type PnpmJsonEnforceCatalog = [] | [{
14326
14736
  allowedProtocols?: string[];
14327
14737
  autofix?: boolean;
@@ -14409,143 +14819,54 @@ type Quotes = [] | [("single" | "double" | "backtick")] | [("single" | "double"
14409
14819
  avoidEscape?: boolean;
14410
14820
  allowTemplateLiterals?: boolean;
14411
14821
  })]; // ----- radix -----
14412
- type Radix = [] | [("always" | "as-needed")]; // ----- react-dom/no-unknown-property -----
14822
+ type Radix = [] | [("always" | "as-needed")]; // ----- react-refresh/only-export-components -----
14823
+ type ReactRefreshOnlyExportComponents = [] | [{
14824
+ extraHOCs?: string[];
14825
+ allowExportNames?: string[];
14826
+ allowConstantExport?: boolean;
14827
+ checkJS?: boolean;
14828
+ }]; // ----- react/dom-no-unknown-property -----
14413
14829
  type ReactDomNoUnknownProperty = [] | [{
14414
14830
  ignore?: string[];
14415
14831
  requireDataLowercase?: boolean;
14416
- }]; // ----- react-hooks/automatic-effect-dependencies -----
14417
- type ReactHooksAutomaticEffectDependencies = [] | [{
14418
- [k: string]: unknown | undefined;
14419
- }]; // ----- react-hooks/capitalized-calls -----
14420
- type ReactHooksCapitalizedCalls = [] | [{
14421
- [k: string]: unknown | undefined;
14422
- }]; // ----- react-hooks/component-hook-factories -----
14423
- type ReactHooksComponentHookFactories = [] | [{
14424
- [k: string]: unknown | undefined;
14425
- }]; // ----- react-hooks/config -----
14426
- type ReactHooksConfig = [] | [{
14427
- [k: string]: unknown | undefined;
14428
- }]; // ----- react-hooks/error-boundaries -----
14429
- type ReactHooksErrorBoundaries = [] | [{
14430
- [k: string]: unknown | undefined;
14431
- }]; // ----- react-hooks/exhaustive-deps -----
14432
- type ReactHooksExhaustiveDeps = [] | [{
14832
+ }]; // ----- react/exhaustive-deps -----
14833
+ type ReactExhaustiveDeps = [] | [{
14433
14834
  additionalHooks?: string;
14434
14835
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
14435
14836
  experimental_autoDependenciesHooks?: string[];
14436
14837
  requireExplicitEffectDeps?: boolean;
14437
- }]; // ----- react-hooks/fbt -----
14438
- type ReactHooksFbt = [] | [{
14439
- [k: string]: unknown | undefined;
14440
- }]; // ----- react-hooks/fire -----
14441
- type ReactHooksFire = [] | [{
14442
- [k: string]: unknown | undefined;
14443
- }]; // ----- react-hooks/gating -----
14444
- type ReactHooksGating = [] | [{
14445
- [k: string]: unknown | undefined;
14446
- }]; // ----- react-hooks/globals -----
14447
- type ReactHooksGlobals = [] | [{
14448
- [k: string]: unknown | undefined;
14449
- }]; // ----- react-hooks/hooks -----
14450
- type ReactHooksHooks = [] | [{
14451
- [k: string]: unknown | undefined;
14452
- }]; // ----- react-hooks/immutability -----
14453
- type ReactHooksImmutability = [] | [{
14454
- [k: string]: unknown | undefined;
14455
- }]; // ----- react-hooks/incompatible-library -----
14456
- type ReactHooksIncompatibleLibrary = [] | [{
14457
- [k: string]: unknown | undefined;
14458
- }]; // ----- react-hooks/invariant -----
14459
- type ReactHooksInvariant = [] | [{
14460
- [k: string]: unknown | undefined;
14461
- }]; // ----- react-hooks/memoized-effect-dependencies -----
14462
- type ReactHooksMemoizedEffectDependencies = [] | [{
14463
- [k: string]: unknown | undefined;
14464
- }]; // ----- react-hooks/no-deriving-state-in-effects -----
14465
- type ReactHooksNoDerivingStateInEffects = [] | [{
14466
- [k: string]: unknown | undefined;
14467
- }]; // ----- react-hooks/preserve-manual-memoization -----
14468
- type ReactHooksPreserveManualMemoization = [] | [{
14469
- [k: string]: unknown | undefined;
14470
- }]; // ----- react-hooks/purity -----
14471
- type ReactHooksPurity = [] | [{
14472
- [k: string]: unknown | undefined;
14473
- }]; // ----- react-hooks/refs -----
14474
- type ReactHooksRefs = [] | [{
14475
- [k: string]: unknown | undefined;
14476
- }]; // ----- react-hooks/rule-suppression -----
14477
- type ReactHooksRuleSuppression = [] | [{
14478
- [k: string]: unknown | undefined;
14479
- }]; // ----- react-hooks/rules-of-hooks -----
14480
- type ReactHooksRulesOfHooks = [] | [{
14838
+ }]; // ----- react/jsx-no-useless-fragment -----
14839
+ type ReactJsxNoUselessFragment = [] | [{
14840
+ allowEmptyFragment?: boolean;
14841
+ allowExpressions?: boolean;
14842
+ }]; // ----- react/no-unstable-default-props -----
14843
+ type ReactNoUnstableDefaultProps = [] | [{
14844
+ safeDefaultProps?: string[];
14845
+ }]; // ----- react/rules-of-hooks -----
14846
+ type ReactRulesOfHooks = [] | [{
14481
14847
  additionalHooks?: string;
14482
- }]; // ----- react-hooks/set-state-in-effect -----
14483
- type ReactHooksSetStateInEffect = [] | [{
14484
- [k: string]: unknown | undefined;
14485
- }]; // ----- react-hooks/set-state-in-render -----
14486
- type ReactHooksSetStateInRender = [] | [{
14487
- [k: string]: unknown | undefined;
14488
- }]; // ----- react-hooks/static-components -----
14489
- type ReactHooksStaticComponents = [] | [{
14490
- [k: string]: unknown | undefined;
14491
- }]; // ----- react-hooks/syntax -----
14492
- type ReactHooksSyntax = [] | [{
14493
- [k: string]: unknown | undefined;
14494
- }]; // ----- react-hooks/todo -----
14495
- type ReactHooksTodo = [] | [{
14496
- [k: string]: unknown | undefined;
14497
- }]; // ----- react-hooks/unsupported-syntax -----
14498
- type ReactHooksUnsupportedSyntax = [] | [{
14499
- [k: string]: unknown | undefined;
14500
- }]; // ----- react-hooks/use-memo -----
14501
- type ReactHooksUseMemo = [] | [{
14502
- [k: string]: unknown | undefined;
14503
- }]; // ----- react-hooks/void-use-memo -----
14504
- type ReactHooksVoidUseMemo = [] | [{
14505
- [k: string]: unknown | undefined;
14506
- }]; // ----- react-naming-convention/component-name -----
14507
- type ReactNamingConventionComponentName = [] | [(("PascalCase" | "CONSTANT_CASE") | {
14508
- allowAllCaps?: boolean;
14509
- excepts?: string[];
14510
- rule?: ("PascalCase" | "CONSTANT_CASE");
14511
- })]; // ----- react-naming-convention/filename -----
14512
- type ReactNamingConventionFilename = [] | [(("PascalCase" | "camelCase" | "kebab-case" | "snake_case") | {
14513
- excepts?: string[];
14514
- extensions?: string[];
14515
- rule?: ("PascalCase" | "camelCase" | "kebab-case" | "snake_case");
14516
- })]; // ----- react-naming-convention/filename-extension -----
14517
- type ReactNamingConventionFilenameExtension = [] | [(("always" | "as-needed") | {
14518
- allow?: ("always" | "as-needed");
14519
- extensions?: string[];
14520
- ignoreFilesWithoutCode?: boolean;
14521
- })]; // ----- react-naming-convention/use-state -----
14522
- type ReactNamingConventionUseState = [] | [{
14848
+ }]; // ----- react/use-state -----
14849
+ type ReactUseState = [] | [{
14523
14850
  enforceAssignment?: boolean;
14851
+ enforceLazyInitialization?: boolean;
14524
14852
  enforceSetterName?: boolean;
14525
- }]; // ----- react-refresh/only-export-components -----
14526
- type ReactRefreshOnlyExportComponents = [] | [{
14527
- extraHOCs?: string[];
14528
- allowExportNames?: string[];
14529
- allowConstantExport?: boolean;
14530
- checkJS?: boolean;
14531
- }]; // ----- react/jsx-shorthand-boolean -----
14532
- type ReactJsxShorthandBoolean = [] | [(-1 | 1)]; // ----- react/jsx-shorthand-fragment -----
14533
- type ReactJsxShorthandFragment = [] | [(-1 | 1)]; // ----- react/no-forbidden-props -----
14534
- type ReactNoForbiddenProps = [] | [{
14535
- forbid?: (string | {
14536
- excludedNodes?: string[];
14537
- prop: string;
14538
- } | {
14539
- includedNodes?: string[];
14540
- prop: string;
14541
- })[];
14542
- }]; // ----- react/no-unstable-default-props -----
14543
- type ReactNoUnstableDefaultProps = [] | [{
14853
+ }]; // ----- react/x-exhaustive-deps -----
14854
+ type ReactXExhaustiveDeps = [] | [{
14855
+ additionalHooks?: string;
14856
+ enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
14857
+ experimental_autoDependenciesHooks?: string[];
14858
+ requireExplicitEffectDeps?: boolean;
14859
+ }]; // ----- react/x-no-unstable-default-props -----
14860
+ type ReactXNoUnstableDefaultProps = [] | [{
14544
14861
  safeDefaultProps?: string[];
14545
- }]; // ----- react/no-useless-fragment -----
14546
- type ReactNoUselessFragment = [] | [{
14547
- allowEmptyFragment?: boolean;
14548
- allowExpressions?: boolean;
14862
+ }]; // ----- react/x-rules-of-hooks -----
14863
+ type ReactXRulesOfHooks = [] | [{
14864
+ additionalHooks?: string;
14865
+ }]; // ----- react/x-use-state -----
14866
+ type ReactXUseState = [] | [{
14867
+ enforceAssignment?: boolean;
14868
+ enforceLazyInitialization?: boolean;
14869
+ enforceSetterName?: boolean;
14549
14870
  }]; // ----- regexp/hexadecimal-escape -----
14550
14871
  type RegexpHexadecimalEscape = [] | [("always" | "never")]; // ----- regexp/letter-case -----
14551
14872
  type RegexpLetterCase = [] | [{
@@ -14926,33 +15247,33 @@ type StyleExpListStyle = [] | [{
14926
15247
  singleLine?: _StyleExpListStyle_SingleLineConfig;
14927
15248
  multiLine?: _StyleExpListStyle_MultiLineConfig;
14928
15249
  overrides?: {
14929
- "()"?: _StyleExpListStyle_BaseConfig;
14930
- "[]"?: _StyleExpListStyle_BaseConfig;
14931
- "{}"?: _StyleExpListStyle_BaseConfig;
14932
- "<>"?: _StyleExpListStyle_BaseConfig;
14933
- ArrayExpression?: _StyleExpListStyle_BaseConfig;
14934
- ArrayPattern?: _StyleExpListStyle_BaseConfig;
14935
- ArrowFunctionExpression?: _StyleExpListStyle_BaseConfig;
14936
- CallExpression?: _StyleExpListStyle_BaseConfig;
14937
- ExportNamedDeclaration?: _StyleExpListStyle_BaseConfig;
14938
- FunctionDeclaration?: _StyleExpListStyle_BaseConfig;
14939
- FunctionExpression?: _StyleExpListStyle_BaseConfig;
14940
- IfStatement?: _StyleExpListStyle_BaseConfig;
14941
- ImportAttributes?: _StyleExpListStyle_BaseConfig;
14942
- ImportDeclaration?: _StyleExpListStyle_BaseConfig;
14943
- JSONArrayExpression?: _StyleExpListStyle_BaseConfig;
14944
- JSONObjectExpression?: _StyleExpListStyle_BaseConfig;
14945
- NewExpression?: _StyleExpListStyle_BaseConfig;
14946
- ObjectExpression?: _StyleExpListStyle_BaseConfig;
14947
- ObjectPattern?: _StyleExpListStyle_BaseConfig;
14948
- TSDeclareFunction?: _StyleExpListStyle_BaseConfig;
14949
- TSEnumBody?: _StyleExpListStyle_BaseConfig;
14950
- TSFunctionType?: _StyleExpListStyle_BaseConfig;
14951
- TSInterfaceBody?: _StyleExpListStyle_BaseConfig;
14952
- TSTupleType?: _StyleExpListStyle_BaseConfig;
14953
- TSTypeLiteral?: _StyleExpListStyle_BaseConfig;
14954
- TSTypeParameterDeclaration?: _StyleExpListStyle_BaseConfig;
14955
- TSTypeParameterInstantiation?: _StyleExpListStyle_BaseConfig;
15250
+ "()"?: (_StyleExpListStyle_BaseConfig | "off");
15251
+ "[]"?: (_StyleExpListStyle_BaseConfig | "off");
15252
+ "{}"?: (_StyleExpListStyle_BaseConfig | "off");
15253
+ "<>"?: (_StyleExpListStyle_BaseConfig | "off");
15254
+ ArrayExpression?: (_StyleExpListStyle_BaseConfig | "off");
15255
+ ArrayPattern?: (_StyleExpListStyle_BaseConfig | "off");
15256
+ ArrowFunctionExpression?: (_StyleExpListStyle_BaseConfig | "off");
15257
+ CallExpression?: (_StyleExpListStyle_BaseConfig | "off");
15258
+ ExportNamedDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
15259
+ FunctionDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
15260
+ FunctionExpression?: (_StyleExpListStyle_BaseConfig | "off");
15261
+ IfStatement?: (_StyleExpListStyle_BaseConfig | "off");
15262
+ ImportAttributes?: (_StyleExpListStyle_BaseConfig | "off");
15263
+ ImportDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
15264
+ JSONArrayExpression?: (_StyleExpListStyle_BaseConfig | "off");
15265
+ JSONObjectExpression?: (_StyleExpListStyle_BaseConfig | "off");
15266
+ NewExpression?: (_StyleExpListStyle_BaseConfig | "off");
15267
+ ObjectExpression?: (_StyleExpListStyle_BaseConfig | "off");
15268
+ ObjectPattern?: (_StyleExpListStyle_BaseConfig | "off");
15269
+ TSDeclareFunction?: (_StyleExpListStyle_BaseConfig | "off");
15270
+ TSEnumBody?: (_StyleExpListStyle_BaseConfig | "off");
15271
+ TSFunctionType?: (_StyleExpListStyle_BaseConfig | "off");
15272
+ TSInterfaceBody?: (_StyleExpListStyle_BaseConfig | "off");
15273
+ TSTupleType?: (_StyleExpListStyle_BaseConfig | "off");
15274
+ TSTypeLiteral?: (_StyleExpListStyle_BaseConfig | "off");
15275
+ TSTypeParameterDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
15276
+ TSTypeParameterInstantiation?: (_StyleExpListStyle_BaseConfig | "off");
14956
15277
  };
14957
15278
  }];
14958
15279
  interface _StyleExpListStyle_SingleLineConfig {
@@ -15823,6 +16144,7 @@ type StylePaddingLineBetweenStatements = {
15823
16144
  }[];
15824
16145
  interface _StylePaddingLineBetweenStatements_SelectorOption {
15825
16146
  selector: string;
16147
+ lineMode?: ("any" | "singleline" | "multiline");
15826
16148
  } // ----- style/quote-props -----
15827
16149
  type StyleQuoteProps = ([] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
15828
16150
  keywords?: boolean;
@@ -15982,6 +16304,13 @@ type SvelteIndent = [] | [{
15982
16304
  type SvelteMaxAttributesPerLine = [] | [{
15983
16305
  multiline?: number;
15984
16306
  singleline?: number;
16307
+ }]; // ----- svelte/max-lines-per-block -----
16308
+ type SvelteMaxLinesPerBlock = [] | [{
16309
+ script?: number;
16310
+ template?: number;
16311
+ style?: number;
16312
+ skipBlankLines?: boolean;
16313
+ skipComments?: boolean;
15985
16314
  }]; // ----- svelte/mustache-spacing -----
15986
16315
  type SvelteMustacheSpacing = [] | [{
15987
16316
  textExpressions?: ("never" | "always");
@@ -16165,6 +16494,9 @@ type TestRequireMockTypeParameters = [] | [{
16165
16494
  }]; // ----- test/require-top-level-describe -----
16166
16495
  type TestRequireTopLevelDescribe = [] | [{
16167
16496
  maxNumberOfTopLevelDescribes?: number;
16497
+ }]; // ----- test/unbound-method -----
16498
+ type TestUnboundMethod = [] | [{
16499
+ ignoreStatic?: boolean;
16168
16500
  }]; // ----- test/valid-expect -----
16169
16501
  type TestValidExpect = [] | [{
16170
16502
  alwaysAwait?: boolean;
@@ -17066,6 +17398,18 @@ type TsPreferOptionalChain = [] | [{
17066
17398
  requireNullish?: boolean;
17067
17399
  }]; // ----- ts/prefer-promise-reject-errors -----
17068
17400
  type TsPreferPromiseRejectErrors = [] | [{
17401
+ allow?: (string | {
17402
+ from: "file";
17403
+ name: (string | [string, ...(string)[]]);
17404
+ path?: string;
17405
+ } | {
17406
+ from: "lib";
17407
+ name: (string | [string, ...(string)[]]);
17408
+ } | {
17409
+ from: "package";
17410
+ name: (string | [string, ...(string)[]]);
17411
+ package: string;
17412
+ })[];
17069
17413
  allowEmptyReject?: boolean;
17070
17414
  allowThrowingAny?: boolean;
17071
17415
  allowThrowingUnknown?: boolean;
@@ -17197,6 +17541,7 @@ type UnicornEscapeCase = [] | [("uppercase" | "lowercase")]; // ----- unicorn/ex
17197
17541
  type UnicornExpiringTodoComments = [] | [{
17198
17542
  terms?: string[];
17199
17543
  ignore?: unknown[];
17544
+ ignoreDates?: boolean;
17200
17545
  ignoreDatesOnPullRequests?: boolean;
17201
17546
  allowWarningComments?: boolean;
17202
17547
  date?: string;
@@ -17353,6 +17698,9 @@ type _UnicornPreventAbbreviationsReplacements = (false | _UnicornPreventAbbrevia
17353
17698
  interface _UnicornPreventAbbreviations_Abbreviations {
17354
17699
  [k: string]: _UnicornPreventAbbreviationsReplacements | undefined;
17355
17700
  }
17701
+ interface _UnicornPreventAbbreviations_BooleanObject {
17702
+ [k: string]: boolean | undefined;
17703
+ }
17356
17704
  interface _UnicornPreventAbbreviations_BooleanObject {
17357
17705
  [k: string]: boolean | undefined;
17358
17706
  } // ----- unicorn/relative-url-style -----
@@ -18987,6 +19335,29 @@ interface OptionsComponentExts {
18987
19335
  */
18988
19336
  componentExts?: string[];
18989
19337
  }
19338
+ interface OptionsE18e extends OptionsOverrides {
19339
+ /**
19340
+ * Include modernization rules
19341
+ *
19342
+ * @see https://github.com/e18e/eslint-plugin#modernization
19343
+ * @default true
19344
+ */
19345
+ modernization?: boolean;
19346
+ /**
19347
+ * Include module replacements rules
19348
+ *
19349
+ * @see https://github.com/e18e/eslint-plugin#module-replacements
19350
+ * @default type === 'lib' && isInEditor
19351
+ */
19352
+ moduleReplacements?: boolean;
19353
+ /**
19354
+ * Include performance improvements rules
19355
+ *
19356
+ * @see https://github.com/e18e/eslint-plugin#performance-improvements
19357
+ * @default true
19358
+ */
19359
+ performanceImprovements?: boolean;
19360
+ }
18990
19361
  interface OptionsUnicorn extends OptionsOverrides {
18991
19362
  /**
18992
19363
  * Include all rules recommended by `eslint-plugin-unicorn`, instead of only ones picked by Anthony.
@@ -19131,9 +19502,7 @@ interface OptionsTailwindCSS extends OptionsOverrides {
19131
19502
  */
19132
19503
  customClassNames?: boolean;
19133
19504
  }
19134
- interface OptionsReact extends OptionsOverrides {
19135
- reactCompiler?: boolean;
19136
- }
19505
+ interface OptionsReact extends OptionsOverrides {}
19137
19506
  interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19138
19507
  /**
19139
19508
  * Enable gitignore support.
@@ -19196,6 +19565,12 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19196
19565
  */
19197
19566
  jsx?: boolean | OptionsJSX;
19198
19567
  /**
19568
+ * Options for [@e18e/eslint-plugin](https://github.com/e18e/eslint-plugin)
19569
+ *
19570
+ * @default true
19571
+ */
19572
+ e18e?: boolean | OptionsE18e;
19573
+ /**
19199
19574
  * Options for eslint-plugin-unicorn.
19200
19575
  *
19201
19576
  * @default true
@@ -19284,7 +19659,6 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19284
19659
  *
19285
19660
  * Requires installing:
19286
19661
  * - `@eslint-react/eslint-plugin`
19287
- * - `eslint-plugin-react-hooks`
19288
19662
  * - `eslint-plugin-react-refresh`
19289
19663
  *
19290
19664
  * @default false
@@ -19373,8 +19747,9 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19373
19747
  declare const defaultPluginRenaming: {
19374
19748
  "@eslint-react": string;
19375
19749
  "@eslint-react/dom": string;
19376
- "@eslint-react/hooks-extra": string;
19377
19750
  "@eslint-react/naming-convention": string;
19751
+ "@eslint-react/rsc": string;
19752
+ "@eslint-react/web-api": string;
19378
19753
  "@next/next": string;
19379
19754
  "@stylistic": string;
19380
19755
  "@typescript-eslint": string;
@@ -19419,6 +19794,9 @@ declare function comments(): Promise<TypedFlatConfigItem[]>;
19419
19794
  //#region src/configs/disables.d.ts
19420
19795
  declare function disables(): Promise<TypedFlatConfigItem[]>;
19421
19796
  //#endregion
19797
+ //#region src/configs/e18e.d.ts
19798
+ declare function e18e(options?: OptionsE18e & OptionsProjectType & OptionsIsInEditor): Promise<TypedFlatConfigItem[]>;
19799
+ //#endregion
19422
19800
  //#region src/configs/formatters.d.ts
19423
19801
  declare function formatters(options?: OptionsFormatters | true, stylistic?: StylisticConfig): Promise<TypedFlatConfigItem[]>;
19424
19802
  //#endregion
@@ -19598,4 +19976,4 @@ declare function ensurePackages(packages: string | undefined | (string | undefin
19598
19976
  declare function isInEditorEnv(): boolean;
19599
19977
  declare function isInGitHooksOrLintStaged(): boolean;
19600
19978
  //#endregion
19601
- export { Awaitable, CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, type ConfigNames, EslintConfigOptions, EslintConfigReturn, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsJSX, OptionsJSXA11y, OptionsMarkdown, OptionsOverrides, OptionsPnpm, OptionsProjectType, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTailwindCSS, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, type RuleOptions, Rules, StylisticConfig, StylisticConfigDefaults, StylisticOptions, TypedFlatConfigItem, UserConfig, angular, astro, combine, command, comments, eslintFlatConfig as default, eslintFlatConfig, defaultPluginRenaming, disables, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginImportLite, pluginNode, pluginPerfectionist, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, solid, sortPackageJson, sortTsconfig, stylistic, svelte, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
19979
+ export { Awaitable, CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, type ConfigNames, EslintConfigOptions, EslintConfigReturn, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsE18e, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsJSX, OptionsJSXA11y, OptionsMarkdown, OptionsOverrides, OptionsPnpm, OptionsProjectType, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTailwindCSS, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, type RuleOptions, Rules, StylisticConfig, StylisticConfigDefaults, StylisticOptions, TypedFlatConfigItem, UserConfig, angular, astro, combine, command, comments, eslintFlatConfig as default, eslintFlatConfig, defaultPluginRenaming, disables, e18e, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pluginAntfu, pluginComments, pluginE18e, pluginImportLite, pluginNode, pluginPerfectionist, pluginUnicorn, pluginUnusedImports, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, solid, sortPackageJson, sortTsconfig, stylistic, svelte, tailwindcss, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };