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