eslint-plugin-wyrm 0.0.10 → 0.0.13

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 (234) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +114 -58
  3. package/bin/wyrm.mjs +3 -0
  4. package/dist/_virtual/_rolldown/runtime.mjs +14 -0
  5. package/dist/cli.d.mts +1 -0
  6. package/dist/cli.mjs +23 -0
  7. package/dist/configs/index.d.mts +2 -1
  8. package/dist/configs/index.mjs +6 -6
  9. package/dist/index.mjs +1 -4
  10. package/dist/plugin.mjs +1 -3
  11. package/dist/rules/array-from-array.d.mts +9 -0
  12. package/dist/rules/array-from-array.mjs +56 -0
  13. package/dist/rules/as-unknown-as.d.mts +9 -0
  14. package/dist/rules/as-unknown-as.mjs +30 -0
  15. package/dist/rules/await-promise-resolve.d.mts +9 -0
  16. package/dist/rules/await-promise-resolve.mjs +41 -0
  17. package/dist/rules/boolean-coalescing.d.mts +9 -0
  18. package/dist/rules/boolean-coalescing.mjs +141 -0
  19. package/dist/rules/comment-duplicate-leading-space.d.mts +9 -0
  20. package/dist/rules/comment-duplicate-leading-space.mjs +34 -0
  21. package/dist/rules/conditional-boolean.d.mts +9 -0
  22. package/dist/rules/conditional-boolean.mjs +70 -0
  23. package/dist/rules/constant-boolean-cast.d.mts +9 -0
  24. package/dist/rules/constant-boolean-cast.mjs +203 -0
  25. package/dist/rules/de-morgan.d.mts +2 -2
  26. package/dist/rules/de-morgan.mjs +1 -3
  27. package/dist/rules/discarded-expression-statement.d.mts +14 -0
  28. package/dist/rules/discarded-expression-statement.mjs +243 -0
  29. package/dist/rules/distribute-boolean-casts.d.mts +2 -2
  30. package/dist/rules/distribute-boolean-casts.mjs +3 -3
  31. package/dist/rules/duplicate-destructuring.d.mts +2 -2
  32. package/dist/rules/duplicate-destructuring.mjs +1 -3
  33. package/dist/rules/duplicate-object-spread.d.mts +9 -0
  34. package/dist/rules/duplicate-object-spread.mjs +44 -0
  35. package/dist/rules/e.d.mts +11 -0
  36. package/dist/rules/e.mjs +87 -0
  37. package/dist/rules/empty-for.d.mts +9 -0
  38. package/dist/rules/empty-for.mjs +34 -0
  39. package/dist/rules/enum-member.d.mts +9 -0
  40. package/dist/rules/enum-member.mjs +51 -0
  41. package/dist/rules/eqeq-null.d.mts +9 -0
  42. package/dist/rules/eqeq-null.mjs +101 -0
  43. package/dist/rules/exact-string-regex.d.mts +9 -0
  44. package/dist/rules/exact-string-regex.mjs +83 -0
  45. package/dist/rules/export-using.d.mts +9 -0
  46. package/dist/rules/export-using.mjs +58 -0
  47. package/dist/rules/generic-constructor-with-hook.d.mts +11 -0
  48. package/dist/rules/generic-constructor-with-hook.mjs +103 -0
  49. package/dist/rules/idiomatic-cast.mjs +7 -10
  50. package/dist/rules/index.d.mts +112 -57
  51. package/dist/rules/index.mjs +113 -5
  52. package/dist/rules/inferable-type-predicate.d.mts +9 -0
  53. package/dist/rules/inferable-type-predicate.mjs +100 -0
  54. package/dist/rules/inner-as-const.d.mts +9 -0
  55. package/dist/rules/inner-as-const.mjs +70 -0
  56. package/dist/rules/jsx-tostring.d.mts +9 -0
  57. package/dist/rules/jsx-tostring.mjs +120 -0
  58. package/dist/rules/literal-destructuring.d.mts +9 -0
  59. package/dist/rules/literal-destructuring.mjs +102 -0
  60. package/dist/rules/named-export-with-side-effects.d.mts +11 -0
  61. package/dist/rules/named-export-with-side-effects.mjs +72 -0
  62. package/dist/rules/nested-reduce.d.mts +9 -0
  63. package/dist/rules/nested-reduce.mjs +46 -0
  64. package/dist/rules/nested-try-catch.d.mts +9 -0
  65. package/dist/rules/nested-try-catch.mjs +37 -0
  66. package/dist/rules/no-commented-out-comment.d.mts +9 -0
  67. package/dist/rules/no-commented-out-comment.mjs +31 -0
  68. package/dist/rules/no-constant-template-expression.d.mts +3 -4
  69. package/dist/rules/no-constant-template-expression.mjs +12 -9
  70. package/dist/rules/no-constructed-error-cause.d.mts +9 -0
  71. package/dist/rules/no-constructed-error-cause.mjs +75 -0
  72. package/dist/rules/no-convoluted-boolean-expressions.d.mts +9 -0
  73. package/dist/rules/no-convoluted-boolean-expressions.mjs +130 -0
  74. package/dist/rules/no-convoluted-logical-expressions.d.mts +2 -2
  75. package/dist/rules/no-convoluted-logical-expressions.mjs +1 -3
  76. package/dist/rules/no-custom-url-parsing.d.mts +2 -3
  77. package/dist/rules/no-custom-url-parsing.mjs +1 -3
  78. package/dist/rules/no-disallowed-warning-comments.d.mts +2 -2
  79. package/dist/rules/no-disallowed-warning-comments.mjs +1 -3
  80. package/dist/rules/no-duplicated-return.d.mts +2 -2
  81. package/dist/rules/no-duplicated-return.mjs +2 -3
  82. package/dist/rules/no-else-break.d.mts +2 -2
  83. package/dist/rules/no-else-break.mjs +3 -5
  84. package/dist/rules/no-else-continue.d.mts +2 -2
  85. package/dist/rules/no-else-continue.mjs +3 -5
  86. package/dist/rules/no-else-never.d.mts +9 -0
  87. package/dist/rules/no-else-never.mjs +75 -0
  88. package/dist/rules/no-else-return.d.mts +2 -3
  89. package/dist/rules/no-else-return.mjs +4 -5
  90. package/dist/rules/no-else-throw.d.mts +2 -2
  91. package/dist/rules/no-else-throw.mjs +3 -5
  92. package/dist/rules/no-empty-attribute.d.mts +3 -3
  93. package/dist/rules/no-empty-attribute.mjs +1 -3
  94. package/dist/rules/no-empty-comment.d.mts +3 -3
  95. package/dist/rules/no-empty-comment.mjs +1 -3
  96. package/dist/rules/no-empty-jsx-expression.d.mts +2 -2
  97. package/dist/rules/no-empty-jsx-expression.mjs +1 -3
  98. package/dist/rules/no-empty-literal-iteration.d.mts +2 -2
  99. package/dist/rules/no-empty-literal-iteration.mjs +1 -3
  100. package/dist/rules/no-extra-false-fallback.d.mts +2 -3
  101. package/dist/rules/no-extra-false-fallback.mjs +1 -3
  102. package/dist/rules/no-extra-nested-boolean-cast.d.mts +2 -3
  103. package/dist/rules/no-extra-nested-boolean-cast.mjs +2 -3
  104. package/dist/rules/no-first-last.d.mts +2 -2
  105. package/dist/rules/no-first-last.mjs +2 -5
  106. package/dist/rules/no-float-length-check.d.mts +2 -2
  107. package/dist/rules/no-float-length-check.mjs +1 -3
  108. package/dist/rules/no-huge-try-block.d.mts +3 -3
  109. package/dist/rules/no-huge-try-block.mjs +1 -3
  110. package/dist/rules/no-huge-useeffect.d.mts +11 -0
  111. package/dist/rules/no-huge-useeffect.mjs +52 -0
  112. package/dist/rules/no-if-length-for.d.mts +9 -0
  113. package/dist/rules/no-if-length-for.mjs +91 -0
  114. package/dist/rules/no-inline-jsdoc-tag.d.mts +3 -3
  115. package/dist/rules/no-inline-jsdoc-tag.mjs +1 -3
  116. package/dist/rules/no-invalid-date-literal.d.mts +2 -2
  117. package/dist/rules/no-invalid-date-literal.mjs +42 -19
  118. package/dist/rules/no-jsx-statement.d.mts +2 -2
  119. package/dist/rules/no-jsx-statement.mjs +1 -3
  120. package/dist/rules/no-lax-array-type.d.mts +9 -0
  121. package/dist/rules/no-lax-array-type.mjs +129 -0
  122. package/dist/rules/no-lax-return-type.d.mts +9 -0
  123. package/dist/rules/no-lax-return-type.mjs +138 -0
  124. package/dist/rules/no-mutable-literal-fill.d.mts +2 -3
  125. package/dist/rules/no-mutable-literal-fill.mjs +1 -3
  126. package/dist/rules/no-nullish-ternary.d.mts +9 -0
  127. package/dist/rules/no-nullish-ternary.mjs +121 -0
  128. package/dist/rules/no-numbered-comments.d.mts +2 -2
  129. package/dist/rules/no-numbered-comments.mjs +1 -3
  130. package/dist/rules/no-obvious-any.mjs +35 -27
  131. package/dist/rules/no-optional-type-guard-param.d.mts +2 -3
  132. package/dist/rules/no-optional-type-guard-param.mjs +1 -3
  133. package/dist/rules/no-out-of-order-comments.d.mts +2 -2
  134. package/dist/rules/no-out-of-order-comments.mjs +4 -8
  135. package/dist/rules/no-possibly-nullish-equality.d.mts +0 -1
  136. package/dist/rules/no-possibly-nullish-equality.mjs +6 -13
  137. package/dist/rules/no-redundant-function-declaration.d.mts +2 -2
  138. package/dist/rules/no-redundant-function-declaration.mjs +1 -3
  139. package/dist/rules/no-return-to-void.mjs +2 -4
  140. package/dist/rules/no-self-object-assign.d.mts +2 -2
  141. package/dist/rules/no-self-object-assign.mjs +1 -3
  142. package/dist/rules/no-sloppy-length-check.d.mts +2 -3
  143. package/dist/rules/no-sloppy-length-check.mjs +35 -37
  144. package/dist/rules/no-suspicious-jsx-semicolon.d.mts +2 -3
  145. package/dist/rules/no-suspicious-jsx-semicolon.mjs +2 -4
  146. package/dist/rules/no-ternary-return.d.mts +3 -4
  147. package/dist/rules/no-ternary-return.mjs +1 -3
  148. package/dist/rules/no-type-guard.d.mts +9 -0
  149. package/dist/rules/no-type-guard.mjs +36 -0
  150. package/dist/rules/no-unassigned-todo.d.mts +2 -2
  151. package/dist/rules/no-unassigned-todo.mjs +1 -3
  152. package/dist/rules/no-unbound-catch-error.d.mts +2 -2
  153. package/dist/rules/no-unbound-catch-error.mjs +1 -3
  154. package/dist/rules/no-unused-mutually-referential.d.mts +9 -0
  155. package/dist/rules/no-unused-mutually-referential.mjs +215 -0
  156. package/dist/rules/no-unused-param-read.d.mts +2 -2
  157. package/dist/rules/no-unused-param-read.mjs +1 -3
  158. package/dist/rules/no-useless-computed-key.d.mts +2 -2
  159. package/dist/rules/no-useless-computed-key.mjs +1 -3
  160. package/dist/rules/no-useless-iife.d.mts +2 -2
  161. package/dist/rules/no-useless-iife.mjs +2 -3
  162. package/dist/rules/no-useless-logical-fallback.d.mts +0 -1
  163. package/dist/rules/no-useless-logical-fallback.mjs +32 -24
  164. package/dist/rules/no-useless-return-undefined.mjs +11 -11
  165. package/dist/rules/no-useless-ts-check.d.mts +9 -0
  166. package/dist/rules/no-useless-ts-check.mjs +34 -0
  167. package/dist/rules/no-useless-use-strict.d.mts +2 -2
  168. package/dist/rules/no-useless-use-strict.mjs +1 -3
  169. package/dist/rules/no-useless-usememo.d.mts +2 -2
  170. package/dist/rules/no-useless-usememo.mjs +8 -6
  171. package/dist/rules/no-whitespace-property.d.mts +2 -2
  172. package/dist/rules/no-whitespace-property.mjs +1 -3
  173. package/dist/rules/nullish-object-spread.d.mts +9 -0
  174. package/dist/rules/nullish-object-spread.mjs +38 -0
  175. package/dist/rules/optional-call-expression.d.mts +2 -2
  176. package/dist/rules/optional-call-expression.mjs +20 -3
  177. package/dist/rules/prefer-array-from.d.mts +9 -0
  178. package/dist/rules/prefer-array-from.mjs +87 -0
  179. package/dist/rules/prefer-catch-method.d.mts +2 -2
  180. package/dist/rules/prefer-catch-method.mjs +9 -12
  181. package/dist/rules/prefer-early-return.d.mts +2 -2
  182. package/dist/rules/prefer-early-return.mjs +23 -20
  183. package/dist/rules/prefer-eqeq-null.d.mts +9 -0
  184. package/dist/rules/prefer-eqeq-null.mjs +122 -0
  185. package/dist/rules/prefer-finally.d.mts +9 -0
  186. package/dist/rules/prefer-finally.mjs +129 -0
  187. package/dist/rules/prefer-getorinsert.d.mts +9 -0
  188. package/dist/rules/prefer-getorinsert.mjs +180 -0
  189. package/dist/rules/prefer-has.d.mts +9 -0
  190. package/dist/rules/prefer-has.mjs +69 -0
  191. package/dist/rules/prefer-in.d.mts +9 -0
  192. package/dist/rules/prefer-in.mjs +81 -0
  193. package/dist/rules/prefer-object-keys-values.d.mts +9 -0
  194. package/dist/rules/prefer-object-keys-values.mjs +78 -0
  195. package/dist/rules/prefer-repeat.d.mts +2 -2
  196. package/dist/rules/prefer-repeat.mjs +1 -5
  197. package/dist/rules/prefer-satisfies.d.mts +9 -0
  198. package/dist/rules/prefer-satisfies.mjs +86 -0
  199. package/dist/rules/prefer-string-join.d.mts +9 -0
  200. package/dist/rules/prefer-string-join.mjs +67 -0
  201. package/dist/rules/primitive-valueof.mjs +6 -8
  202. package/dist/rules/slim-try.d.mts +9 -0
  203. package/dist/rules/slim-try.mjs +150 -0
  204. package/dist/rules/styled-button-has-type.d.mts +9 -0
  205. package/dist/rules/styled-button-has-type.mjs +82 -0
  206. package/dist/rules/styled-transient-props.d.mts +9 -0
  207. package/dist/rules/styled-transient-props.mjs +52 -0
  208. package/dist/rules/suspicious-map-length.d.mts +2 -2
  209. package/dist/rules/suspicious-map-length.mjs +1 -3
  210. package/dist/rules/template-tostring.d.mts +9 -0
  211. package/dist/rules/template-tostring.mjs +48 -0
  212. package/dist/rules/unsafe-asserted-chain.d.mts +0 -1
  213. package/dist/rules/unsafe-asserted-chain.mjs +5 -8
  214. package/dist/rules/unused-object-assign.d.mts +2 -2
  215. package/dist/rules/unused-object-assign.mjs +1 -3
  216. package/dist/rules/unused-object-freeze.d.mts +9 -0
  217. package/dist/rules/unused-object-freeze.mjs +37 -0
  218. package/dist/rules/useless-as-const.d.mts +9 -0
  219. package/dist/rules/useless-as-const.mjs +59 -0
  220. package/dist/rules/useless-assign.d.mts +11 -0
  221. package/dist/rules/useless-assign.mjs +69 -0
  222. package/dist/rules/useless-conditional-assign.d.mts +9 -0
  223. package/dist/rules/useless-conditional-assign.mjs +58 -0
  224. package/dist/rules/useless-intermediary-variable.mjs +18 -21
  225. package/dist/rules/useless-mock.d.mts +9 -0
  226. package/dist/rules/useless-mock.mjs +180 -0
  227. package/dist/rules/useless-required.d.mts +9 -0
  228. package/dist/rules/useless-required.mjs +257 -0
  229. package/dist/utils/compareTokens.mjs +1 -3
  230. package/dist/utils/createRule.mjs +1 -3
  231. package/dist/utils/negateExpression.mjs +1 -3
  232. package/dist/utils/option.mjs +5 -2
  233. package/package.json +30 -23
  234. package/dist/_virtual/rolldown_runtime.mjs +0 -20
@@ -0,0 +1,9 @@
1
+ import { WyrmPluginDocs } from "../utils/createRule.mjs";
2
+ import * as _$_typescript_eslint_utils_ts_eslint0 from "@typescript-eslint/utils/ts-eslint";
3
+
4
+ //#region lib/rules/exact-string-regex.d.ts
5
+ declare const _default: _$_typescript_eslint_utils_ts_eslint0.RuleModule<"preferEquality", [], WyrmPluginDocs, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
6
+ name: string;
7
+ };
8
+ //#endregion
9
+ export { _default };
@@ -0,0 +1,83 @@
1
+ import { createRule } from "../utils/createRule.mjs";
2
+ import { None, Some, getFirstOption } from "../utils/option.mjs";
3
+ import path from "node:path";
4
+ import { AST_NODE_TYPES } from "@typescript-eslint/utils";
5
+ //#region lib/rules/exact-string-regex.ts
6
+ const { name } = path.parse(import.meta.filename);
7
+ var exact_string_regex_default = createRule({
8
+ name,
9
+ meta: {
10
+ type: "suggestion",
11
+ docs: {
12
+ description: "Forbid using a RegEx when string equality would suffice",
13
+ recommended: true
14
+ },
15
+ hasSuggestions: true,
16
+ schema: [],
17
+ messages: { preferEquality: "Just use === \"{{content}}\"" }
18
+ },
19
+ defaultOptions: [],
20
+ create(context) {
21
+ return { Literal(node) {
22
+ if (!(node.value instanceof RegExp)) return;
23
+ const re = node.value;
24
+ const maybeContent = getExactEqualityPattern(re);
25
+ if (!maybeContent.some) return;
26
+ const content = maybeContent.value;
27
+ const result = getRegexComparison(node);
28
+ if (!result.some) return;
29
+ const { ident, parent } = result.value;
30
+ context.report({
31
+ node,
32
+ messageId: "preferEquality",
33
+ data: { content },
34
+ suggest: [{
35
+ messageId: "preferEquality",
36
+ data: { content },
37
+ fix(fixer) {
38
+ const compared = context.sourceCode.getText(ident);
39
+ return fixer.replaceText(parent, `(${compared} === '${content}')`);
40
+ }
41
+ }]
42
+ });
43
+ } };
44
+ }
45
+ });
46
+ function getRegexComparison(node) {
47
+ return getFirstOption([getRegexTestOrExec(node), getRegexMatch(node)]);
48
+ }
49
+ function getRegexTestOrExec(node) {
50
+ if (node.parent.type !== AST_NODE_TYPES.MemberExpression) return None;
51
+ if (node.parent.property.type !== AST_NODE_TYPES.Identifier) return None;
52
+ if (node.parent.property.name !== "test" && node.parent.property.name !== "exec") return None;
53
+ if (node.parent.parent.type !== AST_NODE_TYPES.CallExpression) return None;
54
+ const [arg] = node.parent.parent.arguments;
55
+ if (!arg) return None;
56
+ return Some({
57
+ ident: arg,
58
+ parent: node.parent.parent
59
+ });
60
+ }
61
+ function getRegexMatch(node) {
62
+ if (node.parent.type !== AST_NODE_TYPES.CallExpression) return None;
63
+ if (node.parent.arguments[0] !== node) return None;
64
+ if (node.parent.callee.type !== AST_NODE_TYPES.MemberExpression) return None;
65
+ if (node.parent.callee.property.type !== AST_NODE_TYPES.Identifier) return None;
66
+ if (node.parent.callee.property.name !== "match") return None;
67
+ return Some({
68
+ ident: node.parent.callee.object,
69
+ parent: node.parent
70
+ });
71
+ }
72
+ function getExactEqualityPattern(re) {
73
+ if (re.ignoreCase) return None;
74
+ if (re.multiline) return None;
75
+ const result = /^\^(?<content>[a-z\d]+)\$$/v.exec(re.source);
76
+ if (!result) return None;
77
+ const content = result.groups?.["content"];
78
+ /* v8 ignore if -- @preserve */
79
+ if (!content) return None;
80
+ return Some(content);
81
+ }
82
+ //#endregion
83
+ export { exact_string_regex_default as default };
@@ -0,0 +1,9 @@
1
+ import { WyrmPluginDocs } from "../utils/createRule.mjs";
2
+ import { TSESLint } from "@typescript-eslint/utils";
3
+
4
+ //#region lib/rules/export-using.d.ts
5
+ declare const _default: TSESLint.RuleModule<"noExportUsing", [], WyrmPluginDocs, TSESLint.RuleListener> & {
6
+ name: string;
7
+ };
8
+ //#endregion
9
+ export { _default };
@@ -0,0 +1,58 @@
1
+ import { createRule } from "../utils/createRule.mjs";
2
+ import path from "node:path";
3
+ import { ASTUtils, AST_NODE_TYPES, TSESLint } from "@typescript-eslint/utils";
4
+ //#region lib/rules/export-using.ts
5
+ /**
6
+ * @fileoverview
7
+ *
8
+ * If you export a variable declared with `using` or `await using`, it will already be disposed when imported.
9
+ */
10
+ const { name } = path.parse(import.meta.filename);
11
+ var export_using_default = createRule({
12
+ name,
13
+ meta: {
14
+ type: "problem",
15
+ docs: {
16
+ description: "Forbid exporting variables declared with `using` or `await using`",
17
+ recommended: true
18
+ },
19
+ schema: [],
20
+ messages: { noExportUsing: "Do not export a variable declared with `using`. It will already be disposed when imported." }
21
+ },
22
+ defaultOptions: [],
23
+ create(context) {
24
+ return {
25
+ ExportNamedDeclaration(node) {
26
+ if (node.declaration?.type === AST_NODE_TYPES.VariableDeclaration && (node.declaration.kind === "using" || node.declaration.kind === "await using")) {
27
+ context.report({
28
+ node,
29
+ messageId: "noExportUsing"
30
+ });
31
+ return;
32
+ }
33
+ const scope = context.sourceCode.getScope(node);
34
+ for (const specifier of node.specifiers) {
35
+ if (specifier.local.type !== AST_NODE_TYPES.Identifier) continue;
36
+ checkIdentifier(specifier.local, scope);
37
+ }
38
+ },
39
+ ExportDefaultDeclaration(node) {
40
+ const scope = context.sourceCode.getScope(node);
41
+ if (node.declaration.type !== AST_NODE_TYPES.Identifier) return;
42
+ checkIdentifier(node.declaration, scope);
43
+ }
44
+ };
45
+ function checkIdentifier(ident, scope) {
46
+ const def = ASTUtils.findVariable(scope, ident)?.defs.at(-1);
47
+ if (!def) return;
48
+ if (def.type !== TSESLint.Scope.DefinitionType.Variable) return;
49
+ if (def.node.parent.kind !== "using" && def.node.parent.kind !== "await using") return;
50
+ context.report({
51
+ node: ident,
52
+ messageId: "noExportUsing"
53
+ });
54
+ }
55
+ }
56
+ });
57
+ //#endregion
58
+ export { export_using_default as default };
@@ -0,0 +1,11 @@
1
+ import { WyrmPluginDocs } from "../utils/createRule.mjs";
2
+ import * as _$_typescript_eslint_utils_ts_eslint0 from "@typescript-eslint/utils/ts-eslint";
3
+
4
+ //#region lib/rules/generic-constructor-with-hook.d.ts
5
+ declare const _default: _$_typescript_eslint_utils_ts_eslint0.RuleModule<"useGenericConstructor" | "removeObviousInferable" | "noInferable", [{
6
+ hooks: string[];
7
+ }], WyrmPluginDocs, _$_typescript_eslint_utils_ts_eslint0.RuleListener> & {
8
+ name: string;
9
+ };
10
+ //#endregion
11
+ export { _default };
@@ -0,0 +1,103 @@
1
+ import { createRule } from "../utils/createRule.mjs";
2
+ import path from "node:path";
3
+ import { AST_NODE_TYPES } from "@typescript-eslint/utils";
4
+ //#region lib/rules/generic-constructor-with-hook.ts
5
+ const { name } = path.parse(import.meta.filename);
6
+ const DEFAULT_HOOK_NAMES = ["useState", "useRef"];
7
+ var generic_constructor_with_hook_default = createRule({
8
+ name,
9
+ meta: {
10
+ type: "suggestion",
11
+ docs: {
12
+ description: "Forbid specifying the type arguments on the hook instead of on the generic class",
13
+ strict: true
14
+ },
15
+ fixable: "code",
16
+ schema: [{
17
+ type: "object",
18
+ properties: { hooks: {
19
+ description: `List of hooks to check. Default: \`${JSON.stringify(DEFAULT_HOOK_NAMES)}\``,
20
+ type: "array",
21
+ items: { type: "string" }
22
+ } }
23
+ }],
24
+ messages: {
25
+ useGenericConstructor: "Use new {{typeAnnotationText}}() and remove the type annotation on the hook",
26
+ removeObviousInferable: "Remove the {{typeAnnotationText}} type annotation on the hook, it will be trivially inferred",
27
+ noInferable: "There is no need to add a type annotation here"
28
+ }
29
+ },
30
+ defaultOptions: [{ hooks: DEFAULT_HOOK_NAMES }],
31
+ create(context, [options]) {
32
+ return { CallExpression(node) {
33
+ if (!isReactHook(node.callee, options.hooks)) return;
34
+ const { typeArguments } = node;
35
+ if (!typeArguments) return;
36
+ const [typeAnnotation] = typeArguments.params;
37
+ /* v8 ignore if -- @preserve */
38
+ if (!typeAnnotation) return;
39
+ if (typeAnnotation.type !== AST_NODE_TYPES.TSTypeReference) return;
40
+ if (typeAnnotation.typeName.type !== AST_NODE_TYPES.Identifier) return;
41
+ const typeAnnotationText = context.sourceCode.getText(typeAnnotation);
42
+ const [arg] = node.arguments;
43
+ if (!arg) return;
44
+ const expr = extractExpression(arg);
45
+ if (!expr) return;
46
+ if (expr.type !== AST_NODE_TYPES.NewExpression) return;
47
+ if (expr.callee.type !== AST_NODE_TYPES.Identifier) return;
48
+ if (expr.callee.name !== typeAnnotation.typeName.name) return;
49
+ if (!expr.typeArguments) {
50
+ if (!typeAnnotation.typeArguments) {
51
+ context.report({
52
+ node,
53
+ messageId: "removeObviousInferable",
54
+ data: { typeAnnotationText },
55
+ *fix(fixer) {
56
+ yield fixer.remove(typeArguments);
57
+ yield fixer.replaceText(expr.callee, typeAnnotationText);
58
+ }
59
+ });
60
+ return;
61
+ }
62
+ context.report({
63
+ node,
64
+ messageId: "useGenericConstructor",
65
+ data: { typeAnnotationText },
66
+ *fix(fixer) {
67
+ yield fixer.remove(typeArguments);
68
+ yield fixer.replaceText(expr.callee, typeAnnotationText);
69
+ }
70
+ });
71
+ return;
72
+ }
73
+ const txt = context.sourceCode.getText(expr.typeArguments);
74
+ if (typeAnnotationText !== `${expr.callee.name}${txt}`) return;
75
+ context.report({
76
+ node: typeAnnotation,
77
+ messageId: "noInferable",
78
+ fix(fixer) {
79
+ return fixer.remove(typeArguments);
80
+ }
81
+ });
82
+ } };
83
+ }
84
+ });
85
+ function isReactHook(callee, hooks) {
86
+ if (callee.type === AST_NODE_TYPES.Identifier && hooks.includes(callee.name)) return true;
87
+ if (callee.type !== AST_NODE_TYPES.MemberExpression) return false;
88
+ if (callee.object.type !== AST_NODE_TYPES.Identifier) return false;
89
+ if (callee.property.type !== AST_NODE_TYPES.Identifier) return false;
90
+ if (callee.object.name !== "React") return false;
91
+ return hooks.includes(callee.property.name);
92
+ }
93
+ function extractExpression(expr) {
94
+ if (expr.type !== AST_NODE_TYPES.FunctionExpression && expr.type !== AST_NODE_TYPES.ArrowFunctionExpression) return expr;
95
+ if (expr.body.type !== AST_NODE_TYPES.BlockStatement) return expr.body;
96
+ const returnStatements = expr.body.body.filter((stmt) => stmt.type === AST_NODE_TYPES.ReturnStatement);
97
+ if (returnStatements.length > 1) return null;
98
+ const [returnStatement] = returnStatements;
99
+ if (!returnStatement) return null;
100
+ return returnStatement.argument;
101
+ }
102
+ //#endregion
103
+ export { generic_constructor_with_hook_default as default };
@@ -1,8 +1,7 @@
1
1
  import { createRule } from "../utils/createRule.mjs";
2
2
  import path from "node:path";
3
3
  import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
4
- import * as ts from "typescript";
5
-
4
+ import * as ts$1 from "typescript";
6
5
  //#region lib/rules/idiomatic-cast.ts
7
6
  const { name } = path.parse(import.meta.filename);
8
7
  var idiomatic_cast_default = createRule({
@@ -25,9 +24,7 @@ var idiomatic_cast_default = createRule({
25
24
  if (node.callee.name !== "String") return;
26
25
  const [arg] = node.arguments;
27
26
  if (!arg) return;
28
- const argType = ESLintUtils.getParserServices(context).getTypeAtLocation(arg);
29
- if (argType.isUnion()) return;
30
- if (!hasToString(argType)) return;
27
+ if (!hasToString(ESLintUtils.getParserServices(context).getTypeAtLocation(arg))) return;
31
28
  context.report({
32
29
  node,
33
30
  messageId: "useToString",
@@ -41,14 +38,14 @@ var idiomatic_cast_default = createRule({
41
38
  }
42
39
  });
43
40
  function hasToString(argType) {
44
- if (argType.flags & ts.TypeFlags.NumberLike) return true;
45
- if (argType.flags & ts.TypeFlags.BooleanLike) return true;
46
- if (argType.flags & ts.TypeFlags.BigIntLike) return true;
41
+ if (argType.isUnion()) return argType.types.every((t) => hasToString(t) || (t.flags & ts$1.TypeFlags.StringLike) !== 0);
42
+ if (argType.flags & ts$1.TypeFlags.NumberLike) return true;
43
+ if (argType.flags & ts$1.TypeFlags.BooleanLike) return true;
44
+ if (argType.flags & ts$1.TypeFlags.BigIntLike) return true;
47
45
  if (typeof argType.symbol === "undefined") return false;
48
46
  if (argType.symbol.getName() === "BigInt") return true;
49
47
  if (argType.symbol.getName() === "Date") return true;
50
48
  return false;
51
49
  }
52
-
53
50
  //#endregion
54
- export { idiomatic_cast_default as default };
51
+ export { idiomatic_cast_default as default };
@@ -1,63 +1,118 @@
1
- import { _default } from "./de-morgan.mjs";
2
- import { _default as _default$1 } from "./distribute-boolean-casts.mjs";
3
- import { _default as _default$2 } from "./duplicate-destructuring.mjs";
4
- import { _default as _default$3 } from "./idiomatic-cast.mjs";
5
- import { _default as _default$4 } from "./no-constant-template-expression.mjs";
6
- import { _default as _default$5 } from "./no-convoluted-logical-expressions.mjs";
7
- import { _default as _default$6 } from "./no-custom-url-parsing.mjs";
8
- import { _default as _default$7 } from "./no-disallowed-warning-comments.mjs";
9
- import { _default as _default$8 } from "./no-duplicated-return.mjs";
10
- import { _default as _default$9 } from "./no-else-break.mjs";
11
- import { _default as _default$10 } from "./no-else-continue.mjs";
12
- import { _default as _default$11 } from "./no-else-return.mjs";
13
- import { _default as _default$12 } from "./no-else-throw.mjs";
14
- import { _default as _default$13 } from "./no-empty-attribute.mjs";
15
- import { _default as _default$14 } from "./no-empty-comment.mjs";
16
- import { _default as _default$15 } from "./no-empty-jsx-expression.mjs";
17
- import { _default as _default$16 } from "./no-empty-literal-iteration.mjs";
18
- import { _default as _default$17 } from "./no-extra-false-fallback.mjs";
19
- import { _default as _default$18 } from "./no-extra-nested-boolean-cast.mjs";
20
- import { _default as _default$19 } from "./no-first-last.mjs";
21
- import { _default as _default$20 } from "./no-float-length-check.mjs";
22
- import { _default as _default$21 } from "./no-huge-try-block.mjs";
23
- import { _default as _default$22 } from "./no-inline-jsdoc-tag.mjs";
24
- import { _default as _default$23 } from "./no-invalid-date-literal.mjs";
25
- import { _default as _default$24 } from "./no-jsx-statement.mjs";
26
- import { _default as _default$25 } from "./no-mutable-literal-fill.mjs";
27
- import { _default as _default$26 } from "./no-numbered-comments.mjs";
28
- import { _default as _default$27 } from "./no-obvious-any.mjs";
29
- import { _default as _default$28 } from "./no-optional-type-guard-param.mjs";
30
- import { _default as _default$29 } from "./no-out-of-order-comments.mjs";
31
- import { _default as _default$30 } from "./no-possibly-nullish-equality.mjs";
32
- import { _default as _default$31 } from "./no-redundant-function-declaration.mjs";
33
- import { _default as _default$32 } from "./no-return-to-void.mjs";
34
- import { _default as _default$33 } from "./no-self-object-assign.mjs";
35
- import { _default as _default$34 } from "./no-sloppy-length-check.mjs";
36
- import { _default as _default$35 } from "./no-suspicious-jsx-semicolon.mjs";
37
- import { _default as _default$36 } from "./no-ternary-return.mjs";
38
- import { _default as _default$37 } from "./no-unassigned-todo.mjs";
39
- import { _default as _default$38 } from "./no-unbound-catch-error.mjs";
40
- import { _default as _default$39 } from "./no-unused-param-read.mjs";
41
- import { _default as _default$40 } from "./no-useless-computed-key.mjs";
42
- import { _default as _default$41 } from "./no-useless-iife.mjs";
43
- import { _default as _default$42 } from "./no-useless-logical-fallback.mjs";
44
- import { _default as _default$43 } from "./no-useless-return-undefined.mjs";
45
- import { _default as _default$44 } from "./no-useless-use-strict.mjs";
46
- import { _default as _default$45 } from "./no-useless-usememo.mjs";
47
- import { _default as _default$46 } from "./no-whitespace-property.mjs";
48
- import { _default as _default$47 } from "./optional-call-expression.mjs";
49
- import { _default as _default$48 } from "./prefer-catch-method.mjs";
50
- import { _default as _default$49 } from "./prefer-early-return.mjs";
51
- import { _default as _default$50 } from "./prefer-repeat.mjs";
52
- import { _default as _default$51 } from "./primitive-valueof.mjs";
53
- import { _default as _default$52 } from "./suspicious-map-length.mjs";
54
- import { _default as _default$53 } from "./unsafe-asserted-chain.mjs";
55
- import { _default as _default$54 } from "./unused-object-assign.mjs";
56
- import { _default as _default$55 } from "./useless-intermediary-variable.mjs";
1
+ import { _default } from "./array-from-array.mjs";
2
+ import { _default as _default$1 } from "./as-unknown-as.mjs";
3
+ import { _default as _default$2 } from "./await-promise-resolve.mjs";
4
+ import { _default as _default$3 } from "./boolean-coalescing.mjs";
5
+ import { _default as _default$4 } from "./comment-duplicate-leading-space.mjs";
6
+ import { _default as _default$5 } from "./conditional-boolean.mjs";
7
+ import { _default as _default$6 } from "./constant-boolean-cast.mjs";
8
+ import { _default as _default$7 } from "./de-morgan.mjs";
9
+ import { _default as _default$8 } from "./discarded-expression-statement.mjs";
10
+ import { _default as _default$9 } from "./distribute-boolean-casts.mjs";
11
+ import { _default as _default$10 } from "./duplicate-destructuring.mjs";
12
+ import { _default as _default$11 } from "./duplicate-object-spread.mjs";
13
+ import { _default as _default$12 } from "./e.mjs";
14
+ import { _default as _default$13 } from "./empty-for.mjs";
15
+ import { _default as _default$14 } from "./enum-member.mjs";
16
+ import { _default as _default$15 } from "./eqeq-null.mjs";
17
+ import { _default as _default$16 } from "./exact-string-regex.mjs";
18
+ import { _default as _default$17 } from "./export-using.mjs";
19
+ import { _default as _default$18 } from "./generic-constructor-with-hook.mjs";
20
+ import { _default as _default$19 } from "./idiomatic-cast.mjs";
21
+ import { _default as _default$20 } from "./inferable-type-predicate.mjs";
22
+ import { _default as _default$21 } from "./inner-as-const.mjs";
23
+ import { _default as _default$22 } from "./jsx-tostring.mjs";
24
+ import { _default as _default$23 } from "./literal-destructuring.mjs";
25
+ import { _default as _default$24 } from "./named-export-with-side-effects.mjs";
26
+ import { _default as _default$25 } from "./nested-reduce.mjs";
27
+ import { _default as _default$26 } from "./nested-try-catch.mjs";
28
+ import { _default as _default$27 } from "./no-commented-out-comment.mjs";
29
+ import { _default as _default$28 } from "./no-constant-template-expression.mjs";
30
+ import { _default as _default$29 } from "./no-constructed-error-cause.mjs";
31
+ import { _default as _default$30 } from "./no-convoluted-boolean-expressions.mjs";
32
+ import { _default as _default$31 } from "./no-convoluted-logical-expressions.mjs";
33
+ import { _default as _default$32 } from "./no-custom-url-parsing.mjs";
34
+ import { _default as _default$33 } from "./no-disallowed-warning-comments.mjs";
35
+ import { _default as _default$34 } from "./no-duplicated-return.mjs";
36
+ import { _default as _default$35 } from "./no-else-break.mjs";
37
+ import { _default as _default$36 } from "./no-else-continue.mjs";
38
+ import { _default as _default$37 } from "./no-else-never.mjs";
39
+ import { _default as _default$38 } from "./no-else-return.mjs";
40
+ import { _default as _default$39 } from "./no-else-throw.mjs";
41
+ import { _default as _default$40 } from "./no-empty-attribute.mjs";
42
+ import { _default as _default$41 } from "./no-empty-comment.mjs";
43
+ import { _default as _default$42 } from "./no-empty-jsx-expression.mjs";
44
+ import { _default as _default$43 } from "./no-empty-literal-iteration.mjs";
45
+ import { _default as _default$44 } from "./no-extra-false-fallback.mjs";
46
+ import { _default as _default$45 } from "./no-extra-nested-boolean-cast.mjs";
47
+ import { _default as _default$46 } from "./no-first-last.mjs";
48
+ import { _default as _default$47 } from "./no-float-length-check.mjs";
49
+ import { _default as _default$48 } from "./no-huge-try-block.mjs";
50
+ import { _default as _default$49 } from "./no-huge-useeffect.mjs";
51
+ import { _default as _default$50 } from "./no-if-length-for.mjs";
52
+ import { _default as _default$51 } from "./no-inline-jsdoc-tag.mjs";
53
+ import { _default as _default$52 } from "./no-invalid-date-literal.mjs";
54
+ import { _default as _default$53 } from "./no-jsx-statement.mjs";
55
+ import { _default as _default$54 } from "./no-lax-array-type.mjs";
56
+ import { _default as _default$55 } from "./no-lax-return-type.mjs";
57
+ import { _default as _default$56 } from "./no-mutable-literal-fill.mjs";
58
+ import { _default as _default$57 } from "./no-nullish-ternary.mjs";
59
+ import { _default as _default$58 } from "./no-numbered-comments.mjs";
60
+ import { _default as _default$59 } from "./no-obvious-any.mjs";
61
+ import { _default as _default$60 } from "./no-optional-type-guard-param.mjs";
62
+ import { _default as _default$61 } from "./no-out-of-order-comments.mjs";
63
+ import { _default as _default$62 } from "./no-possibly-nullish-equality.mjs";
64
+ import { _default as _default$63 } from "./no-redundant-function-declaration.mjs";
65
+ import { _default as _default$64 } from "./no-return-to-void.mjs";
66
+ import { _default as _default$65 } from "./no-self-object-assign.mjs";
67
+ import { _default as _default$66 } from "./no-sloppy-length-check.mjs";
68
+ import { _default as _default$67 } from "./no-suspicious-jsx-semicolon.mjs";
69
+ import { _default as _default$68 } from "./no-ternary-return.mjs";
70
+ import { _default as _default$69 } from "./no-type-guard.mjs";
71
+ import { _default as _default$70 } from "./no-unassigned-todo.mjs";
72
+ import { _default as _default$71 } from "./no-unbound-catch-error.mjs";
73
+ import { _default as _default$72 } from "./no-unused-mutually-referential.mjs";
74
+ import { _default as _default$73 } from "./no-unused-param-read.mjs";
75
+ import { _default as _default$74 } from "./no-useless-computed-key.mjs";
76
+ import { _default as _default$75 } from "./no-useless-iife.mjs";
77
+ import { _default as _default$76 } from "./no-useless-logical-fallback.mjs";
78
+ import { _default as _default$77 } from "./no-useless-return-undefined.mjs";
79
+ import { _default as _default$78 } from "./no-useless-ts-check.mjs";
80
+ import { _default as _default$79 } from "./no-useless-use-strict.mjs";
81
+ import { _default as _default$80 } from "./no-useless-usememo.mjs";
82
+ import { _default as _default$81 } from "./no-whitespace-property.mjs";
83
+ import { _default as _default$82 } from "./nullish-object-spread.mjs";
84
+ import { _default as _default$83 } from "./optional-call-expression.mjs";
85
+ import { _default as _default$84 } from "./prefer-array-from.mjs";
86
+ import { _default as _default$85 } from "./prefer-catch-method.mjs";
87
+ import { _default as _default$86 } from "./prefer-early-return.mjs";
88
+ import { _default as _default$87 } from "./prefer-eqeq-null.mjs";
89
+ import { _default as _default$88 } from "./prefer-finally.mjs";
90
+ import { _default as _default$89 } from "./prefer-getorinsert.mjs";
91
+ import { _default as _default$90 } from "./prefer-has.mjs";
92
+ import { _default as _default$91 } from "./prefer-in.mjs";
93
+ import { _default as _default$92 } from "./prefer-object-keys-values.mjs";
94
+ import { _default as _default$93 } from "./prefer-repeat.mjs";
95
+ import { _default as _default$94 } from "./prefer-satisfies.mjs";
96
+ import { _default as _default$95 } from "./prefer-string-join.mjs";
97
+ import { _default as _default$96 } from "./primitive-valueof.mjs";
98
+ import { _default as _default$97 } from "./slim-try.mjs";
99
+ import { _default as _default$98 } from "./styled-button-has-type.mjs";
100
+ import { _default as _default$99 } from "./styled-transient-props.mjs";
101
+ import { _default as _default$100 } from "./suspicious-map-length.mjs";
102
+ import { _default as _default$101 } from "./template-tostring.mjs";
103
+ import { _default as _default$102 } from "./unsafe-asserted-chain.mjs";
104
+ import { _default as _default$103 } from "./unused-object-assign.mjs";
105
+ import { _default as _default$104 } from "./unused-object-freeze.mjs";
106
+ import { _default as _default$105 } from "./useless-as-const.mjs";
107
+ import { _default as _default$106 } from "./useless-assign.mjs";
108
+ import { _default as _default$107 } from "./useless-conditional-assign.mjs";
109
+ import { _default as _default$108 } from "./useless-intermediary-variable.mjs";
110
+ import { _default as _default$109 } from "./useless-mock.mjs";
111
+ import { _default as _default$110 } from "./useless-required.mjs";
57
112
 
58
113
  //#region lib/rules/index.d.ts
59
114
  declare namespace index_d_exports {
60
- export { _default as "de-morgan", _default$1 as "distribute-boolean-casts", _default$2 as "duplicate-destructuring", _default$3 as "idiomatic-cast", _default$4 as "no-constant-template-expression", _default$5 as "no-convoluted-logical-expressions", _default$6 as "no-custom-url-parsing", _default$7 as "no-disallowed-warning-comments", _default$8 as "no-duplicated-return", _default$9 as "no-else-break", _default$10 as "no-else-continue", _default$11 as "no-else-return", _default$12 as "no-else-throw", _default$13 as "no-empty-attribute", _default$14 as "no-empty-comment", _default$15 as "no-empty-jsx-expression", _default$16 as "no-empty-literal-iteration", _default$17 as "no-extra-false-fallback", _default$18 as "no-extra-nested-boolean-cast", _default$19 as "no-first-last", _default$20 as "no-float-length-check", _default$21 as "no-huge-try-block", _default$22 as "no-inline-jsdoc-tag", _default$23 as "no-invalid-date-literal", _default$24 as "no-jsx-statement", _default$25 as "no-mutable-literal-fill", _default$26 as "no-numbered-comments", _default$27 as "no-obvious-any", _default$28 as "no-optional-type-guard-param", _default$29 as "no-out-of-order-comments", _default$30 as "no-possibly-nullish-equality", _default$31 as "no-redundant-function-declaration", _default$32 as "no-return-to-void", _default$33 as "no-self-object-assign", _default$34 as "no-sloppy-length-check", _default$35 as "no-suspicious-jsx-semicolon", _default$36 as "no-ternary-return", _default$37 as "no-unassigned-todo", _default$38 as "no-unbound-catch-error", _default$39 as "no-unused-param-read", _default$40 as "no-useless-computed-key", _default$41 as "no-useless-iife", _default$42 as "no-useless-logical-fallback", _default$43 as "no-useless-return-undefined", _default$44 as "no-useless-use-strict", _default$45 as "no-useless-usememo", _default$46 as "no-whitespace-property", _default$47 as "optional-call-expression", _default$48 as "prefer-catch-method", _default$49 as "prefer-early-return", _default$50 as "prefer-repeat", _default$51 as "primitive-valueof", _default$52 as "suspicious-map-length", _default$53 as "unsafe-asserted-chain", _default$54 as "unused-object-assign", _default$55 as "useless-intermediary-variable" };
115
+ export { _default as "array-from-array", _default$1 as "as-unknown-as", _default$2 as "await-promise-resolve", _default$3 as "boolean-coalescing", _default$4 as "comment-duplicate-leading-space", _default$5 as "conditional-boolean", _default$6 as "constant-boolean-cast", _default$7 as "de-morgan", _default$8 as "discarded-expression-statement", _default$9 as "distribute-boolean-casts", _default$10 as "duplicate-destructuring", _default$11 as "duplicate-object-spread", _default$12 as e, _default$13 as "empty-for", _default$14 as "enum-member", _default$15 as "eqeq-null", _default$16 as "exact-string-regex", _default$17 as "export-using", _default$18 as "generic-constructor-with-hook", _default$19 as "idiomatic-cast", _default$20 as "inferable-type-predicate", _default$21 as "inner-as-const", _default$22 as "jsx-tostring", _default$23 as "literal-destructuring", _default$24 as "named-export-with-side-effects", _default$25 as "nested-reduce", _default$26 as "nested-try-catch", _default$27 as "no-commented-out-comment", _default$28 as "no-constant-template-expression", _default$29 as "no-constructed-error-cause", _default$30 as "no-convoluted-boolean-expressions", _default$31 as "no-convoluted-logical-expressions", _default$32 as "no-custom-url-parsing", _default$33 as "no-disallowed-warning-comments", _default$34 as "no-duplicated-return", _default$35 as "no-else-break", _default$36 as "no-else-continue", _default$37 as "no-else-never", _default$38 as "no-else-return", _default$39 as "no-else-throw", _default$40 as "no-empty-attribute", _default$41 as "no-empty-comment", _default$42 as "no-empty-jsx-expression", _default$43 as "no-empty-literal-iteration", _default$44 as "no-extra-false-fallback", _default$45 as "no-extra-nested-boolean-cast", _default$46 as "no-first-last", _default$47 as "no-float-length-check", _default$48 as "no-huge-try-block", _default$49 as "no-huge-useeffect", _default$50 as "no-if-length-for", _default$51 as "no-inline-jsdoc-tag", _default$52 as "no-invalid-date-literal", _default$53 as "no-jsx-statement", _default$54 as "no-lax-array-type", _default$55 as "no-lax-return-type", _default$56 as "no-mutable-literal-fill", _default$57 as "no-nullish-ternary", _default$58 as "no-numbered-comments", _default$59 as "no-obvious-any", _default$60 as "no-optional-type-guard-param", _default$61 as "no-out-of-order-comments", _default$62 as "no-possibly-nullish-equality", _default$63 as "no-redundant-function-declaration", _default$64 as "no-return-to-void", _default$65 as "no-self-object-assign", _default$66 as "no-sloppy-length-check", _default$67 as "no-suspicious-jsx-semicolon", _default$68 as "no-ternary-return", _default$69 as "no-type-guard", _default$70 as "no-unassigned-todo", _default$71 as "no-unbound-catch-error", _default$72 as "no-unused-mutually-referential", _default$73 as "no-unused-param-read", _default$74 as "no-useless-computed-key", _default$75 as "no-useless-iife", _default$76 as "no-useless-logical-fallback", _default$77 as "no-useless-return-undefined", _default$78 as "no-useless-ts-check", _default$79 as "no-useless-use-strict", _default$80 as "no-useless-usememo", _default$81 as "no-whitespace-property", _default$82 as "nullish-object-spread", _default$83 as "optional-call-expression", _default$84 as "prefer-array-from", _default$85 as "prefer-catch-method", _default$86 as "prefer-early-return", _default$87 as "prefer-eqeq-null", _default$88 as "prefer-finally", _default$89 as "prefer-getorinsert", _default$90 as "prefer-has", _default$91 as "prefer-in", _default$92 as "prefer-object-keys-values", _default$93 as "prefer-repeat", _default$94 as "prefer-satisfies", _default$95 as "prefer-string-join", _default$96 as "primitive-valueof", _default$97 as "slim-try", _default$98 as "styled-button-has-type", _default$99 as "styled-transient-props", _default$100 as "suspicious-map-length", _default$101 as "template-tostring", _default$102 as "unsafe-asserted-chain", _default$103 as "unused-object-assign", _default$104 as "unused-object-freeze", _default$105 as "useless-as-const", _default$106 as "useless-assign", _default$107 as "useless-conditional-assign", _default$108 as "useless-intermediary-variable", _default$109 as "useless-mock", _default$110 as "useless-required" };
61
116
  }
62
117
  //#endregion
63
118
  export { index_d_exports };