@ttsc/lint 0.14.0-dev.20260529.2 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.md +21 -23
  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 +108 -5
  68. package/linthost/print_nodes_call.go +515 -74
  69. package/linthost/print_nodes_function.go +25 -0
  70. package/linthost/print_nodes_imports.go +47 -14
  71. package/linthost/print_nodes_list.go +191 -8
  72. package/linthost/print_nodes_object.go +12 -6
  73. package/linthost/print_nodes_ternary.go +106 -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 +167 -0
  83. package/linthost/rules_format_bracket_spacing.go +117 -0
  84. package/linthost/rules_format_clause_join.go +172 -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 +185 -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 +456 -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,16 +1,15 @@
1
- import type { ITtscLintTestingLibraryConsistentDataTestIdRuleOptions } from "./ITtscLintTestingLibraryRuleOptions";
2
1
  import type {
3
2
  TtscLintRuleOptionsSetting,
4
3
  TtscLintRuleSetting,
5
4
  } from "../TtscLintRuleSetting";
5
+ import type { ITtscLintTestingLibraryConsistentDataTestIdRuleOptions } from "./ITtscLintTestingLibraryRuleOptions";
6
6
 
7
7
  /**
8
- * Testing Library test source rules from
9
- * `eslint-plugin-testing-library`.
8
+ * Testing Library test source rules from `eslint-plugin-testing-library`.
10
9
  *
11
- * Apply to TypeScript test sources that use any `@testing-library/*`
12
- * package and detect Testing Library anti-patterns — `container`
13
- * access, `ByTestId` overuse, missing `await` on async queries.
10
+ * Apply to TypeScript test sources that use any `@testing-library/*` package
11
+ * and detect Testing Library anti-patterns — `container` access, `ByTestId`
12
+ * overuse, missing `await` on async queries.
14
13
  *
15
14
  * @reference https://github.com/testing-library/eslint-plugin-testing-library
16
15
  */
@@ -19,9 +18,8 @@ export interface ITtscLintTestingLibraryRules {
19
18
  * Require awaiting async user-event methods (`userEvent.click`,
20
19
  * `userEvent.type`, ...) under the v14+ Promise-returning API.
21
20
  *
22
- * Without `await` the next assertion runs against the
23
- * pre-interaction DOM, which masks effects the user action was
24
- * meant to trigger.
21
+ * Without `await` the next assertion runs against the pre-interaction DOM,
22
+ * which masks effects the user action was meant to trigger.
25
23
  *
26
24
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-events.md
27
25
  */
@@ -30,32 +28,30 @@ export interface ITtscLintTestingLibraryRules {
30
28
  /**
31
29
  * Require awaiting `findBy*` and `findAllBy*` queries.
32
30
  *
33
- * They return a Promise that resolves once the element appears; an
34
- * unawaited query yields a pending Promise that no matcher can
35
- * assert against meaningfully.
31
+ * They return a Promise that resolves once the element appears; an unawaited
32
+ * query yields a pending Promise that no matcher can assert against
33
+ * meaningfully.
36
34
  *
37
35
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-queries.md
38
36
  */
39
37
  "testing-library/await-async-queries"?: TtscLintRuleSetting;
40
38
 
41
39
  /**
42
- * Require awaiting `waitFor`, `waitForElementToBeRemoved`, and
43
- * the other async Testing Library utilities.
40
+ * Require awaiting `waitFor`, `waitForElementToBeRemoved`, and the other
41
+ * async Testing Library utilities.
44
42
  *
45
- * Skipping the `await` means the test moves on before the
46
- * predicate settles, so subsequent assertions race against the
47
- * wait.
43
+ * Skipping the `await` means the test moves on before the predicate settles,
44
+ * so subsequent assertions race against the wait.
48
45
  *
49
46
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/await-async-utils.md
50
47
  */
51
48
  "testing-library/await-async-utils"?: TtscLintRuleSetting;
52
49
 
53
50
  /**
54
- * Validate JSX `data-testid` attribute values against a regex
55
- * pattern.
51
+ * Validate JSX `data-testid` attribute values against a regex pattern.
56
52
  *
57
- * The options object names the attribute and the pattern, keeping
58
- * test ids consistently formed across components.
53
+ * The options object names the attribute and the pattern, keeping test ids
54
+ * consistently formed across components.
59
55
  *
60
56
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/consistent-data-testid.md
61
57
  */
@@ -65,68 +61,65 @@ export interface ITtscLintTestingLibraryRules {
65
61
  * Reject unnecessary `await` before synchronous event helpers
66
62
  * (`fireEvent.click(...)`).
67
63
  *
68
- * The helpers return `boolean` rather than a Promise, so the
69
- * `await` is a no-op that misleads readers into thinking the
70
- * helper is async.
64
+ * The helpers return `boolean` rather than a Promise, so the `await` is a
65
+ * no-op that misleads readers into thinking the helper is async.
71
66
  *
72
67
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-await-sync-events.md
73
68
  */
74
69
  "testing-library/no-await-sync-events"?: TtscLintRuleSetting;
75
70
 
76
71
  /**
77
- * Reject unnecessary `await` before synchronous queries
78
- * (`getBy*`, `queryBy*`).
72
+ * Reject unnecessary `await` before synchronous queries (`getBy*`,
73
+ * `queryBy*`).
79
74
  *
80
- * These queries return DOM nodes directly, so the `await` misleads
81
- * readers and can shadow a genuine missing `await` on an adjacent
82
- * `findBy*`.
75
+ * These queries return DOM nodes directly, so the `await` misleads readers
76
+ * and can shadow a genuine missing `await` on an adjacent `findBy*`.
83
77
  *
84
78
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-await-sync-queries.md
85
79
  */
86
80
  "testing-library/no-await-sync-queries"?: TtscLintRuleSetting;
87
81
 
88
82
  /**
89
- * Reject `container` destructuring and DOM query methods on the
90
- * render result.
83
+ * Reject `container` destructuring and DOM query methods on the render
84
+ * result.
91
85
  *
92
- * `screen` queries the same document but matches how the user sees
93
- * the page, keeping tests accessibility-first and resilient to
94
- * layout refactors that move nodes inside the tree.
86
+ * `screen` queries the same document but matches how the user sees the page,
87
+ * keeping tests accessibility-first and resilient to layout refactors that
88
+ * move nodes inside the tree.
95
89
  *
96
90
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-container.md
97
91
  */
98
92
  "testing-library/no-container"?: TtscLintRuleSetting;
99
93
 
100
94
  /**
101
- * Reject `debug`, `prettyDOM`, `logTestingPlaygroundURL`, and
102
- * related debugging utilities in committed tests.
95
+ * Reject `debug`, `prettyDOM`, `logTestingPlaygroundURL`, and related
96
+ * debugging utilities in committed tests.
103
97
  *
104
- * They print large DOM dumps to CI logs and only exist to help
105
- * during local authoring.
98
+ * They print large DOM dumps to CI logs and only exist to help during local
99
+ * authoring.
106
100
  *
107
101
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-debugging-utils.md
108
102
  */
109
103
  "testing-library/no-debugging-utils"?: TtscLintRuleSetting;
110
104
 
111
105
  /**
112
- * Reject direct `@testing-library/dom` imports when a
113
- * framework-specific package is installed.
106
+ * Reject direct `@testing-library/dom` imports when a framework-specific
107
+ * package is installed.
114
108
  *
115
- * Framework packages (`@testing-library/react`, ...) re-export the
116
- * same surface plus a `render` that wires the framework's
117
- * lifecycle — importing `dom` directly skips that wiring.
109
+ * Framework packages (`@testing-library/react`, ...) re-export the same
110
+ * surface plus a `render` that wires the framework's lifecycle — importing
111
+ * `dom` directly skips that wiring.
118
112
  *
119
113
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-dom-import.md
120
114
  */
121
115
  "testing-library/no-dom-import"?: TtscLintRuleSetting;
122
116
 
123
117
  /**
124
- * Reject global RegExp flags (`/foo/g`) inside query text
125
- * matchers.
118
+ * Reject global RegExp flags (`/foo/g`) inside query text matchers.
126
119
  *
127
- * The matcher reuses the regex across nodes, so a global regex's
128
- * persistent `lastIndex` state causes the second call to skip
129
- * matches the first one found.
120
+ * The matcher reuses the regex across nodes, so a global regex's persistent
121
+ * `lastIndex` state causes the second call to skip matches the first one
122
+ * found.
130
123
  *
131
124
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-global-regexp-flag-in-query.md
132
125
  */
@@ -135,40 +128,39 @@ export interface ITtscLintTestingLibraryRules {
135
128
  /**
136
129
  * Reject manual `cleanup()` calls.
137
130
  *
138
- * Framework wrappers (`@testing-library/react`, ...) register
139
- * automatic cleanup, so explicit calls duplicate the unmount and
140
- * can race against the runner's between-test reset.
131
+ * Framework wrappers (`@testing-library/react`, ...) register automatic
132
+ * cleanup, so explicit calls duplicate the unmount and can race against the
133
+ * runner's between-test reset.
141
134
  *
142
135
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-manual-cleanup.md
143
136
  */
144
137
  "testing-library/no-manual-cleanup"?: TtscLintRuleSetting;
145
138
 
146
139
  /**
147
- * Reject direct DOM node traversal from query results
148
- * (`.parentElement`, `.firstChild`, `.children`, ...).
140
+ * Reject direct DOM node traversal from query results (`.parentElement`,
141
+ * `.firstChild`, `.children`, ...).
149
142
  *
150
- * Traversal couples the test to incidental markup; another
151
- * semantic query names what the assertion actually cares about.
143
+ * Traversal couples the test to incidental markup; another semantic query
144
+ * names what the assertion actually cares about.
152
145
  *
153
146
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-node-access.md
154
147
  */
155
148
  "testing-library/no-node-access"?: TtscLintRuleSetting;
156
149
 
157
150
  /**
158
- * Reject Promise-producing expressions passed to `fireEvent`,
159
- * since `fireEvent` is synchronous and the Promise is dropped.
151
+ * Reject Promise-producing expressions passed to `fireEvent`, since
152
+ * `fireEvent` is synchronous and the Promise is dropped.
160
153
  *
161
154
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-promise-in-fire-event.md
162
155
  */
163
156
  "testing-library/no-promise-in-fire-event"?: TtscLintRuleSetting;
164
157
 
165
158
  /**
166
- * Reject `render(...)` inside lifecycle hooks (`beforeEach`,
167
- * etc.).
159
+ * Reject `render(...)` inside lifecycle hooks (`beforeEach`, etc.).
168
160
  *
169
- * Each test should render its component directly so the arrange
170
- * step is visible in-place and auto-cleanup runs between cases
171
- * without sharing state.
161
+ * Each test should render its component directly so the arrange step is
162
+ * visible in-place and auto-cleanup runs between cases without sharing
163
+ * state.
172
164
  *
173
165
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-render-in-lifecycle.md
174
166
  */
@@ -177,38 +169,35 @@ export interface ITtscLintTestingLibraryRules {
177
169
  /**
178
170
  * Reject `*ByTestId` queries.
179
171
  *
180
- * Test ids couple the test to incidental markup and skip the
181
- * accessibility tree that real users navigate; queries by role,
182
- * label, or text describe the UI in user-visible terms instead.
172
+ * Test ids couple the test to incidental markup and skip the accessibility
173
+ * tree that real users navigate; queries by role, label, or text describe the
174
+ * UI in user-visible terms instead.
183
175
  *
184
176
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-test-id-queries.md
185
177
  */
186
178
  "testing-library/no-test-id-queries"?: TtscLintRuleSetting;
187
179
 
188
180
  /**
189
- * Reject unnecessary `act(...)` wrappers around Testing Library
190
- * helpers.
181
+ * Reject unnecessary `act(...)` wrappers around Testing Library helpers.
191
182
  *
192
- * `render`, `fireEvent`, and `userEvent` already wrap their work
193
- * in `act`, so the extra wrapper is dead code that obscures the
194
- * real state change.
183
+ * `render`, `fireEvent`, and `userEvent` already wrap their work in `act`, so
184
+ * the extra wrapper is dead code that obscures the real state change.
195
185
  *
196
186
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-unnecessary-act.md
197
187
  */
198
188
  "testing-library/no-unnecessary-act"?: TtscLintRuleSetting;
199
189
 
200
190
  /**
201
- * Reject multiple assertions inside one `waitFor` callback —
202
- * split into separate `waitFor`s so each retry boundary is
203
- * narrow.
191
+ * Reject multiple assertions inside one `waitFor` callback — split into
192
+ * separate `waitFor`s so each retry boundary is narrow.
204
193
  *
205
194
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-multiple-assertions.md
206
195
  */
207
196
  "testing-library/no-wait-for-multiple-assertions"?: TtscLintRuleSetting;
208
197
 
209
198
  /**
210
- * Reject side effects inside `waitFor` callbacks — `waitFor`
211
- * retries the callback, so side effects fire repeatedly.
199
+ * Reject side effects inside `waitFor` callbacks — `waitFor` retries the
200
+ * callback, so side effects fire repeatedly.
212
201
  *
213
202
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-side-effects.md
214
203
  */
@@ -217,22 +206,20 @@ export interface ITtscLintTestingLibraryRules {
217
206
  /**
218
207
  * Reject snapshot assertions inside `waitFor`.
219
208
  *
220
- * `waitFor` retries until the callback stops throwing, so the
221
- * captured snapshot is whichever pass happened to match — usually
222
- * an intermediate render rather than the settled UI the test
223
- * cares about.
209
+ * `waitFor` retries until the callback stops throwing, so the captured
210
+ * snapshot is whichever pass happened to match — usually an intermediate
211
+ * render rather than the settled UI the test cares about.
224
212
  *
225
213
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-wait-for-snapshot.md
226
214
  */
227
215
  "testing-library/no-wait-for-snapshot"?: TtscLintRuleSetting;
228
216
 
229
217
  /**
230
- * Require explicit assertions on the result of standalone
231
- * queries.
218
+ * Require explicit assertions on the result of standalone queries.
232
219
  *
233
- * A bare `screen.getByRole(...)` looks like an assertion but only
234
- * checks presence (and only for `getBy*`); adding `expect(...)`
235
- * makes the intent and the matched property obvious.
220
+ * A bare `screen.getByRole(...)` looks like an assertion but only checks
221
+ * presence (and only for `getBy*`); adding `expect(...)` makes the intent and
222
+ * the matched property obvious.
236
223
  *
237
224
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-explicit-assert.md
238
225
  */
@@ -241,9 +228,9 @@ export interface ITtscLintTestingLibraryRules {
241
228
  /**
242
229
  * Prefer `findBy*` over `waitFor` wrapping a `getBy*`.
243
230
  *
244
- * `findBy*` is the dedicated retry-aware query; the manual
245
- * combination duplicates its semantics and is easy to misconfigure
246
- * (wrong timeout, missing `await`).
231
+ * `findBy*` is the dedicated retry-aware query; the manual combination
232
+ * duplicates its semantics and is easy to misconfigure (wrong timeout,
233
+ * missing `await`).
247
234
  *
248
235
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-find-by.md
249
236
  */
@@ -252,19 +239,18 @@ export interface ITtscLintTestingLibraryRules {
252
239
  /**
253
240
  * Avoid redundant `toBeInTheDocument()` around `getBy*` queries.
254
241
  *
255
- * `getBy*` already throws when nothing is found, so the extra
256
- * matcher only restates what the query promises and adds noise to
257
- * the failure trace.
242
+ * `getBy*` already throws when nothing is found, so the extra matcher only
243
+ * restates what the query promises and adds noise to the failure trace.
258
244
  *
259
245
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-implicit-assert.md
260
246
  */
261
247
  "testing-library/prefer-implicit-assert"?: TtscLintRuleSetting;
262
248
 
263
249
  /**
264
- * Match presence and absence assertions to the query variant
265
- * that already encodes the same semantic: `getBy*` for presence
266
- * (throws when missing), `queryBy*` for absence (returns `null`
267
- * when missing). Mixing the two yields confusing failure modes.
250
+ * Match presence and absence assertions to the query variant that already
251
+ * encodes the same semantic: `getBy*` for presence (throws when missing),
252
+ * `queryBy*` for absence (returns `null` when missing). Mixing the two yields
253
+ * confusing failure modes.
268
254
  *
269
255
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-presence-queries.md
270
256
  */
@@ -273,21 +259,20 @@ export interface ITtscLintTestingLibraryRules {
273
259
  /**
274
260
  * Prefer `queryBy*` inside `waitForElementToBeRemoved`.
275
261
  *
276
- * The helper retries the callback against the disappearing
277
- * element, but `getBy*` throws on the very state being waited for,
278
- * which produces a noisy error in the trace each retry.
262
+ * The helper retries the callback against the disappearing element, but
263
+ * `getBy*` throws on the very state being waited for, which produces a noisy
264
+ * error in the trace each retry.
279
265
  *
280
266
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-query-by-disappearance.md
281
267
  */
282
268
  "testing-library/prefer-query-by-disappearance"?: TtscLintRuleSetting;
283
269
 
284
270
  /**
285
- * Prefer jest-dom document matchers (`toBeVisible`,
286
- * `toHaveTextContent`, ...) over generic equality checks on
287
- * Testing Library queries.
271
+ * Prefer jest-dom document matchers (`toBeVisible`, `toHaveTextContent`, ...)
272
+ * over generic equality checks on Testing Library queries.
288
273
  *
289
- * The dedicated matchers explain failures in terms of the DOM
290
- * property they assert on, not a structural diff of nodes.
274
+ * The dedicated matchers explain failures in terms of the DOM property they
275
+ * assert on, not a structural diff of nodes.
291
276
  *
292
277
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-query-matchers.md
293
278
  */
@@ -296,9 +281,9 @@ export interface ITtscLintTestingLibraryRules {
296
281
  /**
297
282
  * Prefer `screen.*` over queries on the render-result object.
298
283
  *
299
- * `screen` is the single global query target, so tests stay
300
- * consistent regardless of which component is mounted and the
301
- * render call's return value rarely needs destructuring.
284
+ * `screen` is the single global query target, so tests stay consistent
285
+ * regardless of which component is mounted and the render call's return value
286
+ * rarely needs destructuring.
302
287
  *
303
288
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-screen-queries.md
304
289
  */
@@ -307,34 +292,32 @@ export interface ITtscLintTestingLibraryRules {
307
292
  /**
308
293
  * Prefer `userEvent` over `fireEvent`.
309
294
  *
310
- * `userEvent` simulates the full sequence of DOM events a real
311
- * user triggers (focus, keydown, input, change, ...) while
312
- * `fireEvent` dispatches a single event and skips intermediate
313
- * state.
295
+ * `userEvent` simulates the full sequence of DOM events a real user triggers
296
+ * (focus, keydown, input, change, ...) while `fireEvent` dispatches a single
297
+ * event and skips intermediate state.
314
298
  *
315
299
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-user-event.md
316
300
  */
317
301
  "testing-library/prefer-user-event"?: TtscLintRuleSetting;
318
302
 
319
303
  /**
320
- * Prefer `userEvent.setup()` (the v14+ instance pattern) over
321
- * the static `userEvent.*` calls.
304
+ * Prefer `userEvent.setup()` (the v14+ instance pattern) over the static
305
+ * `userEvent.*` calls.
322
306
  *
323
- * The instance binds fresh pointer state per test, removing the
324
- * cross-test focus and click bookkeeping that the static API
325
- * leaks.
307
+ * The instance binds fresh pointer state per test, removing the cross-test
308
+ * focus and click bookkeeping that the static API leaks.
326
309
  *
327
310
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-user-event-setup.md
328
311
  */
329
312
  "testing-library/prefer-user-event-setup"?: TtscLintRuleSetting;
330
313
 
331
314
  /**
332
- * Require the variable assigned from `render(...)` to use one of
333
- * the conventional names (`view`, `result`, ...).
315
+ * Require the variable assigned from `render(...)` to use one of the
316
+ * conventional names (`view`, `result`, ...).
334
317
  *
335
- * The name is a reading cue: a non-conventional one usually
336
- * signals that the destructured queries are being treated as a
337
- * component surface instead of a render artifact.
318
+ * The name is a reading cue: a non-conventional one usually signals that the
319
+ * destructured queries are being treated as a component surface instead of a
320
+ * render artifact.
338
321
  *
339
322
  * @reference https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/render-result-naming-convention.md
340
323
  */