@bfra.me/eslint-config 0.29.1 → 0.30.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/lib/index.d.ts CHANGED
@@ -1793,6 +1793,11 @@ interface Rules {
1793
1793
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header
1794
1794
  */
1795
1795
  'jsdoc/text-escaping'?: Linter.RuleEntry<JsdocTextEscaping>
1796
+ /**
1797
+ * Formats JSDoc type values.
1798
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header
1799
+ */
1800
+ 'jsdoc/type-formatting'?: Linter.RuleEntry<JsdocTypeFormatting>
1796
1801
  /**
1797
1802
  * Requires all types to be valid JSDoc or Closure compiler types without syntax errors.
1798
1803
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header
@@ -2259,6 +2264,110 @@ interface Rules {
2259
2264
  * @deprecated
2260
2265
  */
2261
2266
  'newline-per-chained-call'?: Linter.RuleEntry<NewlinePerChainedCall>
2267
+ /**
2268
+ * Enforce font-display behavior with Google Fonts.
2269
+ * @see https://nextjs.org/docs/messages/google-font-display
2270
+ */
2271
+ 'next/google-font-display'?: Linter.RuleEntry<[]>
2272
+ /**
2273
+ * Ensure `preconnect` is used with Google Fonts.
2274
+ * @see https://nextjs.org/docs/messages/google-font-preconnect
2275
+ */
2276
+ 'next/google-font-preconnect'?: Linter.RuleEntry<[]>
2277
+ /**
2278
+ * Enforce `id` attribute on `next/script` components with inline content.
2279
+ * @see https://nextjs.org/docs/messages/inline-script-id
2280
+ */
2281
+ 'next/inline-script-id'?: Linter.RuleEntry<[]>
2282
+ /**
2283
+ * Prefer `next/script` component when using the inline script for Google Analytics.
2284
+ * @see https://nextjs.org/docs/messages/next-script-for-ga
2285
+ */
2286
+ 'next/next-script-for-ga'?: Linter.RuleEntry<[]>
2287
+ /**
2288
+ * Prevent assignment to the `module` variable.
2289
+ * @see https://nextjs.org/docs/messages/no-assign-module-variable
2290
+ */
2291
+ 'next/no-assign-module-variable'?: Linter.RuleEntry<[]>
2292
+ /**
2293
+ * Prevent Client Components from being async functions.
2294
+ * @see https://nextjs.org/docs/messages/no-async-client-component
2295
+ */
2296
+ 'next/no-async-client-component'?: Linter.RuleEntry<[]>
2297
+ /**
2298
+ * Prevent usage of `next/script`'s `beforeInteractive` strategy outside of `pages/_document.js`.
2299
+ * @see https://nextjs.org/docs/messages/no-before-interactive-script-outside-document
2300
+ */
2301
+ 'next/no-before-interactive-script-outside-document'?: Linter.RuleEntry<[]>
2302
+ /**
2303
+ * Prevent manual stylesheet tags.
2304
+ * @see https://nextjs.org/docs/messages/no-css-tags
2305
+ */
2306
+ 'next/no-css-tags'?: Linter.RuleEntry<[]>
2307
+ /**
2308
+ * Prevent importing `next/document` outside of `pages/_document.js`.
2309
+ * @see https://nextjs.org/docs/messages/no-document-import-in-page
2310
+ */
2311
+ 'next/no-document-import-in-page'?: Linter.RuleEntry<[]>
2312
+ /**
2313
+ * Prevent duplicate usage of `<Head>` in `pages/_document.js`.
2314
+ * @see https://nextjs.org/docs/messages/no-duplicate-head
2315
+ */
2316
+ 'next/no-duplicate-head'?: Linter.RuleEntry<[]>
2317
+ /**
2318
+ * Prevent usage of `<head>` element.
2319
+ * @see https://nextjs.org/docs/messages/no-head-element
2320
+ */
2321
+ 'next/no-head-element'?: Linter.RuleEntry<[]>
2322
+ /**
2323
+ * Prevent usage of `next/head` in `pages/_document.js`.
2324
+ * @see https://nextjs.org/docs/messages/no-head-import-in-document
2325
+ */
2326
+ 'next/no-head-import-in-document'?: Linter.RuleEntry<[]>
2327
+ /**
2328
+ * Prevent usage of `<a>` elements to navigate to internal Next.js pages.
2329
+ * @see https://nextjs.org/docs/messages/no-html-link-for-pages
2330
+ */
2331
+ 'next/no-html-link-for-pages'?: Linter.RuleEntry<NextNoHtmlLinkForPages>
2332
+ /**
2333
+ * Prevent usage of `<img>` element due to slower LCP and higher bandwidth.
2334
+ * @see https://nextjs.org/docs/messages/no-img-element
2335
+ */
2336
+ 'next/no-img-element'?: Linter.RuleEntry<[]>
2337
+ /**
2338
+ * Prevent page-only custom fonts.
2339
+ * @see https://nextjs.org/docs/messages/no-page-custom-font
2340
+ */
2341
+ 'next/no-page-custom-font'?: Linter.RuleEntry<[]>
2342
+ /**
2343
+ * Prevent usage of `next/script` in `next/head` component.
2344
+ * @see https://nextjs.org/docs/messages/no-script-component-in-head
2345
+ */
2346
+ 'next/no-script-component-in-head'?: Linter.RuleEntry<[]>
2347
+ /**
2348
+ * Prevent usage of `styled-jsx` in `pages/_document.js`.
2349
+ * @see https://nextjs.org/docs/messages/no-styled-jsx-in-document
2350
+ */
2351
+ 'next/no-styled-jsx-in-document'?: Linter.RuleEntry<[]>
2352
+ /**
2353
+ * Prevent synchronous scripts.
2354
+ * @see https://nextjs.org/docs/messages/no-sync-scripts
2355
+ */
2356
+ 'next/no-sync-scripts'?: Linter.RuleEntry<[]>
2357
+ /**
2358
+ * Prevent usage of `<title>` with `Head` component from `next/document`.
2359
+ * @see https://nextjs.org/docs/messages/no-title-in-document-head
2360
+ */
2361
+ 'next/no-title-in-document-head'?: Linter.RuleEntry<[]>
2362
+ /**
2363
+ * Prevent common typos in Next.js data fetching functions.
2364
+ */
2365
+ 'next/no-typos'?: Linter.RuleEntry<[]>
2366
+ /**
2367
+ * Prevent duplicate polyfills from Polyfill.io.
2368
+ * @see https://nextjs.org/docs/messages/no-unwanted-polyfillio
2369
+ */
2370
+ 'next/no-unwanted-polyfillio'?: Linter.RuleEntry<[]>
2262
2371
  /**
2263
2372
  * Disallow the use of `alert`, `confirm`, and `prompt`
2264
2373
  * @see https://eslint.org/docs/latest/rules/no-alert
@@ -3603,6 +3712,517 @@ interface Rules {
3603
3712
  * @see https://eslint.org/docs/latest/rules/radix
3604
3713
  */
3605
3714
  'radix'?: Linter.RuleEntry<Radix>
3715
+ /**
3716
+ * Disallow `children` in void DOM elements.
3717
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
3718
+ */
3719
+ 'react-dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
3720
+ /**
3721
+ * Disallow `dangerouslySetInnerHTML`.
3722
+ * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
3723
+ */
3724
+ 'react-dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
3725
+ /**
3726
+ * Disallow `dangerouslySetInnerHTML` and `children` at the same time.
3727
+ * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
3728
+ */
3729
+ 'react-dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
3730
+ /**
3731
+ * Disallow `findDOMNode`.
3732
+ * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
3733
+ */
3734
+ 'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>
3735
+ /**
3736
+ * Disallow `flushSync`.
3737
+ * @see https://eslint-react.xyz/docs/rules/dom-no-flush-sync
3738
+ */
3739
+ 'react-dom/no-flush-sync'?: Linter.RuleEntry<[]>
3740
+ /**
3741
+ * Replaces usages of `ReactDom.hydrate()` with `hydrateRoot()`.
3742
+ * @see https://eslint-react.xyz/docs/rules/dom-no-hydrate
3743
+ */
3744
+ 'react-dom/no-hydrate'?: Linter.RuleEntry<[]>
3745
+ /**
3746
+ * Enforces explicit `type` attribute for `button` elements.
3747
+ * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
3748
+ */
3749
+ 'react-dom/no-missing-button-type'?: Linter.RuleEntry<[]>
3750
+ /**
3751
+ * Enforces explicit `sandbox` attribute for `iframe` elements.
3752
+ * @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
3753
+ */
3754
+ 'react-dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
3755
+ /**
3756
+ * Enforces the absence of a `namespace` in React elements.
3757
+ * @see https://eslint-react.xyz/docs/rules/dom-no-namespace
3758
+ */
3759
+ 'react-dom/no-namespace'?: Linter.RuleEntry<[]>
3760
+ /**
3761
+ * Replaces usages of `ReactDom.render()` with `createRoot(node).render()`.
3762
+ * @see https://eslint-react.xyz/docs/rules/dom-no-render
3763
+ */
3764
+ 'react-dom/no-render'?: Linter.RuleEntry<[]>
3765
+ /**
3766
+ * Disallow the return value of `ReactDOM.render`.
3767
+ * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
3768
+ */
3769
+ 'react-dom/no-render-return-value'?: Linter.RuleEntry<[]>
3770
+ /**
3771
+ * Disallow `javascript:` URLs as attribute values.
3772
+ * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
3773
+ */
3774
+ 'react-dom/no-script-url'?: Linter.RuleEntry<[]>
3775
+ /**
3776
+ * Disallow unknown `DOM` property.
3777
+ * @see https://eslint-react.xyz/docs/rules/dom-no-unknown-property
3778
+ */
3779
+ 'react-dom/no-unknown-property'?: Linter.RuleEntry<ReactDomNoUnknownProperty>
3780
+ /**
3781
+ * Enforces `sandbox` attribute for `iframe` elements is not set to unsafe combinations.
3782
+ * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
3783
+ */
3784
+ 'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
3785
+ /**
3786
+ * Disallow `target="_blank"` without `rel="noreferrer noopener"`.
3787
+ * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
3788
+ */
3789
+ 'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
3790
+ /**
3791
+ * Replaces usages of `useFormState` with `useActionState`.
3792
+ * @see https://eslint-react.xyz/docs/rules/dom-no-use-form-state
3793
+ */
3794
+ 'react-dom/no-use-form-state'?: Linter.RuleEntry<[]>
3795
+ /**
3796
+ * Disallow `children` in void DOM elements.
3797
+ * @see https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children
3798
+ */
3799
+ 'react-dom/no-void-elements-with-children'?: Linter.RuleEntry<[]>
3800
+ /**
3801
+ * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
3802
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
3803
+ */
3804
+ 'react-hooks-extra/ensure-custom-hooks-using-other-hooks'?: Linter.RuleEntry<[]>
3805
+ /**
3806
+ * Disallow unnecessary usage of `useCallback`.
3807
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
3808
+ */
3809
+ 'react-hooks-extra/ensure-use-callback-has-non-empty-deps'?: Linter.RuleEntry<[]>
3810
+ /**
3811
+ * Disallow unnecessary usage of `useMemo`.
3812
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
3813
+ */
3814
+ 'react-hooks-extra/ensure-use-memo-has-non-empty-deps'?: Linter.RuleEntry<[]>
3815
+ /**
3816
+ * Disallow direct calls to the `set` function of `useState` in `useEffect`.
3817
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
3818
+ */
3819
+ 'react-hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>
3820
+ /**
3821
+ * Disallow direct calls to the `set` function of `useState` in `useLayoutEffect`.
3822
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-layout-effect
3823
+ */
3824
+ 'react-hooks-extra/no-direct-set-state-in-use-layout-effect'?: Linter.RuleEntry<[]>
3825
+ /**
3826
+ * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
3827
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
3828
+ */
3829
+ 'react-hooks-extra/no-redundant-custom-hook'?: Linter.RuleEntry<[]>
3830
+ /**
3831
+ * Disallow unnecessary usage of `useCallback`.
3832
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
3833
+ */
3834
+ 'react-hooks-extra/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>
3835
+ /**
3836
+ * Disallow unnecessary usage of `useMemo`.
3837
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
3838
+ */
3839
+ 'react-hooks-extra/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>
3840
+ /**
3841
+ * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
3842
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
3843
+ */
3844
+ 'react-hooks-extra/no-unnecessary-use-prefix'?: Linter.RuleEntry<[]>
3845
+ /**
3846
+ * Enforces that a function with the `use` prefix should use at least one Hook inside of it.
3847
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-prefix
3848
+ */
3849
+ 'react-hooks-extra/no-useless-custom-hooks'?: Linter.RuleEntry<[]>
3850
+ /**
3851
+ * Enforces function calls made inside `useState` to be wrapped in an `initializer function`.
3852
+ * @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
3853
+ */
3854
+ 'react-hooks-extra/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>
3855
+ /**
3856
+ * verifies the list of dependencies for Hooks like useEffect and similar
3857
+ * @see https://github.com/facebook/react/issues/14920
3858
+ */
3859
+ 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
3860
+ /**
3861
+ * enforces the Rules of Hooks
3862
+ * @see https://reactjs.org/docs/hooks-rules.html
3863
+ */
3864
+ 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
3865
+ /**
3866
+ * Enforces naming conventions for components.
3867
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
3868
+ */
3869
+ 'react-naming-convention/component-name'?: Linter.RuleEntry<ReactNamingConventionComponentName>
3870
+ /**
3871
+ * Enforces context name to be a valid component name with the suffix `Context`.
3872
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-context-name
3873
+ */
3874
+ 'react-naming-convention/context-name'?: Linter.RuleEntry<[]>
3875
+ /**
3876
+ * Enforces consistent file naming conventions.
3877
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-filename
3878
+ */
3879
+ 'react-naming-convention/filename'?: Linter.RuleEntry<ReactNamingConventionFilename>
3880
+ /**
3881
+ * Enforces consistent file naming conventions.
3882
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
3883
+ */
3884
+ 'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>
3885
+ /**
3886
+ * Enforces destructuring and symmetric naming of `useState` hook value and setter.
3887
+ * @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
3888
+ */
3889
+ 'react-naming-convention/use-state'?: Linter.RuleEntry<[]>
3890
+ 'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>
3891
+ /**
3892
+ * Prevents leaked `addEventListener` in a component or custom Hook.
3893
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
3894
+ */
3895
+ 'react-web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>
3896
+ /**
3897
+ * Prevents leaked `setInterval` in a component or custom Hook.
3898
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
3899
+ */
3900
+ 'react-web-api/no-leaked-interval'?: Linter.RuleEntry<[]>
3901
+ /**
3902
+ * Prevents leaked `ResizeObserver` in a component or custom Hook.
3903
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
3904
+ */
3905
+ 'react-web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>
3906
+ /**
3907
+ * Prevents leaked `setTimeout` in a component or custom Hook.
3908
+ * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
3909
+ */
3910
+ 'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>
3911
+ /**
3912
+ * Enforces explicit boolean values for boolean attributes.
3913
+ * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
3914
+ */
3915
+ 'react/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
3916
+ /**
3917
+ * Enforces explicit `<Fragment>` components instead of the shorthand `<>` or `</>` syntax.
3918
+ * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-fragment
3919
+ */
3920
+ 'react/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
3921
+ /**
3922
+ * Disallow useless `forwardRef` calls on components that don't use `ref`s.
3923
+ * @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
3924
+ */
3925
+ 'react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
3926
+ /**
3927
+ * Enforces that the 'key' attribute is placed before the spread attribute in JSX elements.
3928
+ * @see https://eslint-react.xyz/docs/rules/jsx-key-before-spread
3929
+ */
3930
+ 'react/jsx-key-before-spread'?: Linter.RuleEntry<[]>
3931
+ /**
3932
+ * Disallow duplicate props in JSX elements.
3933
+ * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
3934
+ */
3935
+ 'react/jsx-no-duplicate-props'?: Linter.RuleEntry<[]>
3936
+ /**
3937
+ * Disallows 'IIFE' in JSX elements.
3938
+ * @see https://eslint-react.xyz/docs/rules/jsx-no-iife
3939
+ */
3940
+ 'react/jsx-no-iife'?: Linter.RuleEntry<[]>
3941
+ /**
3942
+ * Disallow undefined variables in JSX.
3943
+ * @see https://eslint-react.xyz/docs/rules/jsx-no-undef
3944
+ */
3945
+ 'react/jsx-no-undef'?: Linter.RuleEntry<[]>
3946
+ /**
3947
+ * Marks React variables as used when JSX is used.
3948
+ * @see https://eslint-react.xyz/docs/rules/jsx-uses-react
3949
+ */
3950
+ 'react/jsx-uses-react'?: Linter.RuleEntry<[]>
3951
+ /**
3952
+ * Marks variables used in JSX elements as used.
3953
+ * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
3954
+ */
3955
+ 'react/jsx-uses-vars'?: Linter.RuleEntry<[]>
3956
+ /**
3957
+ * Disallow accessing `this.state` inside `setState` calls.
3958
+ * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
3959
+ */
3960
+ 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
3961
+ /**
3962
+ * Disallow an item's index in the array as its key.
3963
+ * @see https://eslint-react.xyz/docs/rules/no-array-index-key
3964
+ */
3965
+ 'react/no-array-index-key'?: Linter.RuleEntry<[]>
3966
+ /**
3967
+ * Disallow `Children.count`.
3968
+ * @see https://eslint-react.xyz/docs/rules/no-children-count
3969
+ */
3970
+ 'react/no-children-count'?: Linter.RuleEntry<[]>
3971
+ /**
3972
+ * Disallow 'Children.forEach'.
3973
+ * @see https://eslint-react.xyz/docs/rules/no-children-for-each
3974
+ */
3975
+ 'react/no-children-for-each'?: Linter.RuleEntry<[]>
3976
+ /**
3977
+ * Disallow `Children.map`.
3978
+ * @see https://eslint-react.xyz/docs/rules/no-children-map
3979
+ */
3980
+ 'react/no-children-map'?: Linter.RuleEntry<[]>
3981
+ /**
3982
+ * Disallow `Children.only`.
3983
+ * @see https://eslint-react.xyz/docs/rules/no-children-only
3984
+ */
3985
+ 'react/no-children-only'?: Linter.RuleEntry<[]>
3986
+ /**
3987
+ * Disallow passing `children` as a prop.
3988
+ * @see https://eslint-react.xyz/docs/rules/no-children-prop
3989
+ */
3990
+ 'react/no-children-prop'?: Linter.RuleEntry<[]>
3991
+ /**
3992
+ * Disallow `Children.toArray`.
3993
+ * @see https://eslint-react.xyz/docs/rules/no-children-to-array
3994
+ */
3995
+ 'react/no-children-to-array'?: Linter.RuleEntry<[]>
3996
+ /**
3997
+ * Disallow class components except for error boundaries.
3998
+ * @see https://eslint-react.xyz/docs/rules/no-class-component
3999
+ */
4000
+ 'react/no-class-component'?: Linter.RuleEntry<[]>
4001
+ /**
4002
+ * Disallow `cloneElement`.
4003
+ * @see https://eslint-react.xyz/docs/rules/no-clone-element
4004
+ */
4005
+ 'react/no-clone-element'?: Linter.RuleEntry<[]>
4006
+ /**
4007
+ * Prevents comments from being inserted as text nodes.
4008
+ * @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
4009
+ */
4010
+ 'react/no-comment-textnodes'?: Linter.RuleEntry<[]>
4011
+ /**
4012
+ * Disallow complex conditional rendering in JSX expressions.
4013
+ * @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
4014
+ */
4015
+ 'react/no-complex-conditional-rendering'?: Linter.RuleEntry<[]>
4016
+ /**
4017
+ * Disallow complex conditional rendering in JSX expressions.
4018
+ * @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
4019
+ */
4020
+ 'react/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
4021
+ /**
4022
+ * Replace usages of `componentWillMount` with `UNSAFE_componentWillMount`.
4023
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
4024
+ */
4025
+ 'react/no-component-will-mount'?: Linter.RuleEntry<[]>
4026
+ /**
4027
+ * Replace usages of `componentWillReceiveProps` with `UNSAFE_componentWillReceiveProps`.
4028
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
4029
+ */
4030
+ 'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>
4031
+ /**
4032
+ * Replace usages of `componentWillUpdate` with `UNSAFE_componentWillUpdate`.
4033
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-update
4034
+ */
4035
+ 'react/no-component-will-update'?: Linter.RuleEntry<[]>
4036
+ /**
4037
+ * Replace usages of `<Context.Provider>` with `<Context>`.
4038
+ * @see https://eslint-react.xyz/docs/rules/no-context-provider
4039
+ */
4040
+ 'react/no-context-provider'?: Linter.RuleEntry<[]>
4041
+ /**
4042
+ * Disallow `createRef` in function components.
4043
+ * @see https://eslint-react.xyz/docs/rules/no-create-ref
4044
+ */
4045
+ 'react/no-create-ref'?: Linter.RuleEntry<[]>
4046
+ /**
4047
+ * Disallow `defaultProps` property in favor of ES6 default parameters.
4048
+ * @see https://eslint-react.xyz/docs/rules/no-default-props
4049
+ */
4050
+ 'react/no-default-props'?: Linter.RuleEntry<[]>
4051
+ /**
4052
+ * Disallow direct mutation of `this.state`.
4053
+ * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
4054
+ */
4055
+ 'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
4056
+ /**
4057
+ * Disallow duplicate props in JSX elements.
4058
+ * @see https://eslint-react.xyz/docs/rules/jsx-no-duplicate-props
4059
+ */
4060
+ 'react/no-duplicate-jsx-props'?: Linter.RuleEntry<[]>
4061
+ /**
4062
+ * Disallow duplicate `key` on elements in the same array or a list of `children`.
4063
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
4064
+ */
4065
+ 'react/no-duplicate-key'?: Linter.RuleEntry<[]>
4066
+ /**
4067
+ * Replaces usages of `forwardRef` with passing `ref` as a prop.
4068
+ * @see https://eslint-react.xyz/docs/rules/no-forward-ref
4069
+ */
4070
+ 'react/no-forward-ref'?: Linter.RuleEntry<[]>
4071
+ /**
4072
+ * Prevents `key` from not being explicitly specified (e.g. spreading `key` from objects).
4073
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-key
4074
+ */
4075
+ 'react/no-implicit-key'?: Linter.RuleEntry<[]>
4076
+ /**
4077
+ * Prevents problematic leaked values from being rendered.
4078
+ * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
4079
+ */
4080
+ 'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
4081
+ /**
4082
+ * Enforces that all components have a `displayName` which can be used in devtools.
4083
+ * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
4084
+ */
4085
+ 'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>
4086
+ /**
4087
+ * Enforces that all contexts have a `displayName` which can be used in devtools.
4088
+ * @see https://eslint-react.xyz/docs/rules/no-missing-context-display-name
4089
+ */
4090
+ 'react/no-missing-context-display-name'?: Linter.RuleEntry<[]>
4091
+ /**
4092
+ * Disallow missing `key` on items in list rendering.
4093
+ * @see https://eslint-react.xyz/docs/rules/no-missing-key
4094
+ */
4095
+ 'react/no-missing-key'?: Linter.RuleEntry<[]>
4096
+ /**
4097
+ * Prevents incorrect usage of `captureOwnerStack`.
4098
+ * @see https://eslint-react.xyz/docs/rules/no-misused-capture-owner-stack
4099
+ */
4100
+ 'react/no-misused-capture-owner-stack'?: Linter.RuleEntry<[]>
4101
+ /**
4102
+ * Disallow nesting component definitions inside other components.
4103
+ * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
4104
+ */
4105
+ 'react/no-nested-component-definitions'?: Linter.RuleEntry<[]>
4106
+ /**
4107
+ * Disallow nesting component definitions inside other components.
4108
+ * @see https://eslint-react.xyz/docs/rules/no-nested-component-definitions
4109
+ */
4110
+ 'react/no-nested-components'?: Linter.RuleEntry<[]>
4111
+ /**
4112
+ * Disallow nesting lazy component declarations inside other components.
4113
+ * @see https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations
4114
+ */
4115
+ 'react/no-nested-lazy-component-declarations'?: Linter.RuleEntry<[]>
4116
+ /**
4117
+ * Disallow `propTypes` in favor of TypeScript or another type-checking solution.
4118
+ * @see https://eslint-react.xyz/docs/rules/no-prop-types
4119
+ */
4120
+ 'react/no-prop-types'?: Linter.RuleEntry<[]>
4121
+ /**
4122
+ * Disallow `shouldComponentUpdate` when extending `React.PureComponent`.
4123
+ * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
4124
+ */
4125
+ 'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
4126
+ /**
4127
+ * Disallow calling `this.setState` in `componentDidMount` outside of functions, such as callbacks.
4128
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
4129
+ */
4130
+ 'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
4131
+ /**
4132
+ * Disallow calling `this.setState` in `componentDidUpdate` outside of functions, such as callbacks.
4133
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
4134
+ */
4135
+ 'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
4136
+ /**
4137
+ * Disallows calling `this.setState` in `componentWillUpdate` outside of functions, such as callbacks.
4138
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
4139
+ */
4140
+ 'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
4141
+ /**
4142
+ * Replaces string refs with callback refs.
4143
+ * @see https://eslint-react.xyz/docs/rules/no-string-refs
4144
+ */
4145
+ 'react/no-string-refs'?: Linter.RuleEntry<[]>
4146
+ /**
4147
+ * Warns the usage of `UNSAFE_componentWillMount` in class components.
4148
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
4149
+ */
4150
+ 'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
4151
+ /**
4152
+ * Warns the usage of `UNSAFE_componentWillReceiveProps` in class components.
4153
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
4154
+ */
4155
+ 'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
4156
+ /**
4157
+ * Warns the usage of `UNSAFE_componentWillUpdate` in class components.
4158
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
4159
+ */
4160
+ 'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>
4161
+ /**
4162
+ * Prevents non-stable values (i.e. object literals) from being used as a value for `Context.Provider`.
4163
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
4164
+ */
4165
+ 'react/no-unstable-context-value'?: Linter.RuleEntry<[]>
4166
+ /**
4167
+ * Prevents using referential-type values as default props in object destructuring.
4168
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
4169
+ */
4170
+ 'react/no-unstable-default-props'?: Linter.RuleEntry<[]>
4171
+ /**
4172
+ * Warns unused class component methods and properties.
4173
+ * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
4174
+ */
4175
+ 'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>
4176
+ /**
4177
+ * Warns unused class component state.
4178
+ * @see https://eslint-react.xyz/docs/rules/no-unused-state
4179
+ */
4180
+ 'react/no-unused-state'?: Linter.RuleEntry<[]>
4181
+ /**
4182
+ * Replaces usages of `useContext` with `use`.
4183
+ * @see https://eslint-react.xyz/docs/rules/no-use-context
4184
+ */
4185
+ 'react/no-use-context'?: Linter.RuleEntry<[]>
4186
+ /**
4187
+ * Disallow useless `forwardRef` calls on components that don't use `ref`s.
4188
+ * @see https://eslint-react.xyz/docs/rules/no-useless-forward-ref
4189
+ */
4190
+ 'react/no-useless-forward-ref'?: Linter.RuleEntry<[]>
4191
+ /**
4192
+ * Disallow useless fragment elements.
4193
+ * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
4194
+ */
4195
+ 'react/no-useless-fragment'?: Linter.RuleEntry<ReactNoUselessFragment>
4196
+ /**
4197
+ * Enforces destructuring assignment for component props and context.
4198
+ * @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
4199
+ */
4200
+ 'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
4201
+ /**
4202
+ * Enforces React is imported via a namespace import.
4203
+ * @see https://eslint-react.xyz/docs/rules/prefer-react-namespace-import
4204
+ */
4205
+ 'react/prefer-react-namespace-import'?: Linter.RuleEntry<[]>
4206
+ /**
4207
+ * Enforces read-only props in components.
4208
+ * @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
4209
+ */
4210
+ 'react/prefer-read-only-props'?: Linter.RuleEntry<[]>
4211
+ /**
4212
+ * Enforces shorthand syntax for boolean attributes.
4213
+ * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
4214
+ */
4215
+ 'react/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
4216
+ /**
4217
+ * Enforces shorthand syntax for fragments.
4218
+ * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
4219
+ */
4220
+ 'react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
4221
+ /**
4222
+ * Marks variables used in JSX elements as used.
4223
+ * @see https://eslint-react.xyz/docs/rules/jsx-uses-vars
4224
+ */
4225
+ 'react/use-jsx-vars'?: Linter.RuleEntry<[]>
3606
4226
  /**
3607
4227
  * disallow confusing quantifiers
3608
4228
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -7736,6 +8356,21 @@ type JsdocTextEscaping = []|[{
7736
8356
  escapeHTML?: boolean
7737
8357
  escapeMarkdown?: boolean
7738
8358
  }]
8359
+ // ----- jsdoc/type-formatting -----
8360
+ type JsdocTypeFormatting = []|[{
8361
+ arrayBrackets?: ("angle" | "square")
8362
+ enableFixer?: boolean
8363
+ genericDot?: boolean
8364
+ objectFieldIndent?: string
8365
+ objectFieldQuote?: ("double" | "single" | null)
8366
+ objectFieldSeparator?: ("comma" | "comma-and-linebreak" | "linebreak" | "semicolon" | "semicolon-and-linebreak")
8367
+ objectFieldSeparatorTrailingPunctuation?: boolean
8368
+ propertyQuotes?: ("double" | "single" | null)
8369
+ separatorForSingleObjectField?: boolean
8370
+ stringQuotes?: ("double" | "single")
8371
+ typeBracketSpacing?: string
8372
+ unionSpacing?: string
8373
+ }]
7739
8374
  // ----- jsdoc/valid-types -----
7740
8375
  type JsdocValidTypes = []|[{
7741
8376
  allowEmptyNamepaths?: boolean
@@ -8604,6 +9239,8 @@ type NewlineAfterVar = []|[("never" | "always")]
8604
9239
  type NewlinePerChainedCall = []|[{
8605
9240
  ignoreChainWithDepth?: number
8606
9241
  }]
9242
+ // ----- next/no-html-link-for-pages -----
9243
+ type NextNoHtmlLinkForPages = []|[(string | string[])]
8607
9244
  // ----- no-bitwise -----
8608
9245
  type NoBitwise = []|[{
8609
9246
  allow?: ("^" | "|" | "&" | "<<" | ">>" | ">>>" | "^=" | "|=" | "&=" | "<<=" | ">>=" | ">>>=" | "~")[]
@@ -12397,6 +13034,46 @@ type Quotes = []|[("single" | "double" | "backtick")]|[("single" | "double" | "b
12397
13034
  })]
12398
13035
  // ----- radix -----
12399
13036
  type Radix = []|[("always" | "as-needed")]
13037
+ // ----- react-dom/no-unknown-property -----
13038
+ type ReactDomNoUnknownProperty = []|[{
13039
+ ignore?: string[]
13040
+ requireDataLowercase?: boolean
13041
+ }]
13042
+ // ----- react-hooks/exhaustive-deps -----
13043
+ type ReactHooksExhaustiveDeps = []|[{
13044
+ additionalHooks?: string
13045
+ enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
13046
+ }]
13047
+ // ----- react-naming-convention/component-name -----
13048
+ type ReactNamingConventionComponentName = []|[(("PascalCase" | "CONSTANT_CASE") | {
13049
+ allowAllCaps?: boolean
13050
+ excepts?: string[]
13051
+ rule?: ("PascalCase" | "CONSTANT_CASE")
13052
+ })]
13053
+ // ----- react-naming-convention/filename -----
13054
+ type ReactNamingConventionFilename = []|[(("PascalCase" | "camelCase" | "kebab-case" | "snake_case") | {
13055
+ excepts?: string[]
13056
+ extensions?: string[]
13057
+ rule?: ("PascalCase" | "camelCase" | "kebab-case" | "snake_case")
13058
+ })]
13059
+ // ----- react-naming-convention/filename-extension -----
13060
+ type ReactNamingConventionFilenameExtension = []|[(("always" | "as-needed") | {
13061
+ allow?: ("always" | "as-needed")
13062
+ extensions?: string[]
13063
+ ignoreFilesWithoutCode?: boolean
13064
+ })]
13065
+ // ----- react-refresh/only-export-components -----
13066
+ type ReactRefreshOnlyExportComponents = []|[{
13067
+ allowExportNames?: string[]
13068
+ allowConstantExport?: boolean
13069
+ customHOCs?: string[]
13070
+ checkJS?: boolean
13071
+ }]
13072
+ // ----- react/no-useless-fragment -----
13073
+ type ReactNoUselessFragment = []|[{
13074
+
13075
+ allowExpressions?: boolean
13076
+ }]
12400
13077
  // ----- regexp/hexadecimal-escape -----
12401
13078
  type RegexpHexadecimalEscape = []|[("always" | "never")]
12402
13079
  // ----- regexp/letter-case -----
@@ -13355,33 +14032,23 @@ type Config<R extends Linter.RulesRecord | Rules = Linter.RulesRecord & Rules> =
13355
14032
  * Defines the names of the available ESLint configurations.
13356
14033
  */
13357
14034
  type ConfigNames =
14035
+ | '@bfra.me/astro/setup'
14036
+ | '@bfra.me/astro/rules'
14037
+ | '@bfra.me/command'
14038
+ | '@bfra.me/epilogue/cli'
14039
+ | '@bfra.me/epilogue/configs'
14040
+ | '@bfra.me/epilogue/scripts'
14041
+ | '@bfra.me/epilogue/commonjs'
14042
+ | '@bfra.me/epilogue/dts'
14043
+ | '@bfra.me/epilogue'
14044
+ | '@bfra.me/eslint-comments/rules'
13358
14045
  | '@bfra.me/gitignore'
13359
14046
  | '@bfra.me/ignores'
14047
+ | '@bfra.me/imports'
13360
14048
  | '@bfra.me/javascript/options'
13361
14049
  | '@bfra.me/javascript/rules'
13362
14050
  | '@bfra.me/jsx'
13363
- | '@bfra.me/eslint-comments/rules'
13364
- | '@bfra.me/node'
13365
14051
  | '@bfra.me/jsdoc'
13366
- | '@bfra.me/imports'
13367
- | '@bfra.me/command'
13368
- | '@bfra.me/package-json/plugins'
13369
- | '@bfra.me/package-json/unnamed1'
13370
- | '@bfra.me/package-json/json-schema/plugins'
13371
- | '@bfra.me/package-json/json-schema/unnamed1'
13372
- | '@bfra.me/package-json/json-schema'
13373
- | '@bfra.me/perfectionist'
13374
- | '@bfra.me/unicorn'
13375
- | '@bfra.me/typescript/plugins'
13376
- | '@bfra.me/typescript/type-aware-parser'
13377
- | '@bfra.me/typescript/parser'
13378
- | '@bfra.me/typescript/rules'
13379
- | '@bfra.me/typescript/type-aware-rules'
13380
- | '@bfra.me/regexp'
13381
- | '@bfra.me/vitest/plugins'
13382
- | '@bfra.me/vitest'
13383
- | '@bfra.me/astro/setup'
13384
- | '@bfra.me/astro/rules'
13385
14052
  | '@bfra.me/jsonc/plugins'
13386
14053
  | '@bfra.me/jsonc/unnamed1'
13387
14054
  | '@bfra.me/jsonc/json-schema/plugins'
@@ -13389,6 +14056,29 @@ type ConfigNames =
13389
14056
  | '@bfra.me/jsonc/json-schema/unnamed2'
13390
14057
  | '@bfra.me/jsonc/json-schema'
13391
14058
  | '@bfra.me/jsonc'
14059
+ | '@bfra.me/markdown/plugin'
14060
+ | '@bfra.me/markdown/processor'
14061
+ | '@bfra.me/markdown/code-blocks'
14062
+ | '@bfra.me/markdown/disabled'
14063
+ | '@bfra.me/markdown/overrides'
14064
+ | '@bfra.me/nextjs/setup'
14065
+ | '@bfra.me/nextjs/rules'
14066
+ | '@bfra.me/node'
14067
+ | '@bfra.me/package-json/plugins'
14068
+ | '@bfra.me/package-json/unnamed1'
14069
+ | '@bfra.me/package-json/json-schema/plugins'
14070
+ | '@bfra.me/package-json/json-schema/unnamed1'
14071
+ | '@bfra.me/package-json/json-schema'
14072
+ | '@bfra.me/perfectionist'
14073
+ | '@bfra.me/pnpm/package-json'
14074
+ | '@bfra.me/pnpm/pnpm-workspace-yaml'
14075
+ | '@bfra.me/prettier'
14076
+ | '@bfra.me/prettier/markdown'
14077
+ | '@bfra.me/prettier/toml'
14078
+ | '@bfra.me/prettier/overrides'
14079
+ | '@bfra.me/react/setup'
14080
+ | '@bfra.me/react/rules'
14081
+ | '@bfra.me/regexp'
13392
14082
  | '@bfra.me/sort/package-json'
13393
14083
  | '@bfra.me/sort/renovate-config'
13394
14084
  | '@bfra.me/renovate-config/json-schema/plugins'
@@ -13398,8 +14088,6 @@ type ConfigNames =
13398
14088
  | '@bfra.me/tsconfig/json-schema/plugins'
13399
14089
  | '@bfra.me/tsconfig/json-schema/unnamed1'
13400
14090
  | '@bfra.me/tsconfig/json-schema'
13401
- | '@bfra.me/pnpm/package-json'
13402
- | '@bfra.me/pnpm/pnpm-workspace-yaml'
13403
14091
  | '@bfra.me/toml/plugins'
13404
14092
  | '@bfra.me/toml/unnamed1'
13405
14093
  | '@bfra.me/toml/unnamed2'
@@ -13408,6 +14096,14 @@ type ConfigNames =
13408
14096
  | '@bfra.me/toml/json-schema/unnamed2'
13409
14097
  | '@bfra.me/toml/json-schema'
13410
14098
  | '@bfra.me/toml'
14099
+ | '@bfra.me/typescript/plugins'
14100
+ | '@bfra.me/typescript/type-aware-parser'
14101
+ | '@bfra.me/typescript/parser'
14102
+ | '@bfra.me/typescript/rules'
14103
+ | '@bfra.me/typescript/type-aware-rules'
14104
+ | '@bfra.me/unicorn'
14105
+ | '@bfra.me/vitest/plugins'
14106
+ | '@bfra.me/vitest'
13411
14107
  | '@bfra.me/yaml/plugins'
13412
14108
  | '@bfra.me/yaml/unnamed1'
13413
14109
  | '@bfra.me/yaml/unnamed2'
@@ -13416,21 +14112,6 @@ type ConfigNames =
13416
14112
  | '@bfra.me/yaml/json-schema/unnamed2'
13417
14113
  | '@bfra.me/yaml/json-schema'
13418
14114
  | '@bfra.me/yaml'
13419
- | '@bfra.me/markdown/plugin'
13420
- | '@bfra.me/markdown/processor'
13421
- | '@bfra.me/markdown/code-blocks'
13422
- | '@bfra.me/markdown/disabled'
13423
- | '@bfra.me/markdown/overrides'
13424
- | '@bfra.me/prettier'
13425
- | '@bfra.me/prettier/markdown'
13426
- | '@bfra.me/prettier/toml'
13427
- | '@bfra.me/prettier/overrides'
13428
- | '@bfra.me/epilogue/cli'
13429
- | '@bfra.me/epilogue/configs'
13430
- | '@bfra.me/epilogue/scripts'
13431
- | '@bfra.me/epilogue/commonjs'
13432
- | '@bfra.me/epilogue/dts'
13433
- | '@bfra.me/epilogue'
13434
14115
 
13435
14116
  /**
13436
14117
  * Represents the options for configuring the Astro ESLint configuration.
@@ -13456,9 +14137,10 @@ interface FallbackOptions {
13456
14137
  languageOptions?: Config['languageOptions'];
13457
14138
  name?: Config['name'];
13458
14139
  }
13459
- declare function fallback(missingList: string[], options?: FallbackOptions): Promise<Config[]>;
14140
+ declare function fallback(missingList?: string[], options?: FallbackOptions): Promise<Config[]>;
13460
14141
 
13461
14142
  declare function ignores(ignores?: string[]): Promise<Config[]>;
14143
+ declare function gitignore(gitignoreOptions?: FlatGitignoreOptions): Promise<Config[]>;
13462
14144
 
13463
14145
  declare function imports(): Promise<Config[]>;
13464
14146
 
@@ -13484,7 +14166,6 @@ declare function jsdoc(): Promise<Config[]>;
13484
14166
  * Represents the options for configuring JSONC files in the ESLint configuration.
13485
14167
  */
13486
14168
  type JsoncOptions = Flatten<OptionsFiles & OptionsOverrides>;
13487
- declare const jsoncFiles: string[];
13488
14169
  /**
13489
14170
  * Configures the ESLint rules for JSONC files.
13490
14171
  * @param options - The configuration options for JSONC files.
@@ -13496,9 +14177,6 @@ declare function jsonc(options?: JsoncOptions): Promise<Config[]>;
13496
14177
  * Represents the options for configuring Markdown files in the ESLint configuration.
13497
14178
  */
13498
14179
  type MarkdownOptions = Flatten<OptionsFiles & OptionsOverrides>;
13499
- declare const mdFiles: string[];
13500
- declare const codeInMdFiles: string[];
13501
- declare const extInMdFiles: string[];
13502
14180
  /**
13503
14181
  * Configures the ESLint rules for Markdown files.
13504
14182
  * @param options - The configuration options for Markdown files.
@@ -13506,10 +14184,29 @@ declare const extInMdFiles: string[];
13506
14184
  */
13507
14185
  declare function markdown(options?: MarkdownOptions): Promise<Config[]>;
13508
14186
 
14187
+ /**
14188
+ * Configuration options for Next.js ESLint rules.
14189
+ *
14190
+ * Extends the base configuration options with file pattern matching
14191
+ * and rule override capabilities specifically tailored for Next.js projects.
14192
+ *
14193
+ * @extends `Flatten<OptionsFiles & OptionsOverrides>`
14194
+ */
14195
+ interface NextjsOptions extends Flatten<OptionsFiles & OptionsOverrides> {
14196
+ }
14197
+ /**
14198
+ * Creates ESLint configuration for Next.js projects.
14199
+ *
14200
+ * @param options - Configuration options for the Next.js ESLint setup
14201
+ * @param options.files - File patterns to apply the configuration to (defaults to GLOB_SRC)
14202
+ * @param options.overrides - Rule overrides to apply on top of the default Next.js rules
14203
+ * @returns Promise resolving to an array of ESLint configurations including plugin setup and rules
14204
+ */
14205
+ declare function nextjs(options?: NextjsOptions): Promise<Config[]>;
14206
+
13509
14207
  declare function node(): Promise<Config[]>;
13510
14208
 
13511
14209
  type PackageJsonOptions = Flatten<OptionsFiles>;
13512
- declare const packageJsonFiles: string[];
13513
14210
  declare function packageJson(options?: PackageJsonOptions): Promise<Config[]>;
13514
14211
 
13515
14212
  /**
@@ -13540,6 +14237,41 @@ type PrettierOptions = Flatten<OptionsIsInEditor & OptionsOverrides>;
13540
14237
  */
13541
14238
  declare function prettier(options?: PrettierOptions): Promise<Config[]>;
13542
14239
 
14240
+ /**
14241
+ * Configuration options for React ESLint rules.
14242
+ *
14243
+ * Extends multiple option interfaces to provide a comprehensive set of configuration
14244
+ * options including file patterns, rule overrides, TypeScript parser options, and
14245
+ * TypeScript type checking options.
14246
+ */
14247
+ interface ReactOptions extends Flatten<OptionsFiles & OptionsOverrides & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes> {
14248
+ }
14249
+ /**
14250
+ * Creates ESLint configuration for React applications with comprehensive rule sets.
14251
+ *
14252
+ * This function sets up ESLint rules for React development including:
14253
+ * - React DOM rules for proper DOM usage
14254
+ * - React Hooks rules for hooks best practices
14255
+ * - React Refresh rules for hot reloading compatibility
14256
+ * - React Web API rules for preventing memory leaks
14257
+ * - Core React rules for component development
14258
+ * - Optional type-aware rules when TypeScript is configured
14259
+ *
14260
+ * The configuration automatically detects common React frameworks (Next.js, Remix, React Router)
14261
+ * and adjusts rules accordingly to allow framework-specific exports.
14262
+ *
14263
+ * @param options - Configuration options for the React ESLint setup
14264
+ * @param options.files - File patterns to apply React rules to. Defaults to source files.
14265
+ * @param options.overrides - Custom rule overrides to merge with the base configuration
14266
+ * @param options.tsconfigPath - Path to TypeScript configuration file for type-aware linting
14267
+ * @param options.typeAware - Configuration for type-aware rules including file patterns and ignores
14268
+ * @param options.typeAware.files - File patterns for type-aware linting (TypeScript files)
14269
+ * @param options.typeAware.ignores - File patterns to exclude from type-aware linting
14270
+ *
14271
+ * @returns Promise resolving to an array of ESLint configuration objects
14272
+ */
14273
+ declare function react(options?: ReactOptions): Promise<Config[]>;
14274
+
13543
14275
  /**
13544
14276
  * Represents the options for configuring RegExp linting rules.
13545
14277
  */
@@ -13597,7 +14329,6 @@ declare function sortTsconfig(): Promise<Config[]>;
13597
14329
  * Represents the options for configuring TOML files in the ESLint configuration.
13598
14330
  */
13599
14331
  type TomlOptions = Flatten<OptionsFiles & OptionsOverrides>;
13600
- declare const tomlFiles: string[];
13601
14332
  /**
13602
14333
  * Configures the ESLint rules for TOML files.
13603
14334
  * @param options - The configuration options for TOML files.
@@ -13650,7 +14381,6 @@ declare function vitest(options?: VitestOptions): Promise<Config[]>;
13650
14381
  * Represents the options for configuring YAML files in the ESLint configuration.
13651
14382
  */
13652
14383
  type YamlOptions = Flatten<OptionsFiles & OptionsOverrides>;
13653
- declare const yamlFiles: string[];
13654
14384
  /**
13655
14385
  * Configures the ESLint rules for YAML files.
13656
14386
  * @param options - The configuration options for YAML files.
@@ -13827,6 +14557,15 @@ type Options = Flatten<{
13827
14557
  * Options to override the behavior of linting Markdown files.
13828
14558
  */
13829
14559
  markdown?: boolean | OptionsOverrides;
14560
+ /**
14561
+ * Enable Next.js support.
14562
+ *
14563
+ * Requires installing:
14564
+ * - `@next/eslint-plugin-next`
14565
+ *
14566
+ * @default false
14567
+ */
14568
+ nextjs?: boolean | OptionsOverrides;
13830
14569
  /**
13831
14570
  * Enable support for package.json files.
13832
14571
  *
@@ -13852,6 +14591,17 @@ type Options = Flatten<{
13852
14591
  * Options to override the behavior of the Prettier code formatter.
13853
14592
  */
13854
14593
  prettier?: boolean | OptionsOverrides;
14594
+ /**
14595
+ * Enable react rules.
14596
+ *
14597
+ * Requires installing:
14598
+ * - `@eslint-react/eslint-plugin`
14599
+ * - `eslint-plugin-react-hooks`
14600
+ * - `eslint-plugin-react-refresh`
14601
+ *
14602
+ * @default false
14603
+ */
14604
+ react?: boolean | OptionsOverrides;
13855
14605
  /**
13856
14606
  * Options to override the behavior of RegExp linting rules.
13857
14607
  */
@@ -13939,13 +14689,20 @@ declare const GLOB_TSX = "**/*.tsx";
13939
14689
  declare const GLOB_JSON = "**/*.json";
13940
14690
  declare const GLOB_JSON5 = "**/*.json5";
13941
14691
  declare const GLOB_JSONC = "**/*.jsonc";
14692
+ declare const GLOB_JSON_FILES: string[];
13942
14693
  declare const GLOB_TOML = "**/*.toml";
14694
+ declare const GLOB_TOML_FILES: string[];
13943
14695
  declare const GLOB_YAML = "**/*.y?(a)ml";
14696
+ declare const GLOB_YAML_FILES: string[];
13944
14697
  declare const GLOB_MARKDOWN = "**/*.md";
14698
+ declare const GLOB_MARKDOWN_FILES: string[];
13945
14699
  declare const GLOB_MARKDOWN_CODE = "**/*.md/**/*.?([cm])[jt]s?(x)";
14700
+ declare const GLOB_CODE_IN_MARKDOWN_FILES: string[];
14701
+ declare const GLOB_EXT_IN_MARKDOWN_FILES: string[];
13946
14702
  declare const GLOB_MARKDOWN_IN_MARKDOWN = "**/*.md/*.md";
13947
14703
  declare const GLOB_ASTRO = "**/*.astro";
13948
14704
  declare const GLOB_ASTRO_TS = "**/*.astro/*.ts";
14705
+ declare const GLOB_PACKAGE_JSON_FILES: string[];
13949
14706
  declare const GLOB_RENOVATE_CONFIG: string[];
13950
14707
  declare const GLOB_TS_CONFIG: string[];
13951
14708
  declare const GLOB_TESTS: string[];
@@ -13953,4 +14710,4 @@ declare const GLOB_EXCLUDE: string[];
13953
14710
 
13954
14711
  declare const config: eslint_flat_config_utils.FlatConfigComposer<Config, ConfigNames>;
13955
14712
 
13956
- export { type AstroOptions, type Config, type ConfigNames, type FallbackOptions, type Flatten, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_EXCLUDE, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_RENOVATE_CONFIG, GLOB_SRC, GLOB_SRC_EXT, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_TS_CONFIG, GLOB_YAML, type JavaScriptOptions, type JsoncOptions, type MarkdownOptions, type Options, type OptionsFiles, type OptionsIsInEditor, type OptionsOverrides, type OptionsPerfectionist, type OptionsTypeScript, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PackageJsonOptions, type PerfectionistOptions, type PrettierOptions, type RegexpOptions, type Rules, type TomlOptions, type TypeScriptOptions, type UnicornOptions, type VitestOptions, type YamlOptions, astro, codeInMdFiles, command, composeConfig, config, config as default, defineConfig, epilogue, eslintComments, extInMdFiles, fallback, ignores, imports, isInEditor, isInGitLifecycle, javascript, jsdoc, jsonc, jsoncFiles, markdown, mdFiles, node, packageJson, packageJsonFiles, perfectionist, pnpm, prettier, regexp, sortPackageJson, sortRenovateConfig, sortTsconfig, toml, tomlFiles, typescript, unicorn, vitest, yaml, yamlFiles };
14713
+ export { type AstroOptions, type Config, type ConfigNames, type FallbackOptions, type Flatten, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CODE_IN_MARKDOWN_FILES, GLOB_EXCLUDE, GLOB_EXT_IN_MARKDOWN_FILES, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSON_FILES, GLOB_JSX, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_FILES, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_PACKAGE_JSON_FILES, GLOB_RENOVATE_CONFIG, GLOB_SRC, GLOB_SRC_EXT, GLOB_TESTS, GLOB_TOML, GLOB_TOML_FILES, GLOB_TS, GLOB_TSX, GLOB_TS_CONFIG, GLOB_YAML, GLOB_YAML_FILES, type JavaScriptOptions, type JsoncOptions, type MarkdownOptions, type NextjsOptions, type Options, type OptionsFiles, type OptionsIsInEditor, type OptionsOverrides, type OptionsPerfectionist, type OptionsTypeScript, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type PackageJsonOptions, type PerfectionistOptions, type PrettierOptions, type ReactOptions, type RegexpOptions, type Rules, type TomlOptions, type TypeScriptOptions, type UnicornOptions, type VitestOptions, type YamlOptions, astro, command, composeConfig, config, config as default, defineConfig, epilogue, eslintComments, fallback, gitignore, ignores, imports, isInEditor, isInGitLifecycle, javascript, jsdoc, jsonc, markdown, nextjs, node, packageJson, perfectionist, pnpm, prettier, react, regexp, sortPackageJson, sortRenovateConfig, sortTsconfig, toml, typescript, unicorn, vitest, yaml };