@storm-software/eslint 0.76.0 → 0.76.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/README.md CHANGED
@@ -21,7 +21,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
21
21
 
22
22
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
23
23
 
24
- [![Version](https://img.shields.io/badge/version-0.74.0-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
24
+ [![Version](https://img.shields.io/badge/version-0.76.0-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
25
25
 
26
26
  <!-- prettier-ignore-start -->
27
27
  <!-- markdownlint-disable -->
package/dist/preset.d.mts CHANGED
@@ -789,218 +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
796
  /**
1005
797
  * Enforces consistent naming for boolean props
1006
798
  * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/boolean-prop-naming.md
@@ -3974,11 +3766,6 @@ type PrettierPrettier = []|[{
3974
3766
  }
3975
3767
  [k: string]: unknown | undefined
3976
3768
  }]
3977
- // ----- react-hooks/exhaustive-deps -----
3978
- type ReactHooksExhaustiveDeps = []|[{
3979
- additionalHooks?: string
3980
- enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
3981
- }]
3982
3769
  // ----- react/boolean-prop-naming -----
3983
3770
  type ReactBooleanPropNaming = []|[{
3984
3771
 
package/dist/preset.d.ts CHANGED
@@ -789,218 +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
796
  /**
1005
797
  * Enforces consistent naming for boolean props
1006
798
  * @see https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/boolean-prop-naming.md
@@ -3974,11 +3766,6 @@ type PrettierPrettier = []|[{
3974
3766
  }
3975
3767
  [k: string]: unknown | undefined
3976
3768
  }]
3977
- // ----- react-hooks/exhaustive-deps -----
3978
- type ReactHooksExhaustiveDeps = []|[{
3979
- additionalHooks?: string
3980
- enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
3981
- }]
3982
3769
  // ----- react/boolean-prop-naming -----
3983
3770
  type ReactBooleanPropNaming = []|[{
3984
3771