@kirklin/eslint-config 8.1.0 → 8.2.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.
package/dist/index.d.mts CHANGED
@@ -123,10 +123,15 @@ interface RuleOptions {
123
123
  */
124
124
  'angular-template/no-negated-async'?: Linter.RuleEntry<[]>;
125
125
  /**
126
- * Denies nesting of <p> and <a> tags.
126
+ * Denies nesting of `<p>` and `<a>` tags.
127
127
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/no-nested-tags.md
128
128
  */
129
129
  'angular-template/no-nested-tags'?: Linter.RuleEntry<[]>;
130
+ /**
131
+ * Disallows the non-null assertion operator (!) in templates
132
+ * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/no-non-null-assertion.md
133
+ */
134
+ 'angular-template/no-non-null-assertion'?: Linter.RuleEntry<[]>;
130
135
  /**
131
136
  * Ensures that the `tabindex` attribute is not positive
132
137
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/docs/rules/no-positive-tabindex.md
@@ -217,6 +222,11 @@ interface RuleOptions {
217
222
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-selector.md
218
223
  */
219
224
  'angular/component-selector'?: Linter.RuleEntry<AngularComponentSelector>;
225
+ /**
226
+ * Ensures that computed() returns a value. Omitting the value is likely a mistake.
227
+ * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/computed-must-return.md
228
+ */
229
+ 'angular/computed-must-return'?: Linter.RuleEntry<[]>;
220
230
  /**
221
231
  * Ensures consistent usage of `styles`/`styleUrls`/`styleUrl` within Component metadata
222
232
  * @see https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/consistent-component-styles.md
@@ -871,6 +881,87 @@ interface RuleOptions {
871
881
  * @see https://eslint.org/docs/latest/rules/dot-notation
872
882
  */
873
883
  'dot-notation'?: Linter.RuleEntry<DotNotation>;
884
+ /**
885
+ * Bans a list of dependencies from being used
886
+ * @see https://github.com/es-tooling/eslint-plugin-depend/blob/main/docs/rules/ban-dependencies.md
887
+ */
888
+ 'e18e/ban-dependencies'?: Linter.RuleEntry<E18EBanDependencies>;
889
+ /**
890
+ * Prefer optimized alternatives to `indexOf()` equality checks
891
+ */
892
+ 'e18e/no-indexof-equality'?: Linter.RuleEntry<[]>;
893
+ /**
894
+ * Prefer Array.prototype.at() over length-based indexing
895
+ */
896
+ 'e18e/prefer-array-at'?: Linter.RuleEntry<[]>;
897
+ /**
898
+ * Prefer Array.prototype.fill() over Array.from or map with constant values
899
+ */
900
+ 'e18e/prefer-array-fill'?: Linter.RuleEntry<[]>;
901
+ /**
902
+ * Prefer Array.from(iterable, mapper) over [...iterable].map(mapper) to avoid intermediate array allocation
903
+ */
904
+ 'e18e/prefer-array-from-map'?: Linter.RuleEntry<[]>;
905
+ /**
906
+ * Prefer Array.some() over Array.find() when checking for element existence
907
+ */
908
+ 'e18e/prefer-array-some'?: Linter.RuleEntry<[]>;
909
+ /**
910
+ * Prefer Array.prototype.toReversed() over copying and reversing arrays
911
+ */
912
+ 'e18e/prefer-array-to-reversed'?: Linter.RuleEntry<[]>;
913
+ /**
914
+ * Prefer Array.prototype.toSorted() over copying and sorting arrays
915
+ */
916
+ 'e18e/prefer-array-to-sorted'?: Linter.RuleEntry<[]>;
917
+ /**
918
+ * Prefer Array.prototype.toSpliced() over copying and splicing arrays
919
+ */
920
+ 'e18e/prefer-array-to-spliced'?: Linter.RuleEntry<[]>;
921
+ /**
922
+ * Prefer Date.now() over new Date().getTime() and +new Date()
923
+ */
924
+ 'e18e/prefer-date-now'?: Linter.RuleEntry<[]>;
925
+ /**
926
+ * Prefer the exponentiation operator ** over Math.pow()
927
+ */
928
+ 'e18e/prefer-exponentiation-operator'?: Linter.RuleEntry<[]>;
929
+ /**
930
+ * Prefer .includes() over indexOf() comparisons for arrays and strings
931
+ */
932
+ 'e18e/prefer-includes'?: Linter.RuleEntry<[]>;
933
+ /**
934
+ * Prefer inline equality checks over temporary object creation for simple comparisons
935
+ */
936
+ 'e18e/prefer-inline-equality'?: Linter.RuleEntry<[]>;
937
+ /**
938
+ * Prefer nullish coalescing operator (?? and ??=) over verbose null checks
939
+ */
940
+ 'e18e/prefer-nullish-coalescing'?: Linter.RuleEntry<[]>;
941
+ /**
942
+ * Prefer Object.hasOwn() over Object.prototype.hasOwnProperty.call() and obj.hasOwnProperty()
943
+ */
944
+ 'e18e/prefer-object-has-own'?: Linter.RuleEntry<[]>;
945
+ /**
946
+ * prefer `RegExp.test()` over `String.match()` and `RegExp.exec()` when only checking for match existence
947
+ */
948
+ 'e18e/prefer-regex-test'?: Linter.RuleEntry<[]>;
949
+ /**
950
+ * Prefer spread syntax over Array.concat(), Array.from(), Object.assign({}, ...), and Function.apply()
951
+ */
952
+ 'e18e/prefer-spread-syntax'?: Linter.RuleEntry<[]>;
953
+ /**
954
+ * Prefer defining regular expressions at module scope to avoid re-compilation on every function call
955
+ */
956
+ 'e18e/prefer-static-regex'?: Linter.RuleEntry<[]>;
957
+ /**
958
+ * Prefer passing function and arguments directly to setTimeout/setInterval instead of wrapping in an arrow function or using bind
959
+ */
960
+ 'e18e/prefer-timer-args'?: Linter.RuleEntry<[]>;
961
+ /**
962
+ * Prefer URL.canParse() over try-catch blocks for URL validation
963
+ */
964
+ 'e18e/prefer-url-canparse'?: Linter.RuleEntry<[]>;
874
965
  /**
875
966
  * Require or disallow newline at the end of files
876
967
  * @see https://eslint.org/docs/latest/rules/eol-last
@@ -930,6 +1021,7 @@ interface RuleOptions {
930
1021
  /**
931
1022
  * disallow unused `eslint-disable` comments
932
1023
  * @see https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html
1024
+ * @deprecated
933
1025
  */
934
1026
  'eslint-comments/no-unused-disable'?: Linter.RuleEntry<[]>;
935
1027
  /**
@@ -956,6 +1048,10 @@ interface RuleOptions {
956
1048
  * Use dprint to format code
957
1049
  */
958
1050
  'format/dprint'?: Linter.RuleEntry<FormatDprint>;
1051
+ /**
1052
+ * Use oxfmt to format code
1053
+ */
1054
+ 'format/oxfmt'?: Linter.RuleEntry<FormatOxfmt>;
959
1055
  /**
960
1056
  * Use Prettier to format code
961
1057
  */
@@ -2016,6 +2112,11 @@ interface RuleOptions {
2016
2112
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-language.md
2017
2113
  */
2018
2114
  'markdown/fenced-code-language'?: Linter.RuleEntry<MarkdownFencedCodeLanguage>;
2115
+ /**
2116
+ * Require or disallow metadata for fenced code blocks
2117
+ * @see https://github.com/eslint/markdown/blob/main/docs/rules/fenced-code-meta.md
2118
+ */
2119
+ 'markdown/fenced-code-meta'?: Linter.RuleEntry<MarkdownFencedCodeMeta>;
2019
2120
  /**
2020
2121
  * Enforce heading levels increment by one
2021
2122
  * @see https://github.com/eslint/markdown/blob/main/docs/rules/heading-increment.md
@@ -3717,149 +3818,11 @@ interface RuleOptions {
3717
3818
  * @see https://eslint-react.xyz/docs/rules/dom-prefer-namespace-import
3718
3819
  */
3719
3820
  'react-dom/prefer-namespace-import'?: Linter.RuleEntry<[]>;
3720
- /**
3721
- * Disallows direct calls to the ['set' function](https://react.dev/reference/react/useState#setstate) of 'useState' in 'useEffect'.
3722
- * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
3723
- */
3724
- 'react-hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>;
3725
- /**
3726
- * Verifies that automatic effect dependencies are compiled if opted-in
3727
- */
3728
- 'react-hooks/automatic-effect-dependencies'?: Linter.RuleEntry<ReactHooksAutomaticEffectDependencies>;
3729
- /**
3730
- * Validates against calling capitalized functions/methods instead of using JSX
3731
- */
3732
- 'react-hooks/capitalized-calls'?: Linter.RuleEntry<ReactHooksCapitalizedCalls>;
3733
- /**
3734
- * Validates against higher order functions defining nested components or hooks. Components and hooks should be defined at the module level
3735
- */
3736
- 'react-hooks/component-hook-factories'?: Linter.RuleEntry<ReactHooksComponentHookFactories>;
3737
- /**
3738
- * Validates the compiler configuration options
3739
- */
3740
- 'react-hooks/config'?: Linter.RuleEntry<ReactHooksConfig>;
3741
- /**
3742
- * Validates usage of error boundaries instead of try/catch for errors in child components
3743
- */
3744
- 'react-hooks/error-boundaries'?: Linter.RuleEntry<ReactHooksErrorBoundaries>;
3745
- /**
3746
- * verifies the list of dependencies for Hooks like useEffect and similar
3747
- * @see https://github.com/facebook/react/issues/14920
3748
- */
3749
- 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>;
3750
- /**
3751
- * Validates usage of fbt
3752
- */
3753
- 'react-hooks/fbt'?: Linter.RuleEntry<ReactHooksFbt>;
3754
- /**
3755
- * Validates usage of `fire`
3756
- */
3757
- 'react-hooks/fire'?: Linter.RuleEntry<ReactHooksFire>;
3758
- /**
3759
- * Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating)
3760
- */
3761
- 'react-hooks/gating'?: Linter.RuleEntry<ReactHooksGating>;
3762
- /**
3763
- * 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)
3764
- */
3765
- 'react-hooks/globals'?: Linter.RuleEntry<ReactHooksGlobals>;
3766
- /**
3767
- * Validates the rules of hooks
3768
- */
3769
- 'react-hooks/hooks'?: Linter.RuleEntry<ReactHooksHooks>;
3770
- /**
3771
- * 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)
3772
- */
3773
- 'react-hooks/immutability'?: Linter.RuleEntry<ReactHooksImmutability>;
3774
- /**
3775
- * Validates against usage of libraries which are incompatible with memoization (manual or automatic)
3776
- */
3777
- 'react-hooks/incompatible-library'?: Linter.RuleEntry<ReactHooksIncompatibleLibrary>;
3778
- /**
3779
- * Internal invariants
3780
- */
3781
- 'react-hooks/invariant'?: Linter.RuleEntry<ReactHooksInvariant>;
3782
- /**
3783
- * Validates that effect dependencies are memoized
3784
- */
3785
- 'react-hooks/memoized-effect-dependencies'?: Linter.RuleEntry<ReactHooksMemoizedEffectDependencies>;
3786
- /**
3787
- * Validates against deriving values from state in an effect
3788
- */
3789
- 'react-hooks/no-deriving-state-in-effects'?: Linter.RuleEntry<ReactHooksNoDerivingStateInEffects>;
3790
- /**
3791
- * 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)
3792
- */
3793
- 'react-hooks/preserve-manual-memoization'?: Linter.RuleEntry<ReactHooksPreserveManualMemoization>;
3794
- /**
3795
- * 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
3796
- */
3797
- 'react-hooks/purity'?: Linter.RuleEntry<ReactHooksPurity>;
3798
- /**
3799
- * Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [`useRef()` usage](https://react.dev/reference/react/useRef#usage)
3800
- */
3801
- 'react-hooks/refs'?: Linter.RuleEntry<ReactHooksRefs>;
3802
- /**
3803
- * Validates against suppression of other rules
3804
- */
3805
- 'react-hooks/rule-suppression'?: Linter.RuleEntry<ReactHooksRuleSuppression>;
3806
- /**
3807
- * enforces the Rules of Hooks
3808
- * @see https://react.dev/reference/rules/rules-of-hooks
3809
- */
3810
- 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<ReactHooksRulesOfHooks>;
3811
- /**
3812
- * Validates against calling setState synchronously in an effect, which can lead to re-renders that degrade performance
3813
- */
3814
- 'react-hooks/set-state-in-effect'?: Linter.RuleEntry<ReactHooksSetStateInEffect>;
3815
- /**
3816
- * Validates against setting state during render, which can trigger additional renders and potential infinite render loops
3817
- */
3818
- 'react-hooks/set-state-in-render'?: Linter.RuleEntry<ReactHooksSetStateInRender>;
3819
- /**
3820
- * Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering
3821
- */
3822
- 'react-hooks/static-components'?: Linter.RuleEntry<ReactHooksStaticComponents>;
3823
- /**
3824
- * Validates against invalid syntax
3825
- */
3826
- 'react-hooks/syntax'?: Linter.RuleEntry<ReactHooksSyntax>;
3827
- /**
3828
- * Unimplemented features
3829
- */
3830
- 'react-hooks/todo'?: Linter.RuleEntry<ReactHooksTodo>;
3831
- /**
3832
- * Validates against syntax that we do not plan to support in React Compiler
3833
- */
3834
- 'react-hooks/unsupported-syntax'?: Linter.RuleEntry<ReactHooksUnsupportedSyntax>;
3835
- /**
3836
- * Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
3837
- */
3838
- 'react-hooks/use-memo'?: Linter.RuleEntry<ReactHooksUseMemo>;
3839
- /**
3840
- * 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.
3841
- */
3842
- 'react-hooks/void-use-memo'?: Linter.RuleEntry<ReactHooksVoidUseMemo>;
3843
- /**
3844
- * Enforces naming conventions for components.
3845
- * @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
3846
- */
3847
- 'react-naming-convention/component-name'?: Linter.RuleEntry<ReactNamingConventionComponentName>;
3848
3821
  /**
3849
3822
  * Enforces the context name to be a valid component name with the suffix 'Context'.
3850
3823
  * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
3851
3824
  */
3852
3825
  'react-naming-convention/context-name'?: Linter.RuleEntry<[]>;
3853
- /**
3854
- * Enforces consistent file-naming conventions.
3855
- * @see https://eslint-react.xyz/docs/rules/naming-convention-filename
3856
- */
3857
- 'react-naming-convention/filename'?: Linter.RuleEntry<ReactNamingConventionFilename>;
3858
- /**
3859
- * Enforces consistent use of the JSX file extension.
3860
- * @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
3861
- */
3862
- 'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>;
3863
3826
  /**
3864
3827
  * Enforces identifier names assigned from 'useId' calls to be either 'id' or end with 'Id'.
3865
3828
  * @see https://eslint-react.xyz/docs/rules/naming-convention-id-name
@@ -3870,14 +3833,9 @@ interface RuleOptions {
3870
3833
  * @see https://eslint-react.xyz/docs/rules/naming-convention-ref-name
3871
3834
  */
3872
3835
  'react-naming-convention/ref-name'?: Linter.RuleEntry<[]>;
3873
- /**
3874
- * Enforces destructuring and symmetric naming of the 'useState' hook value and setter.
3875
- * @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
3876
- */
3877
- 'react-naming-convention/use-state'?: Linter.RuleEntry<ReactNamingConventionUseState>;
3878
3836
  'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>;
3879
3837
  /**
3880
- * Validate and transform React Client/Server Function definitions.
3838
+ * Validates and transforms React Client/Server Function definitions.
3881
3839
  * @see https://eslint-react.xyz/docs/rules/function-definition
3882
3840
  */
3883
3841
  'react-rsc/function-definition'?: Linter.RuleEntry<[]>;
@@ -3901,6 +3859,26 @@ interface RuleOptions {
3901
3859
  * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
3902
3860
  */
3903
3861
  'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>;
3862
+ /**
3863
+ * Disallows higher order functions that define components or hooks inside them.
3864
+ * @see https://eslint-react.xyz/docs/rules/component-hook-factories
3865
+ */
3866
+ 'react/component-hook-factories'?: Linter.RuleEntry<[]>;
3867
+ /**
3868
+ * Validates usage of Error Boundaries instead of try/catch for errors in child components.
3869
+ * @see https://eslint-react.xyz/docs/rules/error-boundaries
3870
+ */
3871
+ 'react/error-boundaries'?: Linter.RuleEntry<[]>;
3872
+ /**
3873
+ * Verifies the list of dependencies for Hooks like 'useEffect' and similar.
3874
+ * @see https://github.com/facebook/react/issues/14920
3875
+ */
3876
+ 'react/exhaustive-deps'?: Linter.RuleEntry<ReactExhaustiveDeps>;
3877
+ /**
3878
+ * Validates against mutating props, state, and other values that are immutable.
3879
+ * @see https://eslint-react.xyz/docs/rules/immutability
3880
+ */
3881
+ 'react/immutability'?: Linter.RuleEntry<[]>;
3904
3882
  /**
3905
3883
  * Prevents unintentional '$' sign before expression.
3906
3884
  * @see https://eslint-react.xyz/docs/rules/jsx-dollar
@@ -3912,25 +3890,10 @@ interface RuleOptions {
3912
3890
  */
3913
3891
  'react/jsx-key-before-spread'?: Linter.RuleEntry<[]>;
3914
3892
  /**
3915
- * Prevents comment strings (e.g., beginning with '//' or '/*') from being accidentally inserted into a JSX element's text nodes.
3893
+ * Prevents comment strings (ex: beginning with '//' or '/*') from being accidentally inserted into a JSX element's text nodes.
3916
3894
  * @see https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes
3917
3895
  */
3918
3896
  'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>;
3919
- /**
3920
- * Disallows duplicate props in JSX elements.
3921
- * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
3922
- */
3923
- 'react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>;
3924
- /**
3925
- * Disallows immediately-invoked function expressions in JSX.
3926
- * @see https://eslint-react.xyz/docs/rules/jsx-no-iife
3927
- */
3928
- 'react/jsx-no-iife'?: Linter.RuleEntry<[]>;
3929
- /**
3930
- * Prevents using variables in JSX that are not defined in the scope.
3931
- * @see https://eslint-react.xyz/docs/rules/jsx-no-undef
3932
- */
3933
- 'react/jsx-no-undef'?: Linter.RuleEntry<[]>;
3934
3897
  /**
3935
3898
  * Enforces shorthand syntax for boolean props.
3936
3899
  * @see https://eslint-react.xyz/docs/rules/jsx-shorthand-boolean
@@ -3941,16 +3904,6 @@ interface RuleOptions {
3941
3904
  * @see https://eslint-react.xyz/docs/rules/jsx-shorthand-fragment
3942
3905
  */
3943
3906
  'react/jsx-shorthand-fragment'?: Linter.RuleEntry<ReactJsxShorthandFragment>;
3944
- /**
3945
- * Marks React variables as used when JSX is present.
3946
- * @see https://eslint-react.xyz/docs/rules/jsx-uses-react
3947
- */
3948
- 'react/jsx-uses-react'?: Linter.RuleEntry<[]>;
3949
- /**
3950
- * Marks JSX element variables as used.
3951
- * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
3952
- */
3953
- 'react/jsx-uses-vars'?: Linter.RuleEntry<[]>;
3954
3907
  /**
3955
3908
  * Disallows accessing 'this.state' inside 'setState' calls.
3956
3909
  * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
@@ -4026,11 +3979,6 @@ interface RuleOptions {
4026
3979
  * @see https://eslint-react.xyz/docs/rules/no-create-ref
4027
3980
  */
4028
3981
  'react/no-create-ref'?: Linter.RuleEntry<[]>;
4029
- /**
4030
- * Disallows the 'defaultProps' property in favor of ES6 default parameters.
4031
- * @see https://eslint-react.xyz/docs/rules/no-default-props
4032
- */
4033
- 'react/no-default-props'?: Linter.RuleEntry<[]>;
4034
3982
  /**
4035
3983
  * Disallows direct mutation of 'this.state'.
4036
3984
  * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
@@ -4041,22 +3989,26 @@ interface RuleOptions {
4041
3989
  * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
4042
3990
  */
4043
3991
  'react/no-duplicate-key'?: Linter.RuleEntry<[]>;
4044
- /**
4045
- * Disallows certain props on components.
4046
- * @see https://eslint-react.xyz/docs/rules/no-forbidden-props
4047
- * @deprecated
4048
- */
4049
- 'react/no-forbidden-props'?: Linter.RuleEntry<ReactNoForbiddenProps>;
4050
3992
  /**
4051
3993
  * Replaces usage of 'forwardRef' with passing 'ref' as a prop.
4052
3994
  * @see https://eslint-react.xyz/docs/rules/no-forward-ref
4053
3995
  */
4054
3996
  'react/no-forward-ref'?: Linter.RuleEntry<[]>;
3997
+ /**
3998
+ * Prevents implicitly passing the 'children' prop to components.
3999
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-children
4000
+ */
4001
+ 'react/no-implicit-children'?: Linter.RuleEntry<[]>;
4055
4002
  /**
4056
4003
  * Prevents implicitly passing the 'key' prop to components.
4057
4004
  * @see https://eslint-react.xyz/docs/rules/no-implicit-key
4058
4005
  */
4059
4006
  'react/no-implicit-key'?: Linter.RuleEntry<[]>;
4007
+ /**
4008
+ * Prevents implicitly passing the 'ref' prop to components.
4009
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-ref
4010
+ */
4011
+ 'react/no-implicit-ref'?: Linter.RuleEntry<[]>;
4060
4012
  /**
4061
4013
  * Prevents problematic leaked values from being rendered.
4062
4014
  * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
@@ -4092,11 +4044,6 @@ interface RuleOptions {
4092
4044
  * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
4093
4045
  */
4094
4046
  'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>;
4095
- /**
4096
- * Disallows 'propTypes' in favor of TypeScript or another type-checking solution.
4097
- * @see https://eslint-react.xyz/docs/rules/no-prop-types
4098
- */
4099
- 'react/no-prop-types'?: Linter.RuleEntry<[]>;
4100
4047
  /**
4101
4048
  * Disallows 'shouldComponentUpdate' when extending 'React.PureComponent'.
4102
4049
  * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
@@ -4117,16 +4064,6 @@ interface RuleOptions {
4117
4064
  * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
4118
4065
  */
4119
4066
  'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>;
4120
- /**
4121
- * Replaces string refs with callback refs.
4122
- * @see https://eslint-react.xyz/docs/rules/no-string-refs
4123
- */
4124
- 'react/no-string-refs'?: Linter.RuleEntry<[]>;
4125
- /**
4126
- * Disallows unnecessary 'key' props on nested child elements when rendering lists.
4127
- * @see https://eslint-react.xyz/docs/rules/no-unnecessary-key
4128
- */
4129
- 'react/no-unnecessary-key'?: Linter.RuleEntry<[]>;
4130
4067
  /**
4131
4068
  * Disallows unnecessary usage of 'useCallback'.
4132
4069
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-callback
@@ -4142,11 +4079,6 @@ interface RuleOptions {
4142
4079
  * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-prefix
4143
4080
  */
4144
4081
  'react/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>;
4145
- /**
4146
- * Disallows unnecessary usage of 'useRef'.
4147
- * @see https://eslint-react.xyz/docs/rules/no-unnecessary-use-ref
4148
- */
4149
- 'react/no-unnecessary-use-ref'?: Linter.RuleEntry<[]>;
4150
4082
  /**
4151
4083
  * Warns about the use of 'UNSAFE_componentWillMount' in class components.
4152
4084
  * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
@@ -4192,11 +4124,6 @@ interface RuleOptions {
4192
4124
  * @see https://eslint-react.xyz/docs/rules/no-use-context
4193
4125
  */
4194
4126
  'react/no-use-context'?: Linter.RuleEntry<[]>;
4195
- /**
4196
- * Disallows useless 'forwardRef' calls on components that don't use 'ref's.
4197
- * @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
4198
- */
4199
- 'react/no-useless-forward-ref'?: Linter.RuleEntry<[]>;
4200
4127
  /**
4201
4128
  * Disallows useless fragment elements.
4202
4129
  * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
@@ -4213,15 +4140,55 @@ interface RuleOptions {
4213
4140
  */
4214
4141
  'react/prefer-namespace-import'?: Linter.RuleEntry<[]>;
4215
4142
  /**
4216
- * Enforces read-only props in components.
4217
- * @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
4143
+ * Validates that components and hooks are pure by checking that they do not call known-impure functions during render.
4144
+ * @see https://eslint-react.xyz/docs/rules/purity
4145
+ */
4146
+ 'react/purity'?: Linter.RuleEntry<[]>;
4147
+ /**
4148
+ * Validates correct usage of refs by checking that 'ref.current' is not read or written during render.
4149
+ * @see https://eslint-react.xyz/docs/rules/refs
4150
+ */
4151
+ 'react/refs'?: Linter.RuleEntry<[]>;
4152
+ /**
4153
+ * Enforces the Rules of Hooks.
4154
+ * @see https://react.dev/reference/rules/rules-of-hooks
4155
+ */
4156
+ 'react/rules-of-hooks'?: Linter.RuleEntry<ReactRulesOfHooks>;
4157
+ /**
4158
+ * Validates against setting state synchronously in an effect, which can lead to re-renders that degrade performance.
4159
+ * @see https://eslint-react.xyz/docs/rules/set-state-in-effect
4160
+ */
4161
+ 'react/set-state-in-effect'?: Linter.RuleEntry<[]>;
4162
+ /**
4163
+ * Validates against unconditionally setting state during render, which can trigger additional renders and potential infinite render loops.
4164
+ * @see https://eslint-react.xyz/docs/rules/set-state-in-render
4165
+ */
4166
+ 'react/set-state-in-render'?: Linter.RuleEntry<[]>;
4167
+ /**
4168
+ * Enforces the Rules of Props.
4169
+ * @see https://eslint-react.xyz/docs/rules/unstable-rules-of-props
4218
4170
  */
4219
- 'react/prefer-read-only-props'?: Linter.RuleEntry<[]>;
4171
+ 'react/unstable-rules-of-props'?: Linter.RuleEntry<[]>;
4220
4172
  /**
4221
- * Enforces wrapping function calls made inside 'useState' in an 'initializer function'.
4222
- * @see https://eslint-react.xyz/docs/rules/prefer-use-state-lazy-initialization
4173
+ * Enforces the Rules of State.
4174
+ * @see https://eslint-react.xyz/docs/rules/unstable-rules-of-state
4223
4175
  */
4224
- 'react/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>;
4176
+ 'react/unstable-rules-of-state'?: Linter.RuleEntry<[]>;
4177
+ /**
4178
+ * Validates against syntax that React Compiler does not support.
4179
+ * @see https://eslint-react.xyz/docs/rules/unsupported-syntax
4180
+ */
4181
+ 'react/unsupported-syntax'?: Linter.RuleEntry<[]>;
4182
+ /**
4183
+ * Validates that 'useMemo' is called with a callback that returns a value.
4184
+ * @see https://eslint-react.xyz/docs/rules/use-memo
4185
+ */
4186
+ 'react/use-memo'?: Linter.RuleEntry<[]>;
4187
+ /**
4188
+ * Enforces correct usage of 'useState', including destructuring, symmetric naming of the value and setter, and wrapping expensive initializers in a lazy initializer function.
4189
+ * @see https://eslint-react.xyz/docs/rules/use-state
4190
+ */
4191
+ 'react/use-state'?: Linter.RuleEntry<ReactUseState>;
4225
4192
  /**
4226
4193
  * disallow confusing quantifiers
4227
4194
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -5402,6 +5369,11 @@ interface RuleOptions {
5402
5369
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/max-attributes-per-line/
5403
5370
  */
5404
5371
  'svelte/max-attributes-per-line'?: Linter.RuleEntry<SvelteMaxAttributesPerLine>;
5372
+ /**
5373
+ * enforce maximum number of lines in svelte component blocks
5374
+ * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/max-lines-per-block/
5375
+ */
5376
+ 'svelte/max-lines-per-block'?: Linter.RuleEntry<SvelteMaxLinesPerBlock>;
5405
5377
  /**
5406
5378
  * enforce unified spacing in mustache
5407
5379
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/mustache-spacing/
@@ -5501,7 +5473,7 @@ interface RuleOptions {
5501
5473
  */
5502
5474
  'svelte/no-navigation-without-base'?: Linter.RuleEntry<SvelteNoNavigationWithoutBase>;
5503
5475
  /**
5504
- * disallow using navigation (links, goto, pushState, replaceState) without a resolve()
5476
+ * disallow internal navigation (links, `goto()`, `pushState()`, `replaceState()`) without a `resolve()`
5505
5477
  * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-resolve/
5506
5478
  */
5507
5479
  'svelte/no-navigation-without-resolve'?: Linter.RuleEntry<SvelteNoNavigationWithoutResolve>;
@@ -6129,6 +6101,11 @@ interface RuleOptions {
6129
6101
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-top-level-describe.md
6130
6102
  */
6131
6103
  'test/require-top-level-describe'?: Linter.RuleEntry<TestRequireTopLevelDescribe>;
6104
+ /**
6105
+ * enforce unbound methods are called with their expected scope
6106
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/unbound-method.md
6107
+ */
6108
+ 'test/unbound-method'?: Linter.RuleEntry<TestUnboundMethod>;
6132
6109
  /**
6133
6110
  * enforce valid describe callback
6134
6111
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
@@ -6179,11 +6156,21 @@ interface RuleOptions {
6179
6156
  * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/indent.html
6180
6157
  */
6181
6158
  'toml/indent'?: Linter.RuleEntry<TomlIndent>;
6159
+ /**
6160
+ * enforce linebreaks after opening and before closing braces
6161
+ * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-curly-newline.html
6162
+ */
6163
+ 'toml/inline-table-curly-newline'?: Linter.RuleEntry<TomlInlineTableCurlyNewline>;
6182
6164
  /**
6183
6165
  * enforce consistent spacing inside braces
6184
6166
  * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-curly-spacing.html
6185
6167
  */
6186
6168
  'toml/inline-table-curly-spacing'?: Linter.RuleEntry<TomlInlineTableCurlySpacing>;
6169
+ /**
6170
+ * enforce placing inline table key-value pairs on separate lines
6171
+ * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/inline-table-key-value-newline.html
6172
+ */
6173
+ 'toml/inline-table-key-value-newline'?: Linter.RuleEntry<TomlInlineTableKeyValueNewline>;
6187
6174
  /**
6188
6175
  * enforce consistent spacing between keys and values in key/value pairs
6189
6176
  * @see https://ota-meshi.github.io/eslint-plugin-toml/rules/key-spacing.html
@@ -6949,730 +6936,750 @@ interface RuleOptions {
6949
6936
  'unicode-bom'?: Linter.RuleEntry<UnicodeBom>;
6950
6937
  /**
6951
6938
  * Improve regexes by making them shorter, consistent, and safer.
6952
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/better-regex.md
6939
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/better-regex.md
6953
6940
  */
6954
6941
  'unicorn/better-regex'?: Linter.RuleEntry<UnicornBetterRegex>;
6955
6942
  /**
6956
6943
  * Enforce a specific parameter name in catch clauses.
6957
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/catch-error-name.md
6944
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/catch-error-name.md
6958
6945
  */
6959
6946
  'unicorn/catch-error-name'?: Linter.RuleEntry<UnicornCatchErrorName>;
6960
6947
  /**
6961
6948
  * Enforce consistent assertion style with `node:assert`.
6962
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-assert.md
6949
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-assert.md
6963
6950
  */
6964
6951
  'unicorn/consistent-assert'?: Linter.RuleEntry<[]>;
6965
6952
  /**
6966
6953
  * Prefer passing `Date` directly to the constructor when cloning.
6967
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-date-clone.md
6954
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-date-clone.md
6968
6955
  */
6969
6956
  'unicorn/consistent-date-clone'?: Linter.RuleEntry<[]>;
6970
6957
  /**
6971
6958
  * Use destructured variables over properties.
6972
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-destructuring.md
6959
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-destructuring.md
6973
6960
  */
6974
6961
  'unicorn/consistent-destructuring'?: Linter.RuleEntry<[]>;
6975
6962
  /**
6976
6963
  * Prefer consistent types when spreading a ternary in an array literal.
6977
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-empty-array-spread.md
6964
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-empty-array-spread.md
6978
6965
  */
6979
6966
  'unicorn/consistent-empty-array-spread'?: Linter.RuleEntry<[]>;
6980
6967
  /**
6981
6968
  * Enforce consistent style for element existence checks with `indexOf()`, `lastIndexOf()`, `findIndex()`, and `findLastIndex()`.
6982
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-existence-index-check.md
6969
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-existence-index-check.md
6983
6970
  */
6984
6971
  'unicorn/consistent-existence-index-check'?: Linter.RuleEntry<[]>;
6985
6972
  /**
6986
6973
  * Move function definitions to the highest possible scope.
6987
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/consistent-function-scoping.md
6974
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-function-scoping.md
6988
6975
  */
6989
6976
  'unicorn/consistent-function-scoping'?: Linter.RuleEntry<UnicornConsistentFunctionScoping>;
6977
+ /**
6978
+ * Enforce consistent style for escaping `${` in template literals.
6979
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/consistent-template-literal-escape.md
6980
+ */
6981
+ 'unicorn/consistent-template-literal-escape'?: Linter.RuleEntry<[]>;
6990
6982
  /**
6991
6983
  * Enforce correct `Error` subclassing.
6992
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/custom-error-definition.md
6984
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/custom-error-definition.md
6993
6985
  */
6994
6986
  'unicorn/custom-error-definition'?: Linter.RuleEntry<[]>;
6995
6987
  /**
6996
6988
  * Enforce no spaces between braces.
6997
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/empty-brace-spaces.md
6989
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/empty-brace-spaces.md
6998
6990
  */
6999
6991
  'unicorn/empty-brace-spaces'?: Linter.RuleEntry<[]>;
7000
6992
  /**
7001
6993
  * Enforce passing a `message` value when creating a built-in error.
7002
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/error-message.md
6994
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/error-message.md
7003
6995
  */
7004
6996
  'unicorn/error-message'?: Linter.RuleEntry<[]>;
7005
6997
  /**
7006
6998
  * Require escape sequences to use uppercase or lowercase values.
7007
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/escape-case.md
6999
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/escape-case.md
7008
7000
  */
7009
7001
  'unicorn/escape-case'?: Linter.RuleEntry<UnicornEscapeCase>;
7010
7002
  /**
7011
7003
  * Add expiration conditions to TODO comments.
7012
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/expiring-todo-comments.md
7004
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/expiring-todo-comments.md
7013
7005
  */
7014
7006
  'unicorn/expiring-todo-comments'?: Linter.RuleEntry<UnicornExpiringTodoComments>;
7015
7007
  /**
7016
7008
  * Enforce explicitly comparing the `length` or `size` property of a value.
7017
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/explicit-length-check.md
7009
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/explicit-length-check.md
7018
7010
  */
7019
7011
  'unicorn/explicit-length-check'?: Linter.RuleEntry<UnicornExplicitLengthCheck>;
7020
7012
  /**
7021
7013
  * Enforce a case style for filenames.
7022
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/filename-case.md
7014
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/filename-case.md
7023
7015
  */
7024
7016
  'unicorn/filename-case'?: Linter.RuleEntry<UnicornFilenameCase>;
7025
7017
  /**
7026
7018
  * Enforce specific import styles per module.
7027
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/import-style.md
7019
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/import-style.md
7028
7020
  */
7029
7021
  'unicorn/import-style'?: Linter.RuleEntry<UnicornImportStyle>;
7030
7022
  /**
7031
7023
  * Prevent usage of variables from outside the scope of isolated functions.
7032
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/isolated-functions.md
7024
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/isolated-functions.md
7033
7025
  */
7034
7026
  'unicorn/isolated-functions'?: Linter.RuleEntry<UnicornIsolatedFunctions>;
7035
7027
  /**
7036
7028
  * Enforce the use of `new` for all builtins, except `String`, `Number`, `Boolean`, `Symbol` and `BigInt`.
7037
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/new-for-builtins.md
7029
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/new-for-builtins.md
7038
7030
  */
7039
7031
  'unicorn/new-for-builtins'?: Linter.RuleEntry<[]>;
7040
7032
  /**
7041
7033
  * Enforce specifying rules to disable in `eslint-disable` comments.
7042
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-abusive-eslint-disable.md
7034
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-abusive-eslint-disable.md
7043
7035
  */
7044
7036
  'unicorn/no-abusive-eslint-disable'?: Linter.RuleEntry<[]>;
7045
7037
  /**
7046
7038
  * Disallow recursive access to `this` within getters and setters.
7047
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-accessor-recursion.md
7039
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-accessor-recursion.md
7048
7040
  */
7049
7041
  'unicorn/no-accessor-recursion'?: Linter.RuleEntry<[]>;
7050
7042
  /**
7051
7043
  * Disallow anonymous functions and classes as the default export.
7052
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-anonymous-default-export.md
7044
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-anonymous-default-export.md
7053
7045
  */
7054
7046
  'unicorn/no-anonymous-default-export'?: Linter.RuleEntry<[]>;
7055
7047
  /**
7056
7048
  * Prevent passing a function reference directly to iterator methods.
7057
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-callback-reference.md
7049
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-callback-reference.md
7058
7050
  */
7059
7051
  'unicorn/no-array-callback-reference'?: Linter.RuleEntry<[]>;
7060
7052
  /**
7061
7053
  * Prefer `for…of` over the `forEach` method.
7062
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-for-each.md
7054
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-for-each.md
7063
7055
  */
7064
7056
  'unicorn/no-array-for-each'?: Linter.RuleEntry<[]>;
7065
7057
  /**
7066
7058
  * Disallow using the `this` argument in array methods.
7067
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-method-this-argument.md
7059
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-method-this-argument.md
7068
7060
  */
7069
7061
  'unicorn/no-array-method-this-argument'?: Linter.RuleEntry<[]>;
7070
7062
  /**
7071
7063
  * Replaced by `unicorn/prefer-single-call` which covers more cases.
7072
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/deleted-and-deprecated-rules.md#no-array-push-push
7064
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/deleted-and-deprecated-rules.md#no-array-push-push
7073
7065
  * @deprecated
7074
7066
  */
7075
7067
  'unicorn/no-array-push-push'?: Linter.RuleEntry<[]>;
7076
7068
  /**
7077
7069
  * Disallow `Array#reduce()` and `Array#reduceRight()`.
7078
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-reduce.md
7070
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-reduce.md
7079
7071
  */
7080
7072
  'unicorn/no-array-reduce'?: Linter.RuleEntry<UnicornNoArrayReduce>;
7081
7073
  /**
7082
7074
  * Prefer `Array#toReversed()` over `Array#reverse()`.
7083
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-reverse.md
7075
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-reverse.md
7084
7076
  */
7085
7077
  'unicorn/no-array-reverse'?: Linter.RuleEntry<UnicornNoArrayReverse>;
7086
7078
  /**
7087
7079
  * Prefer `Array#toSorted()` over `Array#sort()`.
7088
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-array-sort.md
7080
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-array-sort.md
7089
7081
  */
7090
7082
  'unicorn/no-array-sort'?: Linter.RuleEntry<UnicornNoArraySort>;
7091
7083
  /**
7092
7084
  * Disallow member access from await expression.
7093
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-await-expression-member.md
7085
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-await-expression-member.md
7094
7086
  */
7095
7087
  'unicorn/no-await-expression-member'?: Linter.RuleEntry<[]>;
7096
7088
  /**
7097
7089
  * Disallow using `await` in `Promise` method parameters.
7098
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-await-in-promise-methods.md
7090
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-await-in-promise-methods.md
7099
7091
  */
7100
7092
  'unicorn/no-await-in-promise-methods'?: Linter.RuleEntry<[]>;
7101
7093
  /**
7102
7094
  * Do not use leading/trailing space between `console.log` parameters.
7103
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-console-spaces.md
7095
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-console-spaces.md
7104
7096
  */
7105
7097
  'unicorn/no-console-spaces'?: Linter.RuleEntry<[]>;
7106
7098
  /**
7107
7099
  * Do not use `document.cookie` directly.
7108
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-document-cookie.md
7100
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-document-cookie.md
7109
7101
  */
7110
7102
  'unicorn/no-document-cookie'?: Linter.RuleEntry<[]>;
7111
7103
  /**
7112
7104
  * Disallow empty files.
7113
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-empty-file.md
7105
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-empty-file.md
7114
7106
  */
7115
7107
  'unicorn/no-empty-file'?: Linter.RuleEntry<[]>;
7116
7108
  /**
7117
7109
  * Do not use a `for` loop that can be replaced with a `for-of` loop.
7118
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-for-loop.md
7110
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-for-loop.md
7119
7111
  */
7120
7112
  'unicorn/no-for-loop'?: Linter.RuleEntry<[]>;
7121
7113
  /**
7122
7114
  * Enforce the use of Unicode escapes instead of hexadecimal escapes.
7123
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-hex-escape.md
7115
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-hex-escape.md
7124
7116
  */
7125
7117
  'unicorn/no-hex-escape'?: Linter.RuleEntry<[]>;
7126
7118
  /**
7127
7119
  * Disallow immediate mutation after variable assignment.
7128
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-immediate-mutation.md
7120
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-immediate-mutation.md
7129
7121
  */
7130
7122
  'unicorn/no-immediate-mutation'?: Linter.RuleEntry<[]>;
7131
7123
  /**
7132
7124
  * Replaced by `unicorn/no-instanceof-builtins` which covers more cases.
7133
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/deleted-and-deprecated-rules.md#no-instanceof-array
7125
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/deleted-and-deprecated-rules.md#no-instanceof-array
7134
7126
  * @deprecated
7135
7127
  */
7136
7128
  'unicorn/no-instanceof-array'?: Linter.RuleEntry<[]>;
7137
7129
  /**
7138
7130
  * Disallow `instanceof` with built-in objects
7139
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-instanceof-builtins.md
7131
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-instanceof-builtins.md
7140
7132
  */
7141
7133
  'unicorn/no-instanceof-builtins'?: Linter.RuleEntry<UnicornNoInstanceofBuiltins>;
7142
7134
  /**
7143
7135
  * Disallow invalid options in `fetch()` and `new Request()`.
7144
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-invalid-fetch-options.md
7136
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-invalid-fetch-options.md
7145
7137
  */
7146
7138
  'unicorn/no-invalid-fetch-options'?: Linter.RuleEntry<[]>;
7147
7139
  /**
7148
7140
  * Prevent calling `EventTarget#removeEventListener()` with the result of an expression.
7149
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-invalid-remove-event-listener.md
7141
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-invalid-remove-event-listener.md
7150
7142
  */
7151
7143
  'unicorn/no-invalid-remove-event-listener'?: Linter.RuleEntry<[]>;
7152
7144
  /**
7153
7145
  * Disallow identifiers starting with `new` or `class`.
7154
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-keyword-prefix.md
7146
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-keyword-prefix.md
7155
7147
  */
7156
7148
  'unicorn/no-keyword-prefix'?: Linter.RuleEntry<UnicornNoKeywordPrefix>;
7157
7149
  /**
7158
7150
  * Replaced by `unicorn/no-unnecessary-slice-end` which covers more cases.
7159
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/deleted-and-deprecated-rules.md#no-length-as-slice-end
7151
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/deleted-and-deprecated-rules.md#no-length-as-slice-end
7160
7152
  * @deprecated
7161
7153
  */
7162
7154
  'unicorn/no-length-as-slice-end'?: Linter.RuleEntry<[]>;
7163
7155
  /**
7164
7156
  * Disallow `if` statements as the only statement in `if` blocks without `else`.
7165
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-lonely-if.md
7157
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-lonely-if.md
7166
7158
  */
7167
7159
  'unicorn/no-lonely-if'?: Linter.RuleEntry<[]>;
7168
7160
  /**
7169
7161
  * Disallow a magic number as the `depth` argument in `Array#flat(…).`
7170
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-magic-array-flat-depth.md
7162
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-magic-array-flat-depth.md
7171
7163
  */
7172
7164
  'unicorn/no-magic-array-flat-depth'?: Linter.RuleEntry<[]>;
7173
7165
  /**
7174
7166
  * Disallow named usage of default import and export.
7175
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-named-default.md
7167
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-named-default.md
7176
7168
  */
7177
7169
  'unicorn/no-named-default'?: Linter.RuleEntry<[]>;
7178
7170
  /**
7179
7171
  * Disallow negated conditions.
7180
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-negated-condition.md
7172
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-negated-condition.md
7181
7173
  */
7182
7174
  'unicorn/no-negated-condition'?: Linter.RuleEntry<[]>;
7183
7175
  /**
7184
7176
  * Disallow negated expression in equality check.
7185
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-negation-in-equality-check.md
7177
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-negation-in-equality-check.md
7186
7178
  */
7187
7179
  'unicorn/no-negation-in-equality-check'?: Linter.RuleEntry<[]>;
7188
7180
  /**
7189
7181
  * Disallow nested ternary expressions.
7190
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-nested-ternary.md
7182
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-nested-ternary.md
7191
7183
  */
7192
7184
  'unicorn/no-nested-ternary'?: Linter.RuleEntry<[]>;
7193
7185
  /**
7194
7186
  * Disallow `new Array()`.
7195
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-new-array.md
7187
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-new-array.md
7196
7188
  */
7197
7189
  'unicorn/no-new-array'?: Linter.RuleEntry<[]>;
7198
7190
  /**
7199
7191
  * Enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`.
7200
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-new-buffer.md
7192
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-new-buffer.md
7201
7193
  */
7202
7194
  'unicorn/no-new-buffer'?: Linter.RuleEntry<[]>;
7203
7195
  /**
7204
7196
  * Disallow the use of the `null` literal.
7205
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-null.md
7197
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-null.md
7206
7198
  */
7207
7199
  'unicorn/no-null'?: Linter.RuleEntry<UnicornNoNull>;
7208
7200
  /**
7209
7201
  * Disallow the use of objects as default parameters.
7210
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-object-as-default-parameter.md
7202
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-object-as-default-parameter.md
7211
7203
  */
7212
7204
  'unicorn/no-object-as-default-parameter'?: Linter.RuleEntry<[]>;
7213
7205
  /**
7214
7206
  * Disallow `process.exit()`.
7215
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-process-exit.md
7207
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-process-exit.md
7216
7208
  */
7217
7209
  'unicorn/no-process-exit'?: Linter.RuleEntry<[]>;
7218
7210
  /**
7219
7211
  * Disallow passing single-element arrays to `Promise` methods.
7220
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-single-promise-in-promise-methods.md
7212
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-single-promise-in-promise-methods.md
7221
7213
  */
7222
7214
  'unicorn/no-single-promise-in-promise-methods'?: Linter.RuleEntry<[]>;
7223
7215
  /**
7224
7216
  * Disallow classes that only have static members.
7225
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-static-only-class.md
7217
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-static-only-class.md
7226
7218
  */
7227
7219
  'unicorn/no-static-only-class'?: Linter.RuleEntry<[]>;
7228
7220
  /**
7229
7221
  * Disallow `then` property.
7230
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-thenable.md
7222
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-thenable.md
7231
7223
  */
7232
7224
  'unicorn/no-thenable'?: Linter.RuleEntry<[]>;
7233
7225
  /**
7234
7226
  * Disallow assigning `this` to a variable.
7235
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-this-assignment.md
7227
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-this-assignment.md
7236
7228
  */
7237
7229
  'unicorn/no-this-assignment'?: Linter.RuleEntry<[]>;
7238
7230
  /**
7239
7231
  * Disallow comparing `undefined` using `typeof`.
7240
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-typeof-undefined.md
7232
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-typeof-undefined.md
7241
7233
  */
7242
7234
  'unicorn/no-typeof-undefined'?: Linter.RuleEntry<UnicornNoTypeofUndefined>;
7243
7235
  /**
7244
7236
  * Disallow using `1` as the `depth` argument of `Array#flat()`.
7245
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-array-flat-depth.md
7237
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-array-flat-depth.md
7246
7238
  */
7247
7239
  'unicorn/no-unnecessary-array-flat-depth'?: Linter.RuleEntry<[]>;
7248
7240
  /**
7249
7241
  * Disallow using `.length` or `Infinity` as the `deleteCount` or `skipCount` argument of `Array#{splice,toSpliced}()`.
7250
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-array-splice-count.md
7242
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-array-splice-count.md
7251
7243
  */
7252
7244
  'unicorn/no-unnecessary-array-splice-count'?: Linter.RuleEntry<[]>;
7253
7245
  /**
7254
7246
  * Disallow awaiting non-promise values.
7255
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-await.md
7247
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-await.md
7256
7248
  */
7257
7249
  'unicorn/no-unnecessary-await'?: Linter.RuleEntry<[]>;
7258
7250
  /**
7259
7251
  * Enforce the use of built-in methods instead of unnecessary polyfills.
7260
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-polyfills.md
7252
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-polyfills.md
7261
7253
  */
7262
7254
  'unicorn/no-unnecessary-polyfills'?: Linter.RuleEntry<UnicornNoUnnecessaryPolyfills>;
7263
7255
  /**
7264
7256
  * Disallow using `.length` or `Infinity` as the `end` argument of `{Array,String,TypedArray}#slice()`.
7265
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unnecessary-slice-end.md
7257
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unnecessary-slice-end.md
7266
7258
  */
7267
7259
  'unicorn/no-unnecessary-slice-end'?: Linter.RuleEntry<[]>;
7268
7260
  /**
7269
7261
  * Disallow unreadable array destructuring.
7270
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unreadable-array-destructuring.md
7262
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unreadable-array-destructuring.md
7271
7263
  */
7272
7264
  'unicorn/no-unreadable-array-destructuring'?: Linter.RuleEntry<[]>;
7273
7265
  /**
7274
7266
  * Disallow unreadable IIFEs.
7275
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unreadable-iife.md
7267
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unreadable-iife.md
7276
7268
  */
7277
7269
  'unicorn/no-unreadable-iife'?: Linter.RuleEntry<[]>;
7278
7270
  /**
7279
7271
  * Disallow unused object properties.
7280
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-unused-properties.md
7272
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-unused-properties.md
7281
7273
  */
7282
7274
  'unicorn/no-unused-properties'?: Linter.RuleEntry<[]>;
7283
7275
  /**
7284
7276
  * Disallow useless values or fallbacks in `Set`, `Map`, `WeakSet`, or `WeakMap`.
7285
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-collection-argument.md
7277
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-collection-argument.md
7286
7278
  */
7287
7279
  'unicorn/no-useless-collection-argument'?: Linter.RuleEntry<[]>;
7288
7280
  /**
7289
7281
  * Disallow unnecessary `Error.captureStackTrace(…)`.
7290
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-error-capture-stack-trace.md
7282
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-error-capture-stack-trace.md
7291
7283
  */
7292
7284
  'unicorn/no-useless-error-capture-stack-trace'?: Linter.RuleEntry<[]>;
7293
7285
  /**
7294
7286
  * Disallow useless fallback when spreading in object literals.
7295
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-fallback-in-spread.md
7287
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-fallback-in-spread.md
7296
7288
  */
7297
7289
  'unicorn/no-useless-fallback-in-spread'?: Linter.RuleEntry<[]>;
7290
+ /**
7291
+ * Disallow unnecessary `.toArray()` on iterators.
7292
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-iterator-to-array.md
7293
+ */
7294
+ 'unicorn/no-useless-iterator-to-array'?: Linter.RuleEntry<[]>;
7298
7295
  /**
7299
7296
  * Disallow useless array length check.
7300
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-length-check.md
7297
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-length-check.md
7301
7298
  */
7302
7299
  'unicorn/no-useless-length-check'?: Linter.RuleEntry<[]>;
7303
7300
  /**
7304
7301
  * Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks
7305
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-promise-resolve-reject.md
7302
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-promise-resolve-reject.md
7306
7303
  */
7307
7304
  'unicorn/no-useless-promise-resolve-reject'?: Linter.RuleEntry<[]>;
7308
7305
  /**
7309
7306
  * Disallow unnecessary spread.
7310
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-spread.md
7307
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-spread.md
7311
7308
  */
7312
7309
  'unicorn/no-useless-spread'?: Linter.RuleEntry<[]>;
7313
7310
  /**
7314
7311
  * Disallow useless case in switch statements.
7315
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-switch-case.md
7312
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-switch-case.md
7316
7313
  */
7317
7314
  'unicorn/no-useless-switch-case'?: Linter.RuleEntry<[]>;
7318
7315
  /**
7319
7316
  * Disallow useless `undefined`.
7320
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-useless-undefined.md
7317
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-useless-undefined.md
7321
7318
  */
7322
7319
  'unicorn/no-useless-undefined'?: Linter.RuleEntry<UnicornNoUselessUndefined>;
7323
7320
  /**
7324
7321
  * Disallow number literals with zero fractions or dangling dots.
7325
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/no-zero-fractions.md
7322
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/no-zero-fractions.md
7326
7323
  */
7327
7324
  'unicorn/no-zero-fractions'?: Linter.RuleEntry<[]>;
7328
7325
  /**
7329
7326
  * Enforce proper case for numeric literals.
7330
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/number-literal-case.md
7327
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/number-literal-case.md
7331
7328
  */
7332
7329
  'unicorn/number-literal-case'?: Linter.RuleEntry<UnicornNumberLiteralCase>;
7333
7330
  /**
7334
7331
  * Enforce the style of numeric separators by correctly grouping digits.
7335
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/numeric-separators-style.md
7332
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/numeric-separators-style.md
7336
7333
  */
7337
7334
  'unicorn/numeric-separators-style'?: Linter.RuleEntry<UnicornNumericSeparatorsStyle>;
7338
7335
  /**
7339
7336
  * Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.
7340
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-add-event-listener.md
7337
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-add-event-listener.md
7341
7338
  */
7342
7339
  'unicorn/prefer-add-event-listener'?: Linter.RuleEntry<UnicornPreferAddEventListener>;
7343
7340
  /**
7344
7341
  * Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.
7345
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-find.md
7342
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-find.md
7346
7343
  */
7347
7344
  'unicorn/prefer-array-find'?: Linter.RuleEntry<UnicornPreferArrayFind>;
7348
7345
  /**
7349
7346
  * Prefer `Array#flat()` over legacy techniques to flatten arrays.
7350
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-flat.md
7347
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-flat.md
7351
7348
  */
7352
7349
  'unicorn/prefer-array-flat'?: Linter.RuleEntry<UnicornPreferArrayFlat>;
7353
7350
  /**
7354
7351
  * Prefer `.flatMap(…)` over `.map(…).flat()`.
7355
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-flat-map.md
7352
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-flat-map.md
7356
7353
  */
7357
7354
  'unicorn/prefer-array-flat-map'?: Linter.RuleEntry<[]>;
7358
7355
  /**
7359
7356
  * Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.
7360
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-index-of.md
7357
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-index-of.md
7361
7358
  */
7362
7359
  'unicorn/prefer-array-index-of'?: Linter.RuleEntry<[]>;
7363
7360
  /**
7364
7361
  * Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.
7365
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-array-some.md
7362
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-array-some.md
7366
7363
  */
7367
7364
  'unicorn/prefer-array-some'?: Linter.RuleEntry<[]>;
7368
7365
  /**
7369
7366
  * Prefer `.at()` method for index access and `String#charAt()`.
7370
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-at.md
7367
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-at.md
7371
7368
  */
7372
7369
  'unicorn/prefer-at'?: Linter.RuleEntry<UnicornPreferAt>;
7373
7370
  /**
7374
7371
  * Prefer `BigInt` literals over the constructor.
7375
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-bigint-literals.md
7372
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-bigint-literals.md
7376
7373
  */
7377
7374
  'unicorn/prefer-bigint-literals'?: Linter.RuleEntry<[]>;
7378
7375
  /**
7379
7376
  * Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.
7380
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-blob-reading-methods.md
7377
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-blob-reading-methods.md
7381
7378
  */
7382
7379
  'unicorn/prefer-blob-reading-methods'?: Linter.RuleEntry<[]>;
7383
7380
  /**
7384
7381
  * Prefer class field declarations over `this` assignments in constructors.
7385
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-class-fields.md
7382
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-class-fields.md
7386
7383
  */
7387
7384
  'unicorn/prefer-class-fields'?: Linter.RuleEntry<[]>;
7388
7385
  /**
7389
7386
  * Prefer using `Element#classList.toggle()` to toggle class names.
7390
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-classlist-toggle.md
7387
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-classlist-toggle.md
7391
7388
  */
7392
7389
  'unicorn/prefer-classlist-toggle'?: Linter.RuleEntry<[]>;
7393
7390
  /**
7394
7391
  * Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.
7395
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-code-point.md
7392
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-code-point.md
7396
7393
  */
7397
7394
  'unicorn/prefer-code-point'?: Linter.RuleEntry<[]>;
7398
7395
  /**
7399
7396
  * Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.
7400
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-date-now.md
7397
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-date-now.md
7401
7398
  */
7402
7399
  'unicorn/prefer-date-now'?: Linter.RuleEntry<[]>;
7403
7400
  /**
7404
7401
  * Prefer default parameters over reassignment.
7405
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-default-parameters.md
7402
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-default-parameters.md
7406
7403
  */
7407
7404
  'unicorn/prefer-default-parameters'?: Linter.RuleEntry<[]>;
7408
7405
  /**
7409
7406
  * Prefer `Node#append()` over `Node#appendChild()`.
7410
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-append.md
7407
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-append.md
7411
7408
  */
7412
7409
  'unicorn/prefer-dom-node-append'?: Linter.RuleEntry<[]>;
7413
7410
  /**
7414
7411
  * Prefer using `.dataset` on DOM elements over calling attribute methods.
7415
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-dataset.md
7412
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-dataset.md
7416
7413
  */
7417
7414
  'unicorn/prefer-dom-node-dataset'?: Linter.RuleEntry<[]>;
7418
7415
  /**
7419
7416
  * Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.
7420
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-remove.md
7417
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-remove.md
7421
7418
  */
7422
7419
  'unicorn/prefer-dom-node-remove'?: Linter.RuleEntry<[]>;
7423
7420
  /**
7424
7421
  * Prefer `.textContent` over `.innerText`.
7425
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-dom-node-text-content.md
7422
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-dom-node-text-content.md
7426
7423
  */
7427
7424
  'unicorn/prefer-dom-node-text-content'?: Linter.RuleEntry<[]>;
7428
7425
  /**
7429
7426
  * Prefer `EventTarget` over `EventEmitter`.
7430
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-event-target.md
7427
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-event-target.md
7431
7428
  */
7432
7429
  'unicorn/prefer-event-target'?: Linter.RuleEntry<[]>;
7433
7430
  /**
7434
7431
  * Prefer `export…from` when re-exporting.
7435
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-export-from.md
7432
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-export-from.md
7436
7433
  */
7437
7434
  'unicorn/prefer-export-from'?: Linter.RuleEntry<UnicornPreferExportFrom>;
7438
7435
  /**
7439
7436
  * Prefer `globalThis` over `window`, `self`, and `global`.
7440
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-global-this.md
7437
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-global-this.md
7441
7438
  */
7442
7439
  'unicorn/prefer-global-this'?: Linter.RuleEntry<[]>;
7443
7440
  /**
7444
7441
  * Prefer `import.meta.{dirname,filename}` over legacy techniques for getting file paths.
7445
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-import-meta-properties.md
7442
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-import-meta-properties.md
7446
7443
  */
7447
7444
  'unicorn/prefer-import-meta-properties'?: Linter.RuleEntry<[]>;
7448
7445
  /**
7449
7446
  * Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.
7450
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-includes.md
7447
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-includes.md
7451
7448
  */
7452
7449
  'unicorn/prefer-includes'?: Linter.RuleEntry<[]>;
7453
7450
  /**
7454
7451
  * Prefer reading a JSON file as a buffer.
7455
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-json-parse-buffer.md
7452
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-json-parse-buffer.md
7456
7453
  */
7457
7454
  'unicorn/prefer-json-parse-buffer'?: Linter.RuleEntry<[]>;
7458
7455
  /**
7459
7456
  * Prefer `KeyboardEvent#key` over `KeyboardEvent#keyCode`.
7460
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-keyboard-event-key.md
7457
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-keyboard-event-key.md
7461
7458
  */
7462
7459
  'unicorn/prefer-keyboard-event-key'?: Linter.RuleEntry<[]>;
7463
7460
  /**
7464
7461
  * Prefer using a logical operator over a ternary.
7465
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-logical-operator-over-ternary.md
7462
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-logical-operator-over-ternary.md
7466
7463
  */
7467
7464
  'unicorn/prefer-logical-operator-over-ternary'?: Linter.RuleEntry<[]>;
7468
7465
  /**
7469
7466
  * Prefer `Math.min()` and `Math.max()` over ternaries for simple comparisons.
7470
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-math-min-max.md
7467
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-math-min-max.md
7471
7468
  */
7472
7469
  'unicorn/prefer-math-min-max'?: Linter.RuleEntry<[]>;
7473
7470
  /**
7474
7471
  * Enforce the use of `Math.trunc` instead of bitwise operators.
7475
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-math-trunc.md
7472
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-math-trunc.md
7476
7473
  */
7477
7474
  'unicorn/prefer-math-trunc'?: Linter.RuleEntry<[]>;
7478
7475
  /**
7479
7476
  * Prefer `.before()` over `.insertBefore()`, `.replaceWith()` over `.replaceChild()`, prefer one of `.before()`, `.after()`, `.append()` or `.prepend()` over `insertAdjacentText()` and `insertAdjacentElement()`.
7480
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-modern-dom-apis.md
7477
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-modern-dom-apis.md
7481
7478
  */
7482
7479
  'unicorn/prefer-modern-dom-apis'?: Linter.RuleEntry<[]>;
7483
7480
  /**
7484
7481
  * Prefer modern `Math` APIs over legacy patterns.
7485
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-modern-math-apis.md
7482
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-modern-math-apis.md
7486
7483
  */
7487
7484
  'unicorn/prefer-modern-math-apis'?: Linter.RuleEntry<[]>;
7488
7485
  /**
7489
7486
  * Prefer JavaScript modules (ESM) over CommonJS.
7490
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-module.md
7487
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-module.md
7491
7488
  */
7492
7489
  'unicorn/prefer-module'?: Linter.RuleEntry<[]>;
7493
7490
  /**
7494
7491
  * Prefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly.
7495
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-native-coercion-functions.md
7492
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-native-coercion-functions.md
7496
7493
  */
7497
7494
  'unicorn/prefer-native-coercion-functions'?: Linter.RuleEntry<[]>;
7498
7495
  /**
7499
7496
  * Prefer negative index over `.length - index` when possible.
7500
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-negative-index.md
7497
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-negative-index.md
7501
7498
  */
7502
7499
  'unicorn/prefer-negative-index'?: Linter.RuleEntry<[]>;
7503
7500
  /**
7504
7501
  * Prefer using the `node:` protocol when importing Node.js builtin modules.
7505
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-node-protocol.md
7502
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-node-protocol.md
7506
7503
  */
7507
7504
  'unicorn/prefer-node-protocol'?: Linter.RuleEntry<[]>;
7508
7505
  /**
7509
7506
  * Prefer `Number` static properties over global ones.
7510
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-number-properties.md
7507
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-number-properties.md
7511
7508
  */
7512
7509
  'unicorn/prefer-number-properties'?: Linter.RuleEntry<UnicornPreferNumberProperties>;
7513
7510
  /**
7514
7511
  * Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.
7515
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-object-from-entries.md
7512
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-object-from-entries.md
7516
7513
  */
7517
7514
  'unicorn/prefer-object-from-entries'?: Linter.RuleEntry<UnicornPreferObjectFromEntries>;
7518
7515
  /**
7519
7516
  * Prefer omitting the `catch` binding parameter.
7520
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-optional-catch-binding.md
7517
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-optional-catch-binding.md
7521
7518
  */
7522
7519
  'unicorn/prefer-optional-catch-binding'?: Linter.RuleEntry<[]>;
7523
7520
  /**
7524
7521
  * Prefer borrowing methods from the prototype instead of the instance.
7525
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-prototype-methods.md
7522
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-prototype-methods.md
7526
7523
  */
7527
7524
  'unicorn/prefer-prototype-methods'?: Linter.RuleEntry<[]>;
7528
7525
  /**
7529
7526
  * Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()` and `.getElementsByName()`.
7530
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-query-selector.md
7527
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-query-selector.md
7531
7528
  */
7532
7529
  'unicorn/prefer-query-selector'?: Linter.RuleEntry<[]>;
7533
7530
  /**
7534
7531
  * Prefer `Reflect.apply()` over `Function#apply()`.
7535
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-reflect-apply.md
7532
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-reflect-apply.md
7536
7533
  */
7537
7534
  'unicorn/prefer-reflect-apply'?: Linter.RuleEntry<[]>;
7538
7535
  /**
7539
7536
  * Prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`.
7540
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-regexp-test.md
7537
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-regexp-test.md
7541
7538
  */
7542
7539
  'unicorn/prefer-regexp-test'?: Linter.RuleEntry<[]>;
7543
7540
  /**
7544
7541
  * Prefer `Response.json()` over `new Response(JSON.stringify())`.
7545
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-response-static-json.md
7542
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-response-static-json.md
7546
7543
  */
7547
7544
  'unicorn/prefer-response-static-json'?: Linter.RuleEntry<[]>;
7548
7545
  /**
7549
7546
  * Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.
7550
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-set-has.md
7547
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-set-has.md
7551
7548
  */
7552
7549
  'unicorn/prefer-set-has'?: Linter.RuleEntry<[]>;
7553
7550
  /**
7554
7551
  * Prefer using `Set#size` instead of `Array#length`.
7555
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-set-size.md
7552
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-set-size.md
7556
7553
  */
7557
7554
  'unicorn/prefer-set-size'?: Linter.RuleEntry<[]>;
7555
+ /**
7556
+ * Prefer simple conditions first in logical expressions.
7557
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-simple-condition-first.md
7558
+ */
7559
+ 'unicorn/prefer-simple-condition-first'?: Linter.RuleEntry<[]>;
7558
7560
  /**
7559
7561
  * Enforce combining multiple `Array#push()`, `Element#classList.{add,remove}()`, and `importScripts()` into one call.
7560
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-single-call.md
7562
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-single-call.md
7561
7563
  */
7562
7564
  'unicorn/prefer-single-call'?: Linter.RuleEntry<UnicornPreferSingleCall>;
7563
7565
  /**
7564
7566
  * Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()` and `String#split('')`.
7565
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-spread.md
7567
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-spread.md
7566
7568
  */
7567
7569
  'unicorn/prefer-spread'?: Linter.RuleEntry<[]>;
7568
7570
  /**
7569
7571
  * Prefer using the `String.raw` tag to avoid escaping `\`.
7570
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-raw.md
7572
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-raw.md
7571
7573
  */
7572
7574
  'unicorn/prefer-string-raw'?: Linter.RuleEntry<[]>;
7573
7575
  /**
7574
7576
  * Prefer `String#replaceAll()` over regex searches with the global flag.
7575
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-replace-all.md
7577
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-replace-all.md
7576
7578
  */
7577
7579
  'unicorn/prefer-string-replace-all'?: Linter.RuleEntry<[]>;
7578
7580
  /**
7579
7581
  * Prefer `String#slice()` over `String#substr()` and `String#substring()`.
7580
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-slice.md
7582
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-slice.md
7581
7583
  */
7582
7584
  'unicorn/prefer-string-slice'?: Linter.RuleEntry<[]>;
7583
7585
  /**
7584
7586
  * Prefer `String#startsWith()` & `String#endsWith()` over `RegExp#test()`.
7585
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-starts-ends-with.md
7587
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-starts-ends-with.md
7586
7588
  */
7587
7589
  'unicorn/prefer-string-starts-ends-with'?: Linter.RuleEntry<[]>;
7588
7590
  /**
7589
7591
  * Prefer `String#trimStart()` / `String#trimEnd()` over `String#trimLeft()` / `String#trimRight()`.
7590
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-string-trim-start-end.md
7592
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-string-trim-start-end.md
7591
7593
  */
7592
7594
  'unicorn/prefer-string-trim-start-end'?: Linter.RuleEntry<[]>;
7593
7595
  /**
7594
7596
  * Prefer using `structuredClone` to create a deep clone.
7595
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-structured-clone.md
7597
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-structured-clone.md
7596
7598
  */
7597
7599
  'unicorn/prefer-structured-clone'?: Linter.RuleEntry<UnicornPreferStructuredClone>;
7598
7600
  /**
7599
7601
  * Prefer `switch` over multiple `else-if`.
7600
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-switch.md
7602
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-switch.md
7601
7603
  */
7602
7604
  'unicorn/prefer-switch'?: Linter.RuleEntry<UnicornPreferSwitch>;
7603
7605
  /**
7604
7606
  * Prefer ternary expressions over simple `if-else` statements.
7605
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-ternary.md
7607
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-ternary.md
7606
7608
  */
7607
7609
  'unicorn/prefer-ternary'?: Linter.RuleEntry<UnicornPreferTernary>;
7608
7610
  /**
7609
7611
  * Prefer top-level await over top-level promises and async function calls.
7610
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-top-level-await.md
7612
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-top-level-await.md
7611
7613
  */
7612
7614
  'unicorn/prefer-top-level-await'?: Linter.RuleEntry<[]>;
7613
7615
  /**
7614
7616
  * Enforce throwing `TypeError` in type checking conditions.
7615
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prefer-type-error.md
7617
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prefer-type-error.md
7616
7618
  */
7617
7619
  'unicorn/prefer-type-error'?: Linter.RuleEntry<[]>;
7618
7620
  /**
7619
7621
  * Prevent abbreviations.
7620
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/prevent-abbreviations.md
7622
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/prevent-abbreviations.md
7621
7623
  */
7622
7624
  'unicorn/prevent-abbreviations'?: Linter.RuleEntry<UnicornPreventAbbreviations>;
7623
7625
  /**
7624
7626
  * Enforce consistent relative URL style.
7625
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/relative-url-style.md
7627
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/relative-url-style.md
7626
7628
  */
7627
7629
  'unicorn/relative-url-style'?: Linter.RuleEntry<UnicornRelativeUrlStyle>;
7628
7630
  /**
7629
7631
  * Enforce using the separator argument with `Array#join()`.
7630
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-array-join-separator.md
7632
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-array-join-separator.md
7631
7633
  */
7632
7634
  'unicorn/require-array-join-separator'?: Linter.RuleEntry<[]>;
7633
7635
  /**
7634
7636
  * Require non-empty module attributes for imports and exports
7635
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-module-attributes.md
7637
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-module-attributes.md
7636
7638
  */
7637
7639
  'unicorn/require-module-attributes'?: Linter.RuleEntry<[]>;
7638
7640
  /**
7639
7641
  * Require non-empty specifier list in import and export statements.
7640
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-module-specifiers.md
7642
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-module-specifiers.md
7641
7643
  */
7642
7644
  'unicorn/require-module-specifiers'?: Linter.RuleEntry<[]>;
7643
7645
  /**
7644
7646
  * Enforce using the digits argument with `Number#toFixed()`.
7645
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-number-to-fixed-digits-argument.md
7647
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-number-to-fixed-digits-argument.md
7646
7648
  */
7647
7649
  'unicorn/require-number-to-fixed-digits-argument'?: Linter.RuleEntry<[]>;
7648
7650
  /**
7649
7651
  * Enforce using the `targetOrigin` argument with `window.postMessage()`.
7650
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/require-post-message-target-origin.md
7652
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/require-post-message-target-origin.md
7651
7653
  */
7652
7654
  'unicorn/require-post-message-target-origin'?: Linter.RuleEntry<[]>;
7653
7655
  /**
7654
7656
  * Enforce better string content.
7655
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/string-content.md
7657
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/string-content.md
7656
7658
  */
7657
7659
  'unicorn/string-content'?: Linter.RuleEntry<UnicornStringContent>;
7658
7660
  /**
7659
7661
  * Enforce consistent brace style for `case` clauses.
7660
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/switch-case-braces.md
7662
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/switch-case-braces.md
7661
7663
  */
7662
7664
  'unicorn/switch-case-braces'?: Linter.RuleEntry<UnicornSwitchCaseBraces>;
7665
+ /**
7666
+ * Enforce consistent `break`/`return`/`continue`/`throw` position in `case` clauses.
7667
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/switch-case-break-position.md
7668
+ */
7669
+ 'unicorn/switch-case-break-position'?: Linter.RuleEntry<[]>;
7663
7670
  /**
7664
7671
  * Fix whitespace-insensitive template indentation.
7665
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/template-indent.md
7672
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/template-indent.md
7666
7673
  */
7667
7674
  'unicorn/template-indent'?: Linter.RuleEntry<UnicornTemplateIndent>;
7668
7675
  /**
7669
7676
  * Enforce consistent case for text encoding identifiers.
7670
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/text-encoding-identifier-case.md
7677
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/text-encoding-identifier-case.md
7671
7678
  */
7672
7679
  'unicorn/text-encoding-identifier-case'?: Linter.RuleEntry<UnicornTextEncodingIdentifierCase>;
7673
7680
  /**
7674
7681
  * Require `new` when creating an error.
7675
- * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v63.0.0/docs/rules/throw-new-error.md
7682
+ * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v64.0.0/docs/rules/throw-new-error.md
7676
7683
  */
7677
7684
  'unicorn/throw-new-error'?: Linter.RuleEntry<[]>;
7678
7685
  /**
@@ -9667,6 +9674,11 @@ type DotLocation = [] | [("object" | "property")]; // ----- dot-notation -----
9667
9674
  type DotNotation = [] | [{
9668
9675
  allowKeywords?: boolean;
9669
9676
  allowPattern?: string;
9677
+ }]; // ----- e18e/ban-dependencies -----
9678
+ type E18EBanDependencies = [] | [{
9679
+ presets?: string[];
9680
+ modules?: string[];
9681
+ allowed?: string[];
9670
9682
  }]; // ----- eol-last -----
9671
9683
  type EolLast = [] | [("always" | "never" | "unix" | "windows")]; // ----- eqeqeq -----
9672
9684
  type Eqeqeq = ([] | ["always"] | ["always", {
@@ -9689,6 +9701,9 @@ type FormatDprint = [] | [{
9689
9701
  };
9690
9702
  plugins?: unknown[];
9691
9703
  [k: string]: unknown | undefined;
9704
+ }]; // ----- format/oxfmt -----
9705
+ type FormatOxfmt = [] | [{
9706
+ [k: string]: unknown | undefined;
9692
9707
  }]; // ----- format/prettier -----
9693
9708
  type FormatPrettier = [] | [{
9694
9709
  parser: string;
@@ -10270,6 +10285,7 @@ type JsdocTagLines = [] | [("always" | "any" | "never")] | [("always" | "any" |
10270
10285
  endLines?: (number | null);
10271
10286
  maxBlockLines?: (number | null);
10272
10287
  startLines?: (number | null);
10288
+ startLinesWithNoTags?: number;
10273
10289
  tags?: {
10274
10290
  [k: string]: {
10275
10291
  count?: number;
@@ -10480,6 +10496,7 @@ type JsoncObjectCurlyNewline = [] | [((("always" | "never") | {
10480
10496
  type JsoncObjectCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
10481
10497
  arraysInObjects?: boolean;
10482
10498
  objectsInObjects?: boolean;
10499
+ emptyObjects?: ("ignore" | "always" | "never");
10483
10500
  }]; // ----- jsonc/object-property-newline -----
10484
10501
  type JsoncObjectPropertyNewline = [] | [{
10485
10502
  allowAllPropertiesOnSameLine?: boolean;
@@ -11146,13 +11163,15 @@ type LogicalAssignmentOperators = (([] | ["always"] | ["always", {
11146
11163
  }] | ["never"]) & unknown[]); // ----- markdown/fenced-code-language -----
11147
11164
  type MarkdownFencedCodeLanguage = [] | [{
11148
11165
  required?: string[];
11149
- }]; // ----- markdown/heading-increment -----
11166
+ }]; // ----- markdown/fenced-code-meta -----
11167
+ type MarkdownFencedCodeMeta = [] | [("always" | "never")]; // ----- markdown/heading-increment -----
11150
11168
  type MarkdownHeadingIncrement = [] | [{
11151
11169
  frontmatterTitle?: string;
11152
11170
  }]; // ----- markdown/no-duplicate-definitions -----
11153
11171
  type MarkdownNoDuplicateDefinitions = [] | [{
11154
11172
  allowDefinitions?: string[];
11155
11173
  allowFootnoteDefinitions?: string[];
11174
+ checkFootnoteDefinitions?: boolean;
11156
11175
  }]; // ----- markdown/no-duplicate-headings -----
11157
11176
  type MarkdownNoDuplicateHeadings = [] | [{
11158
11177
  checkSiblingsOnly?: boolean;
@@ -11185,6 +11204,7 @@ type MarkdownNoSpaceInEmphasis = [] | [{
11185
11204
  type MarkdownNoUnusedDefinitions = [] | [{
11186
11205
  allowDefinitions?: string[];
11187
11206
  allowFootnoteDefinitions?: string[];
11207
+ checkFootnoteDefinitions?: boolean;
11188
11208
  }]; // ----- markdown/table-column-count -----
11189
11209
  type MarkdownTableColumnCount = [] | [{
11190
11210
  checkMissingCells?: boolean;
@@ -12038,6 +12058,7 @@ type PerfectionistSortArrayIncludes = {
12038
12058
  pattern: string;
12039
12059
  flags?: string;
12040
12060
  } | string));
12061
+ matchesAstSelector?: string;
12041
12062
  };
12042
12063
  partitionByComment?: (boolean | (({
12043
12064
  pattern: string;
@@ -12063,7 +12084,7 @@ type PerfectionistSortArrayIncludes = {
12063
12084
  });
12064
12085
  partitionByNewLine?: boolean;
12065
12086
  }[]; // ----- perfectionist/sort-classes -----
12066
- type PerfectionistSortClasses = [] | [{
12087
+ type PerfectionistSortClasses = {
12067
12088
  fallbackSort?: {
12068
12089
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12069
12090
  order?: ("asc" | "desc");
@@ -12180,6 +12201,16 @@ type PerfectionistSortClasses = [] | [{
12180
12201
  order?: ("asc" | "desc");
12181
12202
  })[];
12182
12203
  newlinesBetween?: ("ignore" | number);
12204
+ useConfigurationIf?: {
12205
+ allNamesMatchPattern?: (({
12206
+ pattern: string;
12207
+ flags?: string;
12208
+ } | string)[] | ({
12209
+ pattern: string;
12210
+ flags?: string;
12211
+ } | string));
12212
+ matchesAstSelector?: string;
12213
+ };
12183
12214
  useExperimentalDependencyDetection?: boolean;
12184
12215
  ignoreCallbackDependenciesPatterns?: (({
12185
12216
  pattern: string;
@@ -12211,7 +12242,7 @@ type PerfectionistSortClasses = [] | [{
12211
12242
  } | string)));
12212
12243
  });
12213
12244
  partitionByNewLine?: boolean;
12214
- }]; // ----- perfectionist/sort-decorators -----
12245
+ }[]; // ----- perfectionist/sort-decorators -----
12215
12246
  type PerfectionistSortDecorators = {
12216
12247
  fallbackSort?: {
12217
12248
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
@@ -12310,7 +12341,7 @@ type PerfectionistSortDecorators = {
12310
12341
  });
12311
12342
  partitionByNewLine?: boolean;
12312
12343
  }[]; // ----- perfectionist/sort-enums -----
12313
- type PerfectionistSortEnums = [] | [{
12344
+ type PerfectionistSortEnums = {
12314
12345
  fallbackSort?: {
12315
12346
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
12316
12347
  order?: ("asc" | "desc");
@@ -12400,6 +12431,16 @@ type PerfectionistSortEnums = [] | [{
12400
12431
  order?: ("asc" | "desc");
12401
12432
  })[];
12402
12433
  newlinesBetween?: ("ignore" | number);
12434
+ useConfigurationIf?: {
12435
+ allNamesMatchPattern?: (({
12436
+ pattern: string;
12437
+ flags?: string;
12438
+ } | string)[] | ({
12439
+ pattern: string;
12440
+ flags?: string;
12441
+ } | string));
12442
+ matchesAstSelector?: string;
12443
+ };
12403
12444
  sortByValue?: ("always" | "ifNumericEnum" | "never");
12404
12445
  useExperimentalDependencyDetection?: boolean;
12405
12446
  partitionByComment?: (boolean | (({
@@ -12425,7 +12466,7 @@ type PerfectionistSortEnums = [] | [{
12425
12466
  } | string)));
12426
12467
  });
12427
12468
  partitionByNewLine?: boolean;
12428
- }]; // ----- perfectionist/sort-export-attributes -----
12469
+ }[]; // ----- perfectionist/sort-export-attributes -----
12429
12470
  type PerfectionistSortExportAttributes = {
12430
12471
  fallbackSort?: {
12431
12472
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
@@ -12495,6 +12536,16 @@ type PerfectionistSortExportAttributes = {
12495
12536
  order?: ("asc" | "desc");
12496
12537
  })[];
12497
12538
  newlinesBetween?: ("ignore" | number);
12539
+ useConfigurationIf?: {
12540
+ allNamesMatchPattern?: (({
12541
+ pattern: string;
12542
+ flags?: string;
12543
+ } | string)[] | ({
12544
+ pattern: string;
12545
+ flags?: string;
12546
+ } | string));
12547
+ matchesAstSelector?: string;
12548
+ };
12498
12549
  partitionByComment?: (boolean | (({
12499
12550
  pattern: string;
12500
12551
  flags?: string;
@@ -12687,6 +12738,16 @@ type PerfectionistSortHeritageClauses = {
12687
12738
  order?: ("asc" | "desc");
12688
12739
  })[];
12689
12740
  newlinesBetween?: ("ignore" | number);
12741
+ useConfigurationIf?: {
12742
+ allNamesMatchPattern?: (({
12743
+ pattern: string;
12744
+ flags?: string;
12745
+ } | string)[] | ({
12746
+ pattern: string;
12747
+ flags?: string;
12748
+ } | string));
12749
+ matchesAstSelector?: string;
12750
+ };
12690
12751
  partitionByNewLine?: boolean;
12691
12752
  partitionByComment?: (boolean | (({
12692
12753
  pattern: string;
@@ -12780,6 +12841,16 @@ type PerfectionistSortImportAttributes = {
12780
12841
  order?: ("asc" | "desc");
12781
12842
  })[];
12782
12843
  newlinesBetween?: ("ignore" | number);
12844
+ useConfigurationIf?: {
12845
+ allNamesMatchPattern?: (({
12846
+ pattern: string;
12847
+ flags?: string;
12848
+ } | string)[] | ({
12849
+ pattern: string;
12850
+ flags?: string;
12851
+ } | string));
12852
+ matchesAstSelector?: string;
12853
+ };
12783
12854
  partitionByComment?: (boolean | (({
12784
12855
  pattern: string;
12785
12856
  flags?: string;
@@ -13048,6 +13119,7 @@ type PerfectionistSortInterfaces = {
13048
13119
  pattern: string;
13049
13120
  flags?: string;
13050
13121
  } | string));
13122
+ matchesAstSelector?: string;
13051
13123
  declarationMatchesPattern?: (({
13052
13124
  scope?: ("shallow" | "deep");
13053
13125
  pattern: string;
@@ -13154,6 +13226,16 @@ type PerfectionistSortIntersectionTypes = {
13154
13226
  order?: ("asc" | "desc");
13155
13227
  })[];
13156
13228
  newlinesBetween?: ("ignore" | number);
13229
+ useConfigurationIf?: {
13230
+ allNamesMatchPattern?: (({
13231
+ pattern: string;
13232
+ flags?: string;
13233
+ } | string)[] | ({
13234
+ pattern: string;
13235
+ flags?: string;
13236
+ } | string));
13237
+ matchesAstSelector?: string;
13238
+ };
13157
13239
  partitionByComment?: (boolean | (({
13158
13240
  pattern: string;
13159
13241
  flags?: string;
@@ -13282,6 +13364,7 @@ type PerfectionistSortJsxProps = {
13282
13364
  pattern: string;
13283
13365
  flags?: string;
13284
13366
  } | string));
13367
+ matchesAstSelector?: string;
13285
13368
  tagMatchesPattern?: (({
13286
13369
  pattern: string;
13287
13370
  flags?: string;
@@ -13369,6 +13452,7 @@ type PerfectionistSortMaps = {
13369
13452
  pattern: string;
13370
13453
  flags?: string;
13371
13454
  } | string));
13455
+ matchesAstSelector?: string;
13372
13456
  };
13373
13457
  partitionByComment?: (boolean | (({
13374
13458
  pattern: string;
@@ -13590,6 +13674,16 @@ type PerfectionistSortNamedExports = {
13590
13674
  order?: ("asc" | "desc");
13591
13675
  })[];
13592
13676
  newlinesBetween?: ("ignore" | number);
13677
+ useConfigurationIf?: {
13678
+ allNamesMatchPattern?: (({
13679
+ pattern: string;
13680
+ flags?: string;
13681
+ } | string)[] | ({
13682
+ pattern: string;
13683
+ flags?: string;
13684
+ } | string));
13685
+ matchesAstSelector?: string;
13686
+ };
13593
13687
  ignoreAlias?: boolean;
13594
13688
  partitionByComment?: (boolean | (({
13595
13689
  pattern: string;
@@ -13690,6 +13784,16 @@ type PerfectionistSortNamedImports = {
13690
13784
  order?: ("asc" | "desc");
13691
13785
  })[];
13692
13786
  newlinesBetween?: ("ignore" | number);
13787
+ useConfigurationIf?: {
13788
+ allNamesMatchPattern?: (({
13789
+ pattern: string;
13790
+ flags?: string;
13791
+ } | string)[] | ({
13792
+ pattern: string;
13793
+ flags?: string;
13794
+ } | string));
13795
+ matchesAstSelector?: string;
13796
+ };
13693
13797
  ignoreAlias?: boolean;
13694
13798
  partitionByComment?: (boolean | (({
13695
13799
  pattern: string;
@@ -13837,6 +13941,7 @@ type PerfectionistSortObjectTypes = {
13837
13941
  pattern: string;
13838
13942
  flags?: string;
13839
13943
  } | string));
13944
+ matchesAstSelector?: string;
13840
13945
  declarationMatchesPattern?: (({
13841
13946
  scope?: ("shallow" | "deep");
13842
13947
  pattern: string;
@@ -14003,6 +14108,7 @@ type PerfectionistSortObjects = {
14003
14108
  pattern: string;
14004
14109
  flags?: string;
14005
14110
  } | string));
14111
+ matchesAstSelector?: string;
14006
14112
  declarationMatchesPattern?: (({
14007
14113
  scope?: ("shallow" | "deep");
14008
14114
  pattern: string;
@@ -14013,6 +14119,7 @@ type PerfectionistSortObjects = {
14013
14119
  flags?: string;
14014
14120
  } | string));
14015
14121
  };
14122
+ partitionByComputedKey?: boolean;
14016
14123
  styledComponents?: boolean;
14017
14124
  useExperimentalDependencyDetection?: boolean;
14018
14125
  partitionByComment?: (boolean | (({
@@ -14119,6 +14226,7 @@ type PerfectionistSortSets = {
14119
14226
  pattern: string;
14120
14227
  flags?: string;
14121
14228
  } | string));
14229
+ matchesAstSelector?: string;
14122
14230
  };
14123
14231
  partitionByComment?: (boolean | (({
14124
14232
  pattern: string;
@@ -14228,6 +14336,16 @@ type PerfectionistSortUnionTypes = {
14228
14336
  order?: ("asc" | "desc");
14229
14337
  })[];
14230
14338
  newlinesBetween?: ("ignore" | number);
14339
+ useConfigurationIf?: {
14340
+ allNamesMatchPattern?: (({
14341
+ pattern: string;
14342
+ flags?: string;
14343
+ } | string)[] | ({
14344
+ pattern: string;
14345
+ flags?: string;
14346
+ } | string));
14347
+ matchesAstSelector?: string;
14348
+ };
14231
14349
  partitionByComment?: (boolean | (({
14232
14350
  pattern: string;
14233
14351
  flags?: string;
@@ -14252,7 +14370,7 @@ type PerfectionistSortUnionTypes = {
14252
14370
  });
14253
14371
  partitionByNewLine?: boolean;
14254
14372
  }[]; // ----- perfectionist/sort-variable-declarations -----
14255
- type PerfectionistSortVariableDeclarations = [] | [{
14373
+ type PerfectionistSortVariableDeclarations = {
14256
14374
  fallbackSort?: {
14257
14375
  type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
14258
14376
  order?: ("asc" | "desc");
@@ -14324,6 +14442,16 @@ type PerfectionistSortVariableDeclarations = [] | [{
14324
14442
  order?: ("asc" | "desc");
14325
14443
  })[];
14326
14444
  newlinesBetween?: ("ignore" | number);
14445
+ useConfigurationIf?: {
14446
+ allNamesMatchPattern?: (({
14447
+ pattern: string;
14448
+ flags?: string;
14449
+ } | string)[] | ({
14450
+ pattern: string;
14451
+ flags?: string;
14452
+ } | string));
14453
+ matchesAstSelector?: string;
14454
+ };
14327
14455
  useExperimentalDependencyDetection?: boolean;
14328
14456
  partitionByComment?: (boolean | (({
14329
14457
  pattern: string;
@@ -14348,7 +14476,7 @@ type PerfectionistSortVariableDeclarations = [] | [{
14348
14476
  } | string)));
14349
14477
  });
14350
14478
  partitionByNewLine?: boolean;
14351
- }]; // ----- pnpm/json-enforce-catalog -----
14479
+ }[]; // ----- pnpm/json-enforce-catalog -----
14352
14480
  type PnpmJsonEnforceCatalog = [] | [{
14353
14481
  allowedProtocols?: string[];
14354
14482
  autofix?: boolean;
@@ -14440,139 +14568,35 @@ type Radix = [] | [("always" | "as-needed")]; // ----- react-dom/no-unknown-prop
14440
14568
  type ReactDomNoUnknownProperty = [] | [{
14441
14569
  ignore?: string[];
14442
14570
  requireDataLowercase?: boolean;
14443
- }]; // ----- react-hooks/automatic-effect-dependencies -----
14444
- type ReactHooksAutomaticEffectDependencies = [] | [{
14445
- [k: string]: unknown | undefined;
14446
- }]; // ----- react-hooks/capitalized-calls -----
14447
- type ReactHooksCapitalizedCalls = [] | [{
14448
- [k: string]: unknown | undefined;
14449
- }]; // ----- react-hooks/component-hook-factories -----
14450
- type ReactHooksComponentHookFactories = [] | [{
14451
- [k: string]: unknown | undefined;
14452
- }]; // ----- react-hooks/config -----
14453
- type ReactHooksConfig = [] | [{
14454
- [k: string]: unknown | undefined;
14455
- }]; // ----- react-hooks/error-boundaries -----
14456
- type ReactHooksErrorBoundaries = [] | [{
14457
- [k: string]: unknown | undefined;
14458
- }]; // ----- react-hooks/exhaustive-deps -----
14459
- type ReactHooksExhaustiveDeps = [] | [{
14460
- additionalHooks?: string;
14461
- enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
14462
- experimental_autoDependenciesHooks?: string[];
14463
- requireExplicitEffectDeps?: boolean;
14464
- }]; // ----- react-hooks/fbt -----
14465
- type ReactHooksFbt = [] | [{
14466
- [k: string]: unknown | undefined;
14467
- }]; // ----- react-hooks/fire -----
14468
- type ReactHooksFire = [] | [{
14469
- [k: string]: unknown | undefined;
14470
- }]; // ----- react-hooks/gating -----
14471
- type ReactHooksGating = [] | [{
14472
- [k: string]: unknown | undefined;
14473
- }]; // ----- react-hooks/globals -----
14474
- type ReactHooksGlobals = [] | [{
14475
- [k: string]: unknown | undefined;
14476
- }]; // ----- react-hooks/hooks -----
14477
- type ReactHooksHooks = [] | [{
14478
- [k: string]: unknown | undefined;
14479
- }]; // ----- react-hooks/immutability -----
14480
- type ReactHooksImmutability = [] | [{
14481
- [k: string]: unknown | undefined;
14482
- }]; // ----- react-hooks/incompatible-library -----
14483
- type ReactHooksIncompatibleLibrary = [] | [{
14484
- [k: string]: unknown | undefined;
14485
- }]; // ----- react-hooks/invariant -----
14486
- type ReactHooksInvariant = [] | [{
14487
- [k: string]: unknown | undefined;
14488
- }]; // ----- react-hooks/memoized-effect-dependencies -----
14489
- type ReactHooksMemoizedEffectDependencies = [] | [{
14490
- [k: string]: unknown | undefined;
14491
- }]; // ----- react-hooks/no-deriving-state-in-effects -----
14492
- type ReactHooksNoDerivingStateInEffects = [] | [{
14493
- [k: string]: unknown | undefined;
14494
- }]; // ----- react-hooks/preserve-manual-memoization -----
14495
- type ReactHooksPreserveManualMemoization = [] | [{
14496
- [k: string]: unknown | undefined;
14497
- }]; // ----- react-hooks/purity -----
14498
- type ReactHooksPurity = [] | [{
14499
- [k: string]: unknown | undefined;
14500
- }]; // ----- react-hooks/refs -----
14501
- type ReactHooksRefs = [] | [{
14502
- [k: string]: unknown | undefined;
14503
- }]; // ----- react-hooks/rule-suppression -----
14504
- type ReactHooksRuleSuppression = [] | [{
14505
- [k: string]: unknown | undefined;
14506
- }]; // ----- react-hooks/rules-of-hooks -----
14507
- type ReactHooksRulesOfHooks = [] | [{
14508
- additionalHooks?: string;
14509
- }]; // ----- react-hooks/set-state-in-effect -----
14510
- type ReactHooksSetStateInEffect = [] | [{
14511
- [k: string]: unknown | undefined;
14512
- }]; // ----- react-hooks/set-state-in-render -----
14513
- type ReactHooksSetStateInRender = [] | [{
14514
- [k: string]: unknown | undefined;
14515
- }]; // ----- react-hooks/static-components -----
14516
- type ReactHooksStaticComponents = [] | [{
14517
- [k: string]: unknown | undefined;
14518
- }]; // ----- react-hooks/syntax -----
14519
- type ReactHooksSyntax = [] | [{
14520
- [k: string]: unknown | undefined;
14521
- }]; // ----- react-hooks/todo -----
14522
- type ReactHooksTodo = [] | [{
14523
- [k: string]: unknown | undefined;
14524
- }]; // ----- react-hooks/unsupported-syntax -----
14525
- type ReactHooksUnsupportedSyntax = [] | [{
14526
- [k: string]: unknown | undefined;
14527
- }]; // ----- react-hooks/use-memo -----
14528
- type ReactHooksUseMemo = [] | [{
14529
- [k: string]: unknown | undefined;
14530
- }]; // ----- react-hooks/void-use-memo -----
14531
- type ReactHooksVoidUseMemo = [] | [{
14532
- [k: string]: unknown | undefined;
14533
- }]; // ----- react-naming-convention/component-name -----
14534
- type ReactNamingConventionComponentName = [] | [(("PascalCase" | "CONSTANT_CASE") | {
14535
- allowAllCaps?: boolean;
14536
- excepts?: string[];
14537
- rule?: ("PascalCase" | "CONSTANT_CASE");
14538
- })]; // ----- react-naming-convention/filename -----
14539
- type ReactNamingConventionFilename = [] | [(("PascalCase" | "camelCase" | "kebab-case" | "snake_case") | {
14540
- excepts?: string[];
14541
- extensions?: string[];
14542
- rule?: ("PascalCase" | "camelCase" | "kebab-case" | "snake_case");
14543
- })]; // ----- react-naming-convention/filename-extension -----
14544
- type ReactNamingConventionFilenameExtension = [] | [(("always" | "as-needed") | {
14545
- allow?: ("always" | "as-needed");
14546
- extensions?: string[];
14547
- ignoreFilesWithoutCode?: boolean;
14548
- })]; // ----- react-naming-convention/use-state -----
14549
- type ReactNamingConventionUseState = [] | [{
14550
- enforceAssignment?: boolean;
14551
- enforceSetterName?: boolean;
14552
14571
  }]; // ----- react-refresh/only-export-components -----
14553
14572
  type ReactRefreshOnlyExportComponents = [] | [{
14554
14573
  extraHOCs?: string[];
14555
14574
  allowExportNames?: string[];
14556
14575
  allowConstantExport?: boolean;
14557
14576
  checkJS?: boolean;
14577
+ }]; // ----- react/exhaustive-deps -----
14578
+ type ReactExhaustiveDeps = [] | [{
14579
+ additionalHooks?: string;
14580
+ enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
14581
+ experimental_autoDependenciesHooks?: string[];
14582
+ requireExplicitEffectDeps?: boolean;
14558
14583
  }]; // ----- react/jsx-shorthand-boolean -----
14559
14584
  type ReactJsxShorthandBoolean = [] | [(-1 | 1)]; // ----- react/jsx-shorthand-fragment -----
14560
- type ReactJsxShorthandFragment = [] | [(-1 | 1)]; // ----- react/no-forbidden-props -----
14561
- type ReactNoForbiddenProps = [] | [{
14562
- forbid?: (string | {
14563
- excludedNodes?: string[];
14564
- prop: string;
14565
- } | {
14566
- includedNodes?: string[];
14567
- prop: string;
14568
- })[];
14569
- }]; // ----- react/no-unstable-default-props -----
14585
+ type ReactJsxShorthandFragment = [] | [(-1 | 1)]; // ----- react/no-unstable-default-props -----
14570
14586
  type ReactNoUnstableDefaultProps = [] | [{
14571
14587
  safeDefaultProps?: string[];
14572
14588
  }]; // ----- react/no-useless-fragment -----
14573
14589
  type ReactNoUselessFragment = [] | [{
14574
14590
  allowEmptyFragment?: boolean;
14575
14591
  allowExpressions?: boolean;
14592
+ }]; // ----- react/rules-of-hooks -----
14593
+ type ReactRulesOfHooks = [] | [{
14594
+ additionalHooks?: string;
14595
+ }]; // ----- react/use-state -----
14596
+ type ReactUseState = [] | [{
14597
+ enforceAssignment?: boolean;
14598
+ enforceLazyInitialization?: boolean;
14599
+ enforceSetterName?: boolean;
14576
14600
  }]; // ----- regexp/hexadecimal-escape -----
14577
14601
  type RegexpHexadecimalEscape = [] | [("always" | "never")]; // ----- regexp/letter-case -----
14578
14602
  type RegexpLetterCase = [] | [{
@@ -14953,33 +14977,33 @@ type StyleExpListStyle = [] | [{
14953
14977
  singleLine?: _StyleExpListStyle_SingleLineConfig;
14954
14978
  multiLine?: _StyleExpListStyle_MultiLineConfig;
14955
14979
  overrides?: {
14956
- "()"?: _StyleExpListStyle_BaseConfig;
14957
- "[]"?: _StyleExpListStyle_BaseConfig;
14958
- "{}"?: _StyleExpListStyle_BaseConfig;
14959
- "<>"?: _StyleExpListStyle_BaseConfig;
14960
- ArrayExpression?: _StyleExpListStyle_BaseConfig;
14961
- ArrayPattern?: _StyleExpListStyle_BaseConfig;
14962
- ArrowFunctionExpression?: _StyleExpListStyle_BaseConfig;
14963
- CallExpression?: _StyleExpListStyle_BaseConfig;
14964
- ExportNamedDeclaration?: _StyleExpListStyle_BaseConfig;
14965
- FunctionDeclaration?: _StyleExpListStyle_BaseConfig;
14966
- FunctionExpression?: _StyleExpListStyle_BaseConfig;
14967
- IfStatement?: _StyleExpListStyle_BaseConfig;
14968
- ImportAttributes?: _StyleExpListStyle_BaseConfig;
14969
- ImportDeclaration?: _StyleExpListStyle_BaseConfig;
14970
- JSONArrayExpression?: _StyleExpListStyle_BaseConfig;
14971
- JSONObjectExpression?: _StyleExpListStyle_BaseConfig;
14972
- NewExpression?: _StyleExpListStyle_BaseConfig;
14973
- ObjectExpression?: _StyleExpListStyle_BaseConfig;
14974
- ObjectPattern?: _StyleExpListStyle_BaseConfig;
14975
- TSDeclareFunction?: _StyleExpListStyle_BaseConfig;
14976
- TSEnumBody?: _StyleExpListStyle_BaseConfig;
14977
- TSFunctionType?: _StyleExpListStyle_BaseConfig;
14978
- TSInterfaceBody?: _StyleExpListStyle_BaseConfig;
14979
- TSTupleType?: _StyleExpListStyle_BaseConfig;
14980
- TSTypeLiteral?: _StyleExpListStyle_BaseConfig;
14981
- TSTypeParameterDeclaration?: _StyleExpListStyle_BaseConfig;
14982
- TSTypeParameterInstantiation?: _StyleExpListStyle_BaseConfig;
14980
+ "()"?: (_StyleExpListStyle_BaseConfig | "off");
14981
+ "[]"?: (_StyleExpListStyle_BaseConfig | "off");
14982
+ "{}"?: (_StyleExpListStyle_BaseConfig | "off");
14983
+ "<>"?: (_StyleExpListStyle_BaseConfig | "off");
14984
+ ArrayExpression?: (_StyleExpListStyle_BaseConfig | "off");
14985
+ ArrayPattern?: (_StyleExpListStyle_BaseConfig | "off");
14986
+ ArrowFunctionExpression?: (_StyleExpListStyle_BaseConfig | "off");
14987
+ CallExpression?: (_StyleExpListStyle_BaseConfig | "off");
14988
+ ExportNamedDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
14989
+ FunctionDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
14990
+ FunctionExpression?: (_StyleExpListStyle_BaseConfig | "off");
14991
+ IfStatement?: (_StyleExpListStyle_BaseConfig | "off");
14992
+ ImportAttributes?: (_StyleExpListStyle_BaseConfig | "off");
14993
+ ImportDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
14994
+ JSONArrayExpression?: (_StyleExpListStyle_BaseConfig | "off");
14995
+ JSONObjectExpression?: (_StyleExpListStyle_BaseConfig | "off");
14996
+ NewExpression?: (_StyleExpListStyle_BaseConfig | "off");
14997
+ ObjectExpression?: (_StyleExpListStyle_BaseConfig | "off");
14998
+ ObjectPattern?: (_StyleExpListStyle_BaseConfig | "off");
14999
+ TSDeclareFunction?: (_StyleExpListStyle_BaseConfig | "off");
15000
+ TSEnumBody?: (_StyleExpListStyle_BaseConfig | "off");
15001
+ TSFunctionType?: (_StyleExpListStyle_BaseConfig | "off");
15002
+ TSInterfaceBody?: (_StyleExpListStyle_BaseConfig | "off");
15003
+ TSTupleType?: (_StyleExpListStyle_BaseConfig | "off");
15004
+ TSTypeLiteral?: (_StyleExpListStyle_BaseConfig | "off");
15005
+ TSTypeParameterDeclaration?: (_StyleExpListStyle_BaseConfig | "off");
15006
+ TSTypeParameterInstantiation?: (_StyleExpListStyle_BaseConfig | "off");
14983
15007
  };
14984
15008
  }];
14985
15009
  interface _StyleExpListStyle_SingleLineConfig {
@@ -15840,13 +15864,18 @@ type StylePaddedBlocks = [] | [(("always" | "never" | "start" | "end") | {
15840
15864
  allowSingleLineBlocks?: boolean;
15841
15865
  }]; // ----- style/padding-line-between-statements -----
15842
15866
  type _StylePaddingLineBetweenStatementsPaddingType = ("any" | "never" | "always");
15843
- type _StylePaddingLineBetweenStatementsStatementOption = (_StylePaddingLineBetweenStatementsStatementType | [_StylePaddingLineBetweenStatementsStatementType, ...(_StylePaddingLineBetweenStatementsStatementType)[]]);
15867
+ type _StylePaddingLineBetweenStatementsStatementOption = (_StylePaddingLineBetweenStatementsStatementMatcher | [_StylePaddingLineBetweenStatementsStatementMatcher, ...(_StylePaddingLineBetweenStatementsStatementMatcher)[]]);
15868
+ type _StylePaddingLineBetweenStatementsStatementMatcher = (_StylePaddingLineBetweenStatementsStatementType | _StylePaddingLineBetweenStatements_SelectorOption);
15844
15869
  type _StylePaddingLineBetweenStatementsStatementType = ("*" | "exports" | "require" | "directive" | "iife" | "block" | "empty" | "function" | "ts-method" | "break" | "case" | "class" | "continue" | "debugger" | "default" | "do" | "for" | "if" | "import" | "switch" | "throw" | "try" | "while" | "with" | "cjs-export" | "cjs-import" | "enum" | "interface" | "function-overload" | "block-like" | "singleline-block-like" | "multiline-block-like" | "expression" | "singleline-expression" | "multiline-expression" | "return" | "singleline-return" | "multiline-return" | "export" | "singleline-export" | "multiline-export" | "var" | "singleline-var" | "multiline-var" | "let" | "singleline-let" | "multiline-let" | "const" | "singleline-const" | "multiline-const" | "using" | "singleline-using" | "multiline-using" | "type" | "singleline-type" | "multiline-type");
15845
15870
  type StylePaddingLineBetweenStatements = {
15846
15871
  blankLine: _StylePaddingLineBetweenStatementsPaddingType;
15847
15872
  prev: _StylePaddingLineBetweenStatementsStatementOption;
15848
15873
  next: _StylePaddingLineBetweenStatementsStatementOption;
15849
- }[]; // ----- style/quote-props -----
15874
+ }[];
15875
+ interface _StylePaddingLineBetweenStatements_SelectorOption {
15876
+ selector: string;
15877
+ lineMode?: ("any" | "singleline" | "multiline");
15878
+ } // ----- style/quote-props -----
15850
15879
  type StyleQuoteProps = ([] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [] | [("always" | "as-needed" | "consistent" | "consistent-as-needed")] | [("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
15851
15880
  keywords?: boolean;
15852
15881
  unnecessary?: boolean;
@@ -16005,6 +16034,13 @@ type SvelteIndent = [] | [{
16005
16034
  type SvelteMaxAttributesPerLine = [] | [{
16006
16035
  multiline?: number;
16007
16036
  singleline?: number;
16037
+ }]; // ----- svelte/max-lines-per-block -----
16038
+ type SvelteMaxLinesPerBlock = [] | [{
16039
+ script?: number;
16040
+ template?: number;
16041
+ style?: number;
16042
+ skipBlankLines?: boolean;
16043
+ skipComments?: boolean;
16008
16044
  }]; // ----- svelte/mustache-spacing -----
16009
16045
  type SvelteMustacheSpacing = [] | [{
16010
16046
  textExpressions?: ("never" | "always");
@@ -16188,6 +16224,9 @@ type TestRequireMockTypeParameters = [] | [{
16188
16224
  }]; // ----- test/require-top-level-describe -----
16189
16225
  type TestRequireTopLevelDescribe = [] | [{
16190
16226
  maxNumberOfTopLevelDescribes?: number;
16227
+ }]; // ----- test/unbound-method -----
16228
+ type TestUnboundMethod = [] | [{
16229
+ ignoreStatic?: boolean;
16191
16230
  }]; // ----- test/valid-expect -----
16192
16231
  type TestValidExpect = [] | [{
16193
16232
  alwaysAwait?: boolean;
@@ -16229,10 +16268,19 @@ type TomlCommaStyle = [] | [("first" | "last")] | [("first" | "last"), {
16229
16268
  type TomlIndent = [] | [("tab" | number)] | [("tab" | number), {
16230
16269
  subTables?: number;
16231
16270
  keyValuePairs?: number;
16232
- }]; // ----- toml/inline-table-curly-spacing -----
16271
+ }]; // ----- toml/inline-table-curly-newline -----
16272
+ type TomlInlineTableCurlyNewline = [] | [(("always" | "never") | {
16273
+ multiline?: boolean;
16274
+ minProperties?: number;
16275
+ consistent?: boolean;
16276
+ })]; // ----- toml/inline-table-curly-spacing -----
16233
16277
  type TomlInlineTableCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
16234
16278
  arraysInObjects?: boolean;
16235
16279
  objectsInObjects?: boolean;
16280
+ emptyObjects?: ("ignore" | "always" | "never");
16281
+ }]; // ----- toml/inline-table-key-value-newline -----
16282
+ type TomlInlineTableKeyValueNewline = [] | [{
16283
+ allowAllPropertiesOnSameLine?: boolean;
16236
16284
  }]; // ----- toml/key-spacing -----
16237
16285
  type TomlKeySpacing = [] | [({
16238
16286
  align?: (("equal" | "value") | {
@@ -17080,6 +17128,18 @@ type TsPreferOptionalChain = [] | [{
17080
17128
  requireNullish?: boolean;
17081
17129
  }]; // ----- ts/prefer-promise-reject-errors -----
17082
17130
  type TsPreferPromiseRejectErrors = [] | [{
17131
+ allow?: (string | {
17132
+ from: "file";
17133
+ name: (string | [string, ...(string)[]]);
17134
+ path?: string;
17135
+ } | {
17136
+ from: "lib";
17137
+ name: (string | [string, ...(string)[]]);
17138
+ } | {
17139
+ from: "package";
17140
+ name: (string | [string, ...(string)[]]);
17141
+ package: string;
17142
+ })[];
17083
17143
  allowEmptyReject?: boolean;
17084
17144
  allowThrowingAny?: boolean;
17085
17145
  allowThrowingUnknown?: boolean;
@@ -17211,6 +17271,7 @@ type UnicornEscapeCase = [] | [("uppercase" | "lowercase")]; // ----- unicorn/ex
17211
17271
  type UnicornExpiringTodoComments = [] | [{
17212
17272
  terms?: string[];
17213
17273
  ignore?: unknown[];
17274
+ ignoreDates?: boolean;
17214
17275
  ignoreDatesOnPullRequests?: boolean;
17215
17276
  allowWarningComments?: boolean;
17216
17277
  date?: string;
@@ -17367,6 +17428,9 @@ type _UnicornPreventAbbreviationsReplacements = (false | _UnicornPreventAbbrevia
17367
17428
  interface _UnicornPreventAbbreviations_Abbreviations {
17368
17429
  [k: string]: _UnicornPreventAbbreviationsReplacements | undefined;
17369
17430
  }
17431
+ interface _UnicornPreventAbbreviations_BooleanObject {
17432
+ [k: string]: boolean | undefined;
17433
+ }
17370
17434
  interface _UnicornPreventAbbreviations_BooleanObject {
17371
17435
  [k: string]: boolean | undefined;
17372
17436
  } // ----- unicorn/relative-url-style -----
@@ -18579,6 +18643,7 @@ type YamlFlowMappingCurlyNewline = [] | [(("always" | "never") | {
18579
18643
  type YamlFlowMappingCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
18580
18644
  arraysInObjects?: boolean;
18581
18645
  objectsInObjects?: boolean;
18646
+ emptyObjects?: ("ignore" | "always" | "never");
18582
18647
  }]; // ----- yaml/flow-sequence-bracket-newline -----
18583
18648
  type YamlFlowSequenceBracketNewline = [] | [(("always" | "never" | "consistent") | {
18584
18649
  multiline?: boolean;
@@ -18749,7 +18814,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
18749
18814
  exceptRange?: boolean;
18750
18815
  onlyEquality?: boolean;
18751
18816
  }]; // Names of all the configs
18752
- type ConfigNames = 'kirklin/gitignore' | 'kirklin/ignores' | 'kirklin/javascript/setup' | 'kirklin/javascript/rules' | 'kirklin/eslint-comments/rules' | 'kirklin/command/rules' | 'kirklin/perfectionist/setup' | 'kirklin/node/rules' | 'kirklin/jsdoc/rules' | 'kirklin/imports/rules' | 'kirklin/unicorn/rules' | 'kirklin/jsx/setup' | 'kirklin/typescript/setup' | 'kirklin/typescript/parser' | 'kirklin/typescript/type-aware-parser' | 'kirklin/typescript/rules' | 'kirklin/typescript/rules-type-aware' | 'kirklin/typescript/erasable-syntax-only' | 'kirklin/stylistic/rules' | 'kirklin/regexp/rules' | 'kirklin/test/setup' | 'kirklin/test/rules' | 'kirklin/vue/setup' | 'kirklin/vue/rules' | 'kirklin/react/setup' | 'kirklin/react/rules' | 'kirklin/react/typescript' | 'kirklin/react/type-aware-rules' | 'kirklin/nextjs/setup' | 'kirklin/nextjs/rules' | 'kirklin/solid/setup' | 'kirklin/solid/rules' | 'kirklin/svelte/setup' | 'kirklin/svelte/rules' | 'kirklin/unocss' | 'kirklin/astro/setup' | 'kirklin/astro/rules' | 'kirklin/angular/setup' | 'kirklin/angular/rules/ts' | 'kirklin/angular/rules/template' | 'kirklin/jsonc/setup' | 'kirklin/jsonc/rules' | 'kirklin/sort/package-json' | 'kirklin/sort/tsconfig-json' | 'kirklin/pnpm/package-json' | 'kirklin/pnpm/pnpm-workspace-yaml' | 'kirklin/pnpm/pnpm-workspace-yaml-sort' | 'kirklin/yaml/setup' | 'kirklin/yaml/rules' | 'kirklin/toml/setup' | 'kirklin/toml/rules' | 'kirklin/markdown/setup' | 'kirklin/markdown/processor' | 'kirklin/markdown/parser' | 'kirklin/markdown/disables' | 'kirklin/formatter/setup' | 'kirklin/formatter/css' | 'kirklin/formatter/scss' | 'kirklin/formatter/less' | 'kirklin/formatter/html' | 'kirklin/formatter/xml' | 'kirklin/formatter/svg' | 'kirklin/formatter/markdown' | 'kirklin/formatter/astro' | 'kirklin/formatter/astro/disables' | 'kirklin/formatter/graphql' | 'kirklin/disables/scripts' | 'kirklin/disables/cli' | 'kirklin/disables/bin' | 'kirklin/disables/dts' | 'kirklin/disables/cjs' | 'kirklin/disables/config-files';
18817
+ type ConfigNames = 'kirklin/gitignore' | 'kirklin/ignores' | 'kirklin/javascript/setup' | 'kirklin/javascript/rules' | 'kirklin/eslint-comments/rules' | 'kirklin/command/rules' | 'kirklin/perfectionist/setup' | 'kirklin/node/setup' | 'kirklin/node/rules' | 'kirklin/jsdoc/setup' | 'kirklin/jsdoc/rules' | 'kirklin/imports/rules' | 'kirklin/e18e/rules' | 'kirklin/unicorn/rules' | 'kirklin/jsx/setup' | 'kirklin/typescript/setup' | 'kirklin/typescript/parser' | 'kirklin/typescript/type-aware-parser' | 'kirklin/typescript/rules' | 'kirklin/typescript/rules-type-aware' | 'kirklin/typescript/erasable-syntax-only' | 'kirklin/stylistic/rules' | 'kirklin/regexp/rules' | 'kirklin/test/setup' | 'kirklin/test/rules' | 'kirklin/vue/setup' | 'kirklin/vue/rules' | 'kirklin/react/setup' | 'kirklin/react/rules' | 'kirklin/react/typescript' | 'kirklin/react/type-aware-rules' | 'kirklin/nextjs/setup' | 'kirklin/nextjs/rules' | 'kirklin/solid/setup' | 'kirklin/solid/rules' | 'kirklin/svelte/setup' | 'kirklin/svelte/rules' | 'kirklin/unocss' | 'kirklin/astro/setup' | 'kirklin/astro/rules' | 'kirklin/angular/setup' | 'kirklin/angular/rules/ts' | 'kirklin/angular/rules/template' | 'kirklin/jsonc/setup' | 'kirklin/jsonc/rules' | 'kirklin/sort/package-json' | 'kirklin/sort/tsconfig-json' | 'kirklin/pnpm/package-json' | 'kirklin/pnpm/pnpm-workspace-yaml' | 'kirklin/pnpm/pnpm-workspace-yaml-sort' | 'kirklin/yaml/setup' | 'kirklin/yaml/rules' | 'kirklin/toml/setup' | 'kirklin/toml/rules' | 'kirklin/markdown/setup' | 'kirklin/markdown/processor' | 'kirklin/markdown/parser' | 'kirklin/markdown/rules' | 'kirklin/markdown/disables/markdown' | 'kirklin/markdown/disables/code' | 'kirklin/formatter/setup' | 'kirklin/formatter/css' | 'kirklin/formatter/scss' | 'kirklin/formatter/less' | 'kirklin/formatter/html' | 'kirklin/formatter/xml' | 'kirklin/formatter/svg' | 'kirklin/formatter/markdown' | 'kirklin/formatter/astro' | 'kirklin/formatter/astro/disables' | 'kirklin/formatter/graphql' | 'kirklin/disables/scripts' | 'kirklin/disables/cli' | 'kirklin/disables/bin' | 'kirklin/disables/dts' | 'kirklin/disables/cjs' | 'kirklin/disables/config-files';
18753
18818
  //#endregion
18754
18819
  //#region src/vender/prettier-types.d.ts
18755
18820
  /**
@@ -19008,6 +19073,29 @@ interface OptionsComponentExts {
19008
19073
  */
19009
19074
  componentExts?: string[];
19010
19075
  }
19076
+ interface OptionsE18e extends OptionsOverrides {
19077
+ /**
19078
+ * Include modernization rules
19079
+ *
19080
+ * @see https://github.com/e18e/eslint-plugin#modernization
19081
+ * @default true
19082
+ */
19083
+ modernization?: boolean;
19084
+ /**
19085
+ * Include module replacements rules
19086
+ *
19087
+ * @see https://github.com/e18e/eslint-plugin#module-replacements
19088
+ * @default type === 'lib' && isInEditor
19089
+ */
19090
+ moduleReplacements?: boolean;
19091
+ /**
19092
+ * Include performance improvements rules
19093
+ *
19094
+ * @see https://github.com/e18e/eslint-plugin#performance-improvements
19095
+ * @default true
19096
+ */
19097
+ performanceImprovements?: boolean;
19098
+ }
19011
19099
  interface OptionsUnicorn extends OptionsOverrides {
19012
19100
  /**
19013
19101
  * Include all rules recommended by `eslint-plugin-unicorn`, instead of only ones picked by Anthony.
@@ -19016,6 +19104,18 @@ interface OptionsUnicorn extends OptionsOverrides {
19016
19104
  */
19017
19105
  allRecommended?: boolean;
19018
19106
  }
19107
+ interface OptionsMarkdown extends OptionsOverrides {
19108
+ /**
19109
+ * Enable GFM (GitHub Flavored Markdown) support.
19110
+ *
19111
+ * @default true
19112
+ */
19113
+ gfm?: boolean;
19114
+ /**
19115
+ * Override rules for markdown itself.
19116
+ */
19117
+ overridesMarkdown?: TypedFlatConfigItem["rules"];
19118
+ }
19019
19119
  interface OptionsTypeScriptParserOptions {
19020
19120
  /**
19021
19121
  * Additional parser options for TypeScript.
@@ -19117,9 +19217,7 @@ interface OptionsUnoCSS extends OptionsOverrides {
19117
19217
  */
19118
19218
  strict?: boolean;
19119
19219
  }
19120
- interface OptionsReact extends OptionsOverrides {
19121
- reactCompiler?: boolean;
19122
- }
19220
+ interface OptionsReact extends OptionsOverrides {}
19123
19221
  interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19124
19222
  /**
19125
19223
  * Enable gitignore support.
@@ -19181,6 +19279,12 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19181
19279
  * @default true
19182
19280
  */
19183
19281
  jsx?: boolean | OptionsJSX;
19282
+ /**
19283
+ * Options for [@e18e/eslint-plugin](https://github.com/e18e/eslint-plugin)
19284
+ *
19285
+ * @default true
19286
+ */
19287
+ e18e?: boolean | OptionsE18e;
19184
19288
  /**
19185
19289
  * Options for eslint-plugin-unicorn.
19186
19290
  *
@@ -19247,13 +19351,13 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19247
19351
  */
19248
19352
  angular?: boolean | OptionsOverrides;
19249
19353
  /**
19250
- * Enable linting for **code snippets** in Markdown.
19354
+ * Enable linting for **code snippets** in Markdown and the markdown content itself.
19251
19355
  *
19252
19356
  * For formatting Markdown content, enable also `formatters.markdown`.
19253
19357
  *
19254
19358
  * @default true
19255
19359
  */
19256
- markdown?: boolean | OptionsOverrides;
19360
+ markdown?: boolean | OptionsMarkdown;
19257
19361
  /**
19258
19362
  * Enable stylistic rules.
19259
19363
  *
@@ -19273,7 +19377,6 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19273
19377
  *
19274
19378
  * Requires installing:
19275
19379
  * - `@eslint-react/eslint-plugin`
19276
- * - `eslint-plugin-react-hooks`
19277
19380
  * - `eslint-plugin-react-refresh`
19278
19381
  *
19279
19382
  * @default false
@@ -19372,8 +19475,9 @@ interface OptionsConfig extends OptionsComponentExts, OptionsProjectType {
19372
19475
  declare const defaultPluginRenaming: {
19373
19476
  "@eslint-react": string;
19374
19477
  "@eslint-react/dom": string;
19375
- "@eslint-react/hooks-extra": string;
19376
19478
  "@eslint-react/naming-convention": string;
19479
+ "@eslint-react/rsc": string;
19480
+ "@eslint-react/web-api": string;
19377
19481
  "@next/next": string;
19378
19482
  "@stylistic": string;
19379
19483
  "@typescript-eslint": string;
@@ -19438,7 +19542,7 @@ declare function jsonc(options?: OptionsFiles & OptionsStylistic & OptionsOverri
19438
19542
  declare function jsx(options?: OptionsJSX): Promise<TypedFlatConfigItem[]>;
19439
19543
  //#endregion
19440
19544
  //#region src/configs/markdown.d.ts
19441
- declare function markdown(options?: OptionsFiles & OptionsComponentExts & OptionsOverrides): Promise<TypedFlatConfigItem[]>;
19545
+ declare function markdown(options?: OptionsFiles & OptionsComponentExts & OptionsMarkdown): Promise<TypedFlatConfigItem[]>;
19442
19546
  //#endregion
19443
19547
  //#region src/configs/nextjs.d.ts
19444
19548
  declare function nextjs(options?: OptionsOverrides & OptionsFiles): Promise<TypedFlatConfigItem[]>;
@@ -19616,4 +19720,4 @@ declare function ensurePackages(packages: (string | undefined)[]): Promise<void>
19616
19720
  declare function isInEditorEnv(): boolean;
19617
19721
  declare function isInGitHooksOrLintStaged(): boolean;
19618
19722
  //#endregion
19619
- export { Awaitable, CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, type ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsJSX, OptionsJSXA11y, OptionsOverrides, OptionsPnpm, OptionsProjectType, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, type RuleOptions, Rules, StylisticConfig, StylisticConfigDefaults, StylisticOptions, TypedFlatConfigItem, angular, astro, combine, command, comments, kirklin as default, kirklin, defaultPluginRenaming, disables, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, solid, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };
19723
+ export { Awaitable, CONFIG_PRESET_FULL_OFF, CONFIG_PRESET_FULL_ON, type ConfigNames, GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_SVELTE, GLOB_SVG, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_XML, GLOB_YAML, OptionsComponentExts, OptionsConfig, OptionsE18e, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsJSX, OptionsJSXA11y, OptionsMarkdown, OptionsOverrides, OptionsPnpm, OptionsProjectType, OptionsReact, OptionsRegExp, OptionsStylistic, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, OptionsUnicorn, OptionsUnoCSS, OptionsVue, ResolvedOptions, type RuleOptions, Rules, StylisticConfig, StylisticConfigDefaults, StylisticOptions, TypedFlatConfigItem, angular, astro, combine, command, comments, kirklin as default, kirklin, defaultPluginRenaming, disables, ensurePackages, formatters, getOverrides, ignores, imports, interopDefault, isInEditorEnv, isInGitHooksOrLintStaged, isPackageInScope, javascript, jsdoc, jsonc, jsx, markdown, nextjs, node, parserPlain, perfectionist, pnpm, react, regexp, renamePluginInConfigs, renameRules, resolveSubOptions, solid, sortPackageJson, sortTsconfig, stylistic, svelte, test, toArray, toml, typescript, unicorn, unocss, vue, yaml };