@trackunit/eslint-plugin-trackunit 0.0.2

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.
Files changed (147) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +117 -0
  3. package/package.json +31 -0
  4. package/src/index.d.ts +8 -0
  5. package/src/index.js +20 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/config/fragments/ignores.d.ts +2 -0
  8. package/src/lib/config/fragments/ignores.js +18 -0
  9. package/src/lib/config/fragments/ignores.js.map +1 -0
  10. package/src/lib/config/fragments/import-rules.d.ts +3 -0
  11. package/src/lib/config/fragments/import-rules.js +58 -0
  12. package/src/lib/config/fragments/import-rules.js.map +1 -0
  13. package/src/lib/config/fragments/jest-overrides.d.ts +2 -0
  14. package/src/lib/config/fragments/jest-overrides.js +30 -0
  15. package/src/lib/config/fragments/jest-overrides.js.map +1 -0
  16. package/src/lib/config/fragments/jsdoc-rules.d.ts +3 -0
  17. package/src/lib/config/fragments/jsdoc-rules.js +71 -0
  18. package/src/lib/config/fragments/jsdoc-rules.js.map +1 -0
  19. package/src/lib/config/fragments/module-boundaries.d.ts +2 -0
  20. package/src/lib/config/fragments/module-boundaries.js +92 -0
  21. package/src/lib/config/fragments/module-boundaries.js.map +1 -0
  22. package/src/lib/config/fragments/react-rules.d.ts +5 -0
  23. package/src/lib/config/fragments/react-rules.js +137 -0
  24. package/src/lib/config/fragments/react-rules.js.map +1 -0
  25. package/src/lib/config/fragments/restricted-imports.d.ts +2 -0
  26. package/src/lib/config/fragments/restricted-imports.js +58 -0
  27. package/src/lib/config/fragments/restricted-imports.js.map +1 -0
  28. package/src/lib/config/fragments/testing-library.d.ts +2 -0
  29. package/src/lib/config/fragments/testing-library.js +7 -0
  30. package/src/lib/config/fragments/testing-library.js.map +1 -0
  31. package/src/lib/config/fragments/typescript-rules.d.ts +2 -0
  32. package/src/lib/config/fragments/typescript-rules.js +97 -0
  33. package/src/lib/config/fragments/typescript-rules.js.map +1 -0
  34. package/src/lib/config/index.d.ts +863 -0
  35. package/src/lib/config/index.js +10 -0
  36. package/src/lib/config/index.js.map +1 -0
  37. package/src/lib/config/plugins.d.ts +90 -0
  38. package/src/lib/config/plugins.js +44 -0
  39. package/src/lib/config/plugins.js.map +1 -0
  40. package/src/lib/config/presets/base.d.ts +265 -0
  41. package/src/lib/config/presets/base.js +145 -0
  42. package/src/lib/config/presets/base.js.map +1 -0
  43. package/src/lib/config/presets/e2e.d.ts +10 -0
  44. package/src/lib/config/presets/e2e.js +19 -0
  45. package/src/lib/config/presets/e2e.js.map +1 -0
  46. package/src/lib/config/presets/public-api.d.ts +147 -0
  47. package/src/lib/config/presets/public-api.js +62 -0
  48. package/src/lib/config/presets/public-api.js.map +1 -0
  49. package/src/lib/config/presets/react.d.ts +598 -0
  50. package/src/lib/config/presets/react.js +97 -0
  51. package/src/lib/config/presets/react.js.map +1 -0
  52. package/src/lib/config/presets/server.d.ts +36 -0
  53. package/src/lib/config/presets/server.js +37 -0
  54. package/src/lib/config/presets/server.js.map +1 -0
  55. package/src/lib/config/utils.d.ts +6 -0
  56. package/src/lib/config/utils.js +28 -0
  57. package/src/lib/config/utils.js.map +1 -0
  58. package/src/lib/config-helpers/create-skip-when.d.ts +35 -0
  59. package/src/lib/config-helpers/create-skip-when.js +54 -0
  60. package/src/lib/config-helpers/create-skip-when.js.map +1 -0
  61. package/src/lib/rules/cva-merge-base-classes-as-array/cva-merge-base-classes-as-array.d.ts +16 -0
  62. package/src/lib/rules/cva-merge-base-classes-as-array/cva-merge-base-classes-as-array.js +83 -0
  63. package/src/lib/rules/cva-merge-base-classes-as-array/cva-merge-base-classes-as-array.js.map +1 -0
  64. package/src/lib/rules/design-guideline-button-icon-size-match/design-guideline-button-icon-size-match.d.ts +4 -0
  65. package/src/lib/rules/design-guideline-button-icon-size-match/design-guideline-button-icon-size-match.js +297 -0
  66. package/src/lib/rules/design-guideline-button-icon-size-match/design-guideline-button-icon-size-match.js.map +1 -0
  67. package/src/lib/rules/no-internal-barrel-files/examples.d.ts +80 -0
  68. package/src/lib/rules/no-internal-barrel-files/examples.js +84 -0
  69. package/src/lib/rules/no-internal-barrel-files/examples.js.map +1 -0
  70. package/src/lib/rules/no-internal-barrel-files/no-internal-barrel-files.d.ts +29 -0
  71. package/src/lib/rules/no-internal-barrel-files/no-internal-barrel-files.js +178 -0
  72. package/src/lib/rules/no-internal-barrel-files/no-internal-barrel-files.js.map +1 -0
  73. package/src/lib/rules/no-internal-graphql-when-tagged-with-gql-public/no-internal-graphql-when-tagged-with-gql-public.d.ts +5 -0
  74. package/src/lib/rules/no-internal-graphql-when-tagged-with-gql-public/no-internal-graphql-when-tagged-with-gql-public.js +67 -0
  75. package/src/lib/rules/no-internal-graphql-when-tagged-with-gql-public/no-internal-graphql-when-tagged-with-gql-public.js.map +1 -0
  76. package/src/lib/rules/no-jest-mock-trackunit-react-core-hooks/no-jest-mock-trackunit-react-core-hooks.d.ts +2 -0
  77. package/src/lib/rules/no-jest-mock-trackunit-react-core-hooks/no-jest-mock-trackunit-react-core-hooks.js +34 -0
  78. package/src/lib/rules/no-jest-mock-trackunit-react-core-hooks/no-jest-mock-trackunit-react-core-hooks.js.map +1 -0
  79. package/src/lib/rules/no-template-strings-in-classname-prop/no-template-strings-in-classname-prop.d.ts +16 -0
  80. package/src/lib/rules/no-template-strings-in-classname-prop/no-template-strings-in-classname-prop.js +55 -0
  81. package/src/lib/rules/no-template-strings-in-classname-prop/no-template-strings-in-classname-prop.js.map +1 -0
  82. package/src/lib/rules/no-typescript-assertion/examples.d.ts +1 -0
  83. package/src/lib/rules/no-typescript-assertion/examples.js +45 -0
  84. package/src/lib/rules/no-typescript-assertion/examples.js.map +1 -0
  85. package/src/lib/rules/no-typescript-assertion/no-typescript-assertion.d.ts +20 -0
  86. package/src/lib/rules/no-typescript-assertion/no-typescript-assertion.js +83 -0
  87. package/src/lib/rules/no-typescript-assertion/no-typescript-assertion.js.map +1 -0
  88. package/src/lib/rules/prefer-destructured-imports/prefer-destructured-imports.d.ts +73 -0
  89. package/src/lib/rules/prefer-destructured-imports/prefer-destructured-imports.js +333 -0
  90. package/src/lib/rules/prefer-destructured-imports/prefer-destructured-imports.js.map +1 -0
  91. package/src/lib/rules/prefer-event-specific-callback-naming/name-suggestion-strategies.d.ts +56 -0
  92. package/src/lib/rules/prefer-event-specific-callback-naming/name-suggestion-strategies.js +225 -0
  93. package/src/lib/rules/prefer-event-specific-callback-naming/name-suggestion-strategies.js.map +1 -0
  94. package/src/lib/rules/prefer-event-specific-callback-naming/prefer-event-specific-callback-naming.d.ts +49 -0
  95. package/src/lib/rules/prefer-event-specific-callback-naming/prefer-event-specific-callback-naming.js +75 -0
  96. package/src/lib/rules/prefer-event-specific-callback-naming/prefer-event-specific-callback-naming.js.map +1 -0
  97. package/src/lib/rules/prefer-event-specific-callback-naming/strategies/string-based.d.ts +32 -0
  98. package/src/lib/rules/prefer-event-specific-callback-naming/strategies/string-based.js +143 -0
  99. package/src/lib/rules/prefer-event-specific-callback-naming/strategies/string-based.js.map +1 -0
  100. package/src/lib/rules/prefer-event-specific-callback-naming/strategies/type-based.d.ts +27 -0
  101. package/src/lib/rules/prefer-event-specific-callback-naming/strategies/type-based.js +196 -0
  102. package/src/lib/rules/prefer-event-specific-callback-naming/strategies/type-based.js.map +1 -0
  103. package/src/lib/rules/prefer-event-specific-callback-naming/utils.d.ts +76 -0
  104. package/src/lib/rules/prefer-event-specific-callback-naming/utils.js +245 -0
  105. package/src/lib/rules/prefer-event-specific-callback-naming/utils.js.map +1 -0
  106. package/src/lib/rules/prefer-field-components/prefer-field-components.d.ts +4 -0
  107. package/src/lib/rules/prefer-field-components/prefer-field-components.js +289 -0
  108. package/src/lib/rules/prefer-field-components/prefer-field-components.js.map +1 -0
  109. package/src/lib/rules/prefer-mouse-event-handler-in-react-props/prefer-mouse-event-handler-in-react-props.d.ts +26 -0
  110. package/src/lib/rules/prefer-mouse-event-handler-in-react-props/prefer-mouse-event-handler-in-react-props.js +402 -0
  111. package/src/lib/rules/prefer-mouse-event-handler-in-react-props/prefer-mouse-event-handler-in-react-props.js.map +1 -0
  112. package/src/lib/rules/require-classname-alternatives/require-classname-alternatives.d.ts +13 -0
  113. package/src/lib/rules/require-classname-alternatives/require-classname-alternatives.js +271 -0
  114. package/src/lib/rules/require-classname-alternatives/require-classname-alternatives.js.map +1 -0
  115. package/src/lib/rules/require-list-item-virtualization-props/require-list-item-virtualization-props.d.ts +15 -0
  116. package/src/lib/rules/require-list-item-virtualization-props/require-list-item-virtualization-props.js +245 -0
  117. package/src/lib/rules/require-list-item-virtualization-props/require-list-item-virtualization-props.js.map +1 -0
  118. package/src/lib/rules/require-optional-prop-initialization/require-optional-prop-initialization.d.ts +17 -0
  119. package/src/lib/rules/require-optional-prop-initialization/require-optional-prop-initialization.js +133 -0
  120. package/src/lib/rules/require-optional-prop-initialization/require-optional-prop-initialization.js.map +1 -0
  121. package/src/lib/rules/require-optional-prop-initialization/suggestion-utils.d.ts +12 -0
  122. package/src/lib/rules/require-optional-prop-initialization/suggestion-utils.js +128 -0
  123. package/src/lib/rules/require-optional-prop-initialization/suggestion-utils.js.map +1 -0
  124. package/src/lib/rules-map.d.ts +66 -0
  125. package/src/lib/rules-map.js +34 -0
  126. package/src/lib/rules-map.js.map +1 -0
  127. package/src/lib/utils/ast-utils.d.ts +85 -0
  128. package/src/lib/utils/ast-utils.js +530 -0
  129. package/src/lib/utils/ast-utils.js.map +1 -0
  130. package/src/lib/utils/classname-utils.d.ts +150 -0
  131. package/src/lib/utils/classname-utils.js +492 -0
  132. package/src/lib/utils/classname-utils.js.map +1 -0
  133. package/src/lib/utils/file-utils.d.ts +14 -0
  134. package/src/lib/utils/file-utils.js +106 -0
  135. package/src/lib/utils/file-utils.js.map +1 -0
  136. package/src/lib/utils/import-utils.d.ts +85 -0
  137. package/src/lib/utils/import-utils.js +193 -0
  138. package/src/lib/utils/import-utils.js.map +1 -0
  139. package/src/lib/utils/nx-utils.d.ts +59 -0
  140. package/src/lib/utils/nx-utils.js +103 -0
  141. package/src/lib/utils/nx-utils.js.map +1 -0
  142. package/src/lib/utils/package-utils.d.ts +38 -0
  143. package/src/lib/utils/package-utils.js +74 -0
  144. package/src/lib/utils/package-utils.js.map +1 -0
  145. package/src/lib/utils/typescript-utils.d.ts +29 -0
  146. package/src/lib/utils/typescript-utils.js +213 -0
  147. package/src/lib/utils/typescript-utils.js.map +1 -0
@@ -0,0 +1,598 @@
1
+ import { nx, react } from "../plugins";
2
+ export declare const reactPreset: (import("eslint").Linter.Config<import("eslint").Linter.RulesRecord> | {
3
+ plugins: {
4
+ "@trackunit": {
5
+ rules: {
6
+ "cva-merge-base-classes-as-array": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"stringNeedsArray" | "arrayNeedsSplit", [], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
7
+ name: string;
8
+ };
9
+ "no-internal-barrel-files": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"noInternalBarrel", [], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
10
+ name: string;
11
+ };
12
+ "no-typescript-assertion": {
13
+ meta: import("eslint").Rule.RuleMetaData;
14
+ create: (context: import("eslint").Rule.RuleContext) => import("eslint").Rule.RuleListener;
15
+ };
16
+ "no-internal-graphql-when-tagged-with-gql-public": {
17
+ meta: import("eslint").Rule.RuleMetaData;
18
+ create: (context: import("eslint").Rule.RuleContext) => import("eslint").Rule.RuleListener;
19
+ };
20
+ "design-guideline-button-icon-size-match": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"incorrectIconSize", [], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
21
+ name: string;
22
+ };
23
+ "no-template-strings-in-classname-prop": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"templateStringInClassName", [], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
24
+ name: string;
25
+ };
26
+ "require-classname-alternatives": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"bannedClassAutoFix" | "bannedClassSuggest" | "suggestReplacement", [({
27
+ alternatives: Record<string, Array<string>>;
28
+ prefixes?: Array<string>;
29
+ } | undefined)?], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
30
+ name: string;
31
+ };
32
+ "no-jest-mock-trackunit-react-core-hooks": import("eslint").Rule.RuleModule;
33
+ "prefer-destructured-imports": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"preferDestructured" | "preferDestructuredGlobal", [({
34
+ packages: Record<string, string>;
35
+ } | undefined)?], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
36
+ name: string;
37
+ };
38
+ "prefer-mouse-event-handler-in-react-props": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"suggestMouseEventHandler" | "preferMouseEventHandler", [{
39
+ allowedNames?: ReadonlyArray<string>;
40
+ }], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
41
+ name: string;
42
+ };
43
+ "prefer-event-specific-callback-naming": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<import("../../rules/prefer-event-specific-callback-naming/strategies/string-based").NameBasedMessageIds | import("../../rules/prefer-event-specific-callback-naming/strategies/type-based").TypeBasedMessageIds, [{
44
+ allowedNames?: ReadonlyArray<string>;
45
+ events?: ReadonlyArray<string>;
46
+ }], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
47
+ name: string;
48
+ };
49
+ "require-optional-prop-initialization": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<import("../../rules/require-optional-prop-initialization/suggestion-utils").MessageIds, [{
50
+ allowNullableObject?: boolean;
51
+ allowNullableBoolean?: boolean;
52
+ allowNullableString?: boolean;
53
+ allowNullableNumber?: boolean;
54
+ allowNullableEnum?: boolean;
55
+ allowNullableStringLiteralUnion?: boolean;
56
+ onlyRequireUsedProps?: boolean;
57
+ }], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
58
+ name: string;
59
+ };
60
+ "prefer-field-components": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"preferFieldComponent", [], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
61
+ name: string;
62
+ };
63
+ "require-list-item-virtualization-props": import("@typescript-eslint/utils/dist/ts-eslint").RuleModule<"requireVirtualizationProps" | "spreadListItemProps" | "useSemanticListItem", [{
64
+ allowCustomComponents?: boolean;
65
+ }], unknown, import("@typescript-eslint/utils/dist/ts-eslint").RuleListener> & {
66
+ name: string;
67
+ };
68
+ };
69
+ };
70
+ "@typescript-eslint": {
71
+ configs: Record<string, ClassicConfig.Config>;
72
+ meta: FlatConfig.PluginMeta;
73
+ rules: typeof import("@typescript-eslint/eslint-plugin/rules");
74
+ };
75
+ jsdoc: {
76
+ rules: Record<string, import("eslint").Rule.RuleModule>;
77
+ configs: Record<string, import("eslint").Linter.Config>;
78
+ };
79
+ react: {
80
+ deprecatedRules: Partial<{
81
+ 'boolean-prop-naming': import("eslint").Rule.RuleModule;
82
+ 'button-has-type': import("eslint").Rule.RuleModule;
83
+ 'checked-requires-onchange-or-readonly': import("eslint").Rule.RuleModule;
84
+ 'default-props-match-prop-types': import("eslint").Rule.RuleModule;
85
+ 'destructuring-assignment': import("eslint").Rule.RuleModule;
86
+ 'display-name': import("eslint").Rule.RuleModule;
87
+ 'forbid-component-props': import("eslint").Rule.RuleModule;
88
+ 'forbid-dom-props': import("eslint").Rule.RuleModule;
89
+ 'forbid-elements': import("eslint").Rule.RuleModule;
90
+ 'forbid-foreign-prop-types': import("eslint").Rule.RuleModule;
91
+ 'forbid-prop-types': import("eslint").Rule.RuleModule;
92
+ 'forward-ref-uses-ref': import("eslint").Rule.RuleModule;
93
+ 'function-component-definition': import("eslint").Rule.RuleModule;
94
+ 'hook-use-state': import("eslint").Rule.RuleModule;
95
+ 'iframe-missing-sandbox': import("eslint").Rule.RuleModule;
96
+ 'jsx-boolean-value': import("eslint").Rule.RuleModule;
97
+ 'jsx-child-element-spacing': import("eslint").Rule.RuleModule;
98
+ 'jsx-closing-bracket-location': import("eslint").Rule.RuleModule;
99
+ 'jsx-closing-tag-location': import("eslint").Rule.RuleModule;
100
+ 'jsx-curly-spacing': import("eslint").Rule.RuleModule;
101
+ 'jsx-curly-newline': import("eslint").Rule.RuleModule;
102
+ 'jsx-equals-spacing': import("eslint").Rule.RuleModule;
103
+ 'jsx-filename-extension': import("eslint").Rule.RuleModule;
104
+ 'jsx-first-prop-new-line': import("eslint").Rule.RuleModule;
105
+ 'jsx-handler-names': import("eslint").Rule.RuleModule;
106
+ 'jsx-indent': import("eslint").Rule.RuleModule;
107
+ 'jsx-indent-props': import("eslint").Rule.RuleModule;
108
+ 'jsx-key': import("eslint").Rule.RuleModule;
109
+ 'jsx-max-depth': import("eslint").Rule.RuleModule;
110
+ 'jsx-max-props-per-line': import("eslint").Rule.RuleModule;
111
+ 'jsx-newline': import("eslint").Rule.RuleModule;
112
+ 'jsx-no-bind': import("eslint").Rule.RuleModule;
113
+ 'jsx-no-comment-textnodes': import("eslint").Rule.RuleModule;
114
+ 'jsx-no-constructed-context-values': import("eslint").Rule.RuleModule;
115
+ 'jsx-no-duplicate-props': import("eslint").Rule.RuleModule;
116
+ 'jsx-no-leaked-render': import("eslint").Rule.RuleModule;
117
+ 'jsx-no-literals': import("eslint").Rule.RuleModule;
118
+ 'jsx-no-script-url': import("eslint").Rule.RuleModule;
119
+ 'jsx-no-target-blank': import("eslint").Rule.RuleModule;
120
+ 'jsx-no-useless-fragment': import("eslint").Rule.RuleModule;
121
+ 'jsx-one-expression-per-line': import("eslint").Rule.RuleModule;
122
+ 'jsx-no-undef': import("eslint").Rule.RuleModule;
123
+ 'jsx-curly-brace-presence': import("eslint").Rule.RuleModule;
124
+ 'jsx-pascal-case': import("eslint").Rule.RuleModule;
125
+ 'jsx-fragments': import("eslint").Rule.RuleModule;
126
+ 'jsx-props-no-multi-spaces': import("eslint").Rule.RuleModule;
127
+ 'jsx-props-no-spreading': import("eslint").Rule.RuleModule;
128
+ 'jsx-props-no-spread-multi': import("eslint").Rule.RuleModule;
129
+ 'jsx-sort-default-props': import("eslint").Rule.RuleModule;
130
+ 'jsx-sort-props': import("eslint").Rule.RuleModule;
131
+ 'jsx-space-before-closing': import("eslint").Rule.RuleModule;
132
+ 'jsx-tag-spacing': import("eslint").Rule.RuleModule;
133
+ 'jsx-uses-react': import("eslint").Rule.RuleModule;
134
+ 'jsx-uses-vars': import("eslint").Rule.RuleModule;
135
+ 'jsx-wrap-multilines': import("eslint").Rule.RuleModule;
136
+ 'no-invalid-html-attribute': import("eslint").Rule.RuleModule;
137
+ 'no-access-state-in-setstate': import("eslint").Rule.RuleModule;
138
+ 'no-adjacent-inline-elements': import("eslint").Rule.RuleModule;
139
+ 'no-array-index-key': import("eslint").Rule.RuleModule;
140
+ 'no-arrow-function-lifecycle': import("eslint").Rule.RuleModule;
141
+ 'no-children-prop': import("eslint").Rule.RuleModule;
142
+ 'no-danger': import("eslint").Rule.RuleModule;
143
+ 'no-danger-with-children': import("eslint").Rule.RuleModule;
144
+ 'no-deprecated': import("eslint").Rule.RuleModule;
145
+ 'no-did-mount-set-state': import("eslint").Rule.RuleModule;
146
+ 'no-did-update-set-state': import("eslint").Rule.RuleModule;
147
+ 'no-direct-mutation-state': import("eslint").Rule.RuleModule;
148
+ 'no-find-dom-node': import("eslint").Rule.RuleModule;
149
+ 'no-is-mounted': import("eslint").Rule.RuleModule;
150
+ 'no-multi-comp': import("eslint").Rule.RuleModule;
151
+ 'no-namespace': import("eslint").Rule.RuleModule;
152
+ 'no-set-state': import("eslint").Rule.RuleModule;
153
+ 'no-string-refs': import("eslint").Rule.RuleModule;
154
+ 'no-redundant-should-component-update': import("eslint").Rule.RuleModule;
155
+ 'no-render-return-value': import("eslint").Rule.RuleModule;
156
+ 'no-this-in-sfc': import("eslint").Rule.RuleModule;
157
+ 'no-typos': import("eslint").Rule.RuleModule;
158
+ 'no-unescaped-entities': import("eslint").Rule.RuleModule;
159
+ 'no-unknown-property': import("eslint").Rule.RuleModule;
160
+ 'no-unsafe': import("eslint").Rule.RuleModule;
161
+ 'no-unstable-nested-components': import("eslint").Rule.RuleModule;
162
+ 'no-unused-class-component-methods': import("eslint").Rule.RuleModule;
163
+ 'no-unused-prop-types': import("eslint").Rule.RuleModule;
164
+ 'no-unused-state': import("eslint").Rule.RuleModule;
165
+ 'no-object-type-as-default-prop': import("eslint").Rule.RuleModule;
166
+ 'no-will-update-set-state': import("eslint").Rule.RuleModule;
167
+ 'prefer-es6-class': import("eslint").Rule.RuleModule;
168
+ 'prefer-exact-props': import("eslint").Rule.RuleModule;
169
+ 'prefer-read-only-props': import("eslint").Rule.RuleModule;
170
+ 'prefer-stateless-function': import("eslint").Rule.RuleModule;
171
+ 'prop-types': import("eslint").Rule.RuleModule;
172
+ 'react-in-jsx-scope': import("eslint").Rule.RuleModule;
173
+ 'require-default-props': import("eslint").Rule.RuleModule;
174
+ 'require-optimization': import("eslint").Rule.RuleModule;
175
+ 'require-render-return': import("eslint").Rule.RuleModule;
176
+ 'self-closing-comp': import("eslint").Rule.RuleModule;
177
+ 'sort-comp': import("eslint").Rule.RuleModule;
178
+ 'sort-default-props': import("eslint").Rule.RuleModule;
179
+ 'sort-prop-types': import("eslint").Rule.RuleModule;
180
+ 'state-in-constructor': import("eslint").Rule.RuleModule;
181
+ 'static-property-placement': import("eslint").Rule.RuleModule;
182
+ 'style-prop-object': import("eslint").Rule.RuleModule;
183
+ 'void-dom-elements-no-children': import("eslint").Rule.RuleModule;
184
+ }>;
185
+ rules: {
186
+ 'boolean-prop-naming': import("eslint").Rule.RuleModule;
187
+ 'button-has-type': import("eslint").Rule.RuleModule;
188
+ 'checked-requires-onchange-or-readonly': import("eslint").Rule.RuleModule;
189
+ 'default-props-match-prop-types': import("eslint").Rule.RuleModule;
190
+ 'destructuring-assignment': import("eslint").Rule.RuleModule;
191
+ 'display-name': import("eslint").Rule.RuleModule;
192
+ 'forbid-component-props': import("eslint").Rule.RuleModule;
193
+ 'forbid-dom-props': import("eslint").Rule.RuleModule;
194
+ 'forbid-elements': import("eslint").Rule.RuleModule;
195
+ 'forbid-foreign-prop-types': import("eslint").Rule.RuleModule;
196
+ 'forbid-prop-types': import("eslint").Rule.RuleModule;
197
+ 'forward-ref-uses-ref': import("eslint").Rule.RuleModule;
198
+ 'function-component-definition': import("eslint").Rule.RuleModule;
199
+ 'hook-use-state': import("eslint").Rule.RuleModule;
200
+ 'iframe-missing-sandbox': import("eslint").Rule.RuleModule;
201
+ 'jsx-boolean-value': import("eslint").Rule.RuleModule;
202
+ 'jsx-child-element-spacing': import("eslint").Rule.RuleModule;
203
+ 'jsx-closing-bracket-location': import("eslint").Rule.RuleModule;
204
+ 'jsx-closing-tag-location': import("eslint").Rule.RuleModule;
205
+ 'jsx-curly-spacing': import("eslint").Rule.RuleModule;
206
+ 'jsx-curly-newline': import("eslint").Rule.RuleModule;
207
+ 'jsx-equals-spacing': import("eslint").Rule.RuleModule;
208
+ 'jsx-filename-extension': import("eslint").Rule.RuleModule;
209
+ 'jsx-first-prop-new-line': import("eslint").Rule.RuleModule;
210
+ 'jsx-handler-names': import("eslint").Rule.RuleModule;
211
+ 'jsx-indent': import("eslint").Rule.RuleModule;
212
+ 'jsx-indent-props': import("eslint").Rule.RuleModule;
213
+ 'jsx-key': import("eslint").Rule.RuleModule;
214
+ 'jsx-max-depth': import("eslint").Rule.RuleModule;
215
+ 'jsx-max-props-per-line': import("eslint").Rule.RuleModule;
216
+ 'jsx-newline': import("eslint").Rule.RuleModule;
217
+ 'jsx-no-bind': import("eslint").Rule.RuleModule;
218
+ 'jsx-no-comment-textnodes': import("eslint").Rule.RuleModule;
219
+ 'jsx-no-constructed-context-values': import("eslint").Rule.RuleModule;
220
+ 'jsx-no-duplicate-props': import("eslint").Rule.RuleModule;
221
+ 'jsx-no-leaked-render': import("eslint").Rule.RuleModule;
222
+ 'jsx-no-literals': import("eslint").Rule.RuleModule;
223
+ 'jsx-no-script-url': import("eslint").Rule.RuleModule;
224
+ 'jsx-no-target-blank': import("eslint").Rule.RuleModule;
225
+ 'jsx-no-useless-fragment': import("eslint").Rule.RuleModule;
226
+ 'jsx-one-expression-per-line': import("eslint").Rule.RuleModule;
227
+ 'jsx-no-undef': import("eslint").Rule.RuleModule;
228
+ 'jsx-curly-brace-presence': import("eslint").Rule.RuleModule;
229
+ 'jsx-pascal-case': import("eslint").Rule.RuleModule;
230
+ 'jsx-fragments': import("eslint").Rule.RuleModule;
231
+ 'jsx-props-no-multi-spaces': import("eslint").Rule.RuleModule;
232
+ 'jsx-props-no-spreading': import("eslint").Rule.RuleModule;
233
+ 'jsx-props-no-spread-multi': import("eslint").Rule.RuleModule;
234
+ 'jsx-sort-default-props': import("eslint").Rule.RuleModule;
235
+ 'jsx-sort-props': import("eslint").Rule.RuleModule;
236
+ 'jsx-space-before-closing': import("eslint").Rule.RuleModule;
237
+ 'jsx-tag-spacing': import("eslint").Rule.RuleModule;
238
+ 'jsx-uses-react': import("eslint").Rule.RuleModule;
239
+ 'jsx-uses-vars': import("eslint").Rule.RuleModule;
240
+ 'jsx-wrap-multilines': import("eslint").Rule.RuleModule;
241
+ 'no-invalid-html-attribute': import("eslint").Rule.RuleModule;
242
+ 'no-access-state-in-setstate': import("eslint").Rule.RuleModule;
243
+ 'no-adjacent-inline-elements': import("eslint").Rule.RuleModule;
244
+ 'no-array-index-key': import("eslint").Rule.RuleModule;
245
+ 'no-arrow-function-lifecycle': import("eslint").Rule.RuleModule;
246
+ 'no-children-prop': import("eslint").Rule.RuleModule;
247
+ 'no-danger': import("eslint").Rule.RuleModule;
248
+ 'no-danger-with-children': import("eslint").Rule.RuleModule;
249
+ 'no-deprecated': import("eslint").Rule.RuleModule;
250
+ 'no-did-mount-set-state': import("eslint").Rule.RuleModule;
251
+ 'no-did-update-set-state': import("eslint").Rule.RuleModule;
252
+ 'no-direct-mutation-state': import("eslint").Rule.RuleModule;
253
+ 'no-find-dom-node': import("eslint").Rule.RuleModule;
254
+ 'no-is-mounted': import("eslint").Rule.RuleModule;
255
+ 'no-multi-comp': import("eslint").Rule.RuleModule;
256
+ 'no-namespace': import("eslint").Rule.RuleModule;
257
+ 'no-set-state': import("eslint").Rule.RuleModule;
258
+ 'no-string-refs': import("eslint").Rule.RuleModule;
259
+ 'no-redundant-should-component-update': import("eslint").Rule.RuleModule;
260
+ 'no-render-return-value': import("eslint").Rule.RuleModule;
261
+ 'no-this-in-sfc': import("eslint").Rule.RuleModule;
262
+ 'no-typos': import("eslint").Rule.RuleModule;
263
+ 'no-unescaped-entities': import("eslint").Rule.RuleModule;
264
+ 'no-unknown-property': import("eslint").Rule.RuleModule;
265
+ 'no-unsafe': import("eslint").Rule.RuleModule;
266
+ 'no-unstable-nested-components': import("eslint").Rule.RuleModule;
267
+ 'no-unused-class-component-methods': import("eslint").Rule.RuleModule;
268
+ 'no-unused-prop-types': import("eslint").Rule.RuleModule;
269
+ 'no-unused-state': import("eslint").Rule.RuleModule;
270
+ 'no-object-type-as-default-prop': import("eslint").Rule.RuleModule;
271
+ 'no-will-update-set-state': import("eslint").Rule.RuleModule;
272
+ 'prefer-es6-class': import("eslint").Rule.RuleModule;
273
+ 'prefer-exact-props': import("eslint").Rule.RuleModule;
274
+ 'prefer-read-only-props': import("eslint").Rule.RuleModule;
275
+ 'prefer-stateless-function': import("eslint").Rule.RuleModule;
276
+ 'prop-types': import("eslint").Rule.RuleModule;
277
+ 'react-in-jsx-scope': import("eslint").Rule.RuleModule;
278
+ 'require-default-props': import("eslint").Rule.RuleModule;
279
+ 'require-optimization': import("eslint").Rule.RuleModule;
280
+ 'require-render-return': import("eslint").Rule.RuleModule;
281
+ 'self-closing-comp': import("eslint").Rule.RuleModule;
282
+ 'sort-comp': import("eslint").Rule.RuleModule;
283
+ 'sort-default-props': import("eslint").Rule.RuleModule;
284
+ 'sort-prop-types': import("eslint").Rule.RuleModule;
285
+ 'state-in-constructor': import("eslint").Rule.RuleModule;
286
+ 'static-property-placement': import("eslint").Rule.RuleModule;
287
+ 'style-prop-object': import("eslint").Rule.RuleModule;
288
+ 'void-dom-elements-no-children': import("eslint").Rule.RuleModule;
289
+ };
290
+ configs: {
291
+ recommended: {
292
+ plugins: ["react"];
293
+ parserOptions: {
294
+ ecmaFeatures: {
295
+ jsx: boolean;
296
+ };
297
+ };
298
+ rules: {
299
+ "react/display-name": 2;
300
+ "react/jsx-key": 2;
301
+ "react/jsx-no-comment-textnodes": 2;
302
+ "react/jsx-no-duplicate-props": 2;
303
+ "react/jsx-no-target-blank": 2;
304
+ "react/jsx-no-undef": 2;
305
+ "react/jsx-uses-react": 2;
306
+ "react/jsx-uses-vars": 2;
307
+ "react/no-children-prop": 2;
308
+ "react/no-danger-with-children": 2;
309
+ "react/no-deprecated": 2;
310
+ "react/no-direct-mutation-state": 2;
311
+ "react/no-find-dom-node": 2;
312
+ "react/no-is-mounted": 2;
313
+ "react/no-render-return-value": 2;
314
+ "react/no-string-refs": 2;
315
+ "react/no-unescaped-entities": 2;
316
+ "react/no-unknown-property": 2;
317
+ "react/no-unsafe": 0;
318
+ "react/prop-types": 2;
319
+ "react/react-in-jsx-scope": 2;
320
+ "react/require-render-return": 2;
321
+ };
322
+ };
323
+ all: {
324
+ plugins: ["react"];
325
+ parserOptions: {
326
+ ecmaFeatures: {
327
+ jsx: boolean;
328
+ };
329
+ };
330
+ rules: Record<"boolean-prop-naming" | "button-has-type" | "checked-requires-onchange-or-readonly" | "default-props-match-prop-types" | "destructuring-assignment" | "display-name" | "forbid-component-props" | "forbid-dom-props" | "forbid-elements" | "forbid-foreign-prop-types" | "forbid-prop-types" | "prop-types" | "forward-ref-uses-ref" | "function-component-definition" | "hook-use-state" | "iframe-missing-sandbox" | "jsx-boolean-value" | "jsx-child-element-spacing" | "jsx-closing-bracket-location" | "jsx-closing-tag-location" | "jsx-curly-spacing" | "jsx-curly-newline" | "jsx-equals-spacing" | "jsx-filename-extension" | "jsx-first-prop-new-line" | "jsx-handler-names" | "jsx-indent" | "jsx-indent-props" | "jsx-key" | "jsx-max-depth" | "jsx-max-props-per-line" | "jsx-newline" | "jsx-no-bind" | "jsx-no-comment-textnodes" | "jsx-no-constructed-context-values" | "jsx-no-duplicate-props" | "jsx-no-leaked-render" | "jsx-no-literals" | "jsx-no-script-url" | "jsx-no-target-blank" | "jsx-no-useless-fragment" | "jsx-one-expression-per-line" | "jsx-no-undef" | "jsx-curly-brace-presence" | "jsx-pascal-case" | "jsx-fragments" | "jsx-props-no-multi-spaces" | "jsx-props-no-spreading" | "jsx-props-no-spread-multi" | "sort-default-props" | "jsx-sort-default-props" | "jsx-sort-props" | "jsx-tag-spacing" | "jsx-space-before-closing" | "jsx-uses-react" | "jsx-uses-vars" | "jsx-wrap-multilines" | "no-invalid-html-attribute" | "no-access-state-in-setstate" | "no-adjacent-inline-elements" | "no-array-index-key" | "no-arrow-function-lifecycle" | "no-children-prop" | "no-danger" | "no-danger-with-children" | "no-deprecated" | "no-direct-mutation-state" | "no-find-dom-node" | "no-is-mounted" | "no-multi-comp" | "no-namespace" | "no-set-state" | "no-string-refs" | "no-redundant-should-component-update" | "no-render-return-value" | "no-this-in-sfc" | "no-typos" | "no-unescaped-entities" | "no-unknown-property" | "no-unsafe" | "no-unstable-nested-components" | "no-unused-class-component-methods" | "no-unused-prop-types" | "no-unused-state" | "no-object-type-as-default-prop" | "prefer-es6-class" | "prefer-exact-props" | "prefer-read-only-props" | "prefer-stateless-function" | "react-in-jsx-scope" | "require-default-props" | "require-optimization" | "require-render-return" | "self-closing-comp" | "sort-comp" | "sort-prop-types" | "state-in-constructor" | "static-property-placement" | "style-prop-object" | "void-dom-elements-no-children" | "no-did-mount-set-state" | "no-did-update-set-state" | "no-will-update-set-state", 2 | "error">;
331
+ };
332
+ 'jsx-runtime': {
333
+ plugins: ["react"];
334
+ parserOptions: {
335
+ ecmaFeatures: {
336
+ jsx: boolean;
337
+ };
338
+ jsxPragma: any;
339
+ };
340
+ rules: {
341
+ "react/react-in-jsx-scope": 0;
342
+ "react/jsx-uses-react": 0;
343
+ };
344
+ };
345
+ flat: Record<string, react.ReactFlatConfig>;
346
+ } & {
347
+ flat: Record<string, react.ReactFlatConfig>;
348
+ };
349
+ };
350
+ "react-hooks": {
351
+ meta: {
352
+ name: string;
353
+ version: string;
354
+ };
355
+ rules: {
356
+ "exhaustive-deps": {
357
+ meta: {
358
+ type: "suggestion";
359
+ docs: {
360
+ description: string;
361
+ recommended: true;
362
+ url: string;
363
+ };
364
+ fixable: "code";
365
+ hasSuggestions: true;
366
+ schema: {
367
+ type: "object";
368
+ additionalProperties: false;
369
+ enableDangerousAutofixThisMayCauseInfiniteLoops: boolean;
370
+ properties: {
371
+ additionalHooks: {
372
+ type: "string";
373
+ };
374
+ enableDangerousAutofixThisMayCauseInfiniteLoops: {
375
+ type: "boolean";
376
+ };
377
+ experimental_autoDependenciesHooks: {
378
+ type: "array";
379
+ items: {
380
+ type: "string";
381
+ };
382
+ };
383
+ requireExplicitEffectDeps: {
384
+ type: "boolean";
385
+ };
386
+ };
387
+ }[];
388
+ };
389
+ create(context: import("eslint").Rule.RuleContext): {
390
+ CallExpression: (node: estree.CallExpression) => void;
391
+ };
392
+ };
393
+ "rules-of-hooks": {
394
+ meta: {
395
+ type: "problem";
396
+ docs: {
397
+ description: string;
398
+ recommended: true;
399
+ url: string;
400
+ };
401
+ schema: {
402
+ type: "object";
403
+ additionalProperties: false;
404
+ properties: {
405
+ additionalHooks: {
406
+ type: "string";
407
+ };
408
+ };
409
+ }[];
410
+ };
411
+ create(context: import("eslint").Rule.RuleContext): {
412
+ "*"(node: any): void;
413
+ "*:exit"(node: any): void;
414
+ CallExpression(node: estree.CallExpression & import("eslint").Rule.NodeParentExtension): void;
415
+ Identifier(node: estree.Identifier & import("eslint").Rule.NodeParentExtension): void;
416
+ "CallExpression:exit"(node: estree.CallExpression & import("eslint").Rule.NodeParentExtension): void;
417
+ FunctionDeclaration(node: estree.FunctionDeclaration & import("eslint").Rule.NodeParentExtension): void;
418
+ ArrowFunctionExpression(node: estree.ArrowFunctionExpression & import("eslint").Rule.NodeParentExtension): void;
419
+ };
420
+ };
421
+ };
422
+ configs: {
423
+ recommended: {
424
+ plugins: string[];
425
+ rules: import("eslint").Linter.RulesRecord;
426
+ };
427
+ "recommended-latest": {
428
+ plugins: string[];
429
+ rules: import("eslint").Linter.RulesRecord;
430
+ };
431
+ flat: {
432
+ recommended: {
433
+ plugins: {
434
+ react: any;
435
+ };
436
+ rules: import("eslint").Linter.RulesRecord;
437
+ };
438
+ "recommended-latest": {
439
+ plugins: {
440
+ react: any;
441
+ };
442
+ rules: import("eslint").Linter.RulesRecord;
443
+ };
444
+ };
445
+ };
446
+ };
447
+ "testing-library": {
448
+ meta: {
449
+ name: string;
450
+ version: string;
451
+ };
452
+ configs: {
453
+ angular: import("eslint").Linter.LegacyConfig;
454
+ dom: import("eslint").Linter.LegacyConfig;
455
+ marko: import("eslint").Linter.LegacyConfig;
456
+ react: import("eslint").Linter.LegacyConfig;
457
+ svelte: import("eslint").Linter.LegacyConfig;
458
+ vue: import("eslint").Linter.LegacyConfig;
459
+ "flat/angular": import("eslint").Linter.FlatConfig;
460
+ "flat/dom": import("eslint").Linter.FlatConfig;
461
+ "flat/marko": import("eslint").Linter.FlatConfig;
462
+ "flat/react": import("eslint").Linter.FlatConfig;
463
+ "flat/svelte": import("eslint").Linter.FlatConfig;
464
+ "flat/vue": import("eslint").Linter.FlatConfig;
465
+ };
466
+ rules: {
467
+ [key: string]: import("eslint").Rule.RuleModule;
468
+ };
469
+ };
470
+ "@nx": typeof nx;
471
+ jest?: undefined;
472
+ };
473
+ settings: {
474
+ react: {
475
+ version: string;
476
+ };
477
+ };
478
+ languageOptions: {
479
+ globals: {
480
+ Text: string;
481
+ screen: string;
482
+ };
483
+ parser: import("eslint").Linter.Parser;
484
+ ecmaVersion: number;
485
+ sourceType: string;
486
+ parserOptions: {
487
+ ecmaFeatures: {
488
+ jsx: boolean;
489
+ };
490
+ };
491
+ };
492
+ files?: undefined;
493
+ rules?: undefined;
494
+ } | {
495
+ files: string[];
496
+ rules: {
497
+ "no-restricted-syntax": (string | {
498
+ selector: string;
499
+ message: string;
500
+ })[];
501
+ "no-multiple-empty-lines": (string | {
502
+ max: number;
503
+ })[];
504
+ "no-unreachable": string;
505
+ "prefer-spread": string;
506
+ "jsdoc/require-jsdoc"?: undefined;
507
+ "no-console"?: undefined;
508
+ "@typescript-eslint/no-empty-function"?: undefined;
509
+ };
510
+ plugins?: undefined;
511
+ settings?: undefined;
512
+ languageOptions?: undefined;
513
+ } | {
514
+ files: string[];
515
+ rules: {
516
+ "jsdoc/require-jsdoc": string;
517
+ "no-console": string;
518
+ "@typescript-eslint/no-empty-function": string;
519
+ };
520
+ plugins?: undefined;
521
+ settings?: undefined;
522
+ languageOptions?: undefined;
523
+ } | {
524
+ files: string[];
525
+ plugins: {
526
+ jest: {
527
+ meta: {
528
+ name: string;
529
+ version: string;
530
+ };
531
+ environments: {
532
+ globals: {
533
+ globals: {
534
+ [key: string]: boolean;
535
+ };
536
+ };
537
+ };
538
+ configs: {
539
+ all: import("eslint").Linter.LegacyConfig;
540
+ recommended: import("eslint").Linter.LegacyConfig;
541
+ style: import("eslint").Linter.LegacyConfig;
542
+ "flat/all": import("eslint").Linter.FlatConfig;
543
+ "flat/recommended": import("eslint").Linter.FlatConfig;
544
+ "flat/style": import("eslint").Linter.FlatConfig;
545
+ };
546
+ rules: {
547
+ [key: string]: import("eslint").Rule.RuleModule;
548
+ };
549
+ };
550
+ "testing-library": {
551
+ meta: {
552
+ name: string;
553
+ version: string;
554
+ };
555
+ configs: {
556
+ angular: import("eslint").Linter.LegacyConfig;
557
+ dom: import("eslint").Linter.LegacyConfig;
558
+ marko: import("eslint").Linter.LegacyConfig;
559
+ react: import("eslint").Linter.LegacyConfig;
560
+ svelte: import("eslint").Linter.LegacyConfig;
561
+ vue: import("eslint").Linter.LegacyConfig;
562
+ "flat/angular": import("eslint").Linter.FlatConfig;
563
+ "flat/dom": import("eslint").Linter.FlatConfig;
564
+ "flat/marko": import("eslint").Linter.FlatConfig;
565
+ "flat/react": import("eslint").Linter.FlatConfig;
566
+ "flat/svelte": import("eslint").Linter.FlatConfig;
567
+ "flat/vue": import("eslint").Linter.FlatConfig;
568
+ };
569
+ rules: {
570
+ [key: string]: import("eslint").Rule.RuleModule;
571
+ };
572
+ };
573
+ "@trackunit"?: undefined;
574
+ "@typescript-eslint"?: undefined;
575
+ jsdoc?: undefined;
576
+ react?: undefined;
577
+ "react-hooks"?: undefined;
578
+ "@nx"?: undefined;
579
+ };
580
+ languageOptions: {
581
+ globals: {
582
+ Text: string;
583
+ screen: string;
584
+ };
585
+ parser: import("eslint").Linter.Parser;
586
+ ecmaVersion?: undefined;
587
+ sourceType?: undefined;
588
+ parserOptions?: undefined;
589
+ };
590
+ rules: {
591
+ "jest/no-commented-out-tests": string;
592
+ "jest/expect-expect": string;
593
+ "jsdoc/require-jsdoc"?: undefined;
594
+ "no-console"?: undefined;
595
+ "@typescript-eslint/no-empty-function"?: undefined;
596
+ };
597
+ settings?: undefined;
598
+ })[];