@vinicunca/eslint-config 2.7.0 → 2.7.1

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.cts CHANGED
@@ -2501,522 +2501,287 @@ interface RuleOptions {
2501
2501
  */
2502
2502
  'radix'?: Linter.RuleEntry<Radix>
2503
2503
  /**
2504
- * verifies the list of dependencies for Hooks like useEffect and similar
2505
- * @see https://github.com/facebook/react/issues/14920
2506
- */
2507
- 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
2508
- /**
2509
- * enforces the Rules of Hooks
2510
- * @see https://reactjs.org/docs/hooks-rules.html
2511
- */
2512
- 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
2513
- /**
2514
- * Enforces consistent naming for boolean props
2515
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/boolean-prop-naming.md
2516
- */
2517
- 'react/boolean-prop-naming'?: Linter.RuleEntry<ReactBooleanPropNaming>
2518
- /**
2519
- * Disallow usage of `button` elements without an explicit `type` attribute
2520
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/button-has-type.md
2521
- */
2522
- 'react/button-has-type'?: Linter.RuleEntry<ReactButtonHasType>
2523
- /**
2524
- * Enforce using `onChange` or `readonly` attribute when `checked` is used
2525
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/checked-requires-onchange-or-readonly.md
2526
- */
2527
- 'react/checked-requires-onchange-or-readonly'?: Linter.RuleEntry<ReactCheckedRequiresOnchangeOrReadonly>
2528
- /**
2529
- * Enforce all defaultProps have a corresponding non-required PropType
2530
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/default-props-match-prop-types.md
2531
- */
2532
- 'react/default-props-match-prop-types'?: Linter.RuleEntry<ReactDefaultPropsMatchPropTypes>
2533
- /**
2534
- * Enforce consistent usage of destructuring assignment of props, state, and context
2535
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/destructuring-assignment.md
2536
- */
2537
- 'react/destructuring-assignment'?: Linter.RuleEntry<ReactDestructuringAssignment>
2538
- /**
2539
- * Disallow missing displayName in a React component definition
2540
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/display-name.md
2541
- */
2542
- 'react/display-name'?: Linter.RuleEntry<ReactDisplayName>
2543
- /**
2544
- * Disallow certain props on components
2545
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-component-props.md
2546
- */
2547
- 'react/forbid-component-props'?: Linter.RuleEntry<ReactForbidComponentProps>
2548
- /**
2549
- * Disallow certain props on DOM Nodes
2550
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-dom-props.md
2551
- */
2552
- 'react/forbid-dom-props'?: Linter.RuleEntry<ReactForbidDomProps>
2553
- /**
2554
- * Disallow certain elements
2555
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-elements.md
2556
- */
2557
- 'react/forbid-elements'?: Linter.RuleEntry<ReactForbidElements>
2558
- /**
2559
- * Disallow using another component's propTypes
2560
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-foreign-prop-types.md
2561
- */
2562
- 'react/forbid-foreign-prop-types'?: Linter.RuleEntry<ReactForbidForeignPropTypes>
2563
- /**
2564
- * Disallow certain propTypes
2565
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-prop-types.md
2566
- */
2567
- 'react/forbid-prop-types'?: Linter.RuleEntry<ReactForbidPropTypes>
2568
- /**
2569
- * Enforce a specific function type for function components
2570
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/function-component-definition.md
2571
- */
2572
- 'react/function-component-definition'?: Linter.RuleEntry<ReactFunctionComponentDefinition>
2573
- /**
2574
- * Ensure destructuring and symmetric naming of useState hook value and setter variables
2575
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/hook-use-state.md
2576
- */
2577
- 'react/hook-use-state'?: Linter.RuleEntry<ReactHookUseState>
2578
- /**
2579
- * Enforce sandbox attribute on iframe elements
2580
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/iframe-missing-sandbox.md
2581
- */
2582
- 'react/iframe-missing-sandbox'?: Linter.RuleEntry<[]>
2583
- /**
2584
- * Enforce boolean attributes notation in JSX
2585
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-boolean-value.md
2586
- */
2587
- 'react/jsx-boolean-value'?: Linter.RuleEntry<ReactJsxBooleanValue>
2588
- /**
2589
- * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
2590
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-child-element-spacing.md
2591
- */
2592
- 'react/jsx-child-element-spacing'?: Linter.RuleEntry<[]>
2593
- /**
2594
- * Enforce closing bracket location in JSX
2595
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-bracket-location.md
2504
+ * disallow passing 'children' to void DOM elements
2505
+ * @see https://eslint-react.xyz/docs/rules/dom-no-children-in-void-dom-elements
2596
2506
  */
2597
- 'react/jsx-closing-bracket-location'?: Linter.RuleEntry<ReactJsxClosingBracketLocation>
2507
+ 'react-dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
2598
2508
  /**
2599
- * Enforce closing tag location for multiline JSX
2600
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-tag-location.md
2509
+ * disallow when a DOM component is using 'dangerouslySetInnerHTML'
2510
+ * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
2601
2511
  */
2602
- 'react/jsx-closing-tag-location'?: Linter.RuleEntry<[]>
2512
+ 'react-dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
2603
2513
  /**
2604
- * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes
2605
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-brace-presence.md
2514
+ * disallow when a DOM component is using both 'children' and 'dangerouslySetInnerHTML'
2515
+ * @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
2606
2516
  */
2607
- 'react/jsx-curly-brace-presence'?: Linter.RuleEntry<ReactJsxCurlyBracePresence>
2517
+ 'react-dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
2608
2518
  /**
2609
- * Enforce consistent linebreaks in curly braces in JSX attributes and expressions
2610
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-newline.md
2519
+ * disallow 'findDOMNode'
2520
+ * @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
2611
2521
  */
2612
- 'react/jsx-curly-newline'?: Linter.RuleEntry<ReactJsxCurlyNewline>
2522
+ 'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>
2613
2523
  /**
2614
- * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
2615
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-spacing.md
2524
+ * enforce that button component have an explicit 'type' attribute
2525
+ * @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
2616
2526
  */
2617
- 'react/jsx-curly-spacing'?: Linter.RuleEntry<ReactJsxCurlySpacing>
2527
+ 'react-dom/no-missing-button-type'?: Linter.RuleEntry<[]>
2618
2528
  /**
2619
- * Enforce or disallow spaces around equal signs in JSX attributes
2620
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-equals-spacing.md
2529
+ * enforce that 'iframe' component have an explicit 'sandbox' attribute
2530
+ * @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
2621
2531
  */
2622
- 'react/jsx-equals-spacing'?: Linter.RuleEntry<ReactJsxEqualsSpacing>
2532
+ 'react-dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
2623
2533
  /**
2624
- * Disallow file extensions that may contain JSX
2625
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-filename-extension.md
2534
+ * enforce that namespaces are not used in React elements
2535
+ * @see https://eslint-react.xyz/docs/rules/dom-no-namespace
2626
2536
  */
2627
- 'react/jsx-filename-extension'?: Linter.RuleEntry<ReactJsxFilenameExtension>
2537
+ 'react-dom/no-namespace'?: Linter.RuleEntry<[]>
2628
2538
  /**
2629
- * Enforce proper position of the first property in JSX
2630
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-first-prop-new-line.md
2631
- */
2632
- 'react/jsx-first-prop-new-line'?: Linter.RuleEntry<ReactJsxFirstPropNewLine>
2633
- /**
2634
- * Enforce shorthand or standard form for React fragments
2635
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-fragments.md
2539
+ * disallow usage of the return value of 'ReactDOM.render'
2540
+ * @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
2636
2541
  */
2637
- 'react/jsx-fragments'?: Linter.RuleEntry<ReactJsxFragments>
2542
+ 'react-dom/no-render-return-value'?: Linter.RuleEntry<[]>
2638
2543
  /**
2639
- * Enforce event handler naming conventions in JSX
2640
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-handler-names.md
2544
+ * disallow 'javascript:' URLs as JSX event handler prop's value
2545
+ * @see https://eslint-react.xyz/docs/rules/dom-no-script-url
2641
2546
  */
2642
- 'react/jsx-handler-names'?: Linter.RuleEntry<ReactJsxHandlerNames>
2547
+ 'react-dom/no-script-url'?: Linter.RuleEntry<[]>
2643
2548
  /**
2644
- * Enforce JSX indentation
2645
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent.md
2549
+ * disallow unsafe iframe 'sandbox' attribute combinations
2550
+ * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
2646
2551
  */
2647
- 'react/jsx-indent'?: Linter.RuleEntry<ReactJsxIndent>
2552
+ 'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
2648
2553
  /**
2649
- * Enforce props indentation in JSX
2650
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent-props.md
2554
+ * disallow 'target="_blank"' on an external link without 'rel="noreferrer noopener"'
2555
+ * @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
2651
2556
  */
2652
- 'react/jsx-indent-props'?: Linter.RuleEntry<ReactJsxIndentProps>
2557
+ 'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
2653
2558
  /**
2654
- * Disallow missing `key` props in iterators/collection literals
2655
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-key.md
2656
- */
2657
- 'react/jsx-key'?: Linter.RuleEntry<ReactJsxKey>
2658
- /**
2659
- * Enforce JSX maximum depth
2660
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-depth.md
2661
- */
2662
- 'react/jsx-max-depth'?: Linter.RuleEntry<ReactJsxMaxDepth>
2663
- /**
2664
- * Enforce maximum of props on a single line in JSX
2665
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-props-per-line.md
2666
- */
2667
- 'react/jsx-max-props-per-line'?: Linter.RuleEntry<ReactJsxMaxPropsPerLine>
2668
- /**
2669
- * Require or prevent a new line after jsx elements and expressions.
2670
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-newline.md
2671
- */
2672
- 'react/jsx-newline'?: Linter.RuleEntry<ReactJsxNewline>
2673
- /**
2674
- * Disallow `.bind()` or arrow functions in JSX props
2675
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-bind.md
2559
+ * verifies the list of dependencies for Hooks like useEffect and similar
2560
+ * @see https://github.com/facebook/react/issues/14920
2676
2561
  */
2677
- 'react/jsx-no-bind'?: Linter.RuleEntry<ReactJsxNoBind>
2562
+ 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
2678
2563
  /**
2679
- * Disallow comments from being inserted as text nodes
2680
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-comment-textnodes.md
2564
+ * enforces the Rules of Hooks
2565
+ * @see https://reactjs.org/docs/hooks-rules.html
2681
2566
  */
2682
- 'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>
2567
+ 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
2683
2568
  /**
2684
- * Disallows JSX context provider values from taking values that will cause needless rerenders
2685
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-constructed-context-values.md
2569
+ * enforce boolean attributes notation in JSX
2570
+ * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
2686
2571
  */
2687
- 'react/jsx-no-constructed-context-values'?: Linter.RuleEntry<[]>
2572
+ 'react/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
2688
2573
  /**
2689
- * Disallow duplicate properties in JSX
2690
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-duplicate-props.md
2574
+ * enforce using fragment component instead of shorthand fragment syntax
2575
+ * @see https://eslint-react.xyz/docs/rules/avoid-shorthand-fragment
2691
2576
  */
2692
- 'react/jsx-no-duplicate-props'?: Linter.RuleEntry<ReactJsxNoDuplicateProps>
2577
+ 'react/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
2693
2578
  /**
2694
- * Disallow problematic leaked values from being rendered
2695
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-leaked-render.md
2579
+ * require all 'forwardRef' components include a 'ref' parameter
2580
+ * @see https://eslint-react.xyz/docs/rules/ensure-forward-ref-using-ref
2696
2581
  */
2697
- 'react/jsx-no-leaked-render'?: Linter.RuleEntry<ReactJsxNoLeakedRender>
2582
+ 'react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
2698
2583
  /**
2699
- * Disallow usage of string literals in JSX
2700
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-literals.md
2584
+ * disallow accessing 'this.state' within 'setState'
2585
+ * @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
2701
2586
  */
2702
- 'react/jsx-no-literals'?: Linter.RuleEntry<ReactJsxNoLiterals>
2587
+ 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
2703
2588
  /**
2704
- * Disallow usage of `javascript:` URLs
2705
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-script-url.md
2589
+ * disallow using Array index as key
2590
+ * @see https://eslint-react.xyz/docs/rules/no-array-index-key
2706
2591
  */
2707
- 'react/jsx-no-script-url'?: Linter.RuleEntry<ReactJsxNoScriptUrl>
2592
+ 'react/no-array-index-key'?: Linter.RuleEntry<[]>
2708
2593
  /**
2709
- * Disallow `target="_blank"` attribute without `rel="noreferrer"`
2710
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-target-blank.md
2594
+ * disallow 'Children.count'
2595
+ * @see https://eslint-react.xyz/docs/rules/no-children-count
2711
2596
  */
2712
- 'react/jsx-no-target-blank'?: Linter.RuleEntry<ReactJsxNoTargetBlank>
2597
+ 'react/no-children-count'?: Linter.RuleEntry<[]>
2713
2598
  /**
2714
- * Disallow undeclared variables in JSX
2715
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-undef.md
2599
+ * disallow 'Children.forEach'
2600
+ * @see https://eslint-react.xyz/docs/rules/no-children-for-each
2716
2601
  */
2717
- 'react/jsx-no-undef'?: Linter.RuleEntry<ReactJsxNoUndef>
2602
+ 'react/no-children-for-each'?: Linter.RuleEntry<[]>
2718
2603
  /**
2719
- * Disallow unnecessary fragments
2720
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-useless-fragment.md
2604
+ * disallow 'Children.map'
2605
+ * @see https://eslint-react.xyz/docs/rules/no-children-map
2721
2606
  */
2722
- 'react/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactJsxNoUselessFragment>
2607
+ 'react/no-children-map'?: Linter.RuleEntry<[]>
2723
2608
  /**
2724
- * Require one JSX element per line
2725
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-one-expression-per-line.md
2609
+ * disallow 'Children.only'
2610
+ * @see https://eslint-react.xyz/docs/rules/no-children-only
2726
2611
  */
2727
- 'react/jsx-one-expression-per-line'?: Linter.RuleEntry<ReactJsxOneExpressionPerLine>
2612
+ 'react/no-children-only'?: Linter.RuleEntry<[]>
2728
2613
  /**
2729
- * Enforce PascalCase for user-defined JSX components
2730
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-pascal-case.md
2614
+ * disallow passing of 'children' as props
2615
+ * @see https://eslint-react.xyz/docs/rules/no-children-prop
2731
2616
  */
2732
- 'react/jsx-pascal-case'?: Linter.RuleEntry<ReactJsxPascalCase>
2617
+ 'react/no-children-prop'?: Linter.RuleEntry<[]>
2733
2618
  /**
2734
- * Disallow multiple spaces between inline JSX props
2735
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-multi-spaces.md
2619
+ * disallow 'Children.toArray'
2620
+ * @see https://eslint-react.xyz/docs/rules/no-children-to-array
2736
2621
  */
2737
- 'react/jsx-props-no-multi-spaces'?: Linter.RuleEntry<[]>
2622
+ 'react/no-children-to-array'?: Linter.RuleEntry<[]>
2738
2623
  /**
2739
- * Disallow JSX prop spreading
2740
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-spreading.md
2624
+ * disallow class component
2625
+ * @see https://eslint-react.xyz/docs/rules/no-class-component
2741
2626
  */
2742
- 'react/jsx-props-no-spreading'?: Linter.RuleEntry<ReactJsxPropsNoSpreading>
2627
+ 'react/no-class-component'?: Linter.RuleEntry<[]>
2743
2628
  /**
2744
- * Enforce defaultProps declarations alphabetical sorting
2745
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-default-props.md
2746
- * @deprecated
2629
+ * disallow 'cloneElement'
2630
+ * @see https://eslint-react.xyz/docs/rules/no-clone-element
2747
2631
  */
2748
- 'react/jsx-sort-default-props'?: Linter.RuleEntry<ReactJsxSortDefaultProps>
2632
+ 'react/no-clone-element'?: Linter.RuleEntry<[]>
2749
2633
  /**
2750
- * Enforce props alphabetical sorting
2751
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-props.md
2634
+ * disallow comments from being inserted as text nodes
2635
+ * @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
2752
2636
  */
2753
- 'react/jsx-sort-props'?: Linter.RuleEntry<ReactJsxSortProps>
2637
+ 'react/no-comment-textnodes'?: Linter.RuleEntry<[]>
2754
2638
  /**
2755
- * Enforce spacing before closing bracket in JSX
2756
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-space-before-closing.md
2639
+ * disallow complicated conditional rendering
2640
+ * @see https://eslint-react.xyz/docs/rules/no-complicated-conditional-rendering
2757
2641
  * @deprecated
2758
2642
  */
2759
- 'react/jsx-space-before-closing'?: Linter.RuleEntry<ReactJsxSpaceBeforeClosing>
2760
- /**
2761
- * Enforce whitespace in and around the JSX opening and closing brackets
2762
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-tag-spacing.md
2763
- */
2764
- 'react/jsx-tag-spacing'?: Linter.RuleEntry<ReactJsxTagSpacing>
2643
+ 'react/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
2765
2644
  /**
2766
- * Disallow React to be incorrectly marked as unused
2767
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-react.md
2645
+ * disallow usage of 'componentWillMount'
2646
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-mount
2768
2647
  */
2769
- 'react/jsx-uses-react'?: Linter.RuleEntry<[]>
2648
+ 'react/no-component-will-mount'?: Linter.RuleEntry<[]>
2770
2649
  /**
2771
- * Disallow variables used in JSX to be incorrectly marked as unused
2772
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-vars.md
2650
+ * disallow usage of 'componentWillReceiveProps'
2651
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
2773
2652
  */
2774
- 'react/jsx-uses-vars'?: Linter.RuleEntry<[]>
2653
+ 'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>
2775
2654
  /**
2776
- * Disallow missing parentheses around multiline JSX
2777
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-wrap-multilines.md
2778
- */
2779
- 'react/jsx-wrap-multilines'?: Linter.RuleEntry<ReactJsxWrapMultilines>
2780
- /**
2781
- * Disallow when this.state is accessed within setState
2782
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-access-state-in-setstate.md
2655
+ * disallow usage of 'componentWillUpdate'
2656
+ * @see https://eslint-react.xyz/docs/rules/no-component-will-update
2783
2657
  */
2784
- 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
2785
- /**
2786
- * Disallow adjacent inline elements not separated by whitespace.
2787
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-adjacent-inline-elements.md
2788
- */
2789
- 'react/no-adjacent-inline-elements'?: Linter.RuleEntry<[]>
2790
- /**
2791
- * Disallow usage of Array index in keys
2792
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-array-index-key.md
2793
- */
2794
- 'react/no-array-index-key'?: Linter.RuleEntry<[]>
2658
+ 'react/no-component-will-update'?: Linter.RuleEntry<[]>
2795
2659
  /**
2796
- * Lifecycle methods should be methods on the prototype, not class fields
2797
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-arrow-function-lifecycle.md
2660
+ * disallow 'createRef' in function components
2661
+ * @see https://eslint-react.xyz/docs/rules/no-create-ref
2798
2662
  */
2799
- 'react/no-arrow-function-lifecycle'?: Linter.RuleEntry<[]>
2663
+ 'react/no-create-ref'?: Linter.RuleEntry<[]>
2800
2664
  /**
2801
- * Disallow passing of children as props
2802
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-children-prop.md
2803
- */
2804
- 'react/no-children-prop'?: Linter.RuleEntry<ReactNoChildrenProp>
2805
- /**
2806
- * Disallow usage of dangerous JSX properties
2807
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger.md
2808
- */
2809
- 'react/no-danger'?: Linter.RuleEntry<[]>
2810
- /**
2811
- * Disallow when a DOM element is using both children and dangerouslySetInnerHTML
2812
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger-with-children.md
2813
- */
2814
- 'react/no-danger-with-children'?: Linter.RuleEntry<[]>
2815
- /**
2816
- * Disallow usage of deprecated methods
2817
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-deprecated.md
2818
- */
2819
- 'react/no-deprecated'?: Linter.RuleEntry<[]>
2820
- /**
2821
- * Disallow usage of setState in componentDidMount
2822
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-mount-set-state.md
2823
- */
2824
- 'react/no-did-mount-set-state'?: Linter.RuleEntry<ReactNoDidMountSetState>
2825
- /**
2826
- * Disallow usage of setState in componentDidUpdate
2827
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-update-set-state.md
2828
- */
2829
- 'react/no-did-update-set-state'?: Linter.RuleEntry<ReactNoDidUpdateSetState>
2830
- /**
2831
- * Disallow direct mutation of this.state
2832
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-direct-mutation-state.md
2665
+ * disallow direct mutation of state
2666
+ * @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
2833
2667
  */
2834
2668
  'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
2835
2669
  /**
2836
- * Disallow usage of findDOMNode
2837
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-find-dom-node.md
2670
+ * disallow duplicate keys in 'key' prop when rendering list
2671
+ * @see https://eslint-react.xyz/docs/rules/no-duplicate-key
2838
2672
  */
2839
- 'react/no-find-dom-node'?: Linter.RuleEntry<[]>
2673
+ 'react/no-duplicate-key'?: Linter.RuleEntry<[]>
2840
2674
  /**
2841
- * Disallow usage of invalid attributes
2842
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-invalid-html-attribute.md
2675
+ * disallow spreading 'key' from objects.
2676
+ * @see https://eslint-react.xyz/docs/rules/no-implicit-key
2677
+ * @deprecated
2843
2678
  */
2844
- 'react/no-invalid-html-attribute'?: Linter.RuleEntry<ReactNoInvalidHtmlAttribute>
2679
+ 'react/no-implicit-key'?: Linter.RuleEntry<[]>
2845
2680
  /**
2846
- * Disallow usage of isMounted
2847
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-is-mounted.md
2681
+ * disallow problematic leaked values from being rendered
2682
+ * @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
2848
2683
  */
2849
- 'react/no-is-mounted'?: Linter.RuleEntry<[]>
2684
+ 'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
2850
2685
  /**
2851
- * Disallow multiple component definition per file
2852
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-multi-comp.md
2686
+ * require 'displayName' for memo and forwardRef components
2687
+ * @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
2853
2688
  */
2854
- 'react/no-multi-comp'?: Linter.RuleEntry<ReactNoMultiComp>
2689
+ 'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>
2855
2690
  /**
2856
- * Enforce that namespaces are not used in React elements
2857
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-namespace.md
2691
+ * require 'key' prop when rendering list
2692
+ * @see https://eslint-react.xyz/docs/rules/no-missing-key
2858
2693
  */
2859
- 'react/no-namespace'?: Linter.RuleEntry<[]>
2694
+ 'react/no-missing-key'?: Linter.RuleEntry<[]>
2860
2695
  /**
2861
- * Disallow usage of referential-type variables as default param in functional component
2862
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-object-type-as-default-prop.md
2696
+ * disallow usage of unstable nested components
2697
+ * @see https://eslint-react.xyz/docs/rules/no-nested-components
2863
2698
  */
2864
- 'react/no-object-type-as-default-prop'?: Linter.RuleEntry<[]>
2699
+ 'react/no-nested-components'?: Linter.RuleEntry<[]>
2865
2700
  /**
2866
- * Disallow usage of shouldComponentUpdate when extending React.PureComponent
2867
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-redundant-should-component-update.md
2701
+ * disallow usage of 'shouldComponentUpdate' in class component extends 'React.PureComponent'
2702
+ * @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
2868
2703
  */
2869
2704
  'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
2870
2705
  /**
2871
- * Disallow usage of the return value of ReactDOM.render
2872
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-render-return-value.md
2706
+ * disallow 'setState' in 'componentDidMount'
2707
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
2873
2708
  */
2874
- 'react/no-render-return-value'?: Linter.RuleEntry<[]>
2709
+ 'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
2875
2710
  /**
2876
- * Disallow usage of setState
2877
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-set-state.md
2711
+ * disallow 'setState' in 'componentDidUpdate'
2712
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
2878
2713
  */
2879
- 'react/no-set-state'?: Linter.RuleEntry<[]>
2714
+ 'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
2880
2715
  /**
2881
- * Disallow using string references
2882
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-string-refs.md
2716
+ * disallow 'setState' in 'componentWillUpdate'
2717
+ * @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
2883
2718
  */
2884
- 'react/no-string-refs'?: Linter.RuleEntry<ReactNoStringRefs>
2719
+ 'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
2885
2720
  /**
2886
- * Disallow `this` from being used in stateless functional components
2887
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-this-in-sfc.md
2721
+ * disallow using deprecated string refs
2722
+ * @see https://eslint-react.xyz/docs/rules/no-string-refs
2888
2723
  */
2889
- 'react/no-this-in-sfc'?: Linter.RuleEntry<[]>
2724
+ 'react/no-string-refs'?: Linter.RuleEntry<[]>
2890
2725
  /**
2891
- * Disallow common typos
2892
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md
2726
+ * disallow usage of 'UNSAFE_componentWillMount'
2727
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
2893
2728
  */
2894
- 'react/no-typos'?: Linter.RuleEntry<[]>
2729
+ 'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
2895
2730
  /**
2896
- * Disallow unescaped HTML entities from appearing in markup
2897
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unescaped-entities.md
2731
+ * disallow usage of 'UNSAFE_componentWillReceiveProps'
2732
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
2898
2733
  */
2899
- 'react/no-unescaped-entities'?: Linter.RuleEntry<ReactNoUnescapedEntities>
2734
+ 'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
2900
2735
  /**
2901
- * Disallow usage of unknown DOM property
2902
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unknown-property.md
2736
+ * disallow usage of 'UNSAFE_componentWillUpdate'
2737
+ * @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
2903
2738
  */
2904
- 'react/no-unknown-property'?: Linter.RuleEntry<ReactNoUnknownProperty>
2739
+ 'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>
2905
2740
  /**
2906
- * Disallow usage of unsafe lifecycle methods
2907
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unsafe.md
2741
+ * disallow passing constructed values to context providers
2742
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
2908
2743
  */
2909
- 'react/no-unsafe'?: Linter.RuleEntry<ReactNoUnsafe>
2744
+ 'react/no-unstable-context-value'?: Linter.RuleEntry<[]>
2910
2745
  /**
2911
- * Disallow creating unstable components inside components
2912
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unstable-nested-components.md
2746
+ * disallow usage of unstable value as default param in function component
2747
+ * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
2913
2748
  */
2914
- 'react/no-unstable-nested-components'?: Linter.RuleEntry<ReactNoUnstableNestedComponents>
2749
+ 'react/no-unstable-default-props'?: Linter.RuleEntry<[]>
2915
2750
  /**
2916
- * Disallow declaring unused methods of component class
2917
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-class-component-methods.md
2751
+ * disallow unused class component members
2752
+ * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
2918
2753
  */
2919
- 'react/no-unused-class-component-methods'?: Linter.RuleEntry<[]>
2754
+ 'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>
2920
2755
  /**
2921
- * Disallow definitions of unused propTypes
2922
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-prop-types.md
2923
- */
2924
- 'react/no-unused-prop-types'?: Linter.RuleEntry<ReactNoUnusedPropTypes>
2925
- /**
2926
- * Disallow definitions of unused state
2927
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-state.md
2756
+ * Prevents unused state of class component
2757
+ * @see https://eslint-react.xyz/docs/rules/no-unused-state
2928
2758
  */
2929
2759
  'react/no-unused-state'?: Linter.RuleEntry<[]>
2930
2760
  /**
2931
- * Disallow usage of setState in componentWillUpdate
2932
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-will-update-set-state.md
2933
- */
2934
- 'react/no-will-update-set-state'?: Linter.RuleEntry<ReactNoWillUpdateSetState>
2935
- /**
2936
- * Enforce ES5 or ES6 class for React Components
2937
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-es6-class.md
2761
+ * disallow unnecessary fragments
2762
+ * @see https://eslint-react.xyz/docs/rules/no-useless-fragment
2938
2763
  */
2939
- 'react/prefer-es6-class'?: Linter.RuleEntry<ReactPreferEs6Class>
2764
+ 'react/no-useless-fragment'?: Linter.RuleEntry<[]>
2940
2765
  /**
2941
- * Prefer exact proptype definitions
2942
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-exact-props.md
2766
+ * enforce using destructuring assignment in component props and context
2767
+ * @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
2943
2768
  */
2944
- 'react/prefer-exact-props'?: Linter.RuleEntry<[]>
2769
+ 'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
2945
2770
  /**
2946
- * Enforce that props are read-only
2947
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-read-only-props.md
2771
+ * enforce that component props are read-only
2772
+ * @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
2948
2773
  */
2949
2774
  'react/prefer-read-only-props'?: Linter.RuleEntry<[]>
2950
2775
  /**
2951
- * Enforce stateless components to be written as a pure function
2952
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-stateless-function.md
2776
+ * enforce boolean attributes notation in JSX
2777
+ * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
2953
2778
  */
2954
- 'react/prefer-stateless-function'?: Linter.RuleEntry<ReactPreferStatelessFunction>
2779
+ 'react/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
2955
2780
  /**
2956
- * Disallow missing props validation in a React component definition
2957
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prop-types.md
2781
+ * enforce using fragment syntax instead of Fragment component
2782
+ * @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
2958
2783
  */
2959
- 'react/prop-types'?: Linter.RuleEntry<ReactPropTypes>
2960
- /**
2961
- * Disallow missing React when using JSX
2962
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/react-in-jsx-scope.md
2963
- */
2964
- 'react/react-in-jsx-scope'?: Linter.RuleEntry<[]>
2965
- /**
2966
- * Enforce a defaultProps definition for every prop that is not a required prop
2967
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-default-props.md
2968
- */
2969
- 'react/require-default-props'?: Linter.RuleEntry<ReactRequireDefaultProps>
2970
- /**
2971
- * Enforce React components to have a shouldComponentUpdate method
2972
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-optimization.md
2973
- */
2974
- 'react/require-optimization'?: Linter.RuleEntry<ReactRequireOptimization>
2975
- /**
2976
- * Enforce ES5 or ES6 class for returning value in render function
2977
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-render-return.md
2978
- */
2979
- 'react/require-render-return'?: Linter.RuleEntry<[]>
2980
- /**
2981
- * Disallow extra closing tags for components without children
2982
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/self-closing-comp.md
2983
- */
2984
- 'react/self-closing-comp'?: Linter.RuleEntry<ReactSelfClosingComp>
2985
- /**
2986
- * Enforce component methods order
2987
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-comp.md
2988
- */
2989
- 'react/sort-comp'?: Linter.RuleEntry<ReactSortComp>
2990
- /**
2991
- * Enforce defaultProps declarations alphabetical sorting
2992
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-default-props.md
2993
- */
2994
- 'react/sort-default-props'?: Linter.RuleEntry<ReactSortDefaultProps>
2995
- /**
2996
- * Enforce propTypes declarations alphabetical sorting
2997
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-prop-types.md
2998
- */
2999
- 'react/sort-prop-types'?: Linter.RuleEntry<ReactSortPropTypes>
3000
- /**
3001
- * Enforce class component state initialization style
3002
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/state-in-constructor.md
3003
- */
3004
- 'react/state-in-constructor'?: Linter.RuleEntry<ReactStateInConstructor>
3005
- /**
3006
- * Enforces where React component static properties should be positioned.
3007
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/static-property-placement.md
3008
- */
3009
- 'react/static-property-placement'?: Linter.RuleEntry<ReactStaticPropertyPlacement>
3010
- /**
3011
- * Enforce style prop value is an object
3012
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/style-prop-object.md
3013
- */
3014
- 'react/style-prop-object'?: Linter.RuleEntry<ReactStylePropObject>
3015
- /**
3016
- * Disallow void DOM elements (e.g. `<img />`, `<br />`) from receiving children
3017
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/void-dom-elements-no-children.md
3018
- */
3019
- 'react/void-dom-elements-no-children'?: Linter.RuleEntry<[]>
2784
+ 'react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
3020
2785
  /**
3021
2786
  * disallow confusing quantifiers
3022
2787
  * @see https://ota-meshi.github.io/eslint-plugin-regexp/rules/confusing-quantifier.html
@@ -9771,433 +9536,6 @@ type ReactHooksExhaustiveDeps = []|[{
9771
9536
  additionalHooks?: string
9772
9537
  enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
9773
9538
  }]
9774
- // ----- react/boolean-prop-naming -----
9775
- type ReactBooleanPropNaming = []|[{
9776
-
9777
- propTypeNames?: [string, ...(string)[]]
9778
- rule?: string
9779
- message?: string
9780
- validateNested?: boolean
9781
- }]
9782
- // ----- react/button-has-type -----
9783
- type ReactButtonHasType = []|[{
9784
- button?: boolean
9785
- submit?: boolean
9786
- reset?: boolean
9787
- }]
9788
- // ----- react/checked-requires-onchange-or-readonly -----
9789
- type ReactCheckedRequiresOnchangeOrReadonly = []|[{
9790
- ignoreMissingProperties?: boolean
9791
- ignoreExclusiveCheckedAttribute?: boolean
9792
- }]
9793
- // ----- react/default-props-match-prop-types -----
9794
- type ReactDefaultPropsMatchPropTypes = []|[{
9795
- allowRequiredDefaults?: boolean
9796
- }]
9797
- // ----- react/destructuring-assignment -----
9798
- type ReactDestructuringAssignment = []|[("always" | "never")]|[("always" | "never"), {
9799
- ignoreClassFields?: boolean
9800
- destructureInSignature?: ("always" | "ignore")
9801
- }]
9802
- // ----- react/display-name -----
9803
- type ReactDisplayName = []|[{
9804
- ignoreTranspilerName?: boolean
9805
- checkContextObjects?: boolean
9806
- }]
9807
- // ----- react/forbid-component-props -----
9808
- type ReactForbidComponentProps = []|[{
9809
- forbid?: (string | {
9810
- propName?: string
9811
- allowedFor?: string[]
9812
- message?: string
9813
- } | {
9814
- propName?: string
9815
-
9816
- disallowedFor: [string, ...(string)[]]
9817
- message?: string
9818
- })[]
9819
- [k: string]: unknown | undefined
9820
- }]
9821
- // ----- react/forbid-dom-props -----
9822
- type ReactForbidDomProps = []|[{
9823
- forbid?: (string | {
9824
- propName?: string
9825
- disallowedFor?: string[]
9826
- message?: string
9827
- [k: string]: unknown | undefined
9828
- })[]
9829
- }]
9830
- // ----- react/forbid-elements -----
9831
- type ReactForbidElements = []|[{
9832
- forbid?: (string | {
9833
- element: string
9834
- message?: string
9835
- })[]
9836
- }]
9837
- // ----- react/forbid-foreign-prop-types -----
9838
- type ReactForbidForeignPropTypes = []|[{
9839
- allowInPropTypes?: boolean
9840
- }]
9841
- // ----- react/forbid-prop-types -----
9842
- type ReactForbidPropTypes = []|[{
9843
- forbid?: string[]
9844
- checkContextTypes?: boolean
9845
- checkChildContextTypes?: boolean
9846
- [k: string]: unknown | undefined
9847
- }]
9848
- // ----- react/function-component-definition -----
9849
- type ReactFunctionComponentDefinition = []|[{
9850
- namedComponents?: (("function-declaration" | "arrow-function" | "function-expression") | ("function-declaration" | "arrow-function" | "function-expression")[])
9851
- unnamedComponents?: (("arrow-function" | "function-expression") | ("arrow-function" | "function-expression")[])
9852
- [k: string]: unknown | undefined
9853
- }]
9854
- // ----- react/hook-use-state -----
9855
- type ReactHookUseState = []|[{
9856
- allowDestructuredState?: boolean
9857
- }]
9858
- // ----- react/jsx-boolean-value -----
9859
- type ReactJsxBooleanValue = ([]|[("always" | "never")] | []|["always"]|["always", {
9860
- never?: string[]
9861
- assumeUndefinedIsFalse?: boolean
9862
- }] | []|["never"]|["never", {
9863
- always?: string[]
9864
- assumeUndefinedIsFalse?: boolean
9865
- }])
9866
- // ----- react/jsx-closing-bracket-location -----
9867
- type ReactJsxClosingBracketLocation = []|[(("after-props" | "props-aligned" | "tag-aligned" | "line-aligned") | {
9868
- location?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned")
9869
- } | {
9870
- nonEmpty?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false)
9871
- selfClosing?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false)
9872
- })]
9873
- // ----- react/jsx-curly-brace-presence -----
9874
- type ReactJsxCurlyBracePresence = []|[({
9875
- props?: ("always" | "never" | "ignore")
9876
- children?: ("always" | "never" | "ignore")
9877
- propElementValues?: ("always" | "never" | "ignore")
9878
- } | ("always" | "never" | "ignore"))]
9879
- // ----- react/jsx-curly-newline -----
9880
- type ReactJsxCurlyNewline = []|[(("consistent" | "never") | {
9881
- singleline?: ("consistent" | "require" | "forbid")
9882
- multiline?: ("consistent" | "require" | "forbid")
9883
- })]
9884
- // ----- react/jsx-curly-spacing -----
9885
- type ReactJsxCurlySpacing = []|[((_ReactJsxCurlySpacing_BasicConfig & {
9886
- attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9887
- children?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9888
- [k: string]: unknown | undefined
9889
- }) | ("always" | "never"))]|[((_ReactJsxCurlySpacing_BasicConfig & {
9890
- attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9891
- children?: _ReactJsxCurlySpacingBasicConfigOrBoolean
9892
- [k: string]: unknown | undefined
9893
- }) | ("always" | "never")), {
9894
- allowMultiline?: boolean
9895
- spacing?: {
9896
- objectLiterals?: ("always" | "never")
9897
- [k: string]: unknown | undefined
9898
- }
9899
- }]
9900
- type _ReactJsxCurlySpacingBasicConfigOrBoolean = (_ReactJsxCurlySpacing_BasicConfig | boolean)
9901
- interface _ReactJsxCurlySpacing_BasicConfig {
9902
- when?: ("always" | "never")
9903
- allowMultiline?: boolean
9904
- spacing?: {
9905
- objectLiterals?: ("always" | "never")
9906
- [k: string]: unknown | undefined
9907
- }
9908
- [k: string]: unknown | undefined
9909
- }
9910
- // ----- react/jsx-equals-spacing -----
9911
- type ReactJsxEqualsSpacing = []|[("always" | "never")]
9912
- // ----- react/jsx-filename-extension -----
9913
- type ReactJsxFilenameExtension = []|[{
9914
- allow?: ("always" | "as-needed")
9915
- extensions?: string[]
9916
- ignoreFilesWithoutCode?: boolean
9917
- }]
9918
- // ----- react/jsx-first-prop-new-line -----
9919
- type ReactJsxFirstPropNewLine = []|[("always" | "never" | "multiline" | "multiline-multiprop" | "multiprop")]
9920
- // ----- react/jsx-fragments -----
9921
- type ReactJsxFragments = []|[("syntax" | "element")]
9922
- // ----- react/jsx-handler-names -----
9923
- type ReactJsxHandlerNames = []|[({
9924
- eventHandlerPrefix?: string
9925
- eventHandlerPropPrefix?: string
9926
- checkLocalVariables?: boolean
9927
- checkInlineFunction?: boolean
9928
- } | {
9929
- eventHandlerPrefix?: string
9930
- eventHandlerPropPrefix?: false
9931
- checkLocalVariables?: boolean
9932
- checkInlineFunction?: boolean
9933
- } | {
9934
- eventHandlerPrefix?: false
9935
- eventHandlerPropPrefix?: string
9936
- checkLocalVariables?: boolean
9937
- checkInlineFunction?: boolean
9938
- } | {
9939
- checkLocalVariables?: boolean
9940
- } | {
9941
- checkInlineFunction?: boolean
9942
- })]
9943
- // ----- react/jsx-indent -----
9944
- type ReactJsxIndent = []|[("tab" | number)]|[("tab" | number), {
9945
- checkAttributes?: boolean
9946
- indentLogicalExpressions?: boolean
9947
- }]
9948
- // ----- react/jsx-indent-props -----
9949
- type ReactJsxIndentProps = []|[(("tab" | "first") | number | {
9950
- indentMode?: (("tab" | "first") | number)
9951
- ignoreTernaryOperator?: boolean
9952
- [k: string]: unknown | undefined
9953
- })]
9954
- // ----- react/jsx-key -----
9955
- type ReactJsxKey = []|[{
9956
- checkFragmentShorthand?: boolean
9957
- checkKeyMustBeforeSpread?: boolean
9958
- warnOnDuplicates?: boolean
9959
- }]
9960
- // ----- react/jsx-max-depth -----
9961
- type ReactJsxMaxDepth = []|[{
9962
- max?: number
9963
- }]
9964
- // ----- react/jsx-max-props-per-line -----
9965
- type ReactJsxMaxPropsPerLine = []|[({
9966
- maximum?: {
9967
- single?: number
9968
- multi?: number
9969
- [k: string]: unknown | undefined
9970
- }
9971
- } | {
9972
- maximum?: number
9973
- when?: ("always" | "multiline")
9974
- })]
9975
- // ----- react/jsx-newline -----
9976
- type ReactJsxNewline = []|[{
9977
- prevent?: boolean
9978
- allowMultilines?: boolean
9979
- }]
9980
- // ----- react/jsx-no-bind -----
9981
- type ReactJsxNoBind = []|[{
9982
- allowArrowFunctions?: boolean
9983
- allowBind?: boolean
9984
- allowFunctions?: boolean
9985
- ignoreRefs?: boolean
9986
- ignoreDOMComponents?: boolean
9987
- }]
9988
- // ----- react/jsx-no-duplicate-props -----
9989
- type ReactJsxNoDuplicateProps = []|[{
9990
- ignoreCase?: boolean
9991
- }]
9992
- // ----- react/jsx-no-leaked-render -----
9993
- type ReactJsxNoLeakedRender = []|[{
9994
- validStrategies?: ("ternary" | "coerce")[]
9995
- }]
9996
- // ----- react/jsx-no-literals -----
9997
- type ReactJsxNoLiterals = []|[{
9998
- noStrings?: boolean
9999
- allowedStrings?: string[]
10000
- ignoreProps?: boolean
10001
- noAttributeStrings?: boolean
10002
- }]
10003
- // ----- react/jsx-no-script-url -----
10004
- type ReactJsxNoScriptUrl = ([]|[{
10005
- name: string
10006
- props: string[]
10007
- }[]]|[{
10008
- name: string
10009
- props: string[]
10010
- }[], {
10011
- includeFromSettings?: boolean
10012
- [k: string]: unknown | undefined
10013
- }] | []|[{
10014
- includeFromSettings?: boolean
10015
- [k: string]: unknown | undefined
10016
- }])
10017
- // ----- react/jsx-no-target-blank -----
10018
- type ReactJsxNoTargetBlank = []|[{
10019
- allowReferrer?: boolean
10020
- enforceDynamicLinks?: ("always" | "never")
10021
- warnOnSpreadAttributes?: boolean
10022
- links?: boolean
10023
- forms?: boolean
10024
- }]
10025
- // ----- react/jsx-no-undef -----
10026
- type ReactJsxNoUndef = []|[{
10027
- allowGlobals?: boolean
10028
- }]
10029
- // ----- react/jsx-no-useless-fragment -----
10030
- type ReactJsxNoUselessFragment = []|[{
10031
- allowExpressions?: boolean
10032
- [k: string]: unknown | undefined
10033
- }]
10034
- // ----- react/jsx-one-expression-per-line -----
10035
- type ReactJsxOneExpressionPerLine = []|[{
10036
- allow?: ("none" | "literal" | "single-child" | "non-jsx")
10037
- }]
10038
- // ----- react/jsx-pascal-case -----
10039
- type ReactJsxPascalCase = []|[{
10040
- allowAllCaps?: boolean
10041
- allowLeadingUnderscore?: boolean
10042
- allowNamespace?: boolean
10043
-
10044
- ignore?: []|[string]
10045
- }]
10046
- // ----- react/jsx-props-no-spreading -----
10047
- type ReactJsxPropsNoSpreading = []|[({
10048
- html?: ("enforce" | "ignore")
10049
- custom?: ("enforce" | "ignore")
10050
- exceptions?: string[]
10051
- [k: string]: unknown | undefined
10052
- } & {
10053
- [k: string]: unknown | undefined
10054
- })]
10055
- // ----- react/jsx-sort-default-props -----
10056
- type ReactJsxSortDefaultProps = []|[{
10057
- ignoreCase?: boolean
10058
- }]
10059
- // ----- react/jsx-sort-props -----
10060
- type ReactJsxSortProps = []|[{
10061
- callbacksLast?: boolean
10062
- shorthandFirst?: boolean
10063
- shorthandLast?: boolean
10064
- multiline?: ("ignore" | "first" | "last")
10065
- ignoreCase?: boolean
10066
- noSortAlphabetically?: boolean
10067
- reservedFirst?: (unknown[] | boolean)
10068
- locale?: string
10069
- }]
10070
- // ----- react/jsx-space-before-closing -----
10071
- type ReactJsxSpaceBeforeClosing = []|[("always" | "never")]
10072
- // ----- react/jsx-tag-spacing -----
10073
- type ReactJsxTagSpacing = []|[{
10074
- closingSlash?: ("always" | "never" | "allow")
10075
- beforeSelfClosing?: ("always" | "proportional-always" | "never" | "allow")
10076
- afterOpening?: ("always" | "allow-multiline" | "never" | "allow")
10077
- beforeClosing?: ("always" | "proportional-always" | "never" | "allow")
10078
- }]
10079
- // ----- react/jsx-wrap-multilines -----
10080
- type ReactJsxWrapMultilines = []|[{
10081
- declaration?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10082
- assignment?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10083
- return?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10084
- arrow?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10085
- condition?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10086
- logical?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10087
- prop?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
10088
- }]
10089
- // ----- react/no-children-prop -----
10090
- type ReactNoChildrenProp = []|[{
10091
- allowFunctions?: boolean
10092
- }]
10093
- // ----- react/no-did-mount-set-state -----
10094
- type ReactNoDidMountSetState = []|["disallow-in-func"]
10095
- // ----- react/no-did-update-set-state -----
10096
- type ReactNoDidUpdateSetState = []|["disallow-in-func"]
10097
- // ----- react/no-invalid-html-attribute -----
10098
- type ReactNoInvalidHtmlAttribute = []|[("rel")[]]
10099
- // ----- react/no-multi-comp -----
10100
- type ReactNoMultiComp = []|[{
10101
- ignoreStateless?: boolean
10102
- }]
10103
- // ----- react/no-string-refs -----
10104
- type ReactNoStringRefs = []|[{
10105
- noTemplateLiterals?: boolean
10106
- }]
10107
- // ----- react/no-unescaped-entities -----
10108
- type ReactNoUnescapedEntities = []|[{
10109
- forbid?: (string | {
10110
- char?: string
10111
- alternatives?: string[]
10112
- [k: string]: unknown | undefined
10113
- })[]
10114
- }]
10115
- // ----- react/no-unknown-property -----
10116
- type ReactNoUnknownProperty = []|[{
10117
- ignore?: string[]
10118
- requireDataLowercase?: boolean
10119
- }]
10120
- // ----- react/no-unsafe -----
10121
- type ReactNoUnsafe = []|[{
10122
- checkAliases?: boolean
10123
- }]
10124
- // ----- react/no-unstable-nested-components -----
10125
- type ReactNoUnstableNestedComponents = []|[{
10126
- customValidators?: string[]
10127
- allowAsProps?: boolean
10128
- }]
10129
- // ----- react/no-unused-prop-types -----
10130
- type ReactNoUnusedPropTypes = []|[{
10131
- ignore?: string[]
10132
- customValidators?: string[]
10133
- skipShapeProps?: boolean
10134
- }]
10135
- // ----- react/no-will-update-set-state -----
10136
- type ReactNoWillUpdateSetState = []|["disallow-in-func"]
10137
- // ----- react/prefer-es6-class -----
10138
- type ReactPreferEs6Class = []|[("always" | "never")]
10139
- // ----- react/prefer-stateless-function -----
10140
- type ReactPreferStatelessFunction = []|[{
10141
- ignorePureComponents?: boolean
10142
- }]
10143
- // ----- react/prop-types -----
10144
- type ReactPropTypes = []|[{
10145
- ignore?: string[]
10146
- customValidators?: string[]
10147
- skipUndeclared?: boolean
10148
- }]
10149
- // ----- react/require-default-props -----
10150
- type ReactRequireDefaultProps = []|[{
10151
- forbidDefaultForRequired?: boolean
10152
- classes?: ("defaultProps" | "ignore")
10153
- functions?: ("defaultArguments" | "defaultProps" | "ignore")
10154
- ignoreFunctionalComponents?: boolean
10155
- }]
10156
- // ----- react/require-optimization -----
10157
- type ReactRequireOptimization = []|[{
10158
- allowDecorators?: string[]
10159
- }]
10160
- // ----- react/self-closing-comp -----
10161
- type ReactSelfClosingComp = []|[{
10162
- component?: boolean
10163
- html?: boolean
10164
- }]
10165
- // ----- react/sort-comp -----
10166
- type ReactSortComp = []|[{
10167
- order?: string[]
10168
- groups?: {
10169
- [k: string]: string[]
10170
- }
10171
- }]
10172
- // ----- react/sort-default-props -----
10173
- type ReactSortDefaultProps = []|[{
10174
- ignoreCase?: boolean
10175
- }]
10176
- // ----- react/sort-prop-types -----
10177
- type ReactSortPropTypes = []|[{
10178
- requiredFirst?: boolean
10179
- callbacksLast?: boolean
10180
- ignoreCase?: boolean
10181
- noSortAlphabetically?: boolean
10182
- sortShapeProp?: boolean
10183
- checkTypes?: boolean
10184
- }]
10185
- // ----- react/state-in-constructor -----
10186
- type ReactStateInConstructor = []|[("always" | "never")]
10187
- // ----- react/static-property-placement -----
10188
- type ReactStaticPropertyPlacement = []|[("static public field" | "static getter" | "property assignment")]|[("static public field" | "static getter" | "property assignment"), {
10189
- propTypes?: ("static public field" | "static getter" | "property assignment")
10190
- defaultProps?: ("static public field" | "static getter" | "property assignment")
10191
- childContextTypes?: ("static public field" | "static getter" | "property assignment")
10192
- contextTypes?: ("static public field" | "static getter" | "property assignment")
10193
- contextType?: ("static public field" | "static getter" | "property assignment")
10194
- displayName?: ("static public field" | "static getter" | "property assignment")
10195
- }]
10196
- // ----- react/style-prop-object -----
10197
- type ReactStylePropObject = []|[{
10198
- allow?: string[]
10199
- [k: string]: unknown | undefined
10200
- }]
10201
9539
  // ----- regexp/hexadecimal-escape -----
10202
9540
  type RegexpHexadecimalEscape = []|[("always" | "never")]
10203
9541
  // ----- regexp/letter-case -----
@@ -14624,6 +13962,5 @@ declare const parserPlain: {
14624
13962
  };
14625
13963
  };
14626
13964
  };
14627
- declare function toArray<T>(value: Array<T> | T): Array<T>;
14628
13965
 
14629
- export { type Awaitable, type ConfigNames, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, 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_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsFiles, type OptionsFormatters, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsRegExp, type OptionsStylistic, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type OptionsUnoCSS, type OptionsVue, type Rules, STYLISTIC_CONFIG_DEFAULTS, type StylisticConfig, type TypedFlatConfigItem, combineConfigs, comments, defaultPluginRenaming, formatters, ignores, imports, interopDefault, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, react, regexp, renamePluginInConfigs, renameRules, sonar, sortPackageJson, sortTsconfig, stylistic, test, toArray, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };
13966
+ export { type Awaitable, type ConfigNames, GLOB_ALL_SRC, GLOB_CSS, GLOB_EXCLUDE, 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_TESTS, GLOB_TS, GLOB_TSX, GLOB_VUE, GLOB_YAML, type OptionsComponentExts, type OptionsConfig, type OptionsFiles, type OptionsFormatters, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsRegExp, type OptionsStylistic, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type OptionsUnoCSS, type OptionsVue, type Rules, STYLISTIC_CONFIG_DEFAULTS, type StylisticConfig, type TypedFlatConfigItem, combineConfigs, comments, defaultPluginRenaming, formatters, ignores, imports, interopDefault, javascript, jsdoc, jsonc, jsx, markdown, node, parserPlain, perfectionist, react, regexp, renamePluginInConfigs, renameRules, sonar, sortPackageJson, sortTsconfig, stylistic, test, typescript, unicorn, unocss, vinicuncaESLint, vue, yaml };