@pengzhanbo/eslint-config 2.2.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 +875 -554
  2. package/dist/index.mjs +14 -103
  3. package/package.json +32 -37
package/dist/index.d.mts CHANGED
@@ -7,11 +7,11 @@ import pluginNode from "eslint-plugin-n";
7
7
  import pluginPerfectionist from "eslint-plugin-perfectionist";
8
8
  import pluginUnicorn from "eslint-plugin-unicorn";
9
9
  import pluginUnusedImports from "eslint-plugin-unused-imports";
10
+ import { Linter } from "eslint";
10
11
  import { StylisticCustomizeOptions } from "@stylistic/eslint-plugin";
11
12
  import { ParserOptions } from "@typescript-eslint/parser";
12
13
  import { FlatGitignoreOptions } from "eslint-config-flat-gitignore";
13
14
  import { Options } from "eslint-processor-vue-blocks";
14
- import { Linter } from "eslint";
15
15
 
16
16
  //#region src/typegen.d.ts
17
17
  interface RuleOptions {
@@ -131,7 +131,7 @@ interface RuleOptions {
131
131
  */
132
132
  'angular-template/no-negated-async'?: Linter.RuleEntry<[]>;
133
133
  /**
134
- * Denies nesting of <p> and <a> tags.
134
+ * Denies nesting of `<p>` and `<a>` tags.
135
135
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/no-nested-tags.md
136
136
  */
137
137
  'angular-template/no-nested-tags'?: Linter.RuleEntry<[]>;
@@ -1999,6 +1999,11 @@ interface RuleOptions {
1999
1999
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-language.md
2000
2000
  */
2001
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>;
2002
2007
  /**
2003
2008
  * Enforce heading levels increment by one
2004
2009
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/heading-increment.md
@@ -3377,6 +3382,11 @@ interface RuleOptions {
3377
3382
  * @see https://perfectionist.dev/rules/sort-array-includes
3378
3383
  */
3379
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>;
3380
3390
  /**
3381
3391
  * Enforce sorted classes.
3382
3392
  * @see https://perfectionist.dev/rules/sort-classes
@@ -3610,601 +3620,742 @@ interface RuleOptions {
3610
3620
  * @see https://eslint.org/docs/latest/rules/radix
3611
3621
  */
3612
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<[]>;
3613
3629
  /**
3614
3630
  * Disallows DOM elements from using 'dangerouslySetInnerHTML'.
3615
3631
  * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
3616
3632
  */
3617
- 'react-dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>;
3633
+ 'react/dom-no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>;
3618
3634
  /**
3619
3635
  * Disallows DOM elements from using 'dangerouslySetInnerHTML' and 'children' at the same time.
3620
3636
  * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
3621
3637
  */
3622
- 'react-dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>;
3638
+ 'react/dom-no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>;
3623
3639
  /**
3624
3640
  * Disallows 'findDOMNode'.
3625
3641
  * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
3626
3642
  */
3627
- 'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>;
3643
+ 'react/dom-no-find-dom-node'?: Linter.RuleEntry<[]>;
3628
3644
  /**
3629
3645
  * Disallows 'flushSync'.
3630
3646
  * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
3631
3647
  */
3632
- 'react-dom/no-flush-sync'?: Linter.RuleEntry<[]>;
3648
+ 'react/dom-no-flush-sync'?: Linter.RuleEntry<[]>;
3633
3649
  /**
3634
3650
  * Replaces usage of 'ReactDOM.hydrate()' with 'hydrateRoot()'.
3635
3651
  * @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
3636
3652
  */
3637
- 'react-dom/no-hydrate'?: Linter.RuleEntry<[]>;
3653
+ 'react/dom-no-hydrate'?: Linter.RuleEntry<[]>;
3638
3654
  /**
3639
3655
  * Enforces an explicit 'type' attribute for 'button' elements.
3640
3656
  * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
3641
3657
  */
3642
- 'react-dom/no-missing-button-type'?: Linter.RuleEntry<[]>;
3658
+ 'react/dom-no-missing-button-type'?: Linter.RuleEntry<[]>;
3643
3659
  /**
3644
3660
  * Enforces an explicit 'sandbox' attribute for 'iframe' elements.
3645
3661
  * @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
3646
3662
  */
3647
- 'react-dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>;
3648
- /**
3649
- * Enforces the absence of a 'namespace' in React elements.
3650
- * @see https://eslint-react.xyz/docs/rules/dom-no-namespace
3651
- */
3652
- 'react-dom/no-namespace'?: Linter.RuleEntry<[]>;
3663
+ 'react/dom-no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>;
3653
3664
  /**
3654
3665
  * Replaces usage of 'ReactDOM.render()' with 'createRoot(node).render()'.
3655
3666
  * @see https://eslint-react.xyz/docs/rules/dom-no-render
3656
3667
  */
3657
- 'react-dom/no-render'?: Linter.RuleEntry<[]>;
3668
+ 'react/dom-no-render'?: Linter.RuleEntry<[]>;
3658
3669
  /**
3659
3670
  * Disallows the return value of 'ReactDOM.render'.
3660
3671
  * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
3661
3672
  */
3662
- 'react-dom/no-render-return-value'?: Linter.RuleEntry<[]>;
3673
+ 'react/dom-no-render-return-value'?: Linter.RuleEntry<[]>;
3663
3674
  /**
3664
3675
  * Disallows 'javascript:' URLs as attribute values.
3665
3676
  * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
3666
3677
  */
3667
- 'react-dom/no-script-url'?: Linter.RuleEntry<[]>;
3678
+ 'react/dom-no-script-url'?: Linter.RuleEntry<[]>;
3668
3679
  /**
3669
3680
  * Disallows the use of string style prop in JSX. Use an object instead.
3670
3681
  * @see https://eslint-react.xyz/docs/rules/dom-no-string-style-prop
3671
3682
  */
3672
- 'react-dom/no-string-style-prop'?: Linter.RuleEntry<[]>;
3683
+ 'react/dom-no-string-style-prop'?: Linter.RuleEntry<[]>;
3673
3684
  /**
3674
3685
  * Disallows unknown 'DOM' properties.
3675
3686
  * @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
3676
3687
  */
3677
- 'react-dom/no-unknown-property'?: Linter.RuleEntry<ReactDomNoUnknownProperty>;
3688
+ 'react/dom-no-unknown-property'?: Linter.RuleEntry<ReactDomNoUnknownProperty>;
3678
3689
  /**
3679
3690
  * Enforces that the 'sandbox' attribute for 'iframe' elements is not set to unsafe combinations.
3680
3691
  * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
3681
3692
  */
3682
- 'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>;
3693
+ 'react/dom-no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>;
3683
3694
  /**
3684
3695
  * Disallows 'target="_blank"' without 'rel="noreferrer noopener"'.
3685
3696
  * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
3686
3697
  */
3687
- 'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>;
3698
+ 'react/dom-no-unsafe-target-blank'?: Linter.RuleEntry<[]>;
3688
3699
  /**
3689
3700
  * Replaces usage of 'useFormState' with 'useActionState'.
3690
3701
  * @see https://eslint-react.xyz/docs/rules/dom-no-use-form-state
3691
3702
  */
3692
- 'react-dom/no-use-form-state'?: Linter.RuleEntry<[]>;
3703
+ 'react/dom-no-use-form-state'?: Linter.RuleEntry<[]>;
3693
3704
  /**
3694
3705
  * Disallows 'children' in void DOM elements.
3695
3706
  * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
3696
3707
  */
3697
- 'react-dom/no-void-elements-with-children'?: Linter.RuleEntry<[]>;
3708
+ 'react/dom-no-void-elements-with-children'?: Linter.RuleEntry<[]>;
3698
3709
  /**
3699
3710
  * Enforces importing React DOM via a namespace import.
3700
3711
  * @see https://eslint-react.xyz/docs/rules/dom-prefer-namespace-import
3701
3712
  */
3702
- 'react-dom/prefer-namespace-import'?: Linter.RuleEntry<[]>;
3713
+ 'react/dom-prefer-namespace-import'?: Linter.RuleEntry<[]>;
3703
3714
  /**
3704
- * Disallows direct calls to the ['set' function](https://react.dev/reference/react/useState#setstate) of 'useState' in 'useEffect'.
3705
- * @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
3706
3717
  */
3707
- 'react-hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>;
3718
+ 'react/error-boundaries'?: Linter.RuleEntry<[]>;
3708
3719
  /**
3709
- * 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
3710
3722
  */
3711
- 'react-hooks/automatic-effect-dependencies'?: Linter.RuleEntry<ReactHooksAutomaticEffectDependencies>;
3723
+ 'react/exhaustive-deps'?: Linter.RuleEntry<ReactExhaustiveDeps>;
3712
3724
  /**
3713
- * 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
3714
3727
  */
3715
- 'react-hooks/capitalized-calls'?: Linter.RuleEntry<ReactHooksCapitalizedCalls>;
3728
+ 'react/immutability'?: Linter.RuleEntry<[]>;
3716
3729
  /**
3717
- * 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
3718
3732
  */
3719
- 'react-hooks/component-hook-factories'?: Linter.RuleEntry<ReactHooksComponentHookFactories>;
3733
+ 'react/jsx-no-children-prop'?: Linter.RuleEntry<[]>;
3720
3734
  /**
3721
- * 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
3722
3737
  */
3723
- 'react-hooks/config'?: Linter.RuleEntry<ReactHooksConfig>;
3738
+ 'react/jsx-no-children-prop-with-children'?: Linter.RuleEntry<[]>;
3724
3739
  /**
3725
- * 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
3726
3742
  */
3727
- 'react-hooks/error-boundaries'?: Linter.RuleEntry<ReactHooksErrorBoundaries>;
3743
+ 'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
3728
3744
  /**
3729
- * verifies the list of dependencies for Hooks like useEffect and similar
3730
- * @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
3731
3747
  */
3732
- 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>;
3748
+ 'react/jsx-no-key-after-spread'?: Linter.RuleEntry<[]>;
3733
3749
  /**
3734
- * 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
3735
3752
  */
3736
- 'react-hooks/fbt'?: Linter.RuleEntry<ReactHooksFbt>;
3753
+ 'react/jsx-no-leaked-dollar'?: Linter.RuleEntry<[]>;
3737
3754
  /**
3738
- * 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
3739
3757
  */
3740
- 'react-hooks/fire'?: Linter.RuleEntry<ReactHooksFire>;
3758
+ 'react/jsx-no-leaked-semicolon'?: Linter.RuleEntry<[]>;
3741
3759
  /**
3742
- * 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
3743
3762
  */
3744
- 'react-hooks/gating'?: Linter.RuleEntry<ReactHooksGating>;
3763
+ 'react/jsx-no-namespace'?: Linter.RuleEntry<[]>;
3745
3764
  /**
3746
- * 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
3747
3767
  */
3748
- 'react-hooks/globals'?: Linter.RuleEntry<ReactHooksGlobals>;
3768
+ 'react/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactJsxNoUselessFragment>;
3749
3769
  /**
3750
- * 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
3751
3772
  */
3752
- 'react-hooks/hooks'?: Linter.RuleEntry<ReactHooksHooks>;
3773
+ 'react/naming-convention-context-name'?: Linter.RuleEntry<[]>;
3753
3774
  /**
3754
- * 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
3755
3777
  */
3756
- 'react-hooks/immutability'?: Linter.RuleEntry<ReactHooksImmutability>;
3778
+ 'react/naming-convention-id-name'?: Linter.RuleEntry<[]>;
3757
3779
  /**
3758
- * 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
3759
3782
  */
3760
- 'react-hooks/incompatible-library'?: Linter.RuleEntry<ReactHooksIncompatibleLibrary>;
3783
+ 'react/naming-convention-ref-name'?: Linter.RuleEntry<[]>;
3761
3784
  /**
3762
- * Internal invariants
3785
+ * Disallows accessing 'this.state' inside 'setState' calls.
3786
+ * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
3763
3787
  */
3764
- 'react-hooks/invariant'?: Linter.RuleEntry<ReactHooksInvariant>;
3788
+ 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
3765
3789
  /**
3766
- * 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
3767
3792
  */
3768
- 'react-hooks/memoized-effect-dependencies'?: Linter.RuleEntry<ReactHooksMemoizedEffectDependencies>;
3793
+ 'react/no-array-index-key'?: Linter.RuleEntry<[]>;
3769
3794
  /**
3770
- * 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
3771
3797
  */
3772
- 'react-hooks/no-deriving-state-in-effects'?: Linter.RuleEntry<ReactHooksNoDerivingStateInEffects>;
3798
+ 'react/no-children-count'?: Linter.RuleEntry<[]>;
3773
3799
  /**
3774
- * 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
3775
3802
  */
3776
- 'react-hooks/preserve-manual-memoization'?: Linter.RuleEntry<ReactHooksPreserveManualMemoization>;
3803
+ 'react/no-children-for-each'?: Linter.RuleEntry<[]>;
3777
3804
  /**
3778
- * 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
3779
3807
  */
3780
- 'react-hooks/purity'?: Linter.RuleEntry<ReactHooksPurity>;
3808
+ 'react/no-children-map'?: Linter.RuleEntry<[]>;
3781
3809
  /**
3782
- * 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
3783
3812
  */
3784
- 'react-hooks/refs'?: Linter.RuleEntry<ReactHooksRefs>;
3813
+ 'react/no-children-only'?: Linter.RuleEntry<[]>;
3785
3814
  /**
3786
- * 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
3787
3817
  */
3788
- 'react-hooks/rule-suppression'?: Linter.RuleEntry<ReactHooksRuleSuppression>;
3818
+ 'react/no-children-to-array'?: Linter.RuleEntry<[]>;
3789
3819
  /**
3790
- * enforces the Rules of Hooks
3791
- * @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
3792
3822
  */
3793
- 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<ReactHooksRulesOfHooks>;
3823
+ 'react/no-class-component'?: Linter.RuleEntry<[]>;
3794
3824
  /**
3795
- * 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
3796
3827
  */
3797
- 'react-hooks/set-state-in-effect'?: Linter.RuleEntry<ReactHooksSetStateInEffect>;
3828
+ 'react/no-clone-element'?: Linter.RuleEntry<[]>;
3798
3829
  /**
3799
- * 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
3800
3832
  */
3801
- 'react-hooks/set-state-in-render'?: Linter.RuleEntry<ReactHooksSetStateInRender>;
3833
+ 'react/no-component-will-mount'?: Linter.RuleEntry<[]>;
3802
3834
  /**
3803
- * 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
3804
3837
  */
3805
- 'react-hooks/static-components'?: Linter.RuleEntry<ReactHooksStaticComponents>;
3838
+ 'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>;
3806
3839
  /**
3807
- * Validates against invalid syntax
3840
+ * Replaces usage of 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'.
3841
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-update
3808
3842
  */
3809
- 'react-hooks/syntax'?: Linter.RuleEntry<ReactHooksSyntax>;
3843
+ 'react/no-component-will-update'?: Linter.RuleEntry<[]>;
3810
3844
  /**
3811
- * Unimplemented features
3845
+ * Replaces usage of '<Context.Provider>' with '<Context>'.
3846
+ * @see https://eslint-react.xyz/docs/rules/no-context-provider
3812
3847
  */
3813
- 'react-hooks/todo'?: Linter.RuleEntry<ReactHooksTodo>;
3848
+ 'react/no-context-provider'?: Linter.RuleEntry<[]>;
3814
3849
  /**
3815
- * 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
3816
3852
  */
3817
- 'react-hooks/unsupported-syntax'?: Linter.RuleEntry<ReactHooksUnsupportedSyntax>;
3853
+ 'react/no-create-ref'?: Linter.RuleEntry<[]>;
3818
3854
  /**
3819
- * 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
3820
3857
  */
3821
- 'react-hooks/use-memo'?: Linter.RuleEntry<ReactHooksUseMemo>;
3858
+ 'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>;
3822
3859
  /**
3823
- * 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
3824
3862
  */
3825
- 'react-hooks/void-use-memo'?: Linter.RuleEntry<ReactHooksVoidUseMemo>;
3863
+ 'react/no-duplicate-key'?: Linter.RuleEntry<[]>;
3826
3864
  /**
3827
- * Enforces naming conventions for components.
3828
- * @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
3829
3867
  */
3830
- 'react-naming-convention/component-name'?: Linter.RuleEntry<ReactNamingConventionComponentName>;
3868
+ 'react/no-forward-ref'?: Linter.RuleEntry<[]>;
3831
3869
  /**
3832
- * Enforces the context name to be a valid component name with the suffix 'Context'.
3833
- * @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
3834
3872
  */
3835
- 'react-naming-convention/context-name'?: Linter.RuleEntry<[]>;
3873
+ 'react/no-implicit-children'?: Linter.RuleEntry<[]>;
3836
3874
  /**
3837
- * Enforces consistent file-naming conventions.
3838
- * @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
3839
3877
  */
3840
- 'react-naming-convention/filename'?: Linter.RuleEntry<ReactNamingConventionFilename>;
3878
+ 'react/no-implicit-key'?: Linter.RuleEntry<[]>;
3841
3879
  /**
3842
- * Enforces consistent use of the JSX file extension.
3843
- * @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
3844
3882
  */
3845
- 'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>;
3883
+ 'react/no-implicit-ref'?: Linter.RuleEntry<[]>;
3846
3884
  /**
3847
- * Enforces identifier names assigned from 'useId' calls to be either 'id' or end with 'Id'.
3848
- * @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
3849
3887
  */
3850
- 'react-naming-convention/id-name'?: Linter.RuleEntry<[]>;
3888
+ 'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
3851
3889
  /**
3852
- * Enforces identifier names assigned from 'useRef' calls to be either 'ref' or end with 'Ref'.
3853
- * @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
3854
3892
  */
3855
- 'react-naming-convention/ref-name'?: Linter.RuleEntry<[]>;
3893
+ 'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>;
3856
3894
  /**
3857
- * Enforces destructuring and symmetric naming of the 'useState' hook value and setter.
3858
- * @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
3859
3897
  */
3860
- 'react-naming-convention/use-state'?: Linter.RuleEntry<ReactNamingConventionUseState>;
3861
- '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<[]>;
4009
+ /**
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<[]>;
3862
4014
  /**
3863
- * Validate and transform React Client/Server Function definitions.
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.
3864
4021
  * @see https://eslint-react.xyz/docs/rules/function-definition
3865
4022
  */
3866
- 'react-rsc/function-definition'?: Linter.RuleEntry<[]>;
4023
+ 'react/rsc-function-definition'?: Linter.RuleEntry<[]>;
3867
4024
  /**
3868
- * Enforces that every 'addEventListener' in a component or custom hook has a corresponding 'removeEventListener'.
3869
- * @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
3870
4027
  */
3871
- 'react-web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>;
4028
+ 'react/rules-of-hooks'?: Linter.RuleEntry<ReactRulesOfHooks>;
3872
4029
  /**
3873
- * Enforces that every 'setInterval' in a component or custom hook has a corresponding 'clearInterval'.
3874
- * @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
3875
4032
  */
3876
- 'react-web-api/no-leaked-interval'?: Linter.RuleEntry<[]>;
4033
+ 'react/set-state-in-effect'?: Linter.RuleEntry<[]>;
3877
4034
  /**
3878
- * Enforces that every 'ResizeObserver' created in a component or custom hook has a corresponding 'ResizeObserver.disconnect()'.
3879
- * @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
3880
4037
  */
3881
- 'react-web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>;
4038
+ 'react/set-state-in-render'?: Linter.RuleEntry<[]>;
3882
4039
  /**
3883
- * Enforces that every 'setTimeout' in a component or custom hook has a corresponding 'clearTimeout'.
3884
- * @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
3885
4042
  */
3886
- 'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>;
4043
+ 'react/unsupported-syntax'?: Linter.RuleEntry<[]>;
3887
4044
  /**
3888
- * Prevents unintentional '$' sign before expression.
3889
- * @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
3890
4047
  */
3891
- 'react/jsx-dollar'?: Linter.RuleEntry<[]>;
4048
+ 'react/use-memo'?: Linter.RuleEntry<[]>;
3892
4049
  /**
3893
- * Enforces 'key' prop placement before spread props.
3894
- * @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
3895
4052
  */
3896
- 'react/jsx-key-before-spread'?: Linter.RuleEntry<[]>;
4053
+ 'react/use-state'?: Linter.RuleEntry<ReactUseState>;
3897
4054
  /**
3898
- * Prevents comment strings (e.g., beginning with '//' or '/*') from being accidentally inserted into a JSX element's text nodes.
3899
- * @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
3900
4057
  */
3901
- 'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
4058
+ 'react/web-api-no-leaked-event-listener'?: Linter.RuleEntry<[]>;
3902
4059
  /**
3903
- * Disallows duplicate props in JSX elements.
3904
- * @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
3905
4062
  */
3906
- 'react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>;
4063
+ 'react/web-api-no-leaked-interval'?: Linter.RuleEntry<[]>;
3907
4064
  /**
3908
- * Disallows immediately-invoked function expressions in JSX.
3909
- * @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
3910
4067
  */
3911
- 'react/jsx-no-iife'?: Linter.RuleEntry<[]>;
4068
+ 'react/web-api-no-leaked-resize-observer'?: Linter.RuleEntry<[]>;
3912
4069
  /**
3913
- * Prevents using variables in JSX that are not defined in the scope.
3914
- * @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
3915
4072
  */
3916
- 'react/jsx-no-undef'?: Linter.RuleEntry<[]>;
4073
+ 'react/web-api-no-leaked-timeout'?: Linter.RuleEntry<[]>;
3917
4074
  /**
3918
- * Enforces shorthand syntax for boolean props.
3919
- * @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
3920
4077
  */
3921
- 'react/jsx-shorthand-boolean'?: Linter.RuleEntry<ReactJsxShorthandBoolean>;
4078
+ 'react/x-component-hook-factories'?: Linter.RuleEntry<[]>;
3922
4079
  /**
3923
- * Enforces shorthand syntax for fragment elements.
3924
- * @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
3925
4082
  */
3926
- 'react/jsx-shorthand-fragment'?: Linter.RuleEntry<ReactJsxShorthandFragment>;
4083
+ 'react/x-error-boundaries'?: Linter.RuleEntry<[]>;
3927
4084
  /**
3928
- * Marks React variables as used when JSX is present.
3929
- * @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
3930
4087
  */
3931
- 'react/jsx-uses-react'?: Linter.RuleEntry<[]>;
4088
+ 'react/x-exhaustive-deps'?: Linter.RuleEntry<ReactXExhaustiveDeps>;
3932
4089
  /**
3933
- * Marks JSX element variables as used.
3934
- * @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
3935
4092
  */
3936
- 'react/jsx-uses-vars'?: Linter.RuleEntry<[]>;
4093
+ 'react/x-immutability'?: Linter.RuleEntry<[]>;
3937
4094
  /**
3938
4095
  * Disallows accessing 'this.state' inside 'setState' calls.
3939
4096
  * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
3940
4097
  */
3941
- 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
4098
+ 'react/x-no-access-state-in-setstate'?: Linter.RuleEntry<[]>;
3942
4099
  /**
3943
4100
  * Disallows using an item's index in the array as its key.
3944
4101
  * @see https://eslint-react.xyz/docs/rules/no-array-index-key
3945
4102
  */
3946
- 'react/no-array-index-key'?: Linter.RuleEntry<[]>;
4103
+ 'react/x-no-array-index-key'?: Linter.RuleEntry<[]>;
3947
4104
  /**
3948
4105
  * Disallows the use of 'Children.count' from the 'react' package.
3949
4106
  * @see https://eslint-react.xyz/docs/rules/no-children-count
3950
4107
  */
3951
- 'react/no-children-count'?: Linter.RuleEntry<[]>;
4108
+ 'react/x-no-children-count'?: Linter.RuleEntry<[]>;
3952
4109
  /**
3953
4110
  * Disallows the use of 'Children.forEach' from the 'react' package.
3954
4111
  * @see https://eslint-react.xyz/docs/rules/no-children-for-each
3955
4112
  */
3956
- 'react/no-children-for-each'?: Linter.RuleEntry<[]>;
4113
+ 'react/x-no-children-for-each'?: Linter.RuleEntry<[]>;
3957
4114
  /**
3958
4115
  * Disallows the use of 'Children.map' from the 'react' package.
3959
4116
  * @see https://eslint-react.xyz/docs/rules/no-children-map
3960
4117
  */
3961
- 'react/no-children-map'?: Linter.RuleEntry<[]>;
4118
+ 'react/x-no-children-map'?: Linter.RuleEntry<[]>;
3962
4119
  /**
3963
4120
  * Disallows the use of 'Children.only' from the 'react' package.
3964
4121
  * @see https://eslint-react.xyz/docs/rules/no-children-only
3965
4122
  */
3966
- 'react/no-children-only'?: Linter.RuleEntry<[]>;
3967
- /**
3968
- * Disallows passing 'children' as a prop.
3969
- * @see https://eslint-react.xyz/docs/rules/no-children-prop
3970
- */
3971
- 'react/no-children-prop'?: Linter.RuleEntry<[]>;
4123
+ 'react/x-no-children-only'?: Linter.RuleEntry<[]>;
3972
4124
  /**
3973
4125
  * Disallows the use of 'Children.toArray' from the 'react' package.
3974
4126
  * @see https://eslint-react.xyz/docs/rules/no-children-to-array
3975
4127
  */
3976
- 'react/no-children-to-array'?: Linter.RuleEntry<[]>;
4128
+ 'react/x-no-children-to-array'?: Linter.RuleEntry<[]>;
3977
4129
  /**
3978
4130
  * Disallows class components except for error boundaries.
3979
4131
  * @see https://eslint-react.xyz/docs/rules/no-class-component
3980
4132
  */
3981
- 'react/no-class-component'?: Linter.RuleEntry<[]>;
4133
+ 'react/x-no-class-component'?: Linter.RuleEntry<[]>;
3982
4134
  /**
3983
4135
  * Disallows 'cloneElement'.
3984
4136
  * @see https://eslint-react.xyz/docs/rules/no-clone-element
3985
4137
  */
3986
- 'react/no-clone-element'?: Linter.RuleEntry<[]>;
4138
+ 'react/x-no-clone-element'?: Linter.RuleEntry<[]>;
3987
4139
  /**
3988
4140
  * Replaces usage of 'componentWillMount' with 'UNSAFE_componentWillMount'.
3989
4141
  * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
3990
4142
  */
3991
- 'react/no-component-will-mount'?: Linter.RuleEntry<[]>;
4143
+ 'react/x-no-component-will-mount'?: Linter.RuleEntry<[]>;
3992
4144
  /**
3993
4145
  * Replaces usage of 'componentWillReceiveProps' with 'UNSAFE_componentWillReceiveProps'.
3994
4146
  * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
3995
4147
  */
3996
- 'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>;
4148
+ 'react/x-no-component-will-receive-props'?: Linter.RuleEntry<[]>;
3997
4149
  /**
3998
4150
  * Replaces usage of 'componentWillUpdate' with 'UNSAFE_componentWillUpdate'.
3999
4151
  * @see https://eslint-react.xyz/docs/rules/no-component-will-update
4000
4152
  */
4001
- 'react/no-component-will-update'?: Linter.RuleEntry<[]>;
4153
+ 'react/x-no-component-will-update'?: Linter.RuleEntry<[]>;
4002
4154
  /**
4003
4155
  * Replaces usage of '<Context.Provider>' with '<Context>'.
4004
4156
  * @see https://eslint-react.xyz/docs/rules/no-context-provider
4005
4157
  */
4006
- 'react/no-context-provider'?: Linter.RuleEntry<[]>;
4158
+ 'react/x-no-context-provider'?: Linter.RuleEntry<[]>;
4007
4159
  /**
4008
4160
  * Disallows 'createRef' in function components.
4009
4161
  * @see https://eslint-react.xyz/docs/rules/no-create-ref
4010
4162
  */
4011
- 'react/no-create-ref'?: Linter.RuleEntry<[]>;
4012
- /**
4013
- * Disallows the 'defaultProps' property in favor of ES6 default parameters.
4014
- * @see https://eslint-react.xyz/docs/rules/no-default-props
4015
- */
4016
- 'react/no-default-props'?: Linter.RuleEntry<[]>;
4163
+ 'react/x-no-create-ref'?: Linter.RuleEntry<[]>;
4017
4164
  /**
4018
4165
  * Disallows direct mutation of 'this.state'.
4019
4166
  * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
4020
4167
  */
4021
- 'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>;
4168
+ 'react/x-no-direct-mutation-state'?: Linter.RuleEntry<[]>;
4022
4169
  /**
4023
4170
  * Prevents duplicate 'key' props on sibling elements when rendering lists.
4024
4171
  * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
4025
4172
  */
4026
- 'react/no-duplicate-key'?: Linter.RuleEntry<[]>;
4027
- /**
4028
- * Disallows certain props on components.
4029
- * @see https://eslint-react.xyz/docs/rules/no-forbidden-props
4030
- * @deprecated
4031
- */
4032
- 'react/no-forbidden-props'?: Linter.RuleEntry<ReactNoForbiddenProps>;
4173
+ 'react/x-no-duplicate-key'?: Linter.RuleEntry<[]>;
4033
4174
  /**
4034
4175
  * Replaces usage of 'forwardRef' with passing 'ref' as a prop.
4035
4176
  * @see https://eslint-react.xyz/docs/rules/no-forward-ref
4036
4177
  */
4037
- '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<[]>;
4038
4184
  /**
4039
4185
  * Prevents implicitly passing the 'key' prop to components.
4040
4186
  * @see https://eslint-react.xyz/docs/rules/no-implicit-key
4041
4187
  */
4042
- '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<[]>;
4043
4194
  /**
4044
4195
  * Prevents problematic leaked values from being rendered.
4045
4196
  * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
4046
4197
  */
4047
- 'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
4198
+ 'react/x-no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>;
4048
4199
  /**
4049
4200
  * Enforces that all components have a 'displayName' that can be used in DevTools.
4050
4201
  * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
4051
4202
  */
4052
- 'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>;
4203
+ 'react/x-no-missing-component-display-name'?: Linter.RuleEntry<[]>;
4053
4204
  /**
4054
4205
  * Enforces that all contexts have a 'displayName' that can be used in DevTools.
4055
4206
  * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
4056
4207
  */
4057
- 'react/no-missing-context-display-name'?: Linter.RuleEntry<[]>;
4208
+ 'react/x-no-missing-context-display-name'?: Linter.RuleEntry<[]>;
4058
4209
  /**
4059
4210
  * Disallows missing 'key' on items in list rendering.
4060
4211
  * @see https://eslint-react.xyz/docs/rules/no-missing-key
4061
4212
  */
4062
- 'react/no-missing-key'?: Linter.RuleEntry<[]>;
4213
+ 'react/x-no-missing-key'?: Linter.RuleEntry<[]>;
4063
4214
  /**
4064
4215
  * Prevents incorrect usage of 'captureOwnerStack'.
4065
4216
  * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
4066
4217
  */
4067
- 'react/no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>;
4218
+ 'react/x-no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>;
4068
4219
  /**
4069
4220
  * Disallows nesting component definitions inside other components.
4070
4221
  * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
4071
4222
  */
4072
- 'react/no-nested-component-definitions'?: Linter.RuleEntry<[]>;
4223
+ 'react/x-no-nested-component-definitions'?: Linter.RuleEntry<[]>;
4073
4224
  /**
4074
- * Disallows nesting lazy component declarations inside other components.
4225
+ * Disallows nesting lazy component declarations inside other components or hooks.
4075
4226
  * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
4076
4227
  */
4077
- 'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
4078
- /**
4079
- * Disallows 'propTypes' in favor of TypeScript or another type-checking solution.
4080
- * @see https://eslint-react.xyz/docs/rules/no-prop-types
4081
- */
4082
- 'react/no-prop-types'?: Linter.RuleEntry<[]>;
4228
+ 'react/x-no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
4083
4229
  /**
4084
4230
  * Disallows 'shouldComponentUpdate' when extending 'React.PureComponent'.
4085
4231
  * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
4086
4232
  */
4087
- 'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>;
4233
+ 'react/x-no-redundant-should-component-update'?: Linter.RuleEntry<[]>;
4088
4234
  /**
4089
4235
  * Disallows calling 'this.setState' in 'componentDidMount' outside functions such as callbacks.
4090
4236
  * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
4091
4237
  */
4092
- 'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>;
4238
+ 'react/x-no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>;
4093
4239
  /**
4094
4240
  * Disallows calling 'this.setState' in 'componentDidUpdate' outside functions such as callbacks.
4095
4241
  * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
4096
4242
  */
4097
- 'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>;
4243
+ 'react/x-no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>;
4098
4244
  /**
4099
4245
  * Disallows calling 'this.setState' in 'componentWillUpdate' outside functions such as callbacks.
4100
4246
  * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
4101
4247
  */
4102
- 'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
4103
- /**
4104
- * Replaces string refs with callback refs.
4105
- * @see https://eslint-react.xyz/docs/rules/no-string-refs
4106
- */
4107
- 'react/no-string-refs'?: Linter.RuleEntry<[]>;
4108
- /**
4109
- * Disallows unnecessary 'key' props on nested child elements when rendering lists.
4110
- * @see https://eslint-react.xyz/docs/rules/no-unnecessary-key
4111
- */
4112
- 'react/no-unnecessary-key'?: Linter.RuleEntry<[]>;
4248
+ 'react/x-no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
4113
4249
  /**
4114
4250
  * Disallows unnecessary usage of 'useCallback'.
4115
4251
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-callback
4116
4252
  */
4117
- 'react/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
4253
+ 'react/x-no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
4118
4254
  /**
4119
4255
  * Disallows unnecessary usage of 'useMemo'.
4120
4256
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-memo
4121
4257
  */
4122
- 'react/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
4258
+ 'react/x-no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
4123
4259
  /**
4124
4260
  * Enforces that a function with the 'use' prefix uses at least one Hook inside it.
4125
4261
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
4126
4262
  */
4127
- 'react/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
4128
- /**
4129
- * Disallows unnecessary usage of 'useRef'.
4130
- * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-ref
4131
- */
4132
- 'react/no-unnecessary-use-ref'?: Linter.RuleEntry<[]>;
4263
+ 'react/x-no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
4133
4264
  /**
4134
4265
  * Warns about the use of 'UNSAFE_componentWillMount' in class components.
4135
4266
  * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
4136
4267
  */
4137
- 'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>;
4268
+ 'react/x-no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>;
4138
4269
  /**
4139
4270
  * Warns about the use of 'UNSAFE_componentWillReceiveProps' in class components.
4140
4271
  * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
4141
4272
  */
4142
- 'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>;
4273
+ 'react/x-no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>;
4143
4274
  /**
4144
4275
  * Warns about the use of 'UNSAFE_componentWillUpdate' in class components.
4145
4276
  * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
4146
4277
  */
4147
- 'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>;
4278
+ 'react/x-no-unsafe-component-will-update'?: Linter.RuleEntry<[]>;
4148
4279
  /**
4149
4280
  * Prevents non-stable values (i.e., object literals) from being used as a value for 'Context.Provider'.
4150
4281
  * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
4151
4282
  */
4152
- 'react/no-unstable-context-value'?: Linter.RuleEntry<[]>;
4283
+ 'react/x-no-unstable-context-value'?: Linter.RuleEntry<[]>;
4153
4284
  /**
4154
4285
  * Prevents using referential-type values as default props in object destructuring.
4155
4286
  * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
4156
4287
  */
4157
- 'react/no-unstable-default-props'?: Linter.RuleEntry<ReactNoUnstableDefaultProps>;
4288
+ 'react/x-no-unstable-default-props'?: Linter.RuleEntry<ReactXNoUnstableDefaultProps>;
4158
4289
  /**
4159
4290
  * Warns about unused class component methods and properties.
4160
4291
  * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
4161
4292
  */
4162
- 'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>;
4293
+ 'react/x-no-unused-class-component-members'?: Linter.RuleEntry<[]>;
4163
4294
  /**
4164
4295
  * Warns about component props that are defined but never used.
4165
4296
  * @see https://eslint-react.xyz/docs/rules/no-unused-props
4166
4297
  */
4167
- 'react/no-unused-props'?: Linter.RuleEntry<[]>;
4298
+ 'react/x-no-unused-props'?: Linter.RuleEntry<[]>;
4168
4299
  /**
4169
4300
  * Warns about unused class component state.
4170
4301
  * @see https://eslint-react.xyz/docs/rules/no-unused-state
4171
4302
  */
4172
- 'react/no-unused-state'?: Linter.RuleEntry<[]>;
4303
+ 'react/x-no-unused-state'?: Linter.RuleEntry<[]>;
4173
4304
  /**
4174
4305
  * Replaces usage of 'useContext' with 'use'.
4175
4306
  * @see https://eslint-react.xyz/docs/rules/no-use-context
4176
4307
  */
4177
- 'react/no-use-context'?: Linter.RuleEntry<[]>;
4178
- /**
4179
- * Disallows useless 'forwardRef' calls on components that don't use 'ref's.
4180
- * @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
4181
- */
4182
- 'react/no-useless-forward-ref'?: Linter.RuleEntry<[]>;
4183
- /**
4184
- * Disallows useless fragment elements.
4185
- * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
4186
- */
4187
- 'react/no-useless-fragment'?: Linter.RuleEntry<ReactNoUselessFragment>;
4308
+ 'react/x-no-use-context'?: Linter.RuleEntry<[]>;
4188
4309
  /**
4189
4310
  * Enforces destructuring assignment for component props and context.
4190
4311
  * @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
4191
4312
  */
4192
- 'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
4313
+ 'react/x-prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
4193
4314
  /**
4194
4315
  * Enforces importing React via a namespace import.
4195
4316
  * @see https://eslint-react.xyz/docs/rules/prefer-namespace-import
4196
4317
  */
4197
- '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<[]>;
4198
4329
  /**
4199
- * Enforces read-only props in components.
4200
- * @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
4332
+ */
4333
+ 'react/x-rules-of-hooks'?: Linter.RuleEntry<ReactXRulesOfHooks>;
4334
+ /**
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
4337
+ */
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
4201
4352
  */
4202
- 'react/prefer-read-only-props'?: Linter.RuleEntry<[]>;
4353
+ 'react/x-use-memo'?: Linter.RuleEntry<[]>;
4203
4354
  /**
4204
- * Enforces wrapping function calls made inside 'useState' in an 'initializer function'.
4205
- * @see https://eslint-react.xyz/docs/rules/prefer-use-state-lazy-initialization
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
4206
4357
  */
4207
- 'react/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>;
4358
+ 'react/x-use-state'?: Linter.RuleEntry<ReactXUseState>;
4208
4359
  /**
4209
4360
  * disallow confusing quantifiers
4210
4361
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -5385,6 +5536,11 @@ interface RuleOptions {
5385
5536
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/max-attributes-per-line/
5386
5537
  */
5387
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>;
5388
5544
  /**
5389
5545
  * enforce unified spacing in mustache
5390
5546
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/mustache-spacing/
@@ -5484,7 +5640,7 @@ interface RuleOptions {
5484
5640
  */
5485
5641
  'svelte/no-navigation-without-base'?: Linter.RuleEntry<SvelteNoNavigationWithoutBase>;
5486
5642
  /**
5487
- * disallow using navigation (links, goto, pushState, replaceState) without a resolve()
5643
+ * disallow internal navigation (links, `goto()`, `pushState()`, `replaceState()`) without a `resolve()`
5488
5644
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-resolve/
5489
5645
  */
5490
5646
  'svelte/no-navigation-without-resolve'?: Linter.RuleEntry<SvelteNoNavigationWithoutResolve>;
@@ -6112,6 +6268,11 @@ interface RuleOptions {
6112
6268
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-top-level-describe.md
6113
6269
  */
6114
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>;
6115
6276
  /**
6116
6277
  * enforce valid describe callback
6117
6278
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
@@ -6942,730 +7103,750 @@ interface RuleOptions {
6942
7103
  'unicode-bom'?: Linter.RuleEntry<UnicodeBom>;
6943
7104
  /**
6944
7105
  * Improve regexes by making them shorter, consistent, and safer.
6945
- * @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
6946
7107
  */
6947
7108
  'unicorn/better-regex'?: Linter.RuleEntry<UnicornBetterRegex>;
6948
7109
  /**
6949
7110
  * Enforce a specific parameter name in catch clauses.
6950
- * @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
6951
7112
  */
6952
7113
  'unicorn/catch-error-name'?: Linter.RuleEntry<UnicornCatchErrorName>;
6953
7114
  /**
6954
7115
  * Enforce consistent assertion style with `node:assert`.
6955
- * @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
6956
7117
  */
6957
7118
  'unicorn/consistent-assert'?: Linter.RuleEntry<[]>;
6958
7119
  /**
6959
7120
  * Prefer passing `Date` directly to the constructor when cloning.
6960
- * @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
6961
7122
  */
6962
7123
  'unicorn/consistent-date-clone'?: Linter.RuleEntry<[]>;
6963
7124
  /**
6964
7125
  * Use destructured variables over properties.
6965
- * @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
6966
7127
  */
6967
7128
  'unicorn/consistent-destructuring'?: Linter.RuleEntry<[]>;
6968
7129
  /**
6969
7130
  * Prefer consistent types when spreading a ternary in an array literal.
6970
- * @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
6971
7132
  */
6972
7133
  'unicorn/consistent-empty-array-spread'?: Linter.RuleEntry<[]>;
6973
7134
  /**
6974
7135
  * Enforce consistent style for element existence checks with `indexOf()`, `lastIndexOf()`, `findIndex()`, and `findLastIndex()`.
6975
- * @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
6976
7137
  */
6977
7138
  'unicorn/consistent-existence-index-check'?: Linter.RuleEntry<[]>;
6978
7139
  /**
6979
7140
  * Move function definitions to the highest possible scope.
6980
- * @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
6981
7142
  */
6982
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<[]>;
6983
7149
  /**
6984
7150
  * Enforce correct `Error` subclassing.
6985
- * @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
6986
7152
  */
6987
7153
  'unicorn/custom-error-definition'?: Linter.RuleEntry<[]>;
6988
7154
  /**
6989
7155
  * Enforce no spaces between braces.
6990
- * @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
6991
7157
  */
6992
7158
  'unicorn/empty-brace-spaces'?: Linter.RuleEntry<[]>;
6993
7159
  /**
6994
7160
  * Enforce passing a `message` value when creating a built-in error.
6995
- * @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
6996
7162
  */
6997
7163
  'unicorn/error-message'?: Linter.RuleEntry<[]>;
6998
7164
  /**
6999
7165
  * Require escape sequences to use uppercase or lowercase values.
7000
- * @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
7001
7167
  */
7002
7168
  'unicorn/escape-case'?: Linter.RuleEntry<UnicornEscapeCase>;
7003
7169
  /**
7004
7170
  * Add expiration conditions to TODO comments.
7005
- * @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
7006
7172
  */
7007
7173
  'unicorn/expiring-todo-comments'?: Linter.RuleEntry<UnicornExpiringTodoComments>;
7008
7174
  /**
7009
7175
  * Enforce explicitly comparing the `length` or `size` property of a value.
7010
- * @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
7011
7177
  */
7012
7178
  'unicorn/explicit-length-check'?: Linter.RuleEntry<UnicornExplicitLengthCheck>;
7013
7179
  /**
7014
7180
  * Enforce a case style for filenames.
7015
- * @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
7016
7182
  */
7017
7183
  'unicorn/filename-case'?: Linter.RuleEntry<UnicornFilenameCase>;
7018
7184
  /**
7019
7185
  * Enforce specific import styles per module.
7020
- * @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
7021
7187
  */
7022
7188
  'unicorn/import-style'?: Linter.RuleEntry<UnicornImportStyle>;
7023
7189
  /**
7024
7190
  * Prevent usage of variables from outside the scope of isolated functions.
7025
- * @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
7026
7192
  */
7027
7193
  'unicorn/isolated-functions'?: Linter.RuleEntry<UnicornIsolatedFunctions>;
7028
7194
  /**
7029
7195
  * Enforce the use of `new` for all builtins, except `String`, `Number`, `Boolean`, `Symbol` and `BigInt`.
7030
- * @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
7031
7197
  */
7032
7198
  'unicorn/new-for-builtins'?: Linter.RuleEntry<[]>;
7033
7199
  /**
7034
7200
  * Enforce specifying rules to disable in `eslint-disable` comments.
7035
- * @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
7036
7202
  */
7037
7203
  'unicorn/no-abusive-eslint-disable'?: Linter.RuleEntry<[]>;
7038
7204
  /**
7039
7205
  * Disallow recursive access to `this` within getters and setters.
7040
- * @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
7041
7207
  */
7042
7208
  'unicorn/no-accessor-recursion'?: Linter.RuleEntry<[]>;
7043
7209
  /**
7044
7210
  * Disallow anonymous functions and classes as the default export.
7045
- * @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
7046
7212
  */
7047
7213
  'unicorn/no-anonymous-default-export'?: Linter.RuleEntry<[]>;
7048
7214
  /**
7049
7215
  * Prevent passing a function reference directly to iterator methods.
7050
- * @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
7051
7217
  */
7052
7218
  'unicorn/no-array-callback-reference'?: Linter.RuleEntry<[]>;
7053
7219
  /**
7054
7220
  * Prefer `for…of` over the `forEach` method.
7055
- * @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
7056
7222
  */
7057
7223
  'unicorn/no-array-for-each'?: Linter.RuleEntry<[]>;
7058
7224
  /**
7059
7225
  * Disallow using the `this` argument in array methods.
7060
- * @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
7061
7227
  */
7062
7228
  'unicorn/no-array-method-this-argument'?: Linter.RuleEntry<[]>;
7063
7229
  /**
7064
7230
  * Replaced by `unicorn/prefer-single-call` which covers more cases.
7065
- * @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
7066
7232
  * @deprecated
7067
7233
  */
7068
7234
  'unicorn/no-array-push-push'?: Linter.RuleEntry<[]>;
7069
7235
  /**
7070
7236
  * Disallow `Array#reduce()` and `Array#reduceRight()`.
7071
- * @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
7072
7238
  */
7073
7239
  'unicorn/no-array-reduce'?: Linter.RuleEntry<UnicornNoArrayReduce>;
7074
7240
  /**
7075
7241
  * Prefer `Array#toReversed()` over `Array#reverse()`.
7076
- * @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
7077
7243
  */
7078
7244
  'unicorn/no-array-reverse'?: Linter.RuleEntry<UnicornNoArrayReverse>;
7079
7245
  /**
7080
7246
  * Prefer `Array#toSorted()` over `Array#sort()`.
7081
- * @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
7082
7248
  */
7083
7249
  'unicorn/no-array-sort'?: Linter.RuleEntry<UnicornNoArraySort>;
7084
7250
  /**
7085
7251
  * Disallow member access from await expression.
7086
- * @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
7087
7253
  */
7088
7254
  'unicorn/no-await-expression-member'?: Linter.RuleEntry<[]>;
7089
7255
  /**
7090
7256
  * Disallow using `await` in `Promise` method parameters.
7091
- * @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
7092
7258
  */
7093
7259
  'unicorn/no-await-in-promise-methods'?: Linter.RuleEntry<[]>;
7094
7260
  /**
7095
7261
  * Do not use leading/trailing space between `console.log` parameters.
7096
- * @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
7097
7263
  */
7098
7264
  'unicorn/no-console-spaces'?: Linter.RuleEntry<[]>;
7099
7265
  /**
7100
7266
  * Do not use `document.cookie` directly.
7101
- * @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
7102
7268
  */
7103
7269
  'unicorn/no-document-cookie'?: Linter.RuleEntry<[]>;
7104
7270
  /**
7105
7271
  * Disallow empty files.
7106
- * @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
7107
7273
  */
7108
7274
  'unicorn/no-empty-file'?: Linter.RuleEntry<[]>;
7109
7275
  /**
7110
7276
  * Do not use a `for` loop that can be replaced with a `for-of` loop.
7111
- * @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
7112
7278
  */
7113
7279
  'unicorn/no-for-loop'?: Linter.RuleEntry<[]>;
7114
7280
  /**
7115
7281
  * Enforce the use of Unicode escapes instead of hexadecimal escapes.
7116
- * @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
7117
7283
  */
7118
7284
  'unicorn/no-hex-escape'?: Linter.RuleEntry<[]>;
7119
7285
  /**
7120
7286
  * Disallow immediate mutation after variable assignment.
7121
- * @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
7122
7288
  */
7123
7289
  'unicorn/no-immediate-mutation'?: Linter.RuleEntry<[]>;
7124
7290
  /**
7125
7291
  * Replaced by `unicorn/no-instanceof-builtins` which covers more cases.
7126
- * @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
7127
7293
  * @deprecated
7128
7294
  */
7129
7295
  'unicorn/no-instanceof-array'?: Linter.RuleEntry<[]>;
7130
7296
  /**
7131
7297
  * Disallow `instanceof` with built-in objects
7132
- * @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
7133
7299
  */
7134
7300
  'unicorn/no-instanceof-builtins'?: Linter.RuleEntry<UnicornNoInstanceofBuiltins>;
7135
7301
  /**
7136
7302
  * Disallow invalid options in `fetch()` and `new Request()`.
7137
- * @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
7138
7304
  */
7139
7305
  'unicorn/no-invalid-fetch-options'?: Linter.RuleEntry<[]>;
7140
7306
  /**
7141
7307
  * Prevent calling `EventTarget#removeEventListener()` with the result of an expression.
7142
- * @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
7143
7309
  */
7144
7310
  'unicorn/no-invalid-remove-event-listener'?: Linter.RuleEntry<[]>;
7145
7311
  /**
7146
7312
  * Disallow identifiers starting with `new` or `class`.
7147
- * @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
7148
7314
  */
7149
7315
  'unicorn/no-keyword-prefix'?: Linter.RuleEntry<UnicornNoKeywordPrefix>;
7150
7316
  /**
7151
7317
  * Replaced by `unicorn/no-unnecessary-slice-end` which covers more cases.
7152
- * @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
7153
7319
  * @deprecated
7154
7320
  */
7155
7321
  'unicorn/no-length-as-slice-end'?: Linter.RuleEntry<[]>;
7156
7322
  /**
7157
7323
  * Disallow `if` statements as the only statement in `if` blocks without `else`.
7158
- * @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
7159
7325
  */
7160
7326
  'unicorn/no-lonely-if'?: Linter.RuleEntry<[]>;
7161
7327
  /**
7162
7328
  * Disallow a magic number as the `depth` argument in `Array#flat(…).`
7163
- * @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
7164
7330
  */
7165
7331
  'unicorn/no-magic-array-flat-depth'?: Linter.RuleEntry<[]>;
7166
7332
  /**
7167
7333
  * Disallow named usage of default import and export.
7168
- * @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
7169
7335
  */
7170
7336
  'unicorn/no-named-default'?: Linter.RuleEntry<[]>;
7171
7337
  /**
7172
7338
  * Disallow negated conditions.
7173
- * @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
7174
7340
  */
7175
7341
  'unicorn/no-negated-condition'?: Linter.RuleEntry<[]>;
7176
7342
  /**
7177
7343
  * Disallow negated expression in equality check.
7178
- * @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
7179
7345
  */
7180
7346
  'unicorn/no-negation-in-equality-check'?: Linter.RuleEntry<[]>;
7181
7347
  /**
7182
7348
  * Disallow nested ternary expressions.
7183
- * @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
7184
7350
  */
7185
7351
  'unicorn/no-nested-ternary'?: Linter.RuleEntry<[]>;
7186
7352
  /**
7187
7353
  * Disallow `new Array()`.
7188
- * @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
7189
7355
  */
7190
7356
  'unicorn/no-new-array'?: Linter.RuleEntry<[]>;
7191
7357
  /**
7192
7358
  * Enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`.
7193
- * @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
7194
7360
  */
7195
7361
  'unicorn/no-new-buffer'?: Linter.RuleEntry<[]>;
7196
7362
  /**
7197
7363
  * Disallow the use of the `null` literal.
7198
- * @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
7199
7365
  */
7200
7366
  'unicorn/no-null'?: Linter.RuleEntry<UnicornNoNull>;
7201
7367
  /**
7202
7368
  * Disallow the use of objects as default parameters.
7203
- * @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
7204
7370
  */
7205
7371
  'unicorn/no-object-as-default-parameter'?: Linter.RuleEntry<[]>;
7206
7372
  /**
7207
7373
  * Disallow `process.exit()`.
7208
- * @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
7209
7375
  */
7210
7376
  'unicorn/no-process-exit'?: Linter.RuleEntry<[]>;
7211
7377
  /**
7212
7378
  * Disallow passing single-element arrays to `Promise` methods.
7213
- * @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
7214
7380
  */
7215
7381
  'unicorn/no-single-promise-in-promise-methods'?: Linter.RuleEntry<[]>;
7216
7382
  /**
7217
7383
  * Disallow classes that only have static members.
7218
- * @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
7219
7385
  */
7220
7386
  'unicorn/no-static-only-class'?: Linter.RuleEntry<[]>;
7221
7387
  /**
7222
7388
  * Disallow `then` property.
7223
- * @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
7224
7390
  */
7225
7391
  'unicorn/no-thenable'?: Linter.RuleEntry<[]>;
7226
7392
  /**
7227
7393
  * Disallow assigning `this` to a variable.
7228
- * @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
7229
7395
  */
7230
7396
  'unicorn/no-this-assignment'?: Linter.RuleEntry<[]>;
7231
7397
  /**
7232
7398
  * Disallow comparing `undefined` using `typeof`.
7233
- * @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
7234
7400
  */
7235
7401
  'unicorn/no-typeof-undefined'?: Linter.RuleEntry<UnicornNoTypeofUndefined>;
7236
7402
  /**
7237
7403
  * Disallow using `1` as the `depth` argument of `Array#flat()`.
7238
- * @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
7239
7405
  */
7240
7406
  'unicorn/no-unnecessary-array-flat-depth'?: Linter.RuleEntry<[]>;
7241
7407
  /**
7242
7408
  * Disallow using `.length` or `Infinity` as the `deleteCount` or `skipCount` argument of `Array#{splice,toSpliced}()`.
7243
- * @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
7244
7410
  */
7245
7411
  'unicorn/no-unnecessary-array-splice-count'?: Linter.RuleEntry<[]>;
7246
7412
  /**
7247
7413
  * Disallow awaiting non-promise values.
7248
- * @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
7249
7415
  */
7250
7416
  'unicorn/no-unnecessary-await'?: Linter.RuleEntry<[]>;
7251
7417
  /**
7252
7418
  * Enforce the use of built-in methods instead of unnecessary polyfills.
7253
- * @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
7254
7420
  */
7255
7421
  'unicorn/no-unnecessary-polyfills'?: Linter.RuleEntry<UnicornNoUnnecessaryPolyfills>;
7256
7422
  /**
7257
7423
  * Disallow using `.length` or `Infinity` as the `end` argument of `{Array,String,TypedArray}#slice()`.
7258
- * @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
7259
7425
  */
7260
7426
  'unicorn/no-unnecessary-slice-end'?: Linter.RuleEntry<[]>;
7261
7427
  /**
7262
7428
  * Disallow unreadable array destructuring.
7263
- * @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
7264
7430
  */
7265
7431
  'unicorn/no-unreadable-array-destructuring'?: Linter.RuleEntry<[]>;
7266
7432
  /**
7267
7433
  * Disallow unreadable IIFEs.
7268
- * @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
7269
7435
  */
7270
7436
  'unicorn/no-unreadable-iife'?: Linter.RuleEntry<[]>;
7271
7437
  /**
7272
7438
  * Disallow unused object properties.
7273
- * @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
7274
7440
  */
7275
7441
  'unicorn/no-unused-properties'?: Linter.RuleEntry<[]>;
7276
7442
  /**
7277
7443
  * Disallow useless values or fallbacks in `Set`, `Map`, `WeakSet`, or `WeakMap`.
7278
- * @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
7279
7445
  */
7280
7446
  'unicorn/no-useless-collection-argument'?: Linter.RuleEntry<[]>;
7281
7447
  /**
7282
7448
  * Disallow unnecessary `Error.captureStackTrace(…)`.
7283
- * @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
7284
7450
  */
7285
7451
  'unicorn/no-useless-error-capture-stack-trace'?: Linter.RuleEntry<[]>;
7286
7452
  /**
7287
7453
  * Disallow useless fallback when spreading in object literals.
7288
- * @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
7289
7455
  */
7290
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<[]>;
7291
7462
  /**
7292
7463
  * Disallow useless array length check.
7293
- * @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
7294
7465
  */
7295
7466
  'unicorn/no-useless-length-check'?: Linter.RuleEntry<[]>;
7296
7467
  /**
7297
7468
  * Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
7298
- * @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
7299
7470
  */
7300
7471
  'unicorn/no-useless-promise-resolve-reject'?: Linter.RuleEntry<[]>;
7301
7472
  /**
7302
7473
  * Disallow unnecessary spread.
7303
- * @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
7304
7475
  */
7305
7476
  'unicorn/no-useless-spread'?: Linter.RuleEntry<[]>;
7306
7477
  /**
7307
7478
  * Disallow useless case in switch statements.
7308
- * @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
7309
7480
  */
7310
7481
  'unicorn/no-useless-switch-case'?: Linter.RuleEntry<[]>;
7311
7482
  /**
7312
7483
  * Disallow useless `undefined`.
7313
- * @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
7314
7485
  */
7315
7486
  'unicorn/no-useless-undefined'?: Linter.RuleEntry<UnicornNoUselessUndefined>;
7316
7487
  /**
7317
7488
  * Disallow number literals with zero fractions or dangling dots.
7318
- * @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
7319
7490
  */
7320
7491
  'unicorn/no-zero-fractions'?: Linter.RuleEntry<[]>;
7321
7492
  /**
7322
7493
  * Enforce proper case for numeric literals.
7323
- * @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
7324
7495
  */
7325
7496
  'unicorn/number-literal-case'?: Linter.RuleEntry<UnicornNumberLiteralCase>;
7326
7497
  /**
7327
7498
  * Enforce the style of numeric separators by correctly grouping digits.
7328
- * @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
7329
7500
  */
7330
7501
  'unicorn/numeric-separators-style'?: Linter.RuleEntry<UnicornNumericSeparatorsStyle>;
7331
7502
  /**
7332
7503
  * Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.
7333
- * @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
7334
7505
  */
7335
7506
  'unicorn/prefer-add-event-listener'?: Linter.RuleEntry<UnicornPreferAddEventListener>;
7336
7507
  /**
7337
7508
  * Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.
7338
- * @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
7339
7510
  */
7340
7511
  'unicorn/prefer-array-find'?: Linter.RuleEntry<UnicornPreferArrayFind>;
7341
7512
  /**
7342
7513
  * Prefer `Array#flat()` over legacy techniques to flatten arrays.
7343
- * @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
7344
7515
  */
7345
7516
  'unicorn/prefer-array-flat'?: Linter.RuleEntry<UnicornPreferArrayFlat>;
7346
7517
  /**
7347
7518
  * Prefer `.flatMap(…)` over `.map(…).flat()`.
7348
- * @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
7349
7520
  */
7350
7521
  'unicorn/prefer-array-flat-map'?: Linter.RuleEntry<[]>;
7351
7522
  /**
7352
7523
  * Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.
7353
- * @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
7354
7525
  */
7355
7526
  'unicorn/prefer-array-index-of'?: Linter.RuleEntry<[]>;
7356
7527
  /**
7357
7528
  * Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.
7358
- * @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
7359
7530
  */
7360
7531
  'unicorn/prefer-array-some'?: Linter.RuleEntry<[]>;
7361
7532
  /**
7362
7533
  * Prefer `.at()` method for index access and `String#charAt()`.
7363
- * @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
7364
7535
  */
7365
7536
  'unicorn/prefer-at'?: Linter.RuleEntry<UnicornPreferAt>;
7366
7537
  /**
7367
7538
  * Prefer `BigInt` literals over the constructor.
7368
- * @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
7369
7540
  */
7370
7541
  'unicorn/prefer-bigint-literals'?: Linter.RuleEntry<[]>;
7371
7542
  /**
7372
7543
  * Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.
7373
- * @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
7374
7545
  */
7375
7546
  'unicorn/prefer-blob-reading-methods'?: Linter.RuleEntry<[]>;
7376
7547
  /**
7377
7548
  * Prefer class field declarations over `this` assignments in constructors.
7378
- * @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
7379
7550
  */
7380
7551
  'unicorn/prefer-class-fields'?: Linter.RuleEntry<[]>;
7381
7552
  /**
7382
7553
  * Prefer using `Element#classList.toggle()` to toggle class names.
7383
- * @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
7384
7555
  */
7385
7556
  'unicorn/prefer-classlist-toggle'?: Linter.RuleEntry<[]>;
7386
7557
  /**
7387
7558
  * Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.
7388
- * @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
7389
7560
  */
7390
7561
  'unicorn/prefer-code-point'?: Linter.RuleEntry<[]>;
7391
7562
  /**
7392
7563
  * Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.
7393
- * @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
7394
7565
  */
7395
7566
  'unicorn/prefer-date-now'?: Linter.RuleEntry<[]>;
7396
7567
  /**
7397
7568
  * Prefer default parameters over reassignment.
7398
- * @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
7399
7570
  */
7400
7571
  'unicorn/prefer-default-parameters'?: Linter.RuleEntry<[]>;
7401
7572
  /**
7402
7573
  * Prefer `Node#append()` over `Node#appendChild()`.
7403
- * @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
7404
7575
  */
7405
7576
  'unicorn/prefer-dom-node-append'?: Linter.RuleEntry<[]>;
7406
7577
  /**
7407
7578
  * Prefer using `.dataset` on DOM elements over calling attribute methods.
7408
- * @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
7409
7580
  */
7410
7581
  'unicorn/prefer-dom-node-dataset'?: Linter.RuleEntry<[]>;
7411
7582
  /**
7412
7583
  * Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.
7413
- * @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
7414
7585
  */
7415
7586
  'unicorn/prefer-dom-node-remove'?: Linter.RuleEntry<[]>;
7416
7587
  /**
7417
7588
  * Prefer `.textContent` over `.innerText`.
7418
- * @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
7419
7590
  */
7420
7591
  'unicorn/prefer-dom-node-text-content'?: Linter.RuleEntry<[]>;
7421
7592
  /**
7422
7593
  * Prefer `EventTarget` over `EventEmitter`.
7423
- * @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
7424
7595
  */
7425
7596
  'unicorn/prefer-event-target'?: Linter.RuleEntry<[]>;
7426
7597
  /**
7427
7598
  * Prefer `export…from` when re-exporting.
7428
- * @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
7429
7600
  */
7430
7601
  'unicorn/prefer-export-from'?: Linter.RuleEntry<UnicornPreferExportFrom>;
7431
7602
  /**
7432
7603
  * Prefer `globalThis` over `window`, `self`, and `global`.
7433
- * @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
7434
7605
  */
7435
7606
  'unicorn/prefer-global-this'?: Linter.RuleEntry<[]>;
7436
7607
  /**
7437
7608
  * Prefer `import.meta.{dirname,filename}` over legacy techniques for getting file paths.
7438
- * @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
7439
7610
  */
7440
7611
  'unicorn/prefer-import-meta-properties'?: Linter.RuleEntry<[]>;
7441
7612
  /**
7442
7613
  * Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.
7443
- * @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
7444
7615
  */
7445
7616
  'unicorn/prefer-includes'?: Linter.RuleEntry<[]>;
7446
7617
  /**
7447
7618
  * Prefer reading a JSON file as a buffer.
7448
- * @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
7449
7620
  */
7450
7621
  'unicorn/prefer-json-parse-buffer'?: Linter.RuleEntry<[]>;
7451
7622
  /**
7452
7623
  * Prefer `KeyboardEvent#key` over `KeyboardEvent#keyCode`.
7453
- * @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
7454
7625
  */
7455
7626
  'unicorn/prefer-keyboard-event-key'?: Linter.RuleEntry<[]>;
7456
7627
  /**
7457
7628
  * Prefer using a logical operator over a ternary.
7458
- * @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
7459
7630
  */
7460
7631
  'unicorn/prefer-logical-operator-over-ternary'?: Linter.RuleEntry<[]>;
7461
7632
  /**
7462
7633
  * Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
7463
- * @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
7464
7635
  */
7465
7636
  'unicorn/prefer-math-min-max'?: Linter.RuleEntry<[]>;
7466
7637
  /**
7467
7638
  * Enforce the use of `Math.trunc` instead of bitwise operators.
7468
- * @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
7469
7640
  */
7470
7641
  'unicorn/prefer-math-trunc'?: Linter.RuleEntry<[]>;
7471
7642
  /**
7472
7643
  * Prefer `.before()` over `.insertBefore()`, `.replaceWith()` over `.replaceChild()`, prefer one of `.before()`, `.after()`, `.append()` or `.prepend()` over `insertAdjacentText()` and `insertAdjacentElement()`.
7473
- * @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
7474
7645
  */
7475
7646
  'unicorn/prefer-modern-dom-apis'?: Linter.RuleEntry<[]>;
7476
7647
  /**
7477
7648
  * Prefer modern `Math` APIs over legacy patterns.
7478
- * @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
7479
7650
  */
7480
7651
  'unicorn/prefer-modern-math-apis'?: Linter.RuleEntry<[]>;
7481
7652
  /**
7482
7653
  * Prefer JavaScript modules (ESM) over CommonJS.
7483
- * @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
7484
7655
  */
7485
7656
  'unicorn/prefer-module'?: Linter.RuleEntry<[]>;
7486
7657
  /**
7487
7658
  * Prefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly.
7488
- * @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
7489
7660
  */
7490
7661
  'unicorn/prefer-native-coercion-functions'?: Linter.RuleEntry<[]>;
7491
7662
  /**
7492
7663
  * Prefer negative index over `.length - index` when possible.
7493
- * @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
7494
7665
  */
7495
7666
  'unicorn/prefer-negative-index'?: Linter.RuleEntry<[]>;
7496
7667
  /**
7497
7668
  * Prefer using the `node:` protocol when importing Node.js builtin modules.
7498
- * @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
7499
7670
  */
7500
7671
  'unicorn/prefer-node-protocol'?: Linter.RuleEntry<[]>;
7501
7672
  /**
7502
7673
  * Prefer `Number` static properties over global ones.
7503
- * @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
7504
7675
  */
7505
7676
  'unicorn/prefer-number-properties'?: Linter.RuleEntry<UnicornPreferNumberProperties>;
7506
7677
  /**
7507
7678
  * Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.
7508
- * @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
7509
7680
  */
7510
7681
  'unicorn/prefer-object-from-entries'?: Linter.RuleEntry<UnicornPreferObjectFromEntries>;
7511
7682
  /**
7512
7683
  * Prefer omitting the `catch` binding parameter.
7513
- * @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
7514
7685
  */
7515
7686
  'unicorn/prefer-optional-catch-binding'?: Linter.RuleEntry<[]>;
7516
7687
  /**
7517
7688
  * Prefer borrowing methods from the prototype instead of the instance.
7518
- * @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
7519
7690
  */
7520
7691
  'unicorn/prefer-prototype-methods'?: Linter.RuleEntry<[]>;
7521
7692
  /**
7522
7693
  * Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()` and `.getElementsByName()`.
7523
- * @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
7524
7695
  */
7525
7696
  'unicorn/prefer-query-selector'?: Linter.RuleEntry<[]>;
7526
7697
  /**
7527
7698
  * Prefer `Reflect.apply()` over `Function#apply()`.
7528
- * @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
7529
7700
  */
7530
7701
  'unicorn/prefer-reflect-apply'?: Linter.RuleEntry<[]>;
7531
7702
  /**
7532
7703
  * Prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`.
7533
- * @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
7534
7705
  */
7535
7706
  'unicorn/prefer-regexp-test'?: Linter.RuleEntry<[]>;
7536
7707
  /**
7537
7708
  * Prefer `Response.json()` over `new Response(JSON.stringify())`.
7538
- * @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
7539
7710
  */
7540
7711
  'unicorn/prefer-response-static-json'?: Linter.RuleEntry<[]>;
7541
7712
  /**
7542
7713
  * Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
7543
- * @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
7544
7715
  */
7545
7716
  'unicorn/prefer-set-has'?: Linter.RuleEntry<[]>;
7546
7717
  /**
7547
7718
  * Prefer using `Set#size` instead of `Array#length`.
7548
- * @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
7549
7720
  */
7550
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<[]>;
7551
7727
  /**
7552
7728
  * Enforce combining multiple `Array#push()`, `Element#classList.{add,remove}()`, and `importScripts()` into one call.
7553
- * @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
7554
7730
  */
7555
7731
  'unicorn/prefer-single-call'?: Linter.RuleEntry<UnicornPreferSingleCall>;
7556
7732
  /**
7557
7733
  * Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()` and `String#split('')`.
7558
- * @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
7559
7735
  */
7560
7736
  'unicorn/prefer-spread'?: Linter.RuleEntry<[]>;
7561
7737
  /**
7562
7738
  * Prefer using the `String.raw` tag to avoid escaping `\`.
7563
- * @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
7564
7740
  */
7565
7741
  'unicorn/prefer-string-raw'?: Linter.RuleEntry<[]>;
7566
7742
  /**
7567
7743
  * Prefer `String#replaceAll()` over regex searches with the global flag.
7568
- * @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
7569
7745
  */
7570
7746
  'unicorn/prefer-string-replace-all'?: Linter.RuleEntry<[]>;
7571
7747
  /**
7572
7748
  * Prefer `String#slice()` over `String#substr()` and `String#substring()`.
7573
- * @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
7574
7750
  */
7575
7751
  'unicorn/prefer-string-slice'?: Linter.RuleEntry<[]>;
7576
7752
  /**
7577
7753
  * Prefer `String#startsWith()` & `String#endsWith()` over `RegExp#test()`.
7578
- * @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
7579
7755
  */
7580
7756
  'unicorn/prefer-string-starts-ends-with'?: Linter.RuleEntry<[]>;
7581
7757
  /**
7582
7758
  * Prefer `String#trimStart()` / `String#trimEnd()` over `String#trimLeft()` / `String#trimRight()`.
7583
- * @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
7584
7760
  */
7585
7761
  'unicorn/prefer-string-trim-start-end'?: Linter.RuleEntry<[]>;
7586
7762
  /**
7587
7763
  * Prefer using `structuredClone` to create a deep clone.
7588
- * @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
7589
7765
  */
7590
7766
  'unicorn/prefer-structured-clone'?: Linter.RuleEntry<UnicornPreferStructuredClone>;
7591
7767
  /**
7592
7768
  * Prefer `switch` over multiple `else-if`.
7593
- * @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
7594
7770
  */
7595
7771
  'unicorn/prefer-switch'?: Linter.RuleEntry<UnicornPreferSwitch>;
7596
7772
  /**
7597
7773
  * Prefer ternary expressions over simple `if-else` statements.
7598
- * @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
7599
7775
  */
7600
7776
  'unicorn/prefer-ternary'?: Linter.RuleEntry<UnicornPreferTernary>;
7601
7777
  /**
7602
7778
  * Prefer top-level await over top-level promises and async function calls.
7603
- * @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
7604
7780
  */
7605
7781
  'unicorn/prefer-top-level-await'?: Linter.RuleEntry<[]>;
7606
7782
  /**
7607
7783
  * Enforce throwing `TypeError` in type checking conditions.
7608
- * @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
7609
7785
  */
7610
7786
  'unicorn/prefer-type-error'?: Linter.RuleEntry<[]>;
7611
7787
  /**
7612
7788
  * Prevent abbreviations.
7613
- * @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
7614
7790
  */
7615
7791
  'unicorn/prevent-abbreviations'?: Linter.RuleEntry<UnicornPreventAbbreviations>;
7616
7792
  /**
7617
7793
  * Enforce consistent relative URL style.
7618
- * @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
7619
7795
  */
7620
7796
  'unicorn/relative-url-style'?: Linter.RuleEntry<UnicornRelativeUrlStyle>;
7621
7797
  /**
7622
7798
  * Enforce using the separator argument with `Array#join()`.
7623
- * @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
7624
7800
  */
7625
7801
  'unicorn/require-array-join-separator'?: Linter.RuleEntry<[]>;
7626
7802
  /**
7627
7803
  * Require non-empty module attributes for imports and exports
7628
- * @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
7629
7805
  */
7630
7806
  'unicorn/require-module-attributes'?: Linter.RuleEntry<[]>;
7631
7807
  /**
7632
7808
  * Require non-empty specifier list in import and export statements.
7633
- * @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
7634
7810
  */
7635
7811
  'unicorn/require-module-specifiers'?: Linter.RuleEntry<[]>;
7636
7812
  /**
7637
7813
  * Enforce using the digits argument with `Number#toFixed()`.
7638
- * @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
7639
7815
  */
7640
7816
  'unicorn/require-number-to-fixed-digits-argument'?: Linter.RuleEntry<[]>;
7641
7817
  /**
7642
7818
  * Enforce using the `targetOrigin` argument with `window.postMessage()`.
7643
- * @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
7644
7820
  */
7645
7821
  'unicorn/require-post-message-target-origin'?: Linter.RuleEntry<[]>;
7646
7822
  /**
7647
7823
  * Enforce better string content.
7648
- * @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
7649
7825
  */
7650
7826
  'unicorn/string-content'?: Linter.RuleEntry<UnicornStringContent>;
7651
7827
  /**
7652
7828
  * Enforce consistent brace style for `case` clauses.
7653
- * @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
7654
7830
  */
7655
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<[]>;
7656
7837
  /**
7657
7838
  * Fix whitespace-insensitive template indentation.
7658
- * @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
7659
7840
  */
7660
7841
  'unicorn/template-indent'?: Linter.RuleEntry<UnicornTemplateIndent>;
7661
7842
  /**
7662
7843
  * Enforce consistent case for text encoding identifiers.
7663
- * @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
7664
7845
  */
7665
7846
  'unicorn/text-encoding-identifier-case'?: Linter.RuleEntry<UnicornTextEncodingIdentifierCase>;
7666
7847
  /**
7667
7848
  * Require `new` when creating an error.
7668
- * @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
7669
7850
  */
7670
7851
  'unicorn/throw-new-error'?: Linter.RuleEntry<[]>;
7671
7852
  /**
@@ -11131,13 +11312,15 @@ type LogicalAssignmentOperators = (([] | ["always"] | ["always", {
11131
11312
  }] | ["never"]) & unknown[]); // ----- markdown/fenced-code-language -----
11132
11313
  type MarkdownFencedCodeLanguage = [] | [{
11133
11314
  required?: string[];
11134
- }]; // ----- markdown/heading-increment -----
11315
+ }]; // ----- markdown/fenced-code-meta -----
11316
+ type MarkdownFencedCodeMeta = [] | [("always" | "never")]; // ----- markdown/heading-increment -----
11135
11317
  type MarkdownHeadingIncrement = [] | [{
11136
11318
  frontmatterTitle?: string;
11137
11319
  }]; // ----- markdown/no-duplicate-definitions -----
11138
11320
  type MarkdownNoDuplicateDefinitions = [] | [{
11139
11321
  allowDefinitions?: string[];
11140
11322
  allowFootnoteDefinitions?: string[];
11323
+ checkFootnoteDefinitions?: boolean;
11141
11324
  }]; // ----- markdown/no-duplicate-headings -----
11142
11325
  type MarkdownNoDuplicateHeadings = [] | [{
11143
11326
  checkSiblingsOnly?: boolean;
@@ -11170,6 +11353,7 @@ type MarkdownNoSpaceInEmphasis = [] | [{
11170
11353
  type MarkdownNoUnusedDefinitions = [] | [{
11171
11354
  allowDefinitions?: string[];
11172
11355
  allowFootnoteDefinitions?: string[];
11356
+ checkFootnoteDefinitions?: boolean;
11173
11357
  }]; // ----- markdown/table-column-count -----
11174
11358
  type MarkdownTableColumnCount = [] | [{
11175
11359
  checkMissingCells?: boolean;
@@ -11924,26 +12108,132 @@ type OperatorLinebreak = [] | [("after" | "before" | "none" | null)] | [("after"
11924
12108
  overrides?: {
11925
12109
  [k: string]: ("after" | "before" | "none" | "ignore") | undefined;
11926
12110
  };
11927
- }]; // ----- padded-blocks -----
11928
- type PaddedBlocks = [] | [(("always" | "never") | {
11929
- blocks?: ("always" | "never");
11930
- switches?: ("always" | "never");
11931
- classes?: ("always" | "never");
11932
- })] | [(("always" | "never") | {
11933
- blocks?: ("always" | "never");
11934
- switches?: ("always" | "never");
11935
- classes?: ("always" | "never");
11936
- }), {
11937
- allowSingleLineBlocks?: boolean;
11938
- }]; // ----- padding-line-between-statements -----
11939
- type _PaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
11940
- 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"))[]]);
11941
- type PaddingLineBetweenStatements = {
11942
- blankLine: _PaddingLineBetweenStatementsPaddingType;
11943
- prev: _PaddingLineBetweenStatementsStatementType;
11944
- next: _PaddingLineBetweenStatementsStatementType;
11945
- }[]; // ----- perfectionist/sort-array-includes -----
11946
- 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 = {
11947
12237
  fallbackSort?: {
11948
12238
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
11949
12239
  order?: ("asc" | "desc");
@@ -12015,7 +12305,7 @@ type PerfectionistSortArrayIncludes = {
12015
12305
  order?: ("asc" | "desc");
12016
12306
  })[];
12017
12307
  newlinesBetween?: ("ignore" | number);
12018
- useConfigurationIf?: {
12308
+ useConfigurationIf: {
12019
12309
  allNamesMatchPattern?: (({
12020
12310
  pattern: string;
12021
12311
  flags?: string;
@@ -12023,6 +12313,7 @@ type PerfectionistSortArrayIncludes = {
12023
12313
  pattern: string;
12024
12314
  flags?: string;
12025
12315
  } | string));
12316
+ matchesAstSelector?: string;
12026
12317
  };
12027
12318
  partitionByComment?: (boolean | (({
12028
12319
  pattern: string;
@@ -12048,7 +12339,7 @@ type PerfectionistSortArrayIncludes = {
12048
12339
  });
12049
12340
  partitionByNewLine?: boolean;
12050
12341
  }[]; // ----- perfectionist/sort-classes -----
12051
- type PerfectionistSortClasses = [] | [{
12342
+ type PerfectionistSortClasses = {
12052
12343
  fallbackSort?: {
12053
12344
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12054
12345
  order?: ("asc" | "desc");
@@ -12165,6 +12456,16 @@ type PerfectionistSortClasses = [] | [{
12165
12456
  order?: ("asc" | "desc");
12166
12457
  })[];
12167
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
+ };
12168
12469
  useExperimentalDependencyDetection?: boolean;
12169
12470
  ignoreCallbackDependenciesPatterns?: (({
12170
12471
  pattern: string;
@@ -12196,7 +12497,7 @@ type PerfectionistSortClasses = [] | [{
12196
12497
  } | string)));
12197
12498
  });
12198
12499
  partitionByNewLine?: boolean;
12199
- }]; // ----- perfectionist/sort-decorators -----
12500
+ }[]; // ----- perfectionist/sort-decorators -----
12200
12501
  type PerfectionistSortDecorators = {
12201
12502
  fallbackSort?: {
12202
12503
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
@@ -12295,7 +12596,7 @@ type PerfectionistSortDecorators = {
12295
12596
  });
12296
12597
  partitionByNewLine?: boolean;
12297
12598
  }[]; // ----- perfectionist/sort-enums -----
12298
- type PerfectionistSortEnums = [] | [{
12599
+ type PerfectionistSortEnums = {
12299
12600
  fallbackSort?: {
12300
12601
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12301
12602
  order?: ("asc" | "desc");
@@ -12385,6 +12686,16 @@ type PerfectionistSortEnums = [] | [{
12385
12686
  order?: ("asc" | "desc");
12386
12687
  })[];
12387
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
+ };
12388
12699
  sortByValue?: ("always" | "ifNumericEnum" | "never");
12389
12700
  useExperimentalDependencyDetection?: boolean;
12390
12701
  partitionByComment?: (boolean | (({
@@ -12410,7 +12721,7 @@ type PerfectionistSortEnums = [] | [{
12410
12721
  } | string)));
12411
12722
  });
12412
12723
  partitionByNewLine?: boolean;
12413
- }]; // ----- perfectionist/sort-export-attributes -----
12724
+ }[]; // ----- perfectionist/sort-export-attributes -----
12414
12725
  type PerfectionistSortExportAttributes = {
12415
12726
  fallbackSort?: {
12416
12727
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
@@ -12480,6 +12791,16 @@ type PerfectionistSortExportAttributes = {
12480
12791
  order?: ("asc" | "desc");
12481
12792
  })[];
12482
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
+ };
12483
12804
  partitionByComment?: (boolean | (({
12484
12805
  pattern: string;
12485
12806
  flags?: string;
@@ -12672,6 +12993,16 @@ type PerfectionistSortHeritageClauses = {
12672
12993
  order?: ("asc" | "desc");
12673
12994
  })[];
12674
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
+ };
12675
13006
  partitionByNewLine?: boolean;
12676
13007
  partitionByComment?: (boolean | (({
12677
13008
  pattern: string;
@@ -12765,6 +13096,16 @@ type PerfectionistSortImportAttributes = {
12765
13096
  order?: ("asc" | "desc");
12766
13097
  })[];
12767
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
+ };
12768
13109
  partitionByComment?: (boolean | (({
12769
13110
  pattern: string;
12770
13111
  flags?: string;
@@ -13033,6 +13374,7 @@ type PerfectionistSortInterfaces = {
13033
13374
  pattern: string;
13034
13375
  flags?: string;
13035
13376
  } | string));
13377
+ matchesAstSelector?: string;
13036
13378
  declarationMatchesPattern?: (({
13037
13379
  scope?: ("shallow" | "deep");
13038
13380
  pattern: string;
@@ -13139,6 +13481,16 @@ type PerfectionistSortIntersectionTypes = {
13139
13481
  order?: ("asc" | "desc");
13140
13482
  })[];
13141
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
+ };
13142
13494
  partitionByComment?: (boolean | (({
13143
13495
  pattern: string;
13144
13496
  flags?: string;
@@ -13267,6 +13619,7 @@ type PerfectionistSortJsxProps = {
13267
13619
  pattern: string;
13268
13620
  flags?: string;
13269
13621
  } | string));
13622
+ matchesAstSelector?: string;
13270
13623
  tagMatchesPattern?: (({
13271
13624
  pattern: string;
13272
13625
  flags?: string;
@@ -13354,6 +13707,7 @@ type PerfectionistSortMaps = {
13354
13707
  pattern: string;
13355
13708
  flags?: string;
13356
13709
  } | string));
13710
+ matchesAstSelector?: string;
13357
13711
  };
13358
13712
  partitionByComment?: (boolean | (({
13359
13713
  pattern: string;
@@ -13575,6 +13929,16 @@ type PerfectionistSortNamedExports = {
13575
13929
  order?: ("asc" | "desc");
13576
13930
  })[];
13577
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
+ };
13578
13942
  ignoreAlias?: boolean;
13579
13943
  partitionByComment?: (boolean | (({
13580
13944
  pattern: string;
@@ -13675,6 +14039,16 @@ type PerfectionistSortNamedImports = {
13675
14039
  order?: ("asc" | "desc");
13676
14040
  })[];
13677
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
+ };
13678
14052
  ignoreAlias?: boolean;
13679
14053
  partitionByComment?: (boolean | (({
13680
14054
  pattern: string;
@@ -13822,6 +14196,7 @@ type PerfectionistSortObjectTypes = {
13822
14196
  pattern: string;
13823
14197
  flags?: string;
13824
14198
  } | string));
14199
+ matchesAstSelector?: string;
13825
14200
  declarationMatchesPattern?: (({
13826
14201
  scope?: ("shallow" | "deep");
13827
14202
  pattern: string;
@@ -13988,6 +14363,7 @@ type PerfectionistSortObjects = {
13988
14363
  pattern: string;
13989
14364
  flags?: string;
13990
14365
  } | string));
14366
+ matchesAstSelector?: string;
13991
14367
  declarationMatchesPattern?: (({
13992
14368
  scope?: ("shallow" | "deep");
13993
14369
  pattern: string;
@@ -13998,6 +14374,7 @@ type PerfectionistSortObjects = {
13998
14374
  flags?: string;
13999
14375
  } | string));
14000
14376
  };
14377
+ partitionByComputedKey?: boolean;
14001
14378
  styledComponents?: boolean;
14002
14379
  useExperimentalDependencyDetection?: boolean;
14003
14380
  partitionByComment?: (boolean | (({
@@ -14104,6 +14481,7 @@ type PerfectionistSortSets = {
14104
14481
  pattern: string;
14105
14482
  flags?: string;
14106
14483
  } | string));
14484
+ matchesAstSelector?: string;
14107
14485
  };
14108
14486
  partitionByComment?: (boolean | (({
14109
14487
  pattern: string;
@@ -14213,6 +14591,16 @@ type PerfectionistSortUnionTypes = {
14213
14591
  order?: ("asc" | "desc");
14214
14592
  })[];
14215
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
+ };
14216
14604
  partitionByComment?: (boolean | (({
14217
14605
  pattern: string;
14218
14606
  flags?: string;
@@ -14237,7 +14625,7 @@ type PerfectionistSortUnionTypes = {
14237
14625
  });
14238
14626
  partitionByNewLine?: boolean;
14239
14627
  }[]; // ----- perfectionist/sort-variable-declarations -----
14240
- type PerfectionistSortVariableDeclarations = [] | [{
14628
+ type PerfectionistSortVariableDeclarations = {
14241
14629
  fallbackSort?: {
14242
14630
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
14243
14631
  order?: ("asc" | "desc");
@@ -14309,6 +14697,16 @@ type PerfectionistSortVariableDeclarations = [] | [{
14309
14697
  order?: ("asc" | "desc");
14310
14698
  })[];
14311
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
+ };
14312
14710
  useExperimentalDependencyDetection?: boolean;
14313
14711
  partitionByComment?: (boolean | (({
14314
14712
  pattern: string;
@@ -14333,7 +14731,7 @@ type PerfectionistSortVariableDeclarations = [] | [{
14333
14731
  } | string)));
14334
14732
  });
14335
14733
  partitionByNewLine?: boolean;
14336
- }]; // ----- pnpm/json-enforce-catalog -----
14734
+ }[]; // ----- pnpm/json-enforce-catalog -----
14337
14735
  type PnpmJsonEnforceCatalog = [] | [{
14338
14736
  allowedProtocols?: string[];
14339
14737
  autofix?: boolean;
@@ -14421,143 +14819,54 @@ type Quotes = [] | [("single" | "double" | "backtick")] | [("single" | "double"
14421
14819
  avoidEscape?: boolean;
14422
14820
  allowTemplateLiterals?: boolean;
14423
14821
  })]; // ----- radix -----
14424
- 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 -----
14425
14829
  type ReactDomNoUnknownProperty = [] | [{
14426
14830
  ignore?: string[];
14427
14831
  requireDataLowercase?: boolean;
14428
- }]; // ----- react-hooks/automatic-effect-dependencies -----
14429
- type ReactHooksAutomaticEffectDependencies = [] | [{
14430
- [k: string]: unknown | undefined;
14431
- }]; // ----- react-hooks/capitalized-calls -----
14432
- type ReactHooksCapitalizedCalls = [] | [{
14433
- [k: string]: unknown | undefined;
14434
- }]; // ----- react-hooks/component-hook-factories -----
14435
- type ReactHooksComponentHookFactories = [] | [{
14436
- [k: string]: unknown | undefined;
14437
- }]; // ----- react-hooks/config -----
14438
- type ReactHooksConfig = [] | [{
14439
- [k: string]: unknown | undefined;
14440
- }]; // ----- react-hooks/error-boundaries -----
14441
- type ReactHooksErrorBoundaries = [] | [{
14442
- [k: string]: unknown | undefined;
14443
- }]; // ----- react-hooks/exhaustive-deps -----
14444
- type ReactHooksExhaustiveDeps = [] | [{
14832
+ }]; // ----- react/exhaustive-deps -----
14833
+ type ReactExhaustiveDeps = [] | [{
14445
14834
  additionalHooks?: string;
14446
14835
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
14447
14836
  experimental_autoDependenciesHooks?: string[];
14448
14837
  requireExplicitEffectDeps?: boolean;
14449
- }]; // ----- react-hooks/fbt -----
14450
- type ReactHooksFbt = [] | [{
14451
- [k: string]: unknown | undefined;
14452
- }]; // ----- react-hooks/fire -----
14453
- type ReactHooksFire = [] | [{
14454
- [k: string]: unknown | undefined;
14455
- }]; // ----- react-hooks/gating -----
14456
- type ReactHooksGating = [] | [{
14457
- [k: string]: unknown | undefined;
14458
- }]; // ----- react-hooks/globals -----
14459
- type ReactHooksGlobals = [] | [{
14460
- [k: string]: unknown | undefined;
14461
- }]; // ----- react-hooks/hooks -----
14462
- type ReactHooksHooks = [] | [{
14463
- [k: string]: unknown | undefined;
14464
- }]; // ----- react-hooks/immutability -----
14465
- type ReactHooksImmutability = [] | [{
14466
- [k: string]: unknown | undefined;
14467
- }]; // ----- react-hooks/incompatible-library -----
14468
- type ReactHooksIncompatibleLibrary = [] | [{
14469
- [k: string]: unknown | undefined;
14470
- }]; // ----- react-hooks/invariant -----
14471
- type ReactHooksInvariant = [] | [{
14472
- [k: string]: unknown | undefined;
14473
- }]; // ----- react-hooks/memoized-effect-dependencies -----
14474
- type ReactHooksMemoizedEffectDependencies = [] | [{
14475
- [k: string]: unknown | undefined;
14476
- }]; // ----- react-hooks/no-deriving-state-in-effects -----
14477
- type ReactHooksNoDerivingStateInEffects = [] | [{
14478
- [k: string]: unknown | undefined;
14479
- }]; // ----- react-hooks/preserve-manual-memoization -----
14480
- type ReactHooksPreserveManualMemoization = [] | [{
14481
- [k: string]: unknown | undefined;
14482
- }]; // ----- react-hooks/purity -----
14483
- type ReactHooksPurity = [] | [{
14484
- [k: string]: unknown | undefined;
14485
- }]; // ----- react-hooks/refs -----
14486
- type ReactHooksRefs = [] | [{
14487
- [k: string]: unknown | undefined;
14488
- }]; // ----- react-hooks/rule-suppression -----
14489
- type ReactHooksRuleSuppression = [] | [{
14490
- [k: string]: unknown | undefined;
14491
- }]; // ----- react-hooks/rules-of-hooks -----
14492
- 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 = [] | [{
14493
14847
  additionalHooks?: string;
14494
- }]; // ----- react-hooks/set-state-in-effect -----
14495
- type ReactHooksSetStateInEffect = [] | [{
14496
- [k: string]: unknown | undefined;
14497
- }]; // ----- react-hooks/set-state-in-render -----
14498
- type ReactHooksSetStateInRender = [] | [{
14499
- [k: string]: unknown | undefined;
14500
- }]; // ----- react-hooks/static-components -----
14501
- type ReactHooksStaticComponents = [] | [{
14502
- [k: string]: unknown | undefined;
14503
- }]; // ----- react-hooks/syntax -----
14504
- type ReactHooksSyntax = [] | [{
14505
- [k: string]: unknown | undefined;
14506
- }]; // ----- react-hooks/todo -----
14507
- type ReactHooksTodo = [] | [{
14508
- [k: string]: unknown | undefined;
14509
- }]; // ----- react-hooks/unsupported-syntax -----
14510
- type ReactHooksUnsupportedSyntax = [] | [{
14511
- [k: string]: unknown | undefined;
14512
- }]; // ----- react-hooks/use-memo -----
14513
- type ReactHooksUseMemo = [] | [{
14514
- [k: string]: unknown | undefined;
14515
- }]; // ----- react-hooks/void-use-memo -----
14516
- type ReactHooksVoidUseMemo = [] | [{
14517
- [k: string]: unknown | undefined;
14518
- }]; // ----- react-naming-convention/component-name -----
14519
- type ReactNamingConventionComponentName = [] | [(("PascalCase" | "CONSTANT_CASE") | {
14520
- allowAllCaps?: boolean;
14521
- excepts?: string[];
14522
- rule?: ("PascalCase" | "CONSTANT_CASE");
14523
- })]; // ----- react-naming-convention/filename -----
14524
- type ReactNamingConventionFilename = [] | [(("PascalCase" | "camelCase" | "kebab-case" | "snake_case") | {
14525
- excepts?: string[];
14526
- extensions?: string[];
14527
- rule?: ("PascalCase" | "camelCase" | "kebab-case" | "snake_case");
14528
- })]; // ----- react-naming-convention/filename-extension -----
14529
- type ReactNamingConventionFilenameExtension = [] | [(("always" | "as-needed") | {
14530
- allow?: ("always" | "as-needed");
14531
- extensions?: string[];
14532
- ignoreFilesWithoutCode?: boolean;
14533
- })]; // ----- react-naming-convention/use-state -----
14534
- type ReactNamingConventionUseState = [] | [{
14848
+ }]; // ----- react/use-state -----
14849
+ type ReactUseState = [] | [{
14535
14850
  enforceAssignment?: boolean;
14851
+ enforceLazyInitialization?: boolean;
14536
14852
  enforceSetterName?: boolean;
14537
- }]; // ----- react-refresh/only-export-components -----
14538
- type ReactRefreshOnlyExportComponents = [] | [{
14539
- extraHOCs?: string[];
14540
- allowExportNames?: string[];
14541
- allowConstantExport?: boolean;
14542
- checkJS?: boolean;
14543
- }]; // ----- react/jsx-shorthand-boolean -----
14544
- type ReactJsxShorthandBoolean = [] | [(-1 | 1)]; // ----- react/jsx-shorthand-fragment -----
14545
- type ReactJsxShorthandFragment = [] | [(-1 | 1)]; // ----- react/no-forbidden-props -----
14546
- type ReactNoForbiddenProps = [] | [{
14547
- forbid?: (string | {
14548
- excludedNodes?: string[];
14549
- prop: string;
14550
- } | {
14551
- includedNodes?: string[];
14552
- prop: string;
14553
- })[];
14554
- }]; // ----- react/no-unstable-default-props -----
14555
- 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 = [] | [{
14556
14861
  safeDefaultProps?: string[];
14557
- }]; // ----- react/no-useless-fragment -----
14558
- type ReactNoUselessFragment = [] | [{
14559
- allowEmptyFragment?: boolean;
14560
- 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;
14561
14870
  }]; // ----- regexp/hexadecimal-escape -----
14562
14871
  type RegexpHexadecimalEscape = [] | [("always" | "never")]; // ----- regexp/letter-case -----
14563
14872
  type RegexpLetterCase = [] | [{
@@ -15995,6 +16304,13 @@ type SvelteIndent = [] | [{
15995
16304
  type SvelteMaxAttributesPerLine = [] | [{
15996
16305
  multiline?: number;
15997
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;
15998
16314
  }]; // ----- svelte/mustache-spacing -----
15999
16315
  type SvelteMustacheSpacing = [] | [{
16000
16316
  textExpressions?: ("never" | "always");
@@ -16178,6 +16494,9 @@ type TestRequireMockTypeParameters = [] | [{
16178
16494
  }]; // ----- test/require-top-level-describe -----
16179
16495
  type TestRequireTopLevelDescribe = [] | [{
16180
16496
  maxNumberOfTopLevelDescribes?: number;
16497
+ }]; // ----- test/unbound-method -----
16498
+ type TestUnboundMethod = [] | [{
16499
+ ignoreStatic?: boolean;
16181
16500
  }]; // ----- test/valid-expect -----
16182
16501
  type TestValidExpect = [] | [{
16183
16502
  alwaysAwait?: boolean;
@@ -17222,6 +17541,7 @@ type UnicornEscapeCase = [] | [("uppercase" | "lowercase")]; // ----- unicorn/ex
17222
17541
  type UnicornExpiringTodoComments = [] | [{
17223
17542
  terms?: string[];
17224
17543
  ignore?: unknown[];
17544
+ ignoreDates?: boolean;
17225
17545
  ignoreDatesOnPullRequests?: boolean;
17226
17546
  allowWarningComments?: boolean;
17227
17547
  date?: string;
@@ -17378,6 +17698,9 @@ type _UnicornPreventAbbreviationsReplacements = (false | _UnicornPreventAbbrevia
17378
17698
  interface _UnicornPreventAbbreviations_Abbreviations {
17379
17699
  [k: string]: _UnicornPreventAbbreviationsReplacements | undefined;
17380
17700
  }
17701
+ interface _UnicornPreventAbbreviations_BooleanObject {
17702
+ [k: string]: boolean | undefined;
17703
+ }
17381
17704
  interface _UnicornPreventAbbreviations_BooleanObject {
17382
17705
  [k: string]: boolean | undefined;
17383
17706
  } // ----- unicorn/relative-url-style -----
@@ -19179,9 +19502,7 @@ interface OptionsTailwindCSS extends OptionsOverrides {
19179
19502
  */
19180
19503
  customClassNames?: boolean;
19181
19504
  }
19182
- interface OptionsReact extends OptionsOverrides {
19183
- reactCompiler?: boolean;
19184
- }
19505
+ interface OptionsReact extends OptionsOverrides {}
19185
19506
  interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19186
19507
  /**
19187
19508
  * Enable gitignore support.
@@ -19338,7 +19659,6 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19338
19659
  *
19339
19660
  * Requires installing:
19340
19661
  * - `@eslint-react/eslint-plugin`
19341
- * - `eslint-plugin-react-hooks`
19342
19662
  * - `eslint-plugin-react-refresh`
19343
19663
  *
19344
19664
  * @default false
@@ -19427,8 +19747,9 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19427
19747
  declare const defaultPluginRenaming: {
19428
19748
  "@eslint-react": string;
19429
19749
  "@eslint-react/dom": string;
19430
- "@eslint-react/hooks-extra": string;
19431
19750
  "@eslint-react/naming-convention": string;
19751
+ "@eslint-react/rsc": string;
19752
+ "@eslint-react/web-api": string;
19432
19753
  "@next/next": string;
19433
19754
  "@stylistic": string;
19434
19755
  "@typescript-eslint": string;