@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
@@ -3,68 +3,64 @@ import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
3
3
  /**
4
4
  * Promise correctness and style rules from `eslint-plugin-promise`.
5
5
  *
6
- * Checks the chain shape of Promise-using code: every chain ends
7
- * with `catch`, no callback inside a `then`, no nested
8
- * `.then().then()`, and so on.
6
+ * Checks the chain shape of Promise-using code: every chain ends with `catch`,
7
+ * no callback inside a `then`, no nested `.then().then()`, and so on.
9
8
  *
10
- * AST-local only — type-aware Promise checks belong with
11
- * `typescript/*` checker rules.
9
+ * AST-local only — type-aware Promise checks belong with `typescript/*` checker
10
+ * rules.
12
11
  *
13
12
  * @reference https://github.com/eslint-community/eslint-plugin-promise
14
13
  */
15
14
  export interface ITtscLintPromiseRules {
16
15
  /**
17
- * Require every `then()` callback to either `return` a value or
18
- * `throw`.
16
+ * Require every `then()` callback to either `return` a value or `throw`.
19
17
  *
20
- * A callback that does neither breaks the chain by returning
21
- * `undefined`.
18
+ * A callback that does neither breaks the chain by returning `undefined`.
22
19
  *
23
20
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/always-return.md
24
21
  */
25
22
  "promise/always-return"?: TtscLintRuleSetting;
26
23
 
27
24
  /**
28
- * Reject every `new Promise(...)` construction. Most modern code
29
- * can use `async`/`await` or existing Promise-returning APIs.
25
+ * Reject every `new Promise(...)` construction. Most modern code can use
26
+ * `async`/`await` or existing Promise-returning APIs.
30
27
  *
31
28
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/avoid-new.md
32
29
  */
33
30
  "promise/avoid-new"?: TtscLintRuleSetting;
34
31
 
35
32
  /**
36
- * Require unreturned promise chains to terminate with `catch()`
37
- * so unhandled rejections cannot escape.
33
+ * Require unreturned promise chains to terminate with `catch()` so unhandled
34
+ * rejections cannot escape.
38
35
  *
39
36
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/catch-or-return.md
40
37
  */
41
38
  "promise/catch-or-return"?: TtscLintRuleSetting;
42
39
 
43
40
  /**
44
- * Reject direct invocation of an error-first callback inside a
45
- * `then()` or `catch()` handler.
41
+ * Reject direct invocation of an error-first callback inside a `then()` or
42
+ * `catch()` handler.
46
43
  *
47
- * Synchronously calling the callback from a promise handler can
48
- * re-enter it on both the fulfilled and rejected paths. Upstream
49
- * guidance: defer via `setImmediate`/`process.nextTick` if a
50
- * callback bridge is genuinely required.
44
+ * Synchronously calling the callback from a promise handler can re-enter it
45
+ * on both the fulfilled and rejected paths. Upstream guidance: defer via
46
+ * `setImmediate`/`process.nextTick` if a callback bridge is genuinely
47
+ * required.
51
48
  *
52
- * Also flags `.then(callback)` / `.catch(callback)` calls whose
53
- * handler argument is a bare callback-shaped identifier
54
- * (`callback`, `cb`, `next`, `done`).
49
+ * Also flags `.then(callback)` / `.catch(callback)` calls whose handler
50
+ * argument is a bare callback-shaped identifier (`callback`, `cb`, `next`,
51
+ * `done`).
55
52
  *
56
53
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-callback-in-promise.md
57
54
  */
58
55
  "promise/no-callback-in-promise"?: TtscLintRuleSetting;
59
56
 
60
57
  /**
61
- * Detect Promise executor bodies with more than one resolve/reject
62
- * call. The native rule does not yet model branch exclusivity —
63
- * bodies whose calls are split across mutually exclusive branches
64
- * will be flagged too.
58
+ * Detect Promise executor bodies with more than one resolve/reject call. The
59
+ * native rule does not yet model branch exclusivity — bodies whose calls are
60
+ * split across mutually exclusive branches will be flagged too.
65
61
  *
66
- * The second call is silently ignored, but the surrounding logic
67
- * almost always assumed short-circuit.
62
+ * The second call is silently ignored, but the surrounding logic almost
63
+ * always assumed short-circuit.
68
64
  *
69
65
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-multiple-resolved.md
70
66
  */
@@ -74,40 +70,38 @@ export interface ITtscLintPromiseRules {
74
70
  * Require every file that uses `Promise` to import or require the
75
71
  * implementation explicitly, instead of reaching the native global.
76
72
  *
77
- * Useful for projects that substitute Bluebird or another library
78
- * and want the choice grep-visible per file.
73
+ * Useful for projects that substitute Bluebird or another library and want
74
+ * the choice grep-visible per file.
79
75
  *
80
76
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-native.md
81
77
  */
82
78
  "promise/no-native"?: TtscLintRuleSetting;
83
79
 
84
80
  /**
85
- * Reject nested `then()`/`catch()` calls inside the body of a
86
- * Promise callback. Use chained `.then()` instead.
81
+ * Reject nested `then()`/`catch()` calls inside the body of a Promise
82
+ * callback. Use chained `.then()` instead.
87
83
  *
88
84
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-nesting.md
89
85
  */
90
86
  "promise/no-nesting"?: TtscLintRuleSetting;
91
87
 
92
88
  /**
93
- * Reject `new` applied to Promise statics such as
94
- * `new Promise.resolve(x)`, `new Promise.all([...])`, or
95
- * `new Promise.race([...])`.
89
+ * Reject `new` applied to Promise statics such as `new Promise.resolve(x)`,
90
+ * `new Promise.all([...])`, or `new Promise.race([...])`.
96
91
  *
97
- * The statics are plain functions, so `new` throws a `TypeError`
98
- * at runtime — caught here before the call ships.
92
+ * The statics are plain functions, so `new` throws a `TypeError` at runtime —
93
+ * caught here before the call ships.
99
94
  *
100
95
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-new-statics.md
101
96
  */
102
97
  "promise/no-new-statics"?: TtscLintRuleSetting;
103
98
 
104
99
  /**
105
- * Reject building a promise chain inside the body of an
106
- * error-first callback.
100
+ * Reject building a promise chain inside the body of an error-first callback.
107
101
  *
108
102
  * The callback already owns an error channel, so layering
109
- * `.then()`/`.catch()` on top creates two incompatible failure
110
- * pipelines. Upstream advice: promisify the outer API instead.
103
+ * `.then()`/`.catch()` on top creates two incompatible failure pipelines.
104
+ * Upstream advice: promisify the outer API instead.
111
105
  *
112
106
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-promise-in-callback.md
113
107
  */
@@ -116,64 +110,62 @@ export interface ITtscLintPromiseRules {
116
110
  /**
117
111
  * Reject `return` from inside a `finally()` callback.
118
112
  *
119
- * The chain's resolved value comes from the prior `then`/`catch`,
120
- * so any value returned from `finally` is discarded — usually
121
- * signals confusion about where the chain's value comes from.
113
+ * The chain's resolved value comes from the prior `then`/`catch`, so any
114
+ * value returned from `finally` is discarded — usually signals confusion
115
+ * about where the chain's value comes from.
122
116
  *
123
117
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-return-in-finally.md
124
118
  */
125
119
  "promise/no-return-in-finally"?: TtscLintRuleSetting;
126
120
 
127
121
  /**
128
- * Reject `return Promise.resolve(x)` and `return
129
- * Promise.reject(x)` inside promise callbacks; return the bare
130
- * value or `throw` instead.
122
+ * Reject `return Promise.resolve(x)` and `return Promise.reject(x)` inside
123
+ * promise callbacks; return the bare value or `throw` instead.
131
124
  *
132
125
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-return-wrap.md
133
126
  */
134
127
  "promise/no-return-wrap"?: TtscLintRuleSetting;
135
128
 
136
129
  /**
137
- * Enforce canonical parameter names (`resolve`, `reject`) on
138
- * Promise executor functions.
130
+ * Enforce canonical parameter names (`resolve`, `reject`) on Promise executor
131
+ * functions.
139
132
  *
140
- * Consistent names make executor bodies greppable and prevent
141
- * accidental shadowing of the outer `resolve` symbol.
133
+ * Consistent names make executor bodies greppable and prevent accidental
134
+ * shadowing of the outer `resolve` symbol.
142
135
  *
143
136
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/param-names.md
144
137
  */
145
138
  "promise/param-names"?: TtscLintRuleSetting;
146
139
 
147
140
  /**
148
- * Flag continuation-passing callback shapes (last parameter is a
149
- * function and an error-first invocation pattern is detected),
150
- * suggesting an `async`/`await` rewrite.
141
+ * Flag continuation-passing callback shapes (last parameter is a function and
142
+ * an error-first invocation pattern is detected), suggesting an
143
+ * `async`/`await` rewrite.
151
144
  *
152
- * Intended for codebases that have already migrated their I/O
153
- * surface to promises and want to keep callers consistent.
145
+ * Intended for codebases that have already migrated their I/O surface to
146
+ * promises and want to keep callers consistent.
154
147
  *
155
148
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/prefer-await-to-callbacks.md
156
149
  */
157
150
  "promise/prefer-await-to-callbacks"?: TtscLintRuleSetting;
158
151
 
159
152
  /**
160
- * Prefer `await` over explicit `.then()`/`.catch()`/`.finally()`
161
- * chains inside `async` functions.
153
+ * Prefer `await` over explicit `.then()`/`.catch()`/`.finally()` chains
154
+ * inside `async` functions.
162
155
  *
163
- * Sequential awaits compose more naturally with try/catch and
164
- * avoid the indentation creep of deeply nested handlers.
156
+ * Sequential awaits compose more naturally with try/catch and avoid the
157
+ * indentation creep of deeply nested handlers.
165
158
  *
166
159
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/prefer-await-to-then.md
167
160
  */
168
161
  "promise/prefer-await-to-then"?: TtscLintRuleSetting;
169
162
 
170
163
  /**
171
- * Prefer `.catch(handler)` over the two-argument form
172
- * `.then(onFulfilled, onRejected)`.
164
+ * Prefer `.catch(handler)` over the two-argument form `.then(onFulfilled,
165
+ * onRejected)`.
173
166
  *
174
- * The two-argument shape skips rejections raised inside
175
- * `onFulfilled`, which surprises readers and hides errors from
176
- * logging middleware.
167
+ * The two-argument shape skips rejections raised inside `onFulfilled`, which
168
+ * surprises readers and hides errors from logging middleware.
177
169
  *
178
170
  * @reference https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/prefer-catch.md
179
171
  */
@@ -181,8 +173,7 @@ export interface ITtscLintPromiseRules {
181
173
 
182
174
  /**
183
175
  * Reject non-standard `Promise` statics such as `Promise.done`,
184
- * `Promise.spread`, or library-specific extensions shimmed onto
185
- * the global.
176
+ * `Promise.spread`, or library-specific extensions shimmed onto the global.
186
177
  *
187
178
  * Sticking to spec methods keeps code portable across Promise
188
179
  * implementations.
@@ -192,10 +183,10 @@ export interface ITtscLintPromiseRules {
192
183
  "promise/spec-only"?: TtscLintRuleSetting;
193
184
 
194
185
  /**
195
- * Enforce the argument counts the Promise spec defines for each
196
- * method — `Promise.all`/`Promise.race` take exactly one argument,
197
- * `Promise.resolve`/`Promise.reject` take zero or one, `.then`
198
- * takes one or two, `.catch`/`.finally` take exactly one.
186
+ * Enforce the argument counts the Promise spec defines for each method —
187
+ * `Promise.all`/`Promise.race` take exactly one argument,
188
+ * `Promise.resolve`/`Promise.reject` take zero or one, `.then` takes one or
189
+ * two, `.catch`/`.finally` take exactly one.
199
190
  *
200
191
  * Extra or missing arguments usually indicate a misread of the API.
201
192
  *
@@ -9,11 +9,11 @@ export interface ITtscLintReactPerfRuleOptions {
9
9
  /**
10
10
  * Controls which intrinsic JSX element props are ignored.
11
11
  *
12
- * `"all"` ignores every prop on lowercase / native elements such as
13
- * `div`. An array ignores only those prop names on native elements,
14
- * for example `["style"]`. Custom components are still checked.
12
+ * `"all"` ignores every prop on lowercase / native elements such as `div`. An
13
+ * array ignores only those prop names on native elements, for example
14
+ * `["style"]`. Custom components are still checked.
15
15
  *
16
- * @default [] (native props are checked)
16
+ * @default [ ] (native props are checked)
17
17
  */
18
18
  nativeAllowList?: "all" | readonly string[];
19
19
  }
@@ -1,34 +1,32 @@
1
- import type { ITtscLintReactPerfRuleOptions } from "./ITtscLintReactPerfRuleOptions";
2
1
  import type { TtscLintRuleOptionsSetting } from "../TtscLintRuleSetting";
2
+ import type { ITtscLintReactPerfRuleOptions } from "./ITtscLintReactPerfRuleOptions";
3
3
 
4
4
  /**
5
5
  * React JSX performance rules from `eslint-plugin-react-perf`.
6
6
  *
7
- * Detects freshly-allocated reference values (arrays, objects,
8
- * functions, JSX elements) passed as JSX props. A new reference
9
- * invalidates `React.memo` / `useMemo` shallow checks on every
10
- * render. Useful for performance-critical render paths; usually
11
- * unnecessary for top-level pages.
7
+ * Detects freshly-allocated reference values (arrays, objects, functions, JSX
8
+ * elements) passed as JSX props. A new reference invalidates `React.memo` /
9
+ * `useMemo` shallow checks on every render. Useful for performance-critical
10
+ * render paths; usually unnecessary for top-level pages.
12
11
  *
13
- * Diagnostics only fire on `.tsx` source files — JSX heuristics rely
14
- * on the file extension, so `.ts` files are skipped even when they
15
- * contain JSX-like syntax.
12
+ * Diagnostics only fire on `.tsx` source files — JSX heuristics rely on the
13
+ * file extension, so `.ts` files are skipped even when they contain JSX-like
14
+ * syntax.
16
15
  *
17
16
  * @reference https://github.com/cvazac/eslint-plugin-react-perf
18
17
  */
19
18
  export interface ITtscLintReactPerfRules {
20
19
  /**
21
- * Reject array literals (`[...]`) passed inline as a JSX prop.
22
- * Hoist the array outside the render or stabilize it with
23
- * `useMemo`.
20
+ * Reject array literals (`[...]`) passed inline as a JSX prop. Hoist the
21
+ * array outside the render or stabilize it with `useMemo`.
24
22
  *
25
23
  * @reference https://github.com/cvazac/eslint-plugin-react-perf/blob/master/docs/rules/jsx-no-new-array-as-prop.md
26
24
  */
27
25
  "react-perf/jsx-no-new-array-as-prop"?: TtscLintRuleOptionsSetting<ITtscLintReactPerfRuleOptions>;
28
26
 
29
27
  /**
30
- * Reject inline `function` expressions / arrow functions passed
31
- * as a JSX prop. Stabilize with `useCallback`.
28
+ * Reject inline `function` expressions / arrow functions passed as a JSX
29
+ * prop. Stabilize with `useCallback`.
32
30
  *
33
31
  * @reference https://github.com/cvazac/eslint-plugin-react-perf/blob/master/docs/rules/jsx-no-new-function-as-prop.md
34
32
  */
@@ -37,17 +35,17 @@ export interface ITtscLintReactPerfRules {
37
35
  /**
38
36
  * Reject inline object literals (`{...}`) passed as a JSX prop.
39
37
  *
40
- * A fresh object on every render invalidates the shallow-equal
41
- * check used by `React.memo` and `useMemo` consumers, so any
42
- * downstream memoization keyed on that prop is wasted.
38
+ * A fresh object on every render invalidates the shallow-equal check used by
39
+ * `React.memo` and `useMemo` consumers, so any downstream memoization keyed
40
+ * on that prop is wasted.
43
41
  *
44
42
  * @reference https://github.com/cvazac/eslint-plugin-react-perf/blob/master/docs/rules/jsx-no-new-object-as-prop.md
45
43
  */
46
44
  "react-perf/jsx-no-new-object-as-prop"?: TtscLintRuleOptionsSetting<ITtscLintReactPerfRuleOptions>;
47
45
 
48
46
  /**
49
- * Reject JSX expressions and fragments passed as a JSX prop —
50
- * each evaluation creates a new React element.
47
+ * Reject JSX expressions and fragments passed as a JSX prop — each evaluation
48
+ * creates a new React element.
51
49
  *
52
50
  * @reference https://github.com/cvazac/eslint-plugin-react-perf/blob/master/docs/rules/jsx-no-jsx-as-prop.md
53
51
  */
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Options shapes for the configurable rules in
3
- * {@link ITtscLintReactRules}.
2
+ * Options shapes for the configurable rules in {@link ITtscLintReactRules}.
4
3
  *
5
4
  * Currently only `react/only-export-components` (from
6
5
  * `eslint-plugin-react-refresh`) accepts options.
@@ -13,29 +12,28 @@ export interface ITtscLintReactOnlyExportComponentsRuleOptions {
13
12
  /**
14
13
  * Extra higher-order component names that wrap component exports.
15
14
  *
16
- * @default []
15
+ * @default [ ]
17
16
  */
18
17
  extraHOCs?: readonly string[];
19
18
 
20
19
  /**
21
- * Export names the active framework handles during refresh, such as
22
- * route metadata exports.
20
+ * Export names the active framework handles during refresh, such as route
21
+ * metadata exports.
23
22
  *
24
- * @default []
23
+ * @default [ ]
25
24
  */
26
25
  allowExportNames?: readonly string[];
27
26
 
28
27
  /**
29
- * Permit literal / string / boolean / template / binary constant
30
- * exports alongside component exports.
28
+ * Permit literal / string / boolean / template / binary constant exports
29
+ * alongside component exports.
31
30
  *
32
31
  * @default false
33
32
  */
34
33
  allowConstantExport?: boolean;
35
34
 
36
35
  /**
37
- * Also scan JavaScript files that import React. TSX files are always
38
- * scanned.
36
+ * Also scan JavaScript files that import React. TSX files are always scanned.
39
37
  *
40
38
  * @default false
41
39
  */