@storm-software/eslint 0.76.0 → 0.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/preset.d.mts CHANGED
@@ -789,725 +789,10 @@ interface RuleOptions {
789
789
  * @see https://docs.stormsoftware.com/eslint/rules/banner
790
790
  */
791
791
  'banner/banner'?: Linter.RuleEntry<BannerBanner>
792
- /**
793
- * Enforce emojis are wrapped in `<span>` and provide screenreader access.
794
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/accessible-emoji.md
795
- * @deprecated
796
- */
797
- 'jsx-a11y/accessible-emoji'?: Linter.RuleEntry<JsxA11yAccessibleEmoji>
798
- /**
799
- * Enforce all elements that require alternative text have meaningful information to relay back to end user.
800
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md
801
- */
802
- 'jsx-a11y/alt-text'?: Linter.RuleEntry<JsxA11yAltText>
803
- /**
804
- * Enforce `<a>` text to not exactly match "click here", "here", "link", or "a link".
805
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-ambiguous-text.md
806
- */
807
- 'jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<JsxA11yAnchorAmbiguousText>
808
- /**
809
- * Enforce all anchors to contain accessible content.
810
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md
811
- */
812
- 'jsx-a11y/anchor-has-content'?: Linter.RuleEntry<JsxA11yAnchorHasContent>
813
- /**
814
- * Enforce all anchors are valid, navigable elements.
815
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md
816
- */
817
- 'jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<JsxA11yAnchorIsValid>
818
- /**
819
- * Enforce elements with aria-activedescendant are tabbable.
820
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md
821
- */
822
- 'jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<JsxA11yAriaActivedescendantHasTabindex>
823
- /**
824
- * Enforce all `aria-*` props are valid.
825
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md
826
- */
827
- 'jsx-a11y/aria-props'?: Linter.RuleEntry<JsxA11yAriaProps>
828
- /**
829
- * Enforce ARIA state and property values are valid.
830
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md
831
- */
832
- 'jsx-a11y/aria-proptypes'?: Linter.RuleEntry<JsxA11yAriaProptypes>
833
- /**
834
- * Enforce that elements with ARIA roles must use a valid, non-abstract ARIA role.
835
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md
836
- */
837
- 'jsx-a11y/aria-role'?: Linter.RuleEntry<JsxA11yAriaRole>
838
- /**
839
- * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.
840
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md
841
- */
842
- 'jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<JsxA11yAriaUnsupportedElements>
843
- /**
844
- * Enforce that autocomplete attributes are used correctly.
845
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md
846
- */
847
- 'jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<JsxA11yAutocompleteValid>
848
- /**
849
- * Enforce a clickable non-interactive element has at least one keyboard event listener.
850
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md
851
- */
852
- 'jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<JsxA11yClickEventsHaveKeyEvents>
853
- /**
854
- * Enforce that a control (an interactive element) has a text label.
855
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md
856
- */
857
- 'jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<JsxA11yControlHasAssociatedLabel>
858
- /**
859
- * Enforce heading (`h1`, `h2`, etc) elements contain accessible content.
860
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md
861
- */
862
- 'jsx-a11y/heading-has-content'?: Linter.RuleEntry<JsxA11yHeadingHasContent>
863
- /**
864
- * Enforce `<html>` element has `lang` prop.
865
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md
866
- */
867
- 'jsx-a11y/html-has-lang'?: Linter.RuleEntry<JsxA11yHtmlHasLang>
868
- /**
869
- * Enforce iframe elements have a title attribute.
870
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md
871
- */
872
- 'jsx-a11y/iframe-has-title'?: Linter.RuleEntry<JsxA11yIframeHasTitle>
873
- /**
874
- * Enforce `<img>` alt prop does not contain the word "image", "picture", or "photo".
875
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md
876
- */
877
- 'jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<JsxA11yImgRedundantAlt>
878
- /**
879
- * Enforce that elements with interactive handlers like `onClick` must be focusable.
880
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md
881
- */
882
- 'jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<JsxA11yInteractiveSupportsFocus>
883
- /**
884
- * Enforce that a `label` tag has a text label and an associated control.
885
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md
886
- */
887
- 'jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<JsxA11yLabelHasAssociatedControl>
888
- /**
889
- * Enforce that `<label>` elements have the `htmlFor` prop.
890
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/label-has-for.md
891
- * @deprecated
892
- */
893
- 'jsx-a11y/label-has-for'?: Linter.RuleEntry<JsxA11yLabelHasFor>
894
- /**
895
- * Enforce lang attribute has a valid value.
896
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/lang.md
897
- */
898
- 'jsx-a11y/lang'?: Linter.RuleEntry<JsxA11yLang>
899
- /**
900
- * Enforces that `<audio>` and `<video>` elements must have a `<track>` for captions.
901
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/media-has-caption.md
902
- */
903
- 'jsx-a11y/media-has-caption'?: Linter.RuleEntry<JsxA11yMediaHasCaption>
904
- /**
905
- * Enforce that `onMouseOver`/`onMouseOut` are accompanied by `onFocus`/`onBlur` for keyboard-only users.
906
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/mouse-events-have-key-events.md
907
- */
908
- 'jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<JsxA11yMouseEventsHaveKeyEvents>
909
- /**
910
- * Enforce that the `accessKey` prop is not used on any element to avoid complications with keyboard commands used by a screenreader.
911
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-access-key.md
912
- */
913
- 'jsx-a11y/no-access-key'?: Linter.RuleEntry<JsxA11yNoAccessKey>
914
- /**
915
- * Disallow `aria-hidden="true"` from being set on focusable elements.
916
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-aria-hidden-on-focusable.md
917
- */
918
- 'jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<JsxA11yNoAriaHiddenOnFocusable>
919
- /**
920
- * Enforce autoFocus prop is not used.
921
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-autofocus.md
922
- */
923
- 'jsx-a11y/no-autofocus'?: Linter.RuleEntry<JsxA11yNoAutofocus>
924
- /**
925
- * Enforce distracting elements are not used.
926
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-distracting-elements.md
927
- */
928
- 'jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<JsxA11yNoDistractingElements>
929
- /**
930
- * Interactive elements should not be assigned non-interactive roles.
931
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-interactive-element-to-noninteractive-role.md
932
- */
933
- 'jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<JsxA11yNoInteractiveElementToNoninteractiveRole>
934
- /**
935
- * Non-interactive elements should not be assigned mouse or keyboard event listeners.
936
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md
937
- */
938
- 'jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<JsxA11yNoNoninteractiveElementInteractions>
939
- /**
940
- * Non-interactive elements should not be assigned interactive roles.
941
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-to-interactive-role.md
942
- */
943
- 'jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<JsxA11yNoNoninteractiveElementToInteractiveRole>
944
- /**
945
- * `tabIndex` should only be declared on interactive elements.
946
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-tabindex.md
947
- */
948
- 'jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<JsxA11yNoNoninteractiveTabindex>
949
- /**
950
- * Enforce usage of `onBlur` over `onChange` on select menus for accessibility.
951
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-onchange.md
952
- * @deprecated
953
- */
954
- 'jsx-a11y/no-onchange'?: Linter.RuleEntry<JsxA11yNoOnchange>
955
- /**
956
- * Enforce explicit role property is not the same as implicit/default role property on element.
957
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-redundant-roles.md
958
- */
959
- 'jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<JsxA11yNoRedundantRoles>
960
- /**
961
- * Enforce that non-interactive, visible elements (such as `<div>`) that have click handlers use the role attribute.
962
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md
963
- */
964
- 'jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<JsxA11yNoStaticElementInteractions>
965
- /**
966
- * Enforces using semantic DOM elements over the ARIA `role` property.
967
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/prefer-tag-over-role.md
968
- */
969
- 'jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<JsxA11yPreferTagOverRole>
970
- /**
971
- * Enforce that elements with ARIA roles must have all required attributes for that role.
972
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md
973
- */
974
- 'jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<JsxA11yRoleHasRequiredAriaProps>
975
- /**
976
- * Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
977
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md
978
- */
979
- 'jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<JsxA11yRoleSupportsAriaProps>
980
- /**
981
- * Enforce `scope` prop is only used on `<th>` elements.
982
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md
983
- */
984
- 'jsx-a11y/scope'?: Linter.RuleEntry<JsxA11yScope>
985
- /**
986
- * Enforce `tabIndex` value is not greater than zero.
987
- * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md
988
- */
989
- 'jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<JsxA11yTabindexNoPositive>
990
792
  /**
991
793
  * @see https://github.com/prettier/eslint-plugin-prettier#options
992
794
  */
993
795
  'prettier/prettier'?: Linter.RuleEntry<PrettierPrettier>
994
- /**
995
- * verifies the list of dependencies for Hooks like useEffect and similar
996
- * @see https://github.com/facebook/react/issues/14920
997
- */
998
- 'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
999
- /**
1000
- * enforces the Rules of Hooks
1001
- * @see https://reactjs.org/docs/hooks-rules.html
1002
- */
1003
- 'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
1004
- /**
1005
- * Enforces consistent naming for boolean props
1006
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/boolean-prop-naming.md
1007
- */
1008
- 'react/boolean-prop-naming'?: Linter.RuleEntry<ReactBooleanPropNaming>
1009
- /**
1010
- * Disallow usage of `button` elements without an explicit `type` attribute
1011
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/button-has-type.md
1012
- */
1013
- 'react/button-has-type'?: Linter.RuleEntry<ReactButtonHasType>
1014
- /**
1015
- * Enforce using `onChange` or `readonly` attribute when `checked` is used
1016
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/checked-requires-onchange-or-readonly.md
1017
- */
1018
- 'react/checked-requires-onchange-or-readonly'?: Linter.RuleEntry<ReactCheckedRequiresOnchangeOrReadonly>
1019
- /**
1020
- * Enforce all defaultProps have a corresponding non-required PropType
1021
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/default-props-match-prop-types.md
1022
- */
1023
- 'react/default-props-match-prop-types'?: Linter.RuleEntry<ReactDefaultPropsMatchPropTypes>
1024
- /**
1025
- * Enforce consistent usage of destructuring assignment of props, state, and context
1026
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/destructuring-assignment.md
1027
- */
1028
- 'react/destructuring-assignment'?: Linter.RuleEntry<ReactDestructuringAssignment>
1029
- /**
1030
- * Disallow missing displayName in a React component definition
1031
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/display-name.md
1032
- */
1033
- 'react/display-name'?: Linter.RuleEntry<ReactDisplayName>
1034
- /**
1035
- * Disallow certain props on components
1036
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-component-props.md
1037
- */
1038
- 'react/forbid-component-props'?: Linter.RuleEntry<ReactForbidComponentProps>
1039
- /**
1040
- * Disallow certain props on DOM Nodes
1041
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-dom-props.md
1042
- */
1043
- 'react/forbid-dom-props'?: Linter.RuleEntry<ReactForbidDomProps>
1044
- /**
1045
- * Disallow certain elements
1046
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-elements.md
1047
- */
1048
- 'react/forbid-elements'?: Linter.RuleEntry<ReactForbidElements>
1049
- /**
1050
- * Disallow using another component's propTypes
1051
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-foreign-prop-types.md
1052
- */
1053
- 'react/forbid-foreign-prop-types'?: Linter.RuleEntry<ReactForbidForeignPropTypes>
1054
- /**
1055
- * Disallow certain propTypes
1056
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/forbid-prop-types.md
1057
- */
1058
- 'react/forbid-prop-types'?: Linter.RuleEntry<ReactForbidPropTypes>
1059
- /**
1060
- * Enforce a specific function type for function components
1061
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/function-component-definition.md
1062
- */
1063
- 'react/function-component-definition'?: Linter.RuleEntry<ReactFunctionComponentDefinition>
1064
- /**
1065
- * Ensure destructuring and symmetric naming of useState hook value and setter variables
1066
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/hook-use-state.md
1067
- */
1068
- 'react/hook-use-state'?: Linter.RuleEntry<ReactHookUseState>
1069
- /**
1070
- * Enforce sandbox attribute on iframe elements
1071
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/iframe-missing-sandbox.md
1072
- */
1073
- 'react/iframe-missing-sandbox'?: Linter.RuleEntry<[]>
1074
- /**
1075
- * Enforce boolean attributes notation in JSX
1076
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-boolean-value.md
1077
- */
1078
- 'react/jsx-boolean-value'?: Linter.RuleEntry<ReactJsxBooleanValue>
1079
- /**
1080
- * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
1081
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-child-element-spacing.md
1082
- */
1083
- 'react/jsx-child-element-spacing'?: Linter.RuleEntry<[]>
1084
- /**
1085
- * Enforce closing bracket location in JSX
1086
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-bracket-location.md
1087
- */
1088
- 'react/jsx-closing-bracket-location'?: Linter.RuleEntry<ReactJsxClosingBracketLocation>
1089
- /**
1090
- * Enforce closing tag location for multiline JSX
1091
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-closing-tag-location.md
1092
- */
1093
- 'react/jsx-closing-tag-location'?: Linter.RuleEntry<[]>
1094
- /**
1095
- * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes
1096
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-brace-presence.md
1097
- */
1098
- 'react/jsx-curly-brace-presence'?: Linter.RuleEntry<ReactJsxCurlyBracePresence>
1099
- /**
1100
- * Enforce consistent linebreaks in curly braces in JSX attributes and expressions
1101
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-newline.md
1102
- */
1103
- 'react/jsx-curly-newline'?: Linter.RuleEntry<ReactJsxCurlyNewline>
1104
- /**
1105
- * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions
1106
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-curly-spacing.md
1107
- */
1108
- 'react/jsx-curly-spacing'?: Linter.RuleEntry<ReactJsxCurlySpacing>
1109
- /**
1110
- * Enforce or disallow spaces around equal signs in JSX attributes
1111
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-equals-spacing.md
1112
- */
1113
- 'react/jsx-equals-spacing'?: Linter.RuleEntry<ReactJsxEqualsSpacing>
1114
- /**
1115
- * Disallow file extensions that may contain JSX
1116
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-filename-extension.md
1117
- */
1118
- 'react/jsx-filename-extension'?: Linter.RuleEntry<ReactJsxFilenameExtension>
1119
- /**
1120
- * Enforce proper position of the first property in JSX
1121
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-first-prop-new-line.md
1122
- */
1123
- 'react/jsx-first-prop-new-line'?: Linter.RuleEntry<ReactJsxFirstPropNewLine>
1124
- /**
1125
- * Enforce shorthand or standard form for React fragments
1126
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-fragments.md
1127
- */
1128
- 'react/jsx-fragments'?: Linter.RuleEntry<ReactJsxFragments>
1129
- /**
1130
- * Enforce event handler naming conventions in JSX
1131
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-handler-names.md
1132
- */
1133
- 'react/jsx-handler-names'?: Linter.RuleEntry<ReactJsxHandlerNames>
1134
- /**
1135
- * Enforce JSX indentation
1136
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent.md
1137
- */
1138
- 'react/jsx-indent'?: Linter.RuleEntry<ReactJsxIndent>
1139
- /**
1140
- * Enforce props indentation in JSX
1141
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-indent-props.md
1142
- */
1143
- 'react/jsx-indent-props'?: Linter.RuleEntry<ReactJsxIndentProps>
1144
- /**
1145
- * Disallow missing `key` props in iterators/collection literals
1146
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-key.md
1147
- */
1148
- 'react/jsx-key'?: Linter.RuleEntry<ReactJsxKey>
1149
- /**
1150
- * Enforce JSX maximum depth
1151
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-depth.md
1152
- */
1153
- 'react/jsx-max-depth'?: Linter.RuleEntry<ReactJsxMaxDepth>
1154
- /**
1155
- * Enforce maximum of props on a single line in JSX
1156
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-max-props-per-line.md
1157
- */
1158
- 'react/jsx-max-props-per-line'?: Linter.RuleEntry<ReactJsxMaxPropsPerLine>
1159
- /**
1160
- * Require or prevent a new line after jsx elements and expressions.
1161
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-newline.md
1162
- */
1163
- 'react/jsx-newline'?: Linter.RuleEntry<ReactJsxNewline>
1164
- /**
1165
- * Disallow `.bind()` or arrow functions in JSX props
1166
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-bind.md
1167
- */
1168
- 'react/jsx-no-bind'?: Linter.RuleEntry<ReactJsxNoBind>
1169
- /**
1170
- * Disallow comments from being inserted as text nodes
1171
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-comment-textnodes.md
1172
- */
1173
- 'react/jsx-no-comment-textnodes'?: Linter.RuleEntry<[]>
1174
- /**
1175
- * Disallows JSX context provider values from taking values that will cause needless rerenders
1176
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-constructed-context-values.md
1177
- */
1178
- 'react/jsx-no-constructed-context-values'?: Linter.RuleEntry<[]>
1179
- /**
1180
- * Disallow duplicate properties in JSX
1181
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-duplicate-props.md
1182
- */
1183
- 'react/jsx-no-duplicate-props'?: Linter.RuleEntry<ReactJsxNoDuplicateProps>
1184
- /**
1185
- * Disallow problematic leaked values from being rendered
1186
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-leaked-render.md
1187
- */
1188
- 'react/jsx-no-leaked-render'?: Linter.RuleEntry<ReactJsxNoLeakedRender>
1189
- /**
1190
- * Disallow usage of string literals in JSX
1191
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-literals.md
1192
- */
1193
- 'react/jsx-no-literals'?: Linter.RuleEntry<ReactJsxNoLiterals>
1194
- /**
1195
- * Disallow usage of `javascript:` URLs
1196
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-script-url.md
1197
- */
1198
- 'react/jsx-no-script-url'?: Linter.RuleEntry<ReactJsxNoScriptUrl>
1199
- /**
1200
- * Disallow `target="_blank"` attribute without `rel="noreferrer"`
1201
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-target-blank.md
1202
- */
1203
- 'react/jsx-no-target-blank'?: Linter.RuleEntry<ReactJsxNoTargetBlank>
1204
- /**
1205
- * Disallow undeclared variables in JSX
1206
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-undef.md
1207
- */
1208
- 'react/jsx-no-undef'?: Linter.RuleEntry<ReactJsxNoUndef>
1209
- /**
1210
- * Disallow unnecessary fragments
1211
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-no-useless-fragment.md
1212
- */
1213
- 'react/jsx-no-useless-fragment'?: Linter.RuleEntry<ReactJsxNoUselessFragment>
1214
- /**
1215
- * Require one JSX element per line
1216
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-one-expression-per-line.md
1217
- */
1218
- 'react/jsx-one-expression-per-line'?: Linter.RuleEntry<ReactJsxOneExpressionPerLine>
1219
- /**
1220
- * Enforce PascalCase for user-defined JSX components
1221
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-pascal-case.md
1222
- */
1223
- 'react/jsx-pascal-case'?: Linter.RuleEntry<ReactJsxPascalCase>
1224
- /**
1225
- * Disallow multiple spaces between inline JSX props
1226
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-multi-spaces.md
1227
- */
1228
- 'react/jsx-props-no-multi-spaces'?: Linter.RuleEntry<[]>
1229
- /**
1230
- * Disallow JSX prop spreading
1231
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-props-no-spreading.md
1232
- */
1233
- 'react/jsx-props-no-spreading'?: Linter.RuleEntry<ReactJsxPropsNoSpreading>
1234
- /**
1235
- * Enforce defaultProps declarations alphabetical sorting
1236
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-default-props.md
1237
- * @deprecated
1238
- */
1239
- 'react/jsx-sort-default-props'?: Linter.RuleEntry<ReactJsxSortDefaultProps>
1240
- /**
1241
- * Enforce props alphabetical sorting
1242
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-sort-props.md
1243
- */
1244
- 'react/jsx-sort-props'?: Linter.RuleEntry<ReactJsxSortProps>
1245
- /**
1246
- * Enforce spacing before closing bracket in JSX
1247
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-space-before-closing.md
1248
- * @deprecated
1249
- */
1250
- 'react/jsx-space-before-closing'?: Linter.RuleEntry<ReactJsxSpaceBeforeClosing>
1251
- /**
1252
- * Enforce whitespace in and around the JSX opening and closing brackets
1253
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-tag-spacing.md
1254
- */
1255
- 'react/jsx-tag-spacing'?: Linter.RuleEntry<ReactJsxTagSpacing>
1256
- /**
1257
- * Disallow React to be incorrectly marked as unused
1258
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-react.md
1259
- */
1260
- 'react/jsx-uses-react'?: Linter.RuleEntry<[]>
1261
- /**
1262
- * Disallow variables used in JSX to be incorrectly marked as unused
1263
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-uses-vars.md
1264
- */
1265
- 'react/jsx-uses-vars'?: Linter.RuleEntry<[]>
1266
- /**
1267
- * Disallow missing parentheses around multiline JSX
1268
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/jsx-wrap-multilines.md
1269
- */
1270
- 'react/jsx-wrap-multilines'?: Linter.RuleEntry<ReactJsxWrapMultilines>
1271
- /**
1272
- * Disallow when this.state is accessed within setState
1273
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-access-state-in-setstate.md
1274
- */
1275
- 'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
1276
- /**
1277
- * Disallow adjacent inline elements not separated by whitespace.
1278
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-adjacent-inline-elements.md
1279
- */
1280
- 'react/no-adjacent-inline-elements'?: Linter.RuleEntry<[]>
1281
- /**
1282
- * Disallow usage of Array index in keys
1283
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-array-index-key.md
1284
- */
1285
- 'react/no-array-index-key'?: Linter.RuleEntry<[]>
1286
- /**
1287
- * Lifecycle methods should be methods on the prototype, not class fields
1288
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-arrow-function-lifecycle.md
1289
- */
1290
- 'react/no-arrow-function-lifecycle'?: Linter.RuleEntry<[]>
1291
- /**
1292
- * Disallow passing of children as props
1293
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-children-prop.md
1294
- */
1295
- 'react/no-children-prop'?: Linter.RuleEntry<ReactNoChildrenProp>
1296
- /**
1297
- * Disallow usage of dangerous JSX properties
1298
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger.md
1299
- */
1300
- 'react/no-danger'?: Linter.RuleEntry<[]>
1301
- /**
1302
- * Disallow when a DOM element is using both children and dangerouslySetInnerHTML
1303
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-danger-with-children.md
1304
- */
1305
- 'react/no-danger-with-children'?: Linter.RuleEntry<[]>
1306
- /**
1307
- * Disallow usage of deprecated methods
1308
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-deprecated.md
1309
- */
1310
- 'react/no-deprecated'?: Linter.RuleEntry<[]>
1311
- /**
1312
- * Disallow usage of setState in componentDidMount
1313
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-mount-set-state.md
1314
- */
1315
- 'react/no-did-mount-set-state'?: Linter.RuleEntry<ReactNoDidMountSetState>
1316
- /**
1317
- * Disallow usage of setState in componentDidUpdate
1318
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-did-update-set-state.md
1319
- */
1320
- 'react/no-did-update-set-state'?: Linter.RuleEntry<ReactNoDidUpdateSetState>
1321
- /**
1322
- * Disallow direct mutation of this.state
1323
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-direct-mutation-state.md
1324
- */
1325
- 'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
1326
- /**
1327
- * Disallow usage of findDOMNode
1328
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-find-dom-node.md
1329
- */
1330
- 'react/no-find-dom-node'?: Linter.RuleEntry<[]>
1331
- /**
1332
- * Disallow usage of invalid attributes
1333
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-invalid-html-attribute.md
1334
- */
1335
- 'react/no-invalid-html-attribute'?: Linter.RuleEntry<ReactNoInvalidHtmlAttribute>
1336
- /**
1337
- * Disallow usage of isMounted
1338
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-is-mounted.md
1339
- */
1340
- 'react/no-is-mounted'?: Linter.RuleEntry<[]>
1341
- /**
1342
- * Disallow multiple component definition per file
1343
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-multi-comp.md
1344
- */
1345
- 'react/no-multi-comp'?: Linter.RuleEntry<ReactNoMultiComp>
1346
- /**
1347
- * Enforce that namespaces are not used in React elements
1348
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-namespace.md
1349
- */
1350
- 'react/no-namespace'?: Linter.RuleEntry<[]>
1351
- /**
1352
- * Disallow usage of referential-type variables as default param in functional component
1353
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-object-type-as-default-prop.md
1354
- */
1355
- 'react/no-object-type-as-default-prop'?: Linter.RuleEntry<[]>
1356
- /**
1357
- * Disallow usage of shouldComponentUpdate when extending React.PureComponent
1358
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-redundant-should-component-update.md
1359
- */
1360
- 'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
1361
- /**
1362
- * Disallow usage of the return value of ReactDOM.render
1363
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-render-return-value.md
1364
- */
1365
- 'react/no-render-return-value'?: Linter.RuleEntry<[]>
1366
- /**
1367
- * Disallow usage of setState
1368
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-set-state.md
1369
- */
1370
- 'react/no-set-state'?: Linter.RuleEntry<[]>
1371
- /**
1372
- * Disallow using string references
1373
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-string-refs.md
1374
- */
1375
- 'react/no-string-refs'?: Linter.RuleEntry<ReactNoStringRefs>
1376
- /**
1377
- * Disallow `this` from being used in stateless functional components
1378
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-this-in-sfc.md
1379
- */
1380
- 'react/no-this-in-sfc'?: Linter.RuleEntry<[]>
1381
- /**
1382
- * Disallow common typos
1383
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md
1384
- */
1385
- 'react/no-typos'?: Linter.RuleEntry<[]>
1386
- /**
1387
- * Disallow unescaped HTML entities from appearing in markup
1388
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unescaped-entities.md
1389
- */
1390
- 'react/no-unescaped-entities'?: Linter.RuleEntry<ReactNoUnescapedEntities>
1391
- /**
1392
- * Disallow usage of unknown DOM property
1393
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unknown-property.md
1394
- */
1395
- 'react/no-unknown-property'?: Linter.RuleEntry<ReactNoUnknownProperty>
1396
- /**
1397
- * Disallow usage of unsafe lifecycle methods
1398
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unsafe.md
1399
- */
1400
- 'react/no-unsafe'?: Linter.RuleEntry<ReactNoUnsafe>
1401
- /**
1402
- * Disallow creating unstable components inside components
1403
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unstable-nested-components.md
1404
- */
1405
- 'react/no-unstable-nested-components'?: Linter.RuleEntry<ReactNoUnstableNestedComponents>
1406
- /**
1407
- * Disallow declaring unused methods of component class
1408
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-class-component-methods.md
1409
- */
1410
- 'react/no-unused-class-component-methods'?: Linter.RuleEntry<[]>
1411
- /**
1412
- * Disallow definitions of unused propTypes
1413
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-prop-types.md
1414
- */
1415
- 'react/no-unused-prop-types'?: Linter.RuleEntry<ReactNoUnusedPropTypes>
1416
- /**
1417
- * Disallow definitions of unused state
1418
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-unused-state.md
1419
- */
1420
- 'react/no-unused-state'?: Linter.RuleEntry<[]>
1421
- /**
1422
- * Disallow usage of setState in componentWillUpdate
1423
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-will-update-set-state.md
1424
- */
1425
- 'react/no-will-update-set-state'?: Linter.RuleEntry<ReactNoWillUpdateSetState>
1426
- /**
1427
- * Enforce ES5 or ES6 class for React Components
1428
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-es6-class.md
1429
- */
1430
- 'react/prefer-es6-class'?: Linter.RuleEntry<ReactPreferEs6Class>
1431
- /**
1432
- * Prefer exact proptype definitions
1433
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-exact-props.md
1434
- */
1435
- 'react/prefer-exact-props'?: Linter.RuleEntry<[]>
1436
- /**
1437
- * Enforce that props are read-only
1438
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-read-only-props.md
1439
- */
1440
- 'react/prefer-read-only-props'?: Linter.RuleEntry<[]>
1441
- /**
1442
- * Enforce stateless components to be written as a pure function
1443
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prefer-stateless-function.md
1444
- */
1445
- 'react/prefer-stateless-function'?: Linter.RuleEntry<ReactPreferStatelessFunction>
1446
- /**
1447
- * Disallow missing props validation in a React component definition
1448
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/prop-types.md
1449
- */
1450
- 'react/prop-types'?: Linter.RuleEntry<ReactPropTypes>
1451
- /**
1452
- * Disallow missing React when using JSX
1453
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/react-in-jsx-scope.md
1454
- */
1455
- 'react/react-in-jsx-scope'?: Linter.RuleEntry<[]>
1456
- /**
1457
- * Enforce a defaultProps definition for every prop that is not a required prop
1458
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-default-props.md
1459
- */
1460
- 'react/require-default-props'?: Linter.RuleEntry<ReactRequireDefaultProps>
1461
- /**
1462
- * Enforce React components to have a shouldComponentUpdate method
1463
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-optimization.md
1464
- */
1465
- 'react/require-optimization'?: Linter.RuleEntry<ReactRequireOptimization>
1466
- /**
1467
- * Enforce ES5 or ES6 class for returning value in render function
1468
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/require-render-return.md
1469
- */
1470
- 'react/require-render-return'?: Linter.RuleEntry<[]>
1471
- /**
1472
- * Disallow extra closing tags for components without children
1473
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/self-closing-comp.md
1474
- */
1475
- 'react/self-closing-comp'?: Linter.RuleEntry<ReactSelfClosingComp>
1476
- /**
1477
- * Enforce component methods order
1478
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-comp.md
1479
- */
1480
- 'react/sort-comp'?: Linter.RuleEntry<ReactSortComp>
1481
- /**
1482
- * Enforce defaultProps declarations alphabetical sorting
1483
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-default-props.md
1484
- */
1485
- 'react/sort-default-props'?: Linter.RuleEntry<ReactSortDefaultProps>
1486
- /**
1487
- * Enforce propTypes declarations alphabetical sorting
1488
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/sort-prop-types.md
1489
- */
1490
- 'react/sort-prop-types'?: Linter.RuleEntry<ReactSortPropTypes>
1491
- /**
1492
- * Enforce class component state initialization style
1493
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/state-in-constructor.md
1494
- */
1495
- 'react/state-in-constructor'?: Linter.RuleEntry<ReactStateInConstructor>
1496
- /**
1497
- * Enforces where React component static properties should be positioned.
1498
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/static-property-placement.md
1499
- */
1500
- 'react/static-property-placement'?: Linter.RuleEntry<ReactStaticPropertyPlacement>
1501
- /**
1502
- * Enforce style prop value is an object
1503
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/style-prop-object.md
1504
- */
1505
- 'react/style-prop-object'?: Linter.RuleEntry<ReactStylePropObject>
1506
- /**
1507
- * Disallow void DOM elements (e.g. `<img />`, `<br />`) from receiving children
1508
- * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/void-dom-elements-no-children.md
1509
- */
1510
- 'react/void-dom-elements-no-children'?: Linter.RuleEntry<[]>
1511
796
  /**
1512
797
  * Validates that TypeScript documentation comments conform to the TSDoc standard
1513
798
  * @see https://tsdoc.org/pages/packages/eslint-plugin-tsdoc
@@ -3974,438 +3259,6 @@ type PrettierPrettier = []|[{
3974
3259
  }
3975
3260
  [k: string]: unknown | undefined
3976
3261
  }]
3977
- // ----- react-hooks/exhaustive-deps -----
3978
- type ReactHooksExhaustiveDeps = []|[{
3979
- additionalHooks?: string
3980
- enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
3981
- }]
3982
- // ----- react/boolean-prop-naming -----
3983
- type ReactBooleanPropNaming = []|[{
3984
-
3985
- propTypeNames?: [string, ...(string)[]]
3986
- rule?: string
3987
- message?: string
3988
- validateNested?: boolean
3989
- }]
3990
- // ----- react/button-has-type -----
3991
- type ReactButtonHasType = []|[{
3992
- button?: boolean
3993
- submit?: boolean
3994
- reset?: boolean
3995
- }]
3996
- // ----- react/checked-requires-onchange-or-readonly -----
3997
- type ReactCheckedRequiresOnchangeOrReadonly = []|[{
3998
- ignoreMissingProperties?: boolean
3999
- ignoreExclusiveCheckedAttribute?: boolean
4000
- }]
4001
- // ----- react/default-props-match-prop-types -----
4002
- type ReactDefaultPropsMatchPropTypes = []|[{
4003
- allowRequiredDefaults?: boolean
4004
- }]
4005
- // ----- react/destructuring-assignment -----
4006
- type ReactDestructuringAssignment = []|[("always" | "never")]|[("always" | "never"), {
4007
- ignoreClassFields?: boolean
4008
- destructureInSignature?: ("always" | "ignore")
4009
- }]
4010
- // ----- react/display-name -----
4011
- type ReactDisplayName = []|[{
4012
- ignoreTranspilerName?: boolean
4013
- checkContextObjects?: boolean
4014
- }]
4015
- // ----- react/forbid-component-props -----
4016
- type ReactForbidComponentProps = []|[{
4017
- forbid?: (string | {
4018
- propName?: string
4019
- allowedFor?: string[]
4020
- message?: string
4021
- } | {
4022
- propName?: string
4023
-
4024
- disallowedFor: [string, ...(string)[]]
4025
- message?: string
4026
- })[]
4027
- [k: string]: unknown | undefined
4028
- }]
4029
- // ----- react/forbid-dom-props -----
4030
- type ReactForbidDomProps = []|[{
4031
- forbid?: (string | {
4032
- propName?: string
4033
- disallowedFor?: string[]
4034
- message?: string
4035
- [k: string]: unknown | undefined
4036
- })[]
4037
- }]
4038
- // ----- react/forbid-elements -----
4039
- type ReactForbidElements = []|[{
4040
- forbid?: (string | {
4041
- element: string
4042
- message?: string
4043
- })[]
4044
- }]
4045
- // ----- react/forbid-foreign-prop-types -----
4046
- type ReactForbidForeignPropTypes = []|[{
4047
- allowInPropTypes?: boolean
4048
- }]
4049
- // ----- react/forbid-prop-types -----
4050
- type ReactForbidPropTypes = []|[{
4051
- forbid?: string[]
4052
- checkContextTypes?: boolean
4053
- checkChildContextTypes?: boolean
4054
- [k: string]: unknown | undefined
4055
- }]
4056
- // ----- react/function-component-definition -----
4057
- type ReactFunctionComponentDefinition = []|[{
4058
- namedComponents?: (("function-declaration" | "arrow-function" | "function-expression") | ("function-declaration" | "arrow-function" | "function-expression")[])
4059
- unnamedComponents?: (("arrow-function" | "function-expression") | ("arrow-function" | "function-expression")[])
4060
- [k: string]: unknown | undefined
4061
- }]
4062
- // ----- react/hook-use-state -----
4063
- type ReactHookUseState = []|[{
4064
- allowDestructuredState?: boolean
4065
- }]
4066
- // ----- react/jsx-boolean-value -----
4067
- type ReactJsxBooleanValue = ([]|[("always" | "never")] | []|["always"]|["always", {
4068
- never?: string[]
4069
- assumeUndefinedIsFalse?: boolean
4070
- }] | []|["never"]|["never", {
4071
- always?: string[]
4072
- assumeUndefinedIsFalse?: boolean
4073
- }])
4074
- // ----- react/jsx-closing-bracket-location -----
4075
- type ReactJsxClosingBracketLocation = []|[(("after-props" | "props-aligned" | "tag-aligned" | "line-aligned") | {
4076
- location?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned")
4077
- } | {
4078
- nonEmpty?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false)
4079
- selfClosing?: ("after-props" | "props-aligned" | "tag-aligned" | "line-aligned" | false)
4080
- })]
4081
- // ----- react/jsx-curly-brace-presence -----
4082
- type ReactJsxCurlyBracePresence = []|[({
4083
- props?: ("always" | "never" | "ignore")
4084
- children?: ("always" | "never" | "ignore")
4085
- propElementValues?: ("always" | "never" | "ignore")
4086
- } | ("always" | "never" | "ignore"))]
4087
- // ----- react/jsx-curly-newline -----
4088
- type ReactJsxCurlyNewline = []|[(("consistent" | "never") | {
4089
- singleline?: ("consistent" | "require" | "forbid")
4090
- multiline?: ("consistent" | "require" | "forbid")
4091
- })]
4092
- // ----- react/jsx-curly-spacing -----
4093
- type ReactJsxCurlySpacing = []|[((_ReactJsxCurlySpacing_BasicConfig & {
4094
- attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean
4095
- children?: _ReactJsxCurlySpacingBasicConfigOrBoolean
4096
- [k: string]: unknown | undefined
4097
- }) | ("always" | "never"))]|[((_ReactJsxCurlySpacing_BasicConfig & {
4098
- attributes?: _ReactJsxCurlySpacingBasicConfigOrBoolean
4099
- children?: _ReactJsxCurlySpacingBasicConfigOrBoolean
4100
- [k: string]: unknown | undefined
4101
- }) | ("always" | "never")), {
4102
- allowMultiline?: boolean
4103
- spacing?: {
4104
- objectLiterals?: ("always" | "never")
4105
- [k: string]: unknown | undefined
4106
- }
4107
- }]
4108
- type _ReactJsxCurlySpacingBasicConfigOrBoolean = (_ReactJsxCurlySpacing_BasicConfig | boolean)
4109
- interface _ReactJsxCurlySpacing_BasicConfig {
4110
- when?: ("always" | "never")
4111
- allowMultiline?: boolean
4112
- spacing?: {
4113
- objectLiterals?: ("always" | "never")
4114
- [k: string]: unknown | undefined
4115
- }
4116
- [k: string]: unknown | undefined
4117
- }
4118
- // ----- react/jsx-equals-spacing -----
4119
- type ReactJsxEqualsSpacing = []|[("always" | "never")]
4120
- // ----- react/jsx-filename-extension -----
4121
- type ReactJsxFilenameExtension = []|[{
4122
- allow?: ("always" | "as-needed")
4123
- extensions?: string[]
4124
- ignoreFilesWithoutCode?: boolean
4125
- }]
4126
- // ----- react/jsx-first-prop-new-line -----
4127
- type ReactJsxFirstPropNewLine = []|[("always" | "never" | "multiline" | "multiline-multiprop" | "multiprop")]
4128
- // ----- react/jsx-fragments -----
4129
- type ReactJsxFragments = []|[("syntax" | "element")]
4130
- // ----- react/jsx-handler-names -----
4131
- type ReactJsxHandlerNames = []|[({
4132
- eventHandlerPrefix?: string
4133
- eventHandlerPropPrefix?: string
4134
- checkLocalVariables?: boolean
4135
- checkInlineFunction?: boolean
4136
- } | {
4137
- eventHandlerPrefix?: string
4138
- eventHandlerPropPrefix?: false
4139
- checkLocalVariables?: boolean
4140
- checkInlineFunction?: boolean
4141
- } | {
4142
- eventHandlerPrefix?: false
4143
- eventHandlerPropPrefix?: string
4144
- checkLocalVariables?: boolean
4145
- checkInlineFunction?: boolean
4146
- } | {
4147
- checkLocalVariables?: boolean
4148
- } | {
4149
- checkInlineFunction?: boolean
4150
- })]
4151
- // ----- react/jsx-indent -----
4152
- type ReactJsxIndent = []|[("tab" | number)]|[("tab" | number), {
4153
- checkAttributes?: boolean
4154
- indentLogicalExpressions?: boolean
4155
- }]
4156
- // ----- react/jsx-indent-props -----
4157
- type ReactJsxIndentProps = []|[(("tab" | "first") | number | {
4158
- indentMode?: (("tab" | "first") | number)
4159
- ignoreTernaryOperator?: boolean
4160
- [k: string]: unknown | undefined
4161
- })]
4162
- // ----- react/jsx-key -----
4163
- type ReactJsxKey = []|[{
4164
- checkFragmentShorthand?: boolean
4165
- checkKeyMustBeforeSpread?: boolean
4166
- warnOnDuplicates?: boolean
4167
- }]
4168
- // ----- react/jsx-max-depth -----
4169
- type ReactJsxMaxDepth = []|[{
4170
- max?: number
4171
- }]
4172
- // ----- react/jsx-max-props-per-line -----
4173
- type ReactJsxMaxPropsPerLine = []|[({
4174
- maximum?: {
4175
- single?: number
4176
- multi?: number
4177
- [k: string]: unknown | undefined
4178
- }
4179
- } | {
4180
- maximum?: number
4181
- when?: ("always" | "multiline")
4182
- })]
4183
- // ----- react/jsx-newline -----
4184
- type ReactJsxNewline = []|[{
4185
- prevent?: boolean
4186
- allowMultilines?: boolean
4187
- }]
4188
- // ----- react/jsx-no-bind -----
4189
- type ReactJsxNoBind = []|[{
4190
- allowArrowFunctions?: boolean
4191
- allowBind?: boolean
4192
- allowFunctions?: boolean
4193
- ignoreRefs?: boolean
4194
- ignoreDOMComponents?: boolean
4195
- }]
4196
- // ----- react/jsx-no-duplicate-props -----
4197
- type ReactJsxNoDuplicateProps = []|[{
4198
- ignoreCase?: boolean
4199
- }]
4200
- // ----- react/jsx-no-leaked-render -----
4201
- type ReactJsxNoLeakedRender = []|[{
4202
- validStrategies?: ("ternary" | "coerce")[]
4203
- }]
4204
- // ----- react/jsx-no-literals -----
4205
- type ReactJsxNoLiterals = []|[{
4206
- noStrings?: boolean
4207
- allowedStrings?: string[]
4208
- ignoreProps?: boolean
4209
- noAttributeStrings?: boolean
4210
- }]
4211
- // ----- react/jsx-no-script-url -----
4212
- type ReactJsxNoScriptUrl = ([]|[{
4213
- name: string
4214
- props: string[]
4215
- }[]]|[{
4216
- name: string
4217
- props: string[]
4218
- }[], {
4219
- includeFromSettings?: boolean
4220
- [k: string]: unknown | undefined
4221
- }] | []|[{
4222
- includeFromSettings?: boolean
4223
- [k: string]: unknown | undefined
4224
- }])
4225
- // ----- react/jsx-no-target-blank -----
4226
- type ReactJsxNoTargetBlank = []|[{
4227
- allowReferrer?: boolean
4228
- enforceDynamicLinks?: ("always" | "never")
4229
- warnOnSpreadAttributes?: boolean
4230
- links?: boolean
4231
- forms?: boolean
4232
- }]
4233
- // ----- react/jsx-no-undef -----
4234
- type ReactJsxNoUndef = []|[{
4235
- allowGlobals?: boolean
4236
- }]
4237
- // ----- react/jsx-no-useless-fragment -----
4238
- type ReactJsxNoUselessFragment = []|[{
4239
- allowExpressions?: boolean
4240
- [k: string]: unknown | undefined
4241
- }]
4242
- // ----- react/jsx-one-expression-per-line -----
4243
- type ReactJsxOneExpressionPerLine = []|[{
4244
- allow?: ("none" | "literal" | "single-child" | "non-jsx")
4245
- }]
4246
- // ----- react/jsx-pascal-case -----
4247
- type ReactJsxPascalCase = []|[{
4248
- allowAllCaps?: boolean
4249
- allowLeadingUnderscore?: boolean
4250
- allowNamespace?: boolean
4251
-
4252
- ignore?: []|[string]
4253
- }]
4254
- // ----- react/jsx-props-no-spreading -----
4255
- type ReactJsxPropsNoSpreading = []|[({
4256
- html?: ("enforce" | "ignore")
4257
- custom?: ("enforce" | "ignore")
4258
- exceptions?: string[]
4259
- [k: string]: unknown | undefined
4260
- } & {
4261
- [k: string]: unknown | undefined
4262
- })]
4263
- // ----- react/jsx-sort-default-props -----
4264
- type ReactJsxSortDefaultProps = []|[{
4265
- ignoreCase?: boolean
4266
- }]
4267
- // ----- react/jsx-sort-props -----
4268
- type ReactJsxSortProps = []|[{
4269
- callbacksLast?: boolean
4270
- shorthandFirst?: boolean
4271
- shorthandLast?: boolean
4272
- multiline?: ("ignore" | "first" | "last")
4273
- ignoreCase?: boolean
4274
- noSortAlphabetically?: boolean
4275
- reservedFirst?: (unknown[] | boolean)
4276
- locale?: string
4277
- }]
4278
- // ----- react/jsx-space-before-closing -----
4279
- type ReactJsxSpaceBeforeClosing = []|[("always" | "never")]
4280
- // ----- react/jsx-tag-spacing -----
4281
- type ReactJsxTagSpacing = []|[{
4282
- closingSlash?: ("always" | "never" | "allow")
4283
- beforeSelfClosing?: ("always" | "proportional-always" | "never" | "allow")
4284
- afterOpening?: ("always" | "allow-multiline" | "never" | "allow")
4285
- beforeClosing?: ("always" | "proportional-always" | "never" | "allow")
4286
- }]
4287
- // ----- react/jsx-wrap-multilines -----
4288
- type ReactJsxWrapMultilines = []|[{
4289
- declaration?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
4290
- assignment?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
4291
- return?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
4292
- arrow?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
4293
- condition?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
4294
- logical?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
4295
- prop?: (true | false | "ignore" | "parens" | "parens-new-line" | "never")
4296
- }]
4297
- // ----- react/no-children-prop -----
4298
- type ReactNoChildrenProp = []|[{
4299
- allowFunctions?: boolean
4300
- }]
4301
- // ----- react/no-did-mount-set-state -----
4302
- type ReactNoDidMountSetState = []|["disallow-in-func"]
4303
- // ----- react/no-did-update-set-state -----
4304
- type ReactNoDidUpdateSetState = []|["disallow-in-func"]
4305
- // ----- react/no-invalid-html-attribute -----
4306
- type ReactNoInvalidHtmlAttribute = []|[("rel")[]]
4307
- // ----- react/no-multi-comp -----
4308
- type ReactNoMultiComp = []|[{
4309
- ignoreStateless?: boolean
4310
- }]
4311
- // ----- react/no-string-refs -----
4312
- type ReactNoStringRefs = []|[{
4313
- noTemplateLiterals?: boolean
4314
- }]
4315
- // ----- react/no-unescaped-entities -----
4316
- type ReactNoUnescapedEntities = []|[{
4317
- forbid?: (string | {
4318
- char?: string
4319
- alternatives?: string[]
4320
- [k: string]: unknown | undefined
4321
- })[]
4322
- }]
4323
- // ----- react/no-unknown-property -----
4324
- type ReactNoUnknownProperty = []|[{
4325
- ignore?: string[]
4326
- requireDataLowercase?: boolean
4327
- }]
4328
- // ----- react/no-unsafe -----
4329
- type ReactNoUnsafe = []|[{
4330
- checkAliases?: boolean
4331
- }]
4332
- // ----- react/no-unstable-nested-components -----
4333
- type ReactNoUnstableNestedComponents = []|[{
4334
- customValidators?: string[]
4335
- allowAsProps?: boolean
4336
- }]
4337
- // ----- react/no-unused-prop-types -----
4338
- type ReactNoUnusedPropTypes = []|[{
4339
- ignore?: string[]
4340
- customValidators?: string[]
4341
- skipShapeProps?: boolean
4342
- }]
4343
- // ----- react/no-will-update-set-state -----
4344
- type ReactNoWillUpdateSetState = []|["disallow-in-func"]
4345
- // ----- react/prefer-es6-class -----
4346
- type ReactPreferEs6Class = []|[("always" | "never")]
4347
- // ----- react/prefer-stateless-function -----
4348
- type ReactPreferStatelessFunction = []|[{
4349
- ignorePureComponents?: boolean
4350
- }]
4351
- // ----- react/prop-types -----
4352
- type ReactPropTypes = []|[{
4353
- ignore?: string[]
4354
- customValidators?: string[]
4355
- skipUndeclared?: boolean
4356
- }]
4357
- // ----- react/require-default-props -----
4358
- type ReactRequireDefaultProps = []|[{
4359
- forbidDefaultForRequired?: boolean
4360
- classes?: ("defaultProps" | "ignore")
4361
- functions?: ("defaultArguments" | "defaultProps" | "ignore")
4362
- ignoreFunctionalComponents?: boolean
4363
- }]
4364
- // ----- react/require-optimization -----
4365
- type ReactRequireOptimization = []|[{
4366
- allowDecorators?: string[]
4367
- }]
4368
- // ----- react/self-closing-comp -----
4369
- type ReactSelfClosingComp = []|[{
4370
- component?: boolean
4371
- html?: boolean
4372
- }]
4373
- // ----- react/sort-comp -----
4374
- type ReactSortComp = []|[{
4375
- order?: string[]
4376
- groups?: {
4377
- [k: string]: string[]
4378
- }
4379
- }]
4380
- // ----- react/sort-default-props -----
4381
- type ReactSortDefaultProps = []|[{
4382
- ignoreCase?: boolean
4383
- }]
4384
- // ----- react/sort-prop-types -----
4385
- type ReactSortPropTypes = []|[{
4386
- requiredFirst?: boolean
4387
- callbacksLast?: boolean
4388
- ignoreCase?: boolean
4389
- noSortAlphabetically?: boolean
4390
- sortShapeProp?: boolean
4391
- checkTypes?: boolean
4392
- }]
4393
- // ----- react/state-in-constructor -----
4394
- type ReactStateInConstructor = []|[("always" | "never")]
4395
- // ----- react/static-property-placement -----
4396
- type ReactStaticPropertyPlacement = []|[("static public field" | "static getter" | "property assignment")]|[("static public field" | "static getter" | "property assignment"), {
4397
- propTypes?: ("static public field" | "static getter" | "property assignment")
4398
- defaultProps?: ("static public field" | "static getter" | "property assignment")
4399
- childContextTypes?: ("static public field" | "static getter" | "property assignment")
4400
- contextTypes?: ("static public field" | "static getter" | "property assignment")
4401
- contextType?: ("static public field" | "static getter" | "property assignment")
4402
- displayName?: ("static public field" | "static getter" | "property assignment")
4403
- }]
4404
- // ----- react/style-prop-object -----
4405
- type ReactStylePropObject = []|[{
4406
- allow?: string[]
4407
- [k: string]: unknown | undefined
4408
- }]
4409
3262
  // ----- unicorn/better-regex -----
4410
3263
  type UnicornBetterRegex = []|[{
4411
3264
  sortCharacterClasses?: boolean