@ttsc/lint 0.14.0-dev.20260529.2 → 0.14.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.
Files changed (380) hide show
  1. package/README.md +23 -25
  2. package/lib/defaultFormat.d.ts +10 -6
  3. package/lib/defaultFormat.js +10 -6
  4. package/lib/defaultFormat.js.map +1 -1
  5. package/lib/structures/ITtscLintConfig.d.ts +5 -5
  6. package/lib/structures/TtscLintRuleSetting.d.ts +19 -19
  7. package/lib/structures/{ITtscLintFormat.d.ts → format/ITtscLintFormat.d.ts} +45 -70
  8. package/lib/structures/format/ITtscLintFormat.js.map +1 -0
  9. package/lib/structures/format/ITtscLintFormatJsDoc.d.ts +15 -0
  10. package/lib/structures/format/ITtscLintFormatJsDoc.js +3 -0
  11. package/lib/structures/format/ITtscLintFormatJsDoc.js.map +1 -0
  12. package/lib/structures/format/ITtscLintFormatSortImports.d.ts +54 -0
  13. package/lib/structures/format/ITtscLintFormatSortImports.js +3 -0
  14. package/lib/structures/format/ITtscLintFormatSortImports.js.map +1 -0
  15. package/lib/structures/format/index.d.ts +3 -0
  16. package/lib/structures/format/index.js +20 -0
  17. package/lib/structures/format/index.js.map +1 -0
  18. package/lib/structures/index.d.ts +1 -1
  19. package/lib/structures/index.js +1 -1
  20. package/lib/structures/index.js.map +1 -1
  21. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +18 -27
  22. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +4 -5
  23. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -1
  24. package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +29 -33
  25. package/lib/structures/rules/ITtscLintContributorRules.d.ts +6 -7
  26. package/lib/structures/rules/ITtscLintCoreRules.d.ts +380 -408
  27. package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +5 -5
  28. package/lib/structures/rules/ITtscLintCypressRuleOptions.js +2 -2
  29. package/lib/structures/rules/ITtscLintCypressRules.d.ts +34 -38
  30. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +21 -24
  31. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +2 -2
  32. package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +51 -56
  33. package/lib/structures/rules/ITtscLintJestRules.d.ts +63 -74
  34. package/lib/structures/rules/ITtscLintJsdocRules.d.ts +47 -54
  35. package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +94 -102
  36. package/lib/structures/rules/ITtscLintNextjsRules.d.ts +50 -55
  37. package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +104 -122
  38. package/lib/structures/rules/ITtscLintPromiseRules.d.ts +62 -71
  39. package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +4 -4
  40. package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +17 -19
  41. package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +8 -10
  42. package/lib/structures/rules/ITtscLintReactRuleOptions.js +1 -2
  43. package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -1
  44. package/lib/structures/rules/ITtscLintReactRules.d.ts +91 -104
  45. package/lib/structures/rules/ITtscLintRegexpRules.d.ts +46 -54
  46. package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +7 -8
  47. package/lib/structures/rules/ITtscLintSecurityRules.d.ts +45 -52
  48. package/lib/structures/rules/ITtscLintSolidRules.d.ts +53 -56
  49. package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +3 -4
  50. package/lib/structures/rules/ITtscLintStorybookRules.d.ts +60 -69
  51. package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +31 -37
  52. package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +2 -3
  53. package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +102 -119
  54. package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +460 -518
  55. package/lib/structures/rules/ITtscLintVitestRules.d.ts +43 -51
  56. package/linthost/config.go +89 -72
  57. package/linthost/config_format.go +265 -99
  58. package/linthost/directives.go +5 -1
  59. package/linthost/display_width.go +72 -0
  60. package/linthost/fix.go +26 -1
  61. package/linthost/format.go +222 -25
  62. package/linthost/format_editor_settings.go +262 -0
  63. package/linthost/lsp.go +8 -4
  64. package/linthost/print_dispatch.go +3 -0
  65. package/linthost/print_doc.go +13 -0
  66. package/linthost/print_engine.go +68 -11
  67. package/linthost/print_nodes_array.go +167 -5
  68. package/linthost/print_nodes_call.go +786 -77
  69. package/linthost/print_nodes_function.go +43 -0
  70. package/linthost/print_nodes_imports.go +64 -14
  71. package/linthost/print_nodes_list.go +214 -8
  72. package/linthost/print_nodes_object.go +14 -6
  73. package/linthost/print_nodes_ternary.go +147 -0
  74. package/linthost/rules_boundaries.go +400 -400
  75. package/linthost/rules_camelcase.go +81 -81
  76. package/linthost/rules_complexity.go +52 -51
  77. package/linthost/rules_consistent_return.go +81 -81
  78. package/linthost/rules_core_extra.go +472 -472
  79. package/linthost/rules_curly.go +43 -43
  80. package/linthost/rules_default_case.go +15 -15
  81. package/linthost/rules_default_case_last.go +22 -22
  82. package/linthost/rules_format_arrow_parens.go +213 -0
  83. package/linthost/rules_format_bracket_spacing.go +117 -0
  84. package/linthost/rules_format_clause_join.go +179 -0
  85. package/linthost/rules_format_declaration_header.go +664 -0
  86. package/linthost/rules_format_indent.go +616 -0
  87. package/linthost/rules_format_jsdoc.go +4 -4
  88. package/linthost/rules_format_orphan_semi.go +106 -0
  89. package/linthost/rules_format_parameter_properties.go +175 -0
  90. package/linthost/rules_format_print_width.go +180 -69
  91. package/linthost/rules_format_quote_props.go +169 -0
  92. package/linthost/rules_format_quotes.go +75 -29
  93. package/linthost/rules_format_semi.go +185 -10
  94. package/linthost/rules_format_sort_imports.go +517 -121
  95. package/linthost/rules_format_statement_split.go +368 -0
  96. package/linthost/rules_format_ternary_nullish_parens.go +77 -0
  97. package/linthost/rules_format_trailing_comma.go +21 -2
  98. package/linthost/rules_format_whitespace.go +336 -0
  99. package/linthost/rules_functional.go +688 -688
  100. package/linthost/rules_gap.go +146 -11
  101. package/linthost/rules_grouped_accessor_pairs.go +60 -60
  102. package/linthost/rules_guard_for_in.go +122 -122
  103. package/linthost/rules_id_length.go +44 -44
  104. package/linthost/rules_imports.go +11 -3
  105. package/linthost/rules_init_declarations.go +25 -25
  106. package/linthost/rules_jsx_a11y.go +844 -844
  107. package/linthost/rules_max_classes_per_file.go +24 -24
  108. package/linthost/rules_max_depth.go +43 -43
  109. package/linthost/rules_max_lines.go +53 -53
  110. package/linthost/rules_max_lines_per_function.go +28 -28
  111. package/linthost/rules_max_nested_callbacks.go +26 -26
  112. package/linthost/rules_max_params.go +20 -20
  113. package/linthost/rules_max_statements.go +29 -29
  114. package/linthost/rules_nextjs.go +5 -5
  115. package/linthost/rules_no_else_return.go +38 -38
  116. package/linthost/rules_no_empty_named_blocks.go +45 -45
  117. package/linthost/rules_no_import_assign.go +96 -96
  118. package/linthost/rules_no_invalid_this.go +19 -19
  119. package/linthost/rules_no_loop_func.go +43 -43
  120. package/linthost/rules_no_magic_numbers.go +60 -60
  121. package/linthost/rules_no_mixed_operators.go +44 -44
  122. package/linthost/rules_no_param_reassign.go +64 -64
  123. package/linthost/rules_no_restricted_imports.go +45 -45
  124. package/linthost/rules_no_restricted_syntax.go +17 -17
  125. package/linthost/rules_no_shadow.go +112 -112
  126. package/linthost/rules_no_unreachable.go +36 -36
  127. package/linthost/rules_no_useless_assignment.go +79 -79
  128. package/linthost/rules_no_useless_constructor.go +167 -167
  129. package/linthost/rules_no_useless_return.go +28 -28
  130. package/linthost/rules_prefer_arrow_callback.go +74 -74
  131. package/linthost/rules_prefer_destructuring.go +61 -61
  132. package/linthost/rules_prefer_named_capture_group.go +87 -87
  133. package/linthost/rules_prefer_rest_params.go +61 -61
  134. package/linthost/rules_promise.go +800 -800
  135. package/linthost/rules_react.go +600 -600
  136. package/linthost/rules_react_extras.go +162 -162
  137. package/linthost/rules_react_hooks.go +2 -2
  138. package/linthost/rules_react_perf.go +231 -231
  139. package/linthost/rules_regexp.go +293 -293
  140. package/linthost/rules_security.go +613 -613
  141. package/linthost/rules_sort_imports.go +37 -37
  142. package/linthost/rules_sort_keys.go +88 -88
  143. package/linthost/rules_suggestions.go +13 -0
  144. package/linthost/rules_ts.go +2 -2
  145. package/linthost/rules_ts_async.go +247 -247
  146. package/linthost/rules_ts_class_literal_property_style.go +64 -64
  147. package/linthost/rules_ts_consistent_type_exports.go +209 -209
  148. package/linthost/rules_ts_explicit_function_return_type.go +35 -35
  149. package/linthost/rules_ts_extra.go +6 -2
  150. package/linthost/rules_ts_no_base_to_string.go +140 -140
  151. package/linthost/rules_ts_no_confusing_void.go +28 -28
  152. package/linthost/rules_ts_no_deprecated.go +110 -110
  153. package/linthost/rules_ts_no_for_in_array.go +45 -45
  154. package/linthost/rules_ts_no_magic_numbers.go +67 -67
  155. package/linthost/rules_ts_no_meaningless_void_operator.go +44 -44
  156. package/linthost/rules_ts_no_misused_spread.go +64 -64
  157. package/linthost/rules_ts_no_redundant_type_constituents.go +72 -72
  158. package/linthost/rules_ts_no_restricted_types.go +28 -28
  159. package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +87 -87
  160. package/linthost/rules_ts_no_unnecessary_condition.go +184 -184
  161. package/linthost/rules_ts_no_unnecessary_qualifier.go +72 -72
  162. package/linthost/rules_ts_no_unnecessary_template_expression.go +120 -120
  163. package/linthost/rules_ts_no_unnecessary_type_arguments.go +171 -171
  164. package/linthost/rules_ts_no_unnecessary_type_assertion.go +90 -90
  165. package/linthost/rules_ts_no_unsafe_argument.go +50 -50
  166. package/linthost/rules_ts_no_unsafe_assignment.go +60 -60
  167. package/linthost/rules_ts_no_unsafe_call.go +40 -40
  168. package/linthost/rules_ts_no_unsafe_enum_comparison.go +147 -147
  169. package/linthost/rules_ts_no_unsafe_member_access.go +29 -29
  170. package/linthost/rules_ts_no_unsafe_return.go +64 -64
  171. package/linthost/rules_ts_no_unsafe_unary_minus.go +42 -42
  172. package/linthost/rules_ts_no_useless_constructor.go +20 -20
  173. package/linthost/rules_ts_non_nullable_type_assertion_style.go +60 -60
  174. package/linthost/rules_ts_parameter_properties.go +10 -10
  175. package/linthost/rules_ts_prefer_find.go +116 -116
  176. package/linthost/rules_ts_prefer_includes.go +173 -173
  177. package/linthost/rules_ts_prefer_nullish_coalescing.go +54 -54
  178. package/linthost/rules_ts_prefer_optional_chain.go +156 -156
  179. package/linthost/rules_ts_prefer_promise_reject_errors.go +104 -104
  180. package/linthost/rules_ts_prefer_readonly.go +31 -31
  181. package/linthost/rules_ts_prefer_reduce_type_parameter.go +74 -74
  182. package/linthost/rules_ts_prefer_regexp_exec.go +69 -69
  183. package/linthost/rules_ts_prefer_return_this_type.go +79 -79
  184. package/linthost/rules_ts_prefer_string_starts_ends_with.go +237 -237
  185. package/linthost/rules_ts_promise_function_async.go +41 -41
  186. package/linthost/rules_ts_related_getter_setter_pairs.go +61 -61
  187. package/linthost/rules_ts_require_array_sort_compare.go +58 -58
  188. package/linthost/rules_ts_restrict_plus_operands.go +82 -82
  189. package/linthost/rules_ts_restrict_template_expressions.go +50 -50
  190. package/linthost/rules_ts_simple.go +249 -249
  191. package/linthost/rules_ts_sort_type_constituents.go +88 -88
  192. package/linthost/rules_ts_strict_boolean_expressions.go +103 -103
  193. package/linthost/rules_ts_switch_exhaustiveness_check.go +90 -90
  194. package/linthost/rules_ts_unbound_method.go +65 -65
  195. package/linthost/rules_tsdoc.go +88 -88
  196. package/linthost/rules_unicorn_better_regex.go +1 -1
  197. package/linthost/rules_unicorn_catch_error_name.go +19 -19
  198. package/linthost/rules_unicorn_consistent_assert.go +20 -20
  199. package/linthost/rules_unicorn_consistent_date_clone.go +27 -27
  200. package/linthost/rules_unicorn_consistent_destructuring.go +3 -3
  201. package/linthost/rules_unicorn_consistent_empty_array_spread.go +34 -34
  202. package/linthost/rules_unicorn_consistent_existence_index_check.go +42 -42
  203. package/linthost/rules_unicorn_consistent_function_scoping.go +3 -3
  204. package/linthost/rules_unicorn_consistent_template_literal_escape.go +3 -3
  205. package/linthost/rules_unicorn_custom_error_definition.go +92 -92
  206. package/linthost/rules_unicorn_empty_brace_spaces.go +47 -47
  207. package/linthost/rules_unicorn_error_message.go +34 -34
  208. package/linthost/rules_unicorn_escape_case.go +14 -14
  209. package/linthost/rules_unicorn_expiring_todo_comments.go +36 -36
  210. package/linthost/rules_unicorn_explicit_length_check.go +51 -51
  211. package/linthost/rules_unicorn_filename_case.go +1 -1
  212. package/linthost/rules_unicorn_import_style.go +1 -1
  213. package/linthost/rules_unicorn_isolated_functions.go +2 -2
  214. package/linthost/rules_unicorn_new_for_builtins.go +49 -49
  215. package/linthost/rules_unicorn_no_abusive_eslint_disable.go +31 -31
  216. package/linthost/rules_unicorn_no_accessor_recursion.go +69 -69
  217. package/linthost/rules_unicorn_no_anonymous_default_export.go +40 -40
  218. package/linthost/rules_unicorn_no_array_callback_reference.go +33 -33
  219. package/linthost/rules_unicorn_no_array_for_each.go +14 -14
  220. package/linthost/rules_unicorn_no_array_method_this_argument.go +29 -29
  221. package/linthost/rules_unicorn_no_array_reduce.go +15 -15
  222. package/linthost/rules_unicorn_no_array_reverse.go +17 -17
  223. package/linthost/rules_unicorn_no_array_sort.go +17 -17
  224. package/linthost/rules_unicorn_no_await_expression_member.go +12 -12
  225. package/linthost/rules_unicorn_no_await_in_promise_methods.go +38 -38
  226. package/linthost/rules_unicorn_no_console_spaces.go +30 -30
  227. package/linthost/rules_unicorn_no_document_cookie.go +13 -13
  228. package/linthost/rules_unicorn_no_empty_file.go +16 -16
  229. package/linthost/rules_unicorn_no_for_loop.go +58 -58
  230. package/linthost/rules_unicorn_no_hex_escape.go +11 -11
  231. package/linthost/rules_unicorn_no_immediate_mutation.go +55 -55
  232. package/linthost/rules_unicorn_no_instanceof_builtins.go +34 -34
  233. package/linthost/rules_unicorn_no_invalid_fetch_options.go +52 -52
  234. package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +25 -25
  235. package/linthost/rules_unicorn_no_keyword_prefix.go +56 -56
  236. package/linthost/rules_unicorn_no_lonely_if.go +21 -21
  237. package/linthost/rules_unicorn_no_magic_array_flat_depth.go +22 -22
  238. package/linthost/rules_unicorn_no_named_default.go +25 -25
  239. package/linthost/rules_unicorn_no_negated_condition.go +54 -54
  240. package/linthost/rules_unicorn_no_negation_in_equality_check.go +23 -23
  241. package/linthost/rules_unicorn_no_nested_ternary.go +15 -15
  242. package/linthost/rules_unicorn_no_new_array.go +5 -5
  243. package/linthost/rules_unicorn_no_new_buffer.go +5 -5
  244. package/linthost/rules_unicorn_no_null.go +2 -2
  245. package/linthost/rules_unicorn_no_object_as_default_parameter.go +19 -19
  246. package/linthost/rules_unicorn_no_process_exit.go +17 -17
  247. package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +29 -29
  248. package/linthost/rules_unicorn_no_static_only_class.go +27 -27
  249. package/linthost/rules_unicorn_no_thenable.go +47 -47
  250. package/linthost/rules_unicorn_no_this_assignment.go +10 -10
  251. package/linthost/rules_unicorn_no_typeof_undefined.go +31 -31
  252. package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +23 -23
  253. package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +37 -37
  254. package/linthost/rules_unicorn_no_unnecessary_await.go +24 -24
  255. package/linthost/rules_unicorn_no_unnecessary_slice_end.go +22 -22
  256. package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +67 -67
  257. package/linthost/rules_unicorn_no_unreadable_iife.go +22 -22
  258. package/linthost/rules_unicorn_no_useless_collection_argument.go +34 -34
  259. package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +18 -18
  260. package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +49 -49
  261. package/linthost/rules_unicorn_no_useless_iterator_to_array.go +41 -41
  262. package/linthost/rules_unicorn_no_useless_length_check.go +82 -82
  263. package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +42 -42
  264. package/linthost/rules_unicorn_no_useless_spread.go +38 -38
  265. package/linthost/rules_unicorn_no_useless_switch_case.go +29 -29
  266. package/linthost/rules_unicorn_no_useless_undefined.go +25 -25
  267. package/linthost/rules_unicorn_no_zero_fractions.go +17 -17
  268. package/linthost/rules_unicorn_number_literal_case.go +33 -33
  269. package/linthost/rules_unicorn_numeric_separators_style.go +36 -36
  270. package/linthost/rules_unicorn_prefer_add_event_listener.go +30 -30
  271. package/linthost/rules_unicorn_prefer_array_find.go +27 -27
  272. package/linthost/rules_unicorn_prefer_array_flat.go +25 -25
  273. package/linthost/rules_unicorn_prefer_array_flat_map.go +37 -37
  274. package/linthost/rules_unicorn_prefer_array_index_of.go +108 -108
  275. package/linthost/rules_unicorn_prefer_array_some.go +43 -43
  276. package/linthost/rules_unicorn_prefer_at.go +42 -42
  277. package/linthost/rules_unicorn_prefer_bigint_literals.go +42 -42
  278. package/linthost/rules_unicorn_prefer_blob_reading_methods.go +15 -15
  279. package/linthost/rules_unicorn_prefer_class_fields.go +57 -57
  280. package/linthost/rules_unicorn_prefer_classlist_toggle.go +76 -76
  281. package/linthost/rules_unicorn_prefer_code_point.go +21 -21
  282. package/linthost/rules_unicorn_prefer_date_now.go +47 -47
  283. package/linthost/rules_unicorn_prefer_default_parameters.go +96 -96
  284. package/linthost/rules_unicorn_prefer_dom_node_append.go +14 -14
  285. package/linthost/rules_unicorn_prefer_dom_node_dataset.go +27 -27
  286. package/linthost/rules_unicorn_prefer_dom_node_remove.go +17 -17
  287. package/linthost/rules_unicorn_prefer_dom_node_text_content.go +11 -11
  288. package/linthost/rules_unicorn_prefer_event_target.go +10 -10
  289. package/linthost/rules_unicorn_prefer_export_from.go +99 -99
  290. package/linthost/rules_unicorn_prefer_global_this.go +91 -91
  291. package/linthost/rules_unicorn_prefer_import_meta_properties.go +38 -38
  292. package/linthost/rules_unicorn_prefer_includes.go +108 -108
  293. package/linthost/rules_unicorn_prefer_json_parse_buffer.go +37 -37
  294. package/linthost/rules_unicorn_prefer_keyboard_event_key.go +10 -10
  295. package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +20 -20
  296. package/linthost/rules_unicorn_prefer_math_min_max.go +33 -33
  297. package/linthost/rules_unicorn_prefer_math_trunc.go +32 -32
  298. package/linthost/rules_unicorn_prefer_modern_dom_apis.go +18 -18
  299. package/linthost/rules_unicorn_prefer_modern_math_apis.go +38 -38
  300. package/linthost/rules_unicorn_prefer_module.go +22 -22
  301. package/linthost/rules_unicorn_prefer_native_coercion_functions.go +73 -73
  302. package/linthost/rules_unicorn_prefer_negative_index.go +46 -46
  303. package/linthost/rules_unicorn_prefer_node_protocol.go +90 -90
  304. package/linthost/rules_unicorn_prefer_number_properties.go +57 -57
  305. package/linthost/rules_unicorn_prefer_object_from_entries.go +26 -26
  306. package/linthost/rules_unicorn_prefer_optional_catch_binding.go +24 -24
  307. package/linthost/rules_unicorn_prefer_prototype_methods.go +25 -25
  308. package/linthost/rules_unicorn_prefer_query_selector.go +25 -25
  309. package/linthost/rules_unicorn_prefer_reflect_apply.go +10 -10
  310. package/linthost/rules_unicorn_prefer_regexp_test_rule.go +47 -47
  311. package/linthost/rules_unicorn_prefer_response_static_json.go +26 -26
  312. package/linthost/rules_unicorn_prefer_set_has.go +16 -16
  313. package/linthost/rules_unicorn_prefer_set_size.go +22 -22
  314. package/linthost/rules_unicorn_prefer_simple_condition_first.go +3 -3
  315. package/linthost/rules_unicorn_prefer_single_call.go +59 -59
  316. package/linthost/rules_unicorn_prefer_spread.go +24 -24
  317. package/linthost/rules_unicorn_prefer_string_raw.go +12 -12
  318. package/linthost/rules_unicorn_prefer_string_replace_all.go +46 -46
  319. package/linthost/rules_unicorn_prefer_string_slice.go +17 -17
  320. package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +104 -104
  321. package/linthost/rules_unicorn_prefer_string_trim_start_end.go +21 -21
  322. package/linthost/rules_unicorn_prefer_structured_clone.go +36 -36
  323. package/linthost/rules_unicorn_prefer_switch.go +65 -65
  324. package/linthost/rules_unicorn_prefer_ternary.go +35 -35
  325. package/linthost/rules_unicorn_prefer_top_level_await.go +34 -34
  326. package/linthost/rules_unicorn_prefer_type_error.go +84 -84
  327. package/linthost/rules_unicorn_prevent_abbreviations.go +68 -68
  328. package/linthost/rules_unicorn_relative_url_style.go +19 -19
  329. package/linthost/rules_unicorn_require_array_join_separator.go +18 -18
  330. package/linthost/rules_unicorn_require_module_attributes.go +25 -25
  331. package/linthost/rules_unicorn_require_module_specifiers.go +28 -28
  332. package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +18 -18
  333. package/linthost/rules_unicorn_require_post_message_target_origin.go +18 -18
  334. package/linthost/rules_unicorn_string_content.go +1 -1
  335. package/linthost/rules_unicorn_switch_case_braces.go +16 -16
  336. package/linthost/rules_unicorn_switch_case_break_position.go +3 -3
  337. package/linthost/rules_unicorn_template_indent.go +1 -1
  338. package/linthost/rules_unicorn_text_encoding_identifier_case.go +36 -36
  339. package/linthost/rules_unicorn_throw_new_error.go +30 -30
  340. package/linthost/rules_var.go +273 -3
  341. package/package.json +3 -3
  342. package/src/defaultFormat.ts +11 -7
  343. package/src/structures/ITtscLintConfig.ts +5 -5
  344. package/src/structures/TtscLintRuleSetting.ts +19 -19
  345. package/src/structures/{ITtscLintFormat.ts → format/ITtscLintFormat.ts} +48 -75
  346. package/src/structures/format/ITtscLintFormatJsDoc.ts +16 -0
  347. package/src/structures/format/ITtscLintFormatSortImports.ts +62 -0
  348. package/src/structures/format/index.ts +3 -0
  349. package/src/structures/index.ts +1 -1
  350. package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +20 -31
  351. package/src/structures/rules/ITtscLintBoundariesRules.ts +32 -36
  352. package/src/structures/rules/ITtscLintContributorRules.ts +6 -7
  353. package/src/structures/rules/ITtscLintCoreRules.ts +380 -408
  354. package/src/structures/rules/ITtscLintCypressRuleOptions.ts +5 -5
  355. package/src/structures/rules/ITtscLintCypressRules.ts +34 -38
  356. package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +28 -41
  357. package/src/structures/rules/ITtscLintFunctionalRules.ts +51 -56
  358. package/src/structures/rules/ITtscLintJestRules.ts +63 -74
  359. package/src/structures/rules/ITtscLintJsdocRules.ts +47 -54
  360. package/src/structures/rules/ITtscLintJsxA11yRules.ts +94 -102
  361. package/src/structures/rules/ITtscLintNextjsRules.ts +50 -55
  362. package/src/structures/rules/ITtscLintPlaywrightRules.ts +104 -122
  363. package/src/structures/rules/ITtscLintPromiseRules.ts +62 -71
  364. package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +4 -4
  365. package/src/structures/rules/ITtscLintReactPerfRules.ts +17 -19
  366. package/src/structures/rules/ITtscLintReactRuleOptions.ts +8 -10
  367. package/src/structures/rules/ITtscLintReactRules.ts +91 -104
  368. package/src/structures/rules/ITtscLintRegexpRules.ts +46 -54
  369. package/src/structures/rules/ITtscLintRuleOptionsMap.ts +7 -8
  370. package/src/structures/rules/ITtscLintSecurityRules.ts +45 -52
  371. package/src/structures/rules/ITtscLintSolidRules.ts +53 -56
  372. package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +3 -4
  373. package/src/structures/rules/ITtscLintStorybookRules.ts +60 -69
  374. package/src/structures/rules/ITtscLintTanstackQueryRules.ts +31 -37
  375. package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +2 -3
  376. package/src/structures/rules/ITtscLintTestingLibraryRules.ts +102 -119
  377. package/src/structures/rules/ITtscLintTypeScriptRules.ts +460 -518
  378. package/src/structures/rules/ITtscLintVitestRules.ts +43 -51
  379. package/lib/structures/ITtscLintFormat.js.map +0 -1
  380. /package/lib/structures/{ITtscLintFormat.js → format/ITtscLintFormat.js} +0 -0
@@ -1,53 +1,51 @@
1
1
  import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
2
2
 
3
3
  /**
4
- * Security-focused TypeScript source rules from
5
- * `eslint-plugin-security`.
4
+ * Security-focused TypeScript source rules from `eslint-plugin-security`.
6
5
  *
7
- * Reports likely security smells — non-literal sinks for eval, file
8
- * I/O, regex construction, child-process spawning, cryptographic
9
- * primitives — that warrant human review even if no exploit is
10
- * statically provable.
6
+ * Reports likely security smells — non-literal sinks for eval, file I/O, regex
7
+ * construction, child-process spawning, cryptographic primitives — that warrant
8
+ * human review even if no exploit is statically provable.
11
9
  *
12
- * Treat findings as *hints*, not proofs.
10
+ * Treat findings as _hints_, not proofs.
13
11
  *
14
12
  * @reference https://github.com/eslint-community/eslint-plugin-security
15
13
  */
16
14
  export interface ITtscLintSecurityRules {
17
15
  /**
18
- * Detect Trojan-Source bidi control characters (U+202A, U+202E,
19
- * ...) hidden inside source.
16
+ * Detect Trojan-Source bidi control characters (U+202A, U+202E, ...) hidden
17
+ * inside source.
20
18
  *
21
19
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-bidi-characters.md
22
20
  */
23
21
  "security/detect-bidi-characters"?: TtscLintRuleSetting;
24
22
 
25
23
  /**
26
- * Detect Buffer reads/writes called with `noAssert = true`, which
27
- * skips Node's offset/length bounds checks.
24
+ * Detect Buffer reads/writes called with `noAssert = true`, which skips
25
+ * Node's offset/length bounds checks.
28
26
  *
29
- * The flag lets the offset slide past the buffer end and read
30
- * unrelated memory, so production code should never set it.
27
+ * The flag lets the offset slide past the buffer end and read unrelated
28
+ * memory, so production code should never set it.
31
29
  *
32
30
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-buffer-noassert.md
33
31
  */
34
32
  "security/detect-buffer-noassert"?: TtscLintRuleSetting;
35
33
 
36
34
  /**
37
- * Detect any import of `child_process` and any `exec`/`execSync`
38
- * call whose command argument is not a string literal.
35
+ * Detect any import of `child_process` and any `exec`/`execSync` call whose
36
+ * command argument is not a string literal.
39
37
  *
40
- * Non-literal commands are the canonical shell-injection sink in
41
- * Node services.
38
+ * Non-literal commands are the canonical shell-injection sink in Node
39
+ * services.
42
40
  *
43
41
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-child-process.md
44
42
  */
45
43
  "security/detect-child-process"?: TtscLintRuleSetting;
46
44
 
47
45
  /**
48
- * Detect assignments setting `escapeMarkup = false` (or the
49
- * equivalent option on Handlebars/Mustache-style engines), which
50
- * turns off HTML entity escaping in template output.
46
+ * Detect assignments setting `escapeMarkup = false` (or the equivalent option
47
+ * on Handlebars/Mustache-style engines), which turns off HTML entity escaping
48
+ * in template output.
51
49
  *
52
50
  * Result: an unguarded XSS sink for caller-controlled strings.
53
51
  *
@@ -59,16 +57,15 @@ export interface ITtscLintSecurityRules {
59
57
  * Detect `eval(...)` calls whose argument is not a string literal.
60
58
  *
61
59
  * Any expression argument means caller-controlled data can reach a
62
- * code-execution sink. The rule flags the call shape, not proven
63
- * taint.
60
+ * code-execution sink. The rule flags the call shape, not proven taint.
64
61
  *
65
62
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-eval-with-expression.md
66
63
  */
67
64
  "security/detect-eval-with-expression"?: TtscLintRuleSetting;
68
65
 
69
66
  /**
70
- * Detect `new Buffer(input)` constructions with non-literal
71
- * input — historical source of allocation-disclosure bugs.
67
+ * Detect `new Buffer(input)` constructions with non-literal input —
68
+ * historical source of allocation-disclosure bugs.
72
69
  *
73
70
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-new-buffer.md
74
71
  */
@@ -83,43 +80,41 @@ export interface ITtscLintSecurityRules {
83
80
  "security/detect-no-csrf-before-method-override"?: TtscLintRuleSetting;
84
81
 
85
82
  /**
86
- * Detect `fs` calls (`readFile`, `writeFile`, `createReadStream`,
87
- * ...) whose filename argument is not a string literal.
83
+ * Detect `fs` calls (`readFile`, `writeFile`, `createReadStream`, ...) whose
84
+ * filename argument is not a string literal.
88
85
  *
89
- * Dynamic filenames are the standard path-traversal sink; sanitise
90
- * or allow-list before the call.
86
+ * Dynamic filenames are the standard path-traversal sink; sanitise or
87
+ * allow-list before the call.
91
88
  *
92
89
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-non-literal-fs-filename.md
93
90
  */
94
91
  "security/detect-non-literal-fs-filename"?: TtscLintRuleSetting;
95
92
 
96
93
  /**
97
- * Detect `new RegExp(...)` construction whose pattern argument is
98
- * not a string literal.
94
+ * Detect `new RegExp(...)` construction whose pattern argument is not a
95
+ * string literal.
99
96
  *
100
- * Caller-controlled patterns can both trigger catastrophic
101
- * backtracking and let an attacker reshape the matcher to bypass
102
- * intended validation.
97
+ * Caller-controlled patterns can both trigger catastrophic backtracking and
98
+ * let an attacker reshape the matcher to bypass intended validation.
103
99
  *
104
100
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-non-literal-regexp.md
105
101
  */
106
102
  "security/detect-non-literal-regexp"?: TtscLintRuleSetting;
107
103
 
108
104
  /**
109
- * Detect `require(...)` calls whose specifier is computed at
110
- * runtime.
105
+ * Detect `require(...)` calls whose specifier is computed at runtime.
111
106
  *
112
- * A dynamic specifier lets caller-controlled data choose the module
113
- * to load, bypassing any module allow-list on Node.
107
+ * A dynamic specifier lets caller-controlled data choose the module to load,
108
+ * bypassing any module allow-list on Node.
114
109
  *
115
110
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-non-literal-require.md
116
111
  */
117
112
  "security/detect-non-literal-require"?: TtscLintRuleSetting;
118
113
 
119
114
  /**
120
- * Detect dynamic bracket-access such as `obj[req.body.x] = ...`,
121
- * which can let caller-controlled keys overwrite prototype-shaped
122
- * properties or pull out unintended fields.
115
+ * Detect dynamic bracket-access such as `obj[req.body.x] = ...`, which can
116
+ * let caller-controlled keys overwrite prototype-shaped properties or pull
117
+ * out unintended fields.
123
118
  *
124
119
  * Fires on virtually any computed property access; expect a high
125
120
  * false-positive rate in normal application code.
@@ -129,32 +124,30 @@ export interface ITtscLintSecurityRules {
129
124
  "security/detect-object-injection"?: TtscLintRuleSetting;
130
125
 
131
126
  /**
132
- * Detect direct equality comparisons involving secret-like
133
- * identifiers (`if (token === expected)`) — use
134
- * `crypto.timingSafeEqual` instead.
127
+ * Detect direct equality comparisons involving secret-like identifiers (`if
128
+ * (token === expected)`) — use `crypto.timingSafeEqual` instead.
135
129
  *
136
130
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-possible-timing-attacks.md
137
131
  */
138
132
  "security/detect-possible-timing-attacks"?: TtscLintRuleSetting;
139
133
 
140
134
  /**
141
- * Detect `crypto.pseudoRandomBytes`, which produces values that
142
- * are not cryptographically secure.
135
+ * Detect `crypto.pseudoRandomBytes`, which produces values that are not
136
+ * cryptographically secure.
143
137
  *
144
- * Tokens, session ids, and key material must use
145
- * `crypto.randomBytes` (or Web Crypto's `getRandomValues`) instead.
138
+ * Tokens, session ids, and key material must use `crypto.randomBytes` (or Web
139
+ * Crypto's `getRandomValues`) instead.
146
140
  *
147
141
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-pseudoRandomBytes.md
148
142
  */
149
143
  "security/detect-pseudoRandomBytes"?: TtscLintRuleSetting;
150
144
 
151
145
  /**
152
- * Detect regex literals with catastrophic backtracking potential
153
- * (ReDoS) — typically nested or overlapping quantifiers over the
154
- * same character set.
146
+ * Detect regex literals with catastrophic backtracking potential (ReDoS) —
147
+ * typically nested or overlapping quantifiers over the same character set.
155
148
  *
156
- * Matching caller-controlled input against such a pattern can
157
- * block the event loop for seconds.
149
+ * Matching caller-controlled input against such a pattern can block the event
150
+ * loop for seconds.
158
151
  *
159
152
  * @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-unsafe-regex.md
160
153
  */
@@ -3,27 +3,27 @@ import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
3
3
  /**
4
4
  * Solid TSX rules from `eslint-plugin-solid`.
5
5
  *
6
- * Solid components compile to fine-grained reactivity, so patterns
7
- * that look correct in React (destructuring props, calling
8
- * `useEffect`-style hooks with array deps) silently break reactivity
9
- * in Solid. This family captures the common Solid-only pitfalls.
6
+ * Solid components compile to fine-grained reactivity, so patterns that look
7
+ * correct in React (destructuring props, calling `useEffect`-style hooks with
8
+ * array deps) silently break reactivity in Solid. This family captures the
9
+ * common Solid-only pitfalls.
10
10
  *
11
11
  * @reference https://github.com/solidjs-community/eslint-plugin-solid
12
12
  */
13
13
  export interface ITtscLintSolidRules {
14
14
  /**
15
- * Reject early and conditional `return` from a Solid component
16
- * — Solid components must return exactly once at the top level.
15
+ * Reject early and conditional `return` from a Solid component — Solid
16
+ * components must return exactly once at the top level.
17
17
  *
18
18
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/components-return-once.md
19
19
  */
20
20
  "solid/components-return-once"?: TtscLintRuleSetting;
21
21
 
22
22
  /**
23
- * Require DOM event handler props to use canonical Solid casing
24
- * (`onClick`, not `onclick` / `onClIcK`) so the compiler recognizes
25
- * them as events. Also flags `on*`-named props bound to non-function
26
- * values, which look like handlers but are not.
23
+ * Require DOM event handler props to use canonical Solid casing (`onClick`,
24
+ * not `onclick` / `onClIcK`) so the compiler recognizes them as events. Also
25
+ * flags `on*`-named props bound to non-function values, which look like
26
+ * handlers but are not.
27
27
  *
28
28
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/event-handlers.md
29
29
  */
@@ -31,42 +31,41 @@ export interface ITtscLintSolidRules {
31
31
 
32
32
  /**
33
33
  * Route each Solid export to the correct entry point (`solid-js`,
34
- * `solid-js/web`, or `solid-js/store`) and merge duplicate imports
35
- * from the same entry.
34
+ * `solid-js/web`, or `solid-js/store`) and merge duplicate imports from the
35
+ * same entry.
36
36
  *
37
37
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/imports.md
38
38
  */
39
39
  "solid/imports"?: TtscLintRuleSetting;
40
40
 
41
41
  /**
42
- * Reject duplicate JSX props on the same Solid element. Unlike
43
- * React, Solid silently keeps the first value, so the duplicate is
44
- * dead code and almost always a typo.
42
+ * Reject duplicate JSX props on the same Solid element. Unlike React, Solid
43
+ * silently keeps the first value, so the duplicate is dead code and almost
44
+ * always a typo.
45
45
  *
46
46
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/jsx-no-duplicate-props.md
47
47
  */
48
48
  "solid/jsx-no-duplicate-props"?: TtscLintRuleSetting;
49
49
 
50
50
  /**
51
- * Reject `javascript:` URLs in Solid JSX attributes (`href`, `src`,
52
- * ...) — they evaluate the suffix as code in the page context and
53
- * are a long-standing XSS vector.
51
+ * Reject `javascript:` URLs in Solid JSX attributes (`href`, `src`, ...) —
52
+ * they evaluate the suffix as code in the page context and are a
53
+ * long-standing XSS vector.
54
54
  *
55
55
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/jsx-no-script-url.md
56
56
  */
57
57
  "solid/jsx-no-script-url"?: TtscLintRuleSetting;
58
58
 
59
59
  /**
60
- * Reject Solid JSX component names that are not declared or
61
- * imported in scope.
60
+ * Reject Solid JSX component names that are not declared or imported in
61
+ * scope.
62
62
  *
63
63
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/jsx-no-undef.md
64
64
  */
65
65
  "solid/jsx-no-undef"?: TtscLintRuleSetting;
66
66
 
67
67
  /**
68
- * Scope-marker compatibility rule (mirrors ESLint's
69
- * `react/jsx-uses-vars`).
68
+ * Scope-marker compatibility rule (mirrors ESLint's `react/jsx-uses-vars`).
70
69
  *
71
70
  * The native engine emits no diagnostics for this id.
72
71
  *
@@ -75,25 +74,25 @@ export interface ITtscLintSolidRules {
75
74
  "solid/jsx-uses-vars"?: TtscLintRuleSetting;
76
75
 
77
76
  /**
78
- * Reject array values passed as Solid event handlers — Solid
79
- * does not unwrap the array form React supports.
77
+ * Reject array values passed as Solid event handlers — Solid does not unwrap
78
+ * the array form React supports.
80
79
  *
81
80
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-array-handlers.md
82
81
  */
83
82
  "solid/no-array-handlers"?: TtscLintRuleSetting;
84
83
 
85
84
  /**
86
- * Reject destructured Solid component props — destructuring breaks
87
- * reactivity by reading the property eagerly.
85
+ * Reject destructured Solid component props — destructuring breaks reactivity
86
+ * by reading the property eagerly.
88
87
  *
89
88
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-destructure.md
90
89
  */
91
90
  "solid/no-destructure"?: TtscLintRuleSetting;
92
91
 
93
92
  /**
94
- * Reject `innerHTML` JSX attributes because they bypass sanitization
95
- * and are a common XSS sink. A static string literal is still
96
- * allowed by default; flip `allowStatic` off to ban that form too.
93
+ * Reject `innerHTML` JSX attributes because they bypass sanitization and are
94
+ * a common XSS sink. A static string literal is still allowed by default;
95
+ * flip `allowStatic` off to ban that form too.
97
96
  *
98
97
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-innerhtml.md
99
98
  */
@@ -101,9 +100,9 @@ export interface ITtscLintSolidRules {
101
100
 
102
101
  /**
103
102
  * Reject Solid APIs that rely on ES6 `Proxy` (including `new Proxy`,
104
- * `Proxy.revocable`, imports from `solid-js/store`, and dynamic
105
- * spread shapes through `mergeProps`). For shipping to runtimes
106
- * without `Proxy` support; off by default.
103
+ * `Proxy.revocable`, imports from `solid-js/store`, and dynamic spread shapes
104
+ * through `mergeProps`). For shipping to runtimes without `Proxy` support;
105
+ * off by default.
107
106
  *
108
107
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-proxy-apis.md
109
108
  */
@@ -118,26 +117,26 @@ export interface ITtscLintSolidRules {
118
117
  "solid/no-react-deps"?: TtscLintRuleSetting;
119
118
 
120
119
  /**
121
- * Reject React-specific JSX props such as `className` and
122
- * `htmlFor` — Solid uses `class` and `for`.
120
+ * Reject React-specific JSX props such as `className` and `htmlFor` — Solid
121
+ * uses `class` and `for`.
123
122
  *
124
123
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-react-specific-props.md
125
124
  */
126
125
  "solid/no-react-specific-props"?: TtscLintRuleSetting;
127
126
 
128
127
  /**
129
- * Restrict namespaced JSX attributes (`ns:name={...}`) to the
130
- * built-in Solid namespaces (`on:`, `oncapture:`, `use:`, `prop:`,
131
- * `attr:`, `bool:`, `style:`, `class:`). Extra names can be allowed
132
- * through the `allowedNamespaces` option.
128
+ * Restrict namespaced JSX attributes (`ns:name={...}`) to the built-in Solid
129
+ * namespaces (`on:`, `oncapture:`, `use:`, `prop:`, `attr:`, `bool:`,
130
+ * `style:`, `class:`). Extra names can be allowed through the
131
+ * `allowedNamespaces` option.
133
132
  *
134
133
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-unknown-namespaces.md
135
134
  */
136
135
  "solid/no-unknown-namespaces"?: TtscLintRuleSetting;
137
136
 
138
137
  /**
139
- * Rewrite `class={cn({ ... })}` / `clsx(...)` / `classnames(...)`
140
- * calls to the reactive `classlist={{ ... }}` prop.
138
+ * Rewrite `class={cn({ ... })}` / `clsx(...)` / `classnames(...)` calls to
139
+ * the reactive `classlist={{ ... }}` prop.
141
140
  *
142
141
  * Deprecated and off by default upstream.
143
142
  *
@@ -146,9 +145,9 @@ export interface ITtscLintSolidRules {
146
145
  "solid/prefer-classlist"?: TtscLintRuleSetting;
147
146
 
148
147
  /**
149
- * Replace inline `array.map(item => <JSX />)` with Solid's `<For>`
150
- * component so the iteration stays keyed and reactive instead of
151
- * re-creating every child on each update.
148
+ * Replace inline `array.map(item => <JSX />)` with Solid's `<For>` component
149
+ * so the iteration stays keyed and reactive instead of re-creating every
150
+ * child on each update.
152
151
  *
153
152
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/prefer-for.md
154
153
  */
@@ -156,16 +155,16 @@ export interface ITtscLintSolidRules {
156
155
 
157
156
  /**
158
157
  * Rewrite `{cond && <JSX />}` short-circuits in JSX to `<Show
159
- * when={cond}>...</Show>`. Stylistic only — Solid's compiler
160
- * already handles the boolean form — so it is off by default.
158
+ * when={cond}>...</Show>`. Stylistic only — Solid's compiler already handles
159
+ * the boolean form — so it is off by default.
161
160
  *
162
161
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/prefer-show.md
163
162
  */
164
163
  "solid/prefer-show"?: TtscLintRuleSetting;
165
164
 
166
165
  /**
167
- * Reject common Solid reactivity breakages — reading a signal
168
- * outside a tracking scope, destructuring a `Store`, etc.
166
+ * Reject common Solid reactivity breakages — reading a signal outside a
167
+ * tracking scope, destructuring a `Store`, etc.
169
168
  *
170
169
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/reactivity.md
171
170
  */
@@ -173,9 +172,8 @@ export interface ITtscLintSolidRules {
173
172
 
174
173
  /**
175
174
  * Collapse JSX elements with no children to the self-closing form
176
- * (`<Foo></Foo>` to `<Foo />`). Configurable per component vs HTML
177
- * element, including a `"void"` mode that only enforces it for void
178
- * tags.
175
+ * (`<Foo></Foo>` to `<Foo />`). Configurable per component vs HTML element,
176
+ * including a `"void"` mode that only enforces it for void tags.
179
177
  *
180
178
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/self-closing-comp.md
181
179
  */
@@ -183,18 +181,17 @@ export interface ITtscLintSolidRules {
183
181
 
184
182
  /**
185
183
  * Require `style={{...}}` keys to be valid kebab-case CSS properties
186
- * (`"font-size"`, not React's `fontSize`) and dimensioned values to
187
- * be strings — Solid does not append implicit `px`.
184
+ * (`"font-size"`, not React's `fontSize`) and dimensioned values to be
185
+ * strings — Solid does not append implicit `px`.
188
186
  *
189
187
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/style-prop.md
190
188
  */
191
189
  "solid/style-prop"?: TtscLintRuleSetting;
192
190
 
193
191
  /**
194
- * Reject JSX nestings that the HTML parser would silently restructure
195
- * at runtime — `<p>` cannot contain block-level children, `<a>` cannot
196
- * contain another `<a>`, and `<button>` cannot contain other
197
- * interactive elements.
192
+ * Reject JSX nestings that the HTML parser would silently restructure at
193
+ * runtime — `<p>` cannot contain block-level children, `<a>` cannot contain
194
+ * another `<a>`, and `<button>` cannot contain other interactive elements.
198
195
  *
199
196
  * @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/validate-jsx-nesting.md
200
197
  */
@@ -8,16 +8,15 @@
8
8
  /** `storybook/no-uninstalled-addons` rule options. */
9
9
  export interface ITtscLintStorybookNoUninstalledAddonsRuleOptions {
10
10
  /**
11
- * Explicit `package.json` path used to validate configured Storybook
12
- * addons. When omitted, the rule walks upward from the linted config
13
- * file.
11
+ * Explicit `package.json` path used to validate configured Storybook addons.
12
+ * When omitted, the rule walks upward from the linted config file.
14
13
  */
15
14
  packageJsonLocation?: string;
16
15
 
17
16
  /**
18
17
  * Addon package names to skip when checking installation status.
19
18
  *
20
- * @default []
19
+ * @default [ ]
21
20
  */
22
21
  ignore?: readonly string[];
23
22
  }