@ttsc/lint 0.14.0-dev.20260529.2 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.md +23 -25
  2. package/lib/defaultFormat.d.ts +10 -6
  3. package/lib/defaultFormat.js +10 -6
  4. package/lib/defaultFormat.js.map +1 -1
  5. package/lib/structures/ITtscLintConfig.d.ts +5 -5
  6. package/lib/structures/TtscLintRuleSetting.d.ts +19 -19
  7. package/lib/structures/{ITtscLintFormat.d.ts → format/ITtscLintFormat.d.ts} +45 -70
  8. package/lib/structures/format/ITtscLintFormat.js.map +1 -0
  9. package/lib/structures/format/ITtscLintFormatJsDoc.d.ts +15 -0
  10. package/lib/structures/format/ITtscLintFormatJsDoc.js +3 -0
  11. package/lib/structures/format/ITtscLintFormatJsDoc.js.map +1 -0
  12. package/lib/structures/format/ITtscLintFormatSortImports.d.ts +54 -0
  13. package/lib/structures/format/ITtscLintFormatSortImports.js +3 -0
  14. package/lib/structures/format/ITtscLintFormatSortImports.js.map +1 -0
  15. package/lib/structures/format/index.d.ts +3 -0
  16. package/lib/structures/format/index.js +20 -0
  17. package/lib/structures/format/index.js.map +1 -0
  18. package/lib/structures/index.d.ts +1 -1
  19. package/lib/structures/index.js +1 -1
  20. package/lib/structures/index.js.map +1 -1
  21. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +18 -27
  22. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +4 -5
  23. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -1
  24. package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +29 -33
  25. package/lib/structures/rules/ITtscLintContributorRules.d.ts +6 -7
  26. package/lib/structures/rules/ITtscLintCoreRules.d.ts +380 -408
  27. package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +5 -5
  28. package/lib/structures/rules/ITtscLintCypressRuleOptions.js +2 -2
  29. package/lib/structures/rules/ITtscLintCypressRules.d.ts +34 -38
  30. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +21 -24
  31. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +2 -2
  32. package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +51 -56
  33. package/lib/structures/rules/ITtscLintJestRules.d.ts +63 -74
  34. package/lib/structures/rules/ITtscLintJsdocRules.d.ts +47 -54
  35. package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +94 -102
  36. package/lib/structures/rules/ITtscLintNextjsRules.d.ts +50 -55
  37. package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +104 -122
  38. package/lib/structures/rules/ITtscLintPromiseRules.d.ts +62 -71
  39. package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +4 -4
  40. package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +17 -19
  41. package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +8 -10
  42. package/lib/structures/rules/ITtscLintReactRuleOptions.js +1 -2
  43. package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -1
  44. package/lib/structures/rules/ITtscLintReactRules.d.ts +91 -104
  45. package/lib/structures/rules/ITtscLintRegexpRules.d.ts +46 -54
  46. package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +7 -8
  47. package/lib/structures/rules/ITtscLintSecurityRules.d.ts +45 -52
  48. package/lib/structures/rules/ITtscLintSolidRules.d.ts +53 -56
  49. package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +3 -4
  50. package/lib/structures/rules/ITtscLintStorybookRules.d.ts +60 -69
  51. package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +31 -37
  52. package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +2 -3
  53. package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +102 -119
  54. package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +460 -518
  55. package/lib/structures/rules/ITtscLintVitestRules.d.ts +43 -51
  56. package/linthost/config.go +89 -72
  57. package/linthost/config_format.go +265 -99
  58. package/linthost/directives.go +5 -1
  59. package/linthost/display_width.go +72 -0
  60. package/linthost/fix.go +26 -1
  61. package/linthost/format.go +222 -25
  62. package/linthost/format_editor_settings.go +262 -0
  63. package/linthost/lsp.go +8 -4
  64. package/linthost/print_dispatch.go +3 -0
  65. package/linthost/print_doc.go +13 -0
  66. package/linthost/print_engine.go +68 -11
  67. package/linthost/print_nodes_array.go +167 -5
  68. package/linthost/print_nodes_call.go +786 -77
  69. package/linthost/print_nodes_function.go +43 -0
  70. package/linthost/print_nodes_imports.go +64 -14
  71. package/linthost/print_nodes_list.go +214 -8
  72. package/linthost/print_nodes_object.go +14 -6
  73. package/linthost/print_nodes_ternary.go +147 -0
  74. package/linthost/rules_boundaries.go +400 -400
  75. package/linthost/rules_camelcase.go +81 -81
  76. package/linthost/rules_complexity.go +52 -51
  77. package/linthost/rules_consistent_return.go +81 -81
  78. package/linthost/rules_core_extra.go +472 -472
  79. package/linthost/rules_curly.go +43 -43
  80. package/linthost/rules_default_case.go +15 -15
  81. package/linthost/rules_default_case_last.go +22 -22
  82. package/linthost/rules_format_arrow_parens.go +213 -0
  83. package/linthost/rules_format_bracket_spacing.go +117 -0
  84. package/linthost/rules_format_clause_join.go +179 -0
  85. package/linthost/rules_format_declaration_header.go +664 -0
  86. package/linthost/rules_format_indent.go +616 -0
  87. package/linthost/rules_format_jsdoc.go +4 -4
  88. package/linthost/rules_format_orphan_semi.go +106 -0
  89. package/linthost/rules_format_parameter_properties.go +175 -0
  90. package/linthost/rules_format_print_width.go +180 -69
  91. package/linthost/rules_format_quote_props.go +169 -0
  92. package/linthost/rules_format_quotes.go +75 -29
  93. package/linthost/rules_format_semi.go +185 -10
  94. package/linthost/rules_format_sort_imports.go +517 -121
  95. package/linthost/rules_format_statement_split.go +368 -0
  96. package/linthost/rules_format_ternary_nullish_parens.go +77 -0
  97. package/linthost/rules_format_trailing_comma.go +21 -2
  98. package/linthost/rules_format_whitespace.go +336 -0
  99. package/linthost/rules_functional.go +688 -688
  100. package/linthost/rules_gap.go +146 -11
  101. package/linthost/rules_grouped_accessor_pairs.go +60 -60
  102. package/linthost/rules_guard_for_in.go +122 -122
  103. package/linthost/rules_id_length.go +44 -44
  104. package/linthost/rules_imports.go +11 -3
  105. package/linthost/rules_init_declarations.go +25 -25
  106. package/linthost/rules_jsx_a11y.go +844 -844
  107. package/linthost/rules_max_classes_per_file.go +24 -24
  108. package/linthost/rules_max_depth.go +43 -43
  109. package/linthost/rules_max_lines.go +53 -53
  110. package/linthost/rules_max_lines_per_function.go +28 -28
  111. package/linthost/rules_max_nested_callbacks.go +26 -26
  112. package/linthost/rules_max_params.go +20 -20
  113. package/linthost/rules_max_statements.go +29 -29
  114. package/linthost/rules_nextjs.go +5 -5
  115. package/linthost/rules_no_else_return.go +38 -38
  116. package/linthost/rules_no_empty_named_blocks.go +45 -45
  117. package/linthost/rules_no_import_assign.go +96 -96
  118. package/linthost/rules_no_invalid_this.go +19 -19
  119. package/linthost/rules_no_loop_func.go +43 -43
  120. package/linthost/rules_no_magic_numbers.go +60 -60
  121. package/linthost/rules_no_mixed_operators.go +44 -44
  122. package/linthost/rules_no_param_reassign.go +64 -64
  123. package/linthost/rules_no_restricted_imports.go +45 -45
  124. package/linthost/rules_no_restricted_syntax.go +17 -17
  125. package/linthost/rules_no_shadow.go +112 -112
  126. package/linthost/rules_no_unreachable.go +36 -36
  127. package/linthost/rules_no_useless_assignment.go +79 -79
  128. package/linthost/rules_no_useless_constructor.go +167 -167
  129. package/linthost/rules_no_useless_return.go +28 -28
  130. package/linthost/rules_prefer_arrow_callback.go +74 -74
  131. package/linthost/rules_prefer_destructuring.go +61 -61
  132. package/linthost/rules_prefer_named_capture_group.go +87 -87
  133. package/linthost/rules_prefer_rest_params.go +61 -61
  134. package/linthost/rules_promise.go +800 -800
  135. package/linthost/rules_react.go +600 -600
  136. package/linthost/rules_react_extras.go +162 -162
  137. package/linthost/rules_react_hooks.go +2 -2
  138. package/linthost/rules_react_perf.go +231 -231
  139. package/linthost/rules_regexp.go +293 -293
  140. package/linthost/rules_security.go +613 -613
  141. package/linthost/rules_sort_imports.go +37 -37
  142. package/linthost/rules_sort_keys.go +88 -88
  143. package/linthost/rules_suggestions.go +13 -0
  144. package/linthost/rules_ts.go +2 -2
  145. package/linthost/rules_ts_async.go +247 -247
  146. package/linthost/rules_ts_class_literal_property_style.go +64 -64
  147. package/linthost/rules_ts_consistent_type_exports.go +209 -209
  148. package/linthost/rules_ts_explicit_function_return_type.go +35 -35
  149. package/linthost/rules_ts_extra.go +6 -2
  150. package/linthost/rules_ts_no_base_to_string.go +140 -140
  151. package/linthost/rules_ts_no_confusing_void.go +28 -28
  152. package/linthost/rules_ts_no_deprecated.go +110 -110
  153. package/linthost/rules_ts_no_for_in_array.go +45 -45
  154. package/linthost/rules_ts_no_magic_numbers.go +67 -67
  155. package/linthost/rules_ts_no_meaningless_void_operator.go +44 -44
  156. package/linthost/rules_ts_no_misused_spread.go +64 -64
  157. package/linthost/rules_ts_no_redundant_type_constituents.go +72 -72
  158. package/linthost/rules_ts_no_restricted_types.go +28 -28
  159. package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +87 -87
  160. package/linthost/rules_ts_no_unnecessary_condition.go +184 -184
  161. package/linthost/rules_ts_no_unnecessary_qualifier.go +72 -72
  162. package/linthost/rules_ts_no_unnecessary_template_expression.go +120 -120
  163. package/linthost/rules_ts_no_unnecessary_type_arguments.go +171 -171
  164. package/linthost/rules_ts_no_unnecessary_type_assertion.go +90 -90
  165. package/linthost/rules_ts_no_unsafe_argument.go +50 -50
  166. package/linthost/rules_ts_no_unsafe_assignment.go +60 -60
  167. package/linthost/rules_ts_no_unsafe_call.go +40 -40
  168. package/linthost/rules_ts_no_unsafe_enum_comparison.go +147 -147
  169. package/linthost/rules_ts_no_unsafe_member_access.go +29 -29
  170. package/linthost/rules_ts_no_unsafe_return.go +64 -64
  171. package/linthost/rules_ts_no_unsafe_unary_minus.go +42 -42
  172. package/linthost/rules_ts_no_useless_constructor.go +20 -20
  173. package/linthost/rules_ts_non_nullable_type_assertion_style.go +60 -60
  174. package/linthost/rules_ts_parameter_properties.go +10 -10
  175. package/linthost/rules_ts_prefer_find.go +116 -116
  176. package/linthost/rules_ts_prefer_includes.go +173 -173
  177. package/linthost/rules_ts_prefer_nullish_coalescing.go +54 -54
  178. package/linthost/rules_ts_prefer_optional_chain.go +156 -156
  179. package/linthost/rules_ts_prefer_promise_reject_errors.go +104 -104
  180. package/linthost/rules_ts_prefer_readonly.go +31 -31
  181. package/linthost/rules_ts_prefer_reduce_type_parameter.go +74 -74
  182. package/linthost/rules_ts_prefer_regexp_exec.go +69 -69
  183. package/linthost/rules_ts_prefer_return_this_type.go +79 -79
  184. package/linthost/rules_ts_prefer_string_starts_ends_with.go +237 -237
  185. package/linthost/rules_ts_promise_function_async.go +41 -41
  186. package/linthost/rules_ts_related_getter_setter_pairs.go +61 -61
  187. package/linthost/rules_ts_require_array_sort_compare.go +58 -58
  188. package/linthost/rules_ts_restrict_plus_operands.go +82 -82
  189. package/linthost/rules_ts_restrict_template_expressions.go +50 -50
  190. package/linthost/rules_ts_simple.go +249 -249
  191. package/linthost/rules_ts_sort_type_constituents.go +88 -88
  192. package/linthost/rules_ts_strict_boolean_expressions.go +103 -103
  193. package/linthost/rules_ts_switch_exhaustiveness_check.go +90 -90
  194. package/linthost/rules_ts_unbound_method.go +65 -65
  195. package/linthost/rules_tsdoc.go +88 -88
  196. package/linthost/rules_unicorn_better_regex.go +1 -1
  197. package/linthost/rules_unicorn_catch_error_name.go +19 -19
  198. package/linthost/rules_unicorn_consistent_assert.go +20 -20
  199. package/linthost/rules_unicorn_consistent_date_clone.go +27 -27
  200. package/linthost/rules_unicorn_consistent_destructuring.go +3 -3
  201. package/linthost/rules_unicorn_consistent_empty_array_spread.go +34 -34
  202. package/linthost/rules_unicorn_consistent_existence_index_check.go +42 -42
  203. package/linthost/rules_unicorn_consistent_function_scoping.go +3 -3
  204. package/linthost/rules_unicorn_consistent_template_literal_escape.go +3 -3
  205. package/linthost/rules_unicorn_custom_error_definition.go +92 -92
  206. package/linthost/rules_unicorn_empty_brace_spaces.go +47 -47
  207. package/linthost/rules_unicorn_error_message.go +34 -34
  208. package/linthost/rules_unicorn_escape_case.go +14 -14
  209. package/linthost/rules_unicorn_expiring_todo_comments.go +36 -36
  210. package/linthost/rules_unicorn_explicit_length_check.go +51 -51
  211. package/linthost/rules_unicorn_filename_case.go +1 -1
  212. package/linthost/rules_unicorn_import_style.go +1 -1
  213. package/linthost/rules_unicorn_isolated_functions.go +2 -2
  214. package/linthost/rules_unicorn_new_for_builtins.go +49 -49
  215. package/linthost/rules_unicorn_no_abusive_eslint_disable.go +31 -31
  216. package/linthost/rules_unicorn_no_accessor_recursion.go +69 -69
  217. package/linthost/rules_unicorn_no_anonymous_default_export.go +40 -40
  218. package/linthost/rules_unicorn_no_array_callback_reference.go +33 -33
  219. package/linthost/rules_unicorn_no_array_for_each.go +14 -14
  220. package/linthost/rules_unicorn_no_array_method_this_argument.go +29 -29
  221. package/linthost/rules_unicorn_no_array_reduce.go +15 -15
  222. package/linthost/rules_unicorn_no_array_reverse.go +17 -17
  223. package/linthost/rules_unicorn_no_array_sort.go +17 -17
  224. package/linthost/rules_unicorn_no_await_expression_member.go +12 -12
  225. package/linthost/rules_unicorn_no_await_in_promise_methods.go +38 -38
  226. package/linthost/rules_unicorn_no_console_spaces.go +30 -30
  227. package/linthost/rules_unicorn_no_document_cookie.go +13 -13
  228. package/linthost/rules_unicorn_no_empty_file.go +16 -16
  229. package/linthost/rules_unicorn_no_for_loop.go +58 -58
  230. package/linthost/rules_unicorn_no_hex_escape.go +11 -11
  231. package/linthost/rules_unicorn_no_immediate_mutation.go +55 -55
  232. package/linthost/rules_unicorn_no_instanceof_builtins.go +34 -34
  233. package/linthost/rules_unicorn_no_invalid_fetch_options.go +52 -52
  234. package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +25 -25
  235. package/linthost/rules_unicorn_no_keyword_prefix.go +56 -56
  236. package/linthost/rules_unicorn_no_lonely_if.go +21 -21
  237. package/linthost/rules_unicorn_no_magic_array_flat_depth.go +22 -22
  238. package/linthost/rules_unicorn_no_named_default.go +25 -25
  239. package/linthost/rules_unicorn_no_negated_condition.go +54 -54
  240. package/linthost/rules_unicorn_no_negation_in_equality_check.go +23 -23
  241. package/linthost/rules_unicorn_no_nested_ternary.go +15 -15
  242. package/linthost/rules_unicorn_no_new_array.go +5 -5
  243. package/linthost/rules_unicorn_no_new_buffer.go +5 -5
  244. package/linthost/rules_unicorn_no_null.go +2 -2
  245. package/linthost/rules_unicorn_no_object_as_default_parameter.go +19 -19
  246. package/linthost/rules_unicorn_no_process_exit.go +17 -17
  247. package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +29 -29
  248. package/linthost/rules_unicorn_no_static_only_class.go +27 -27
  249. package/linthost/rules_unicorn_no_thenable.go +47 -47
  250. package/linthost/rules_unicorn_no_this_assignment.go +10 -10
  251. package/linthost/rules_unicorn_no_typeof_undefined.go +31 -31
  252. package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +23 -23
  253. package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +37 -37
  254. package/linthost/rules_unicorn_no_unnecessary_await.go +24 -24
  255. package/linthost/rules_unicorn_no_unnecessary_slice_end.go +22 -22
  256. package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +67 -67
  257. package/linthost/rules_unicorn_no_unreadable_iife.go +22 -22
  258. package/linthost/rules_unicorn_no_useless_collection_argument.go +34 -34
  259. package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +18 -18
  260. package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +49 -49
  261. package/linthost/rules_unicorn_no_useless_iterator_to_array.go +41 -41
  262. package/linthost/rules_unicorn_no_useless_length_check.go +82 -82
  263. package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +42 -42
  264. package/linthost/rules_unicorn_no_useless_spread.go +38 -38
  265. package/linthost/rules_unicorn_no_useless_switch_case.go +29 -29
  266. package/linthost/rules_unicorn_no_useless_undefined.go +25 -25
  267. package/linthost/rules_unicorn_no_zero_fractions.go +17 -17
  268. package/linthost/rules_unicorn_number_literal_case.go +33 -33
  269. package/linthost/rules_unicorn_numeric_separators_style.go +36 -36
  270. package/linthost/rules_unicorn_prefer_add_event_listener.go +30 -30
  271. package/linthost/rules_unicorn_prefer_array_find.go +27 -27
  272. package/linthost/rules_unicorn_prefer_array_flat.go +25 -25
  273. package/linthost/rules_unicorn_prefer_array_flat_map.go +37 -37
  274. package/linthost/rules_unicorn_prefer_array_index_of.go +108 -108
  275. package/linthost/rules_unicorn_prefer_array_some.go +43 -43
  276. package/linthost/rules_unicorn_prefer_at.go +42 -42
  277. package/linthost/rules_unicorn_prefer_bigint_literals.go +42 -42
  278. package/linthost/rules_unicorn_prefer_blob_reading_methods.go +15 -15
  279. package/linthost/rules_unicorn_prefer_class_fields.go +57 -57
  280. package/linthost/rules_unicorn_prefer_classlist_toggle.go +76 -76
  281. package/linthost/rules_unicorn_prefer_code_point.go +21 -21
  282. package/linthost/rules_unicorn_prefer_date_now.go +47 -47
  283. package/linthost/rules_unicorn_prefer_default_parameters.go +96 -96
  284. package/linthost/rules_unicorn_prefer_dom_node_append.go +14 -14
  285. package/linthost/rules_unicorn_prefer_dom_node_dataset.go +27 -27
  286. package/linthost/rules_unicorn_prefer_dom_node_remove.go +17 -17
  287. package/linthost/rules_unicorn_prefer_dom_node_text_content.go +11 -11
  288. package/linthost/rules_unicorn_prefer_event_target.go +10 -10
  289. package/linthost/rules_unicorn_prefer_export_from.go +99 -99
  290. package/linthost/rules_unicorn_prefer_global_this.go +91 -91
  291. package/linthost/rules_unicorn_prefer_import_meta_properties.go +38 -38
  292. package/linthost/rules_unicorn_prefer_includes.go +108 -108
  293. package/linthost/rules_unicorn_prefer_json_parse_buffer.go +37 -37
  294. package/linthost/rules_unicorn_prefer_keyboard_event_key.go +10 -10
  295. package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +20 -20
  296. package/linthost/rules_unicorn_prefer_math_min_max.go +33 -33
  297. package/linthost/rules_unicorn_prefer_math_trunc.go +32 -32
  298. package/linthost/rules_unicorn_prefer_modern_dom_apis.go +18 -18
  299. package/linthost/rules_unicorn_prefer_modern_math_apis.go +38 -38
  300. package/linthost/rules_unicorn_prefer_module.go +22 -22
  301. package/linthost/rules_unicorn_prefer_native_coercion_functions.go +73 -73
  302. package/linthost/rules_unicorn_prefer_negative_index.go +46 -46
  303. package/linthost/rules_unicorn_prefer_node_protocol.go +90 -90
  304. package/linthost/rules_unicorn_prefer_number_properties.go +57 -57
  305. package/linthost/rules_unicorn_prefer_object_from_entries.go +26 -26
  306. package/linthost/rules_unicorn_prefer_optional_catch_binding.go +24 -24
  307. package/linthost/rules_unicorn_prefer_prototype_methods.go +25 -25
  308. package/linthost/rules_unicorn_prefer_query_selector.go +25 -25
  309. package/linthost/rules_unicorn_prefer_reflect_apply.go +10 -10
  310. package/linthost/rules_unicorn_prefer_regexp_test_rule.go +47 -47
  311. package/linthost/rules_unicorn_prefer_response_static_json.go +26 -26
  312. package/linthost/rules_unicorn_prefer_set_has.go +16 -16
  313. package/linthost/rules_unicorn_prefer_set_size.go +22 -22
  314. package/linthost/rules_unicorn_prefer_simple_condition_first.go +3 -3
  315. package/linthost/rules_unicorn_prefer_single_call.go +59 -59
  316. package/linthost/rules_unicorn_prefer_spread.go +24 -24
  317. package/linthost/rules_unicorn_prefer_string_raw.go +12 -12
  318. package/linthost/rules_unicorn_prefer_string_replace_all.go +46 -46
  319. package/linthost/rules_unicorn_prefer_string_slice.go +17 -17
  320. package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +104 -104
  321. package/linthost/rules_unicorn_prefer_string_trim_start_end.go +21 -21
  322. package/linthost/rules_unicorn_prefer_structured_clone.go +36 -36
  323. package/linthost/rules_unicorn_prefer_switch.go +65 -65
  324. package/linthost/rules_unicorn_prefer_ternary.go +35 -35
  325. package/linthost/rules_unicorn_prefer_top_level_await.go +34 -34
  326. package/linthost/rules_unicorn_prefer_type_error.go +84 -84
  327. package/linthost/rules_unicorn_prevent_abbreviations.go +68 -68
  328. package/linthost/rules_unicorn_relative_url_style.go +19 -19
  329. package/linthost/rules_unicorn_require_array_join_separator.go +18 -18
  330. package/linthost/rules_unicorn_require_module_attributes.go +25 -25
  331. package/linthost/rules_unicorn_require_module_specifiers.go +28 -28
  332. package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +18 -18
  333. package/linthost/rules_unicorn_require_post_message_target_origin.go +18 -18
  334. package/linthost/rules_unicorn_string_content.go +1 -1
  335. package/linthost/rules_unicorn_switch_case_braces.go +16 -16
  336. package/linthost/rules_unicorn_switch_case_break_position.go +3 -3
  337. package/linthost/rules_unicorn_template_indent.go +1 -1
  338. package/linthost/rules_unicorn_text_encoding_identifier_case.go +36 -36
  339. package/linthost/rules_unicorn_throw_new_error.go +30 -30
  340. package/linthost/rules_var.go +273 -3
  341. package/package.json +3 -3
  342. package/src/defaultFormat.ts +11 -7
  343. package/src/structures/ITtscLintConfig.ts +5 -5
  344. package/src/structures/TtscLintRuleSetting.ts +19 -19
  345. package/src/structures/{ITtscLintFormat.ts → format/ITtscLintFormat.ts} +48 -75
  346. package/src/structures/format/ITtscLintFormatJsDoc.ts +16 -0
  347. package/src/structures/format/ITtscLintFormatSortImports.ts +62 -0
  348. package/src/structures/format/index.ts +3 -0
  349. package/src/structures/index.ts +1 -1
  350. package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +20 -31
  351. package/src/structures/rules/ITtscLintBoundariesRules.ts +32 -36
  352. package/src/structures/rules/ITtscLintContributorRules.ts +6 -7
  353. package/src/structures/rules/ITtscLintCoreRules.ts +380 -408
  354. package/src/structures/rules/ITtscLintCypressRuleOptions.ts +5 -5
  355. package/src/structures/rules/ITtscLintCypressRules.ts +34 -38
  356. package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +28 -41
  357. package/src/structures/rules/ITtscLintFunctionalRules.ts +51 -56
  358. package/src/structures/rules/ITtscLintJestRules.ts +63 -74
  359. package/src/structures/rules/ITtscLintJsdocRules.ts +47 -54
  360. package/src/structures/rules/ITtscLintJsxA11yRules.ts +94 -102
  361. package/src/structures/rules/ITtscLintNextjsRules.ts +50 -55
  362. package/src/structures/rules/ITtscLintPlaywrightRules.ts +104 -122
  363. package/src/structures/rules/ITtscLintPromiseRules.ts +62 -71
  364. package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +4 -4
  365. package/src/structures/rules/ITtscLintReactPerfRules.ts +17 -19
  366. package/src/structures/rules/ITtscLintReactRuleOptions.ts +8 -10
  367. package/src/structures/rules/ITtscLintReactRules.ts +91 -104
  368. package/src/structures/rules/ITtscLintRegexpRules.ts +46 -54
  369. package/src/structures/rules/ITtscLintRuleOptionsMap.ts +7 -8
  370. package/src/structures/rules/ITtscLintSecurityRules.ts +45 -52
  371. package/src/structures/rules/ITtscLintSolidRules.ts +53 -56
  372. package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +3 -4
  373. package/src/structures/rules/ITtscLintStorybookRules.ts +60 -69
  374. package/src/structures/rules/ITtscLintTanstackQueryRules.ts +31 -37
  375. package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +2 -3
  376. package/src/structures/rules/ITtscLintTestingLibraryRules.ts +102 -119
  377. package/src/structures/rules/ITtscLintTypeScriptRules.ts +460 -518
  378. package/src/structures/rules/ITtscLintVitestRules.ts +43 -51
  379. package/lib/structures/ITtscLintFormat.js.map +0 -1
  380. /package/lib/structures/{ITtscLintFormat.js → format/ITtscLintFormat.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Options shapes for rules in {@link ITtscLintCypressRules} that accept
3
- * configuration. Only `cypress/unsafe-to-chain-command` is configurable in
4
- * the current native subset.
3
+ * configuration. Only `cypress/unsafe-to-chain-command` is configurable in the
4
+ * current native subset.
5
5
  *
6
6
  * @reference https://github.com/cypress-io/eslint-plugin-cypress
7
7
  */
@@ -9,10 +9,10 @@
9
9
  /** `cypress/unsafe-to-chain-command` rule options. */
10
10
  export interface ITtscLintCypressUnsafeToChainCommandRuleOptions {
11
11
  /**
12
- * Additional Cypress command names that should be treated as unsafe
13
- * action commands when another command is chained after them.
12
+ * Additional Cypress command names that should be treated as unsafe action
13
+ * commands when another command is chained after them.
14
14
  *
15
- * @default []
15
+ * @default [ ]
16
16
  */
17
17
  methods?: readonly string[];
18
18
  }
@@ -1,34 +1,33 @@
1
- import type { ITtscLintCypressUnsafeToChainCommandRuleOptions } from "./ITtscLintCypressRuleOptions";
2
1
  import type {
3
2
  TtscLintRuleOptionsSetting,
4
3
  TtscLintRuleSetting,
5
4
  } from "../TtscLintRuleSetting";
5
+ import type { ITtscLintCypressUnsafeToChainCommandRuleOptions } from "./ITtscLintCypressRuleOptions";
6
6
 
7
7
  /**
8
8
  * Cypress end-to-end test rules.
9
9
  *
10
- * Apply to TypeScript/TSX sources that use the Cypress runner
11
- * (`cy.*` commands and Mocha-style `describe`/`it` blocks). Mirror
12
- * the rule set from `eslint-plugin-cypress` and detect
13
- * Cypress-specific anti-patterns such as async test bodies, missing
14
- * assertions before screenshots, or deprecated XPath selectors.
10
+ * Apply to TypeScript/TSX sources that use the Cypress runner (`cy.*` commands
11
+ * and Mocha-style `describe`/`it` blocks). Mirror the rule set from
12
+ * `eslint-plugin-cypress` and detect Cypress-specific anti-patterns such as
13
+ * async test bodies, missing assertions before screenshots, or deprecated XPath
14
+ * selectors.
15
15
  *
16
16
  * @reference https://github.com/cypress-io/eslint-plugin-cypress
17
17
  */
18
18
  export interface ITtscLintCypressRules {
19
19
  /**
20
- * Require at least one Cypress assertion (e.g. `cy.should(...)`)
21
- * before each `cy.screenshot()` call, so the captured screenshot
22
- * reflects a stable application state.
20
+ * Require at least one Cypress assertion (e.g. `cy.should(...)`) before each
21
+ * `cy.screenshot()` call, so the captured screenshot reflects a stable
22
+ * application state.
23
23
  *
24
24
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/assertion-before-screenshot.md
25
25
  */
26
26
  "cypress/assertion-before-screenshot"?: TtscLintRuleSetting;
27
27
 
28
28
  /**
29
- * Prefer `cy.should()` over `.and()` when starting a Cypress
30
- * assertion chain — `.and()` only makes sense after a preceding
31
- * `.should()`.
29
+ * Prefer `cy.should()` over `.and()` when starting a Cypress assertion chain
30
+ * — `.and()` only makes sense after a preceding `.should()`.
32
31
  *
33
32
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-and.md
34
33
  */
@@ -37,8 +36,8 @@ export interface ITtscLintCypressRules {
37
36
  /**
38
37
  * Reject assigning the return value of a Cypress command.
39
38
  *
40
- * Cypress commands are asynchronous wrappers; assignment yields a
41
- * chainer proxy rather than the underlying subject.
39
+ * Cypress commands are asynchronous wrappers; assignment yields a chainer
40
+ * proxy rather than the underlying subject.
42
41
  *
43
42
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-assigning-return-values.md
44
43
  */
@@ -47,8 +46,8 @@ export interface ITtscLintCypressRules {
47
46
  /**
48
47
  * Reject `async` Cypress `before` / `beforeEach` hooks.
49
48
  *
50
- * Cypress already serializes commands; an `async` hook breaks the
51
- * runner's ordering.
49
+ * Cypress already serializes commands; an `async` hook breaks the runner's
50
+ * ordering.
52
51
  *
53
52
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-async-before.md
54
53
  */
@@ -57,10 +56,9 @@ export interface ITtscLintCypressRules {
57
56
  /**
58
57
  * Reject `async` Cypress `it`/`specify` test callbacks.
59
58
  *
60
- * Cypress builds a synchronous command queue when the test body
61
- * runs and replays it later; an `async` body resolves before the
62
- * queue executes, so the test reports success before any command
63
- * has run.
59
+ * Cypress builds a synchronous command queue when the test body runs and
60
+ * replays it later; an `async` body resolves before the queue executes, so
61
+ * the test reports success before any command has run.
64
62
  *
65
63
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-async-tests.md
66
64
  */
@@ -69,8 +67,8 @@ export interface ITtscLintCypressRules {
69
67
  /**
70
68
  * Reject chained `.get(...).get(...)` calls.
71
69
  *
72
- * Subsequent `.get()` calls do not narrow the previous subject;
73
- * use a single selector or `.find()`.
70
+ * Subsequent `.get()` calls do not narrow the previous subject; use a single
71
+ * selector or `.find()`.
74
72
  *
75
73
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-chained-get.md
76
74
  */
@@ -80,16 +78,16 @@ export interface ITtscLintCypressRules {
80
78
  * Reject `cy.debug()` and chained `.debug()` commands.
81
79
  *
82
80
  * The helpers drop into the browser debugger and pause the runner
83
- * indefinitely — fine for local exploration but hangs CI when one
84
- * slips into a committed test.
81
+ * indefinitely — fine for local exploration but hangs CI when one slips into
82
+ * a committed test.
85
83
  *
86
84
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-debug.md
87
85
  */
88
86
  "cypress/no-debug"?: TtscLintRuleSetting;
89
87
 
90
88
  /**
91
- * Reject `{ force: true }` on Cypress action commands such as
92
- * `.click({ force: true })`. The option masks real UX issues.
89
+ * Reject `{ force: true }` on Cypress action commands such as `.click({
90
+ * force: true })`. The option masks real UX issues.
93
91
  *
94
92
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-force.md
95
93
  */
@@ -106,9 +104,9 @@ export interface ITtscLintCypressRules {
106
104
  "cypress/no-pause"?: TtscLintRuleSetting;
107
105
 
108
106
  /**
109
- * Reject numeric `cy.wait(ms)` sleeps — they create flaky tests.
110
- * Wait on a Cypress retry-aware assertion (`should`, `findBy*`,
111
- * intercepted requests) instead.
107
+ * Reject numeric `cy.wait(ms)` sleeps — they create flaky tests. Wait on a
108
+ * Cypress retry-aware assertion (`should`, `findBy*`, intercepted requests)
109
+ * instead.
112
110
  *
113
111
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-unnecessary-waiting.md
114
112
  */
@@ -117,27 +115,25 @@ export interface ITtscLintCypressRules {
117
115
  /**
118
116
  * Reject `cy.xpath(...)` selectors.
119
117
  *
120
- * The plugin shipping `cy.xpath` is deprecated, and XPath
121
- * expressions tend to encode brittle DOM structure rather than the
122
- * semantic attributes Cypress otherwise targets.
118
+ * The plugin shipping `cy.xpath` is deprecated, and XPath expressions tend to
119
+ * encode brittle DOM structure rather than the semantic attributes Cypress
120
+ * otherwise targets.
123
121
  *
124
122
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/no-xpath.md
125
123
  */
126
124
  "cypress/no-xpath"?: TtscLintRuleSetting;
127
125
 
128
126
  /**
129
- * Require `cy.get()` selectors to target a `data-*` attribute
130
- * when the selector is a string literal — separates testing
131
- * concerns from styling.
127
+ * Require `cy.get()` selectors to target a `data-*` attribute when the
128
+ * selector is a string literal — separates testing concerns from styling.
132
129
  *
133
130
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/require-data-selectors.md
134
131
  */
135
132
  "cypress/require-data-selectors"?: TtscLintRuleSetting;
136
133
 
137
134
  /**
138
- * Reject chaining further Cypress commands after action commands
139
- * (e.g. `.click().then(...)`). Configurable per-command via the
140
- * options object.
135
+ * Reject chaining further Cypress commands after action commands (e.g.
136
+ * `.click().then(...)`). Configurable per-command via the options object.
141
137
  *
142
138
  * @reference https://github.com/cypress-io/eslint-plugin-cypress/blob/master/docs/rules/unsafe-to-chain-command.md
143
139
  */
@@ -2,8 +2,8 @@
2
2
  * Options shapes for every configurable rule in
3
3
  * {@link ITtscLintFunctionalRules}.
4
4
  *
5
- * Most `functional/*` rules share an ignore-pattern block — exposed below
6
- * as {@link ITtscLintFunctionalPatternOptions} — and then extend it with
5
+ * Most `functional/*` rules share an ignore-pattern block — exposed below as
6
+ * {@link ITtscLintFunctionalPatternOptions} — and then extend it with
7
7
  * rule-specific knobs.
8
8
  *
9
9
  * @reference https://github.com/eslint-functional/eslint-plugin-functional
@@ -19,8 +19,7 @@ export interface ITtscLintFunctionalPatternOptions {
19
19
  }
20
20
 
21
21
  /** `functional/functional-parameters` rule options. */
22
- export interface ITtscLintFunctionalParametersRuleOptions
23
- extends ITtscLintFunctionalPatternOptions {
22
+ export interface ITtscLintFunctionalParametersRuleOptions extends ITtscLintFunctionalPatternOptions {
24
23
  /** Allow rest parameters such as `(...args: readonly string[])`. */
25
24
  allowRestParameter?: boolean;
26
25
 
@@ -28,40 +27,35 @@ export interface ITtscLintFunctionalParametersRuleOptions
28
27
  allowArgumentsKeyword?: boolean;
29
28
 
30
29
  /**
31
- * Require functions to declare parameters. `true` maps to the
32
- * conservative at-least-one policy.
30
+ * Require functions to declare parameters. `true` maps to the conservative
31
+ * at-least-one policy.
33
32
  */
34
33
  enforceParameterCount?: boolean | "atLeastOne" | "exactlyOne";
35
34
  }
36
35
 
37
36
  /** `functional/immutable-data` rule options. */
38
- export interface ITtscLintFunctionalImmutableDataRuleOptions
39
- extends ITtscLintFunctionalPatternOptions {
37
+ export interface ITtscLintFunctionalImmutableDataRuleOptions extends ITtscLintFunctionalPatternOptions {
40
38
  /**
41
- * Skip mutating `Map` and `Set` methods while still checking arrays
42
- * and property assignment.
39
+ * Skip mutating `Map` and `Set` methods while still checking arrays and
40
+ * property assignment.
43
41
  */
44
42
  ignoreMapsAndSets?: boolean;
45
43
  }
46
44
 
47
45
  /** `functional/no-let` rule options. */
48
- export interface ITtscLintFunctionalNoLetRuleOptions
49
- extends ITtscLintFunctionalPatternOptions {
46
+ export interface ITtscLintFunctionalNoLetRuleOptions extends ITtscLintFunctionalPatternOptions {
50
47
  /** Permit `let` in a `for` statement initializer. */
51
48
  allowInForLoopInit?: boolean;
52
49
 
53
- /**
54
- * Permit `let` inside functions while still rejecting module-level
55
- * `let`.
56
- */
50
+ /** Permit `let` inside functions while still rejecting module-level `let`. */
57
51
  allowInFunctions?: boolean;
58
52
  }
59
53
 
60
54
  /** `functional/no-conditional-statements` rule options. */
61
55
  export interface ITtscLintFunctionalNoConditionalStatementsRuleOptions {
62
56
  /**
63
- * Reserved for upstream-compatible configs; the current native rule
64
- * rejects all `if` / `switch` statements regardless of value.
57
+ * Reserved for upstream-compatible configs; the current native rule rejects
58
+ * all `if` / `switch` statements regardless of value.
65
59
  */
66
60
  allowReturningBranches?: boolean | "ifExhaustive";
67
61
  }
@@ -78,8 +72,8 @@ export interface ITtscLintFunctionalNoTryStatementsRuleOptions {
78
72
  /** `functional/no-throw-statements` rule options. */
79
73
  export interface ITtscLintFunctionalNoThrowStatementsRuleOptions {
80
74
  /**
81
- * Reserved for upstream-compatible configs; the current native rule
82
- * rejects every `throw` statement regardless of value.
75
+ * Reserved for upstream-compatible configs; the current native rule rejects
76
+ * every `throw` statement regardless of value.
83
77
  */
84
78
  allowToRejectPromises?: boolean;
85
79
  }
@@ -102,18 +96,17 @@ export interface ITtscLintFunctionalNoReturnVoidRuleOptions {
102
96
  allowUndefined?: boolean;
103
97
 
104
98
  /**
105
- * Skip functions whose return type is inferred to be `void` rather
106
- * than declared explicitly.
99
+ * Skip functions whose return type is inferred to be `void` rather than
100
+ * declared explicitly.
107
101
  */
108
102
  ignoreInferredTypes?: boolean;
109
103
  }
110
104
 
111
105
  /** `functional/prefer-immutable-types` rule options. */
112
- export interface ITtscLintFunctionalPreferImmutableTypesRuleOptions
113
- extends ITtscLintFunctionalPatternOptions {
106
+ export interface ITtscLintFunctionalPreferImmutableTypesRuleOptions extends ITtscLintFunctionalPatternOptions {
114
107
  /**
115
- * Minimum accepted immutability. The native subset treats any
116
- * configured value as readonly-required.
108
+ * Minimum accepted immutability. The native subset treats any configured
109
+ * value as readonly-required.
117
110
  */
118
111
  enforcement?:
119
112
  | "ReadonlyShallow"
@@ -124,8 +117,7 @@ export interface ITtscLintFunctionalPreferImmutableTypesRuleOptions
124
117
  }
125
118
 
126
119
  /** `functional/prefer-readonly-type` rule options. */
127
- export interface ITtscLintFunctionalPreferReadonlyTypeRuleOptions
128
- extends ITtscLintFunctionalPatternOptions {
120
+ export interface ITtscLintFunctionalPreferReadonlyTypeRuleOptions extends ITtscLintFunctionalPatternOptions {
129
121
  /** Permit mutation of locals while still policing exported types. */
130
122
  allowLocalMutation?: boolean;
131
123
 
@@ -139,8 +131,8 @@ export interface ITtscLintFunctionalPreferReadonlyTypeRuleOptions
139
131
  ignoreCollections?: boolean;
140
132
 
141
133
  /**
142
- * Skip class fields. `"fieldsOnly"` keeps the rule active for
143
- * non-field class members.
134
+ * Skip class fields. `"fieldsOnly"` keeps the rule active for non-field class
135
+ * members.
144
136
  */
145
137
  ignoreClass?: boolean | "fieldsOnly";
146
138
 
@@ -170,14 +162,10 @@ export interface ITtscLintFunctionalTypeDeclarationImmutabilityRule {
170
162
  identifiers: string | readonly string[];
171
163
 
172
164
  /**
173
- * Reserved for upstream-compatible configs; the current native subset
174
- * treats every value as readonly-required.
165
+ * Reserved for upstream-compatible configs; the current native subset treats
166
+ * every value as readonly-required.
175
167
  */
176
- immutability?:
177
- | "ReadonlyShallow"
178
- | "ReadonlyDeep"
179
- | "Immutable"
180
- | "Mutable";
168
+ immutability?: "ReadonlyShallow" | "ReadonlyDeep" | "Immutable" | "Mutable";
181
169
 
182
170
  /** Comparator applied to the immutability level above. */
183
171
  comparator?:
@@ -194,8 +182,7 @@ export interface ITtscLintFunctionalTypeDeclarationImmutabilityRule {
194
182
  }
195
183
 
196
184
  /** `functional/type-declaration-immutability` rule options. */
197
- export interface ITtscLintFunctionalTypeDeclarationImmutabilityRuleOptions
198
- extends ITtscLintFunctionalPatternOptions {
185
+ export interface ITtscLintFunctionalTypeDeclarationImmutabilityRuleOptions extends ITtscLintFunctionalPatternOptions {
199
186
  /** Declaration-name policies. Empty means all type declarations. */
200
187
  rules?: readonly ITtscLintFunctionalTypeDeclarationImmutabilityRule[];
201
188
 
@@ -207,7 +194,7 @@ export interface ITtscLintFunctionalTypeDeclarationImmutabilityRuleOptions
207
194
  * Empty object options accepted by simple `functional/*` policy rules.
208
195
  *
209
196
  * Present as a named type so plugin authors can write `extends
210
- * ITtscLintFunctionalEmptyRuleOptions` while still surviving a future
211
- * field addition.
197
+ * ITtscLintFunctionalEmptyRuleOptions` while still surviving a future field
198
+ * addition.
212
199
  */
213
200
  export interface ITtscLintFunctionalEmptyRuleOptions {}
@@ -1,3 +1,4 @@
1
+ import type { TtscLintRuleOptionsSetting } from "../TtscLintRuleSetting";
1
2
  import type {
2
3
  ITtscLintFunctionalEmptyRuleOptions,
3
4
  ITtscLintFunctionalImmutableDataRuleOptions,
@@ -14,42 +15,39 @@ import type {
14
15
  ITtscLintFunctionalReadonlyTypeRuleOptions,
15
16
  ITtscLintFunctionalTypeDeclarationImmutabilityRuleOptions,
16
17
  } from "./ITtscLintFunctionalRuleOptions";
17
- import type { TtscLintRuleOptionsSetting } from "../TtscLintRuleSetting";
18
18
 
19
19
  /**
20
- * Functional-programming policy rules from `eslint-plugin-functional`.
21
- * Pushes code toward immutability, side-effect-free expressions, and
22
- * expression-style control flow.
20
+ * Functional-programming policy rules from `eslint-plugin-functional`. Pushes
21
+ * code toward immutability, side-effect-free expressions, and expression-style
22
+ * control flow.
23
23
  *
24
- * Most rules are useful in pieces — projects rarely enable the whole
25
- * family at `"error"`. Enabling the whole set together expresses a
26
- * strict functional-core / imperative-shell discipline.
24
+ * Most rules are useful in pieces — projects rarely enable the whole family at
25
+ * `"error"`. Enabling the whole set together expresses a strict functional-core
26
+ * / imperative-shell discipline.
27
27
  *
28
28
  * @reference https://github.com/eslint-functional/eslint-plugin-functional
29
29
  */
30
30
  export interface ITtscLintFunctionalRules {
31
31
  /**
32
- * Enforce functional parameter style: reject `arguments`, reject
33
- * rest parameters, and optionally enforce a per-function
34
- * parameter-count policy.
32
+ * Enforce functional parameter style: reject `arguments`, reject rest
33
+ * parameters, and optionally enforce a per-function parameter-count policy.
35
34
  *
36
35
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/functional-parameters.md
37
36
  */
38
37
  "functional/functional-parameters"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalParametersRuleOptions>;
39
38
 
40
39
  /**
41
- * Reject property assignment (`obj.x = ...`), element assignment
42
- * (`arr[0] = ...`), and `Map`/`Set` mutation methods. Configurable
43
- * to allow mutation inside constructors or initialization
44
- * expressions.
40
+ * Reject property assignment (`obj.x = ...`), element assignment (`arr[0] =
41
+ * ...`), and `Map`/`Set` mutation methods. Configurable to allow mutation
42
+ * inside constructors or initialization expressions.
45
43
  *
46
44
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/immutable-data.md
47
45
  */
48
46
  "functional/immutable-data"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalImmutableDataRuleOptions>;
49
47
 
50
48
  /**
51
- * Reject `abstract` classes and `extends` clauses on class
52
- * declarations; prefer composition and structural typing.
49
+ * Reject `abstract` classes and `extends` clauses on class declarations;
50
+ * prefer composition and structural typing.
53
51
  *
54
52
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-class-inheritance.md
55
53
  */
@@ -63,17 +61,17 @@ export interface ITtscLintFunctionalRules {
63
61
  "functional/no-classes"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalEmptyRuleOptions>;
64
62
 
65
63
  /**
66
- * Reject `if` and `switch` *statements*. The conditional-expression
67
- * forms (ternary, `&&`, `||`) remain allowed.
64
+ * Reject `if` and `switch` _statements_. The conditional-expression forms
65
+ * (ternary, `&&`, `||`) remain allowed.
68
66
  *
69
67
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-conditional-statements.md
70
68
  */
71
69
  "functional/no-conditional-statements"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalNoConditionalStatementsRuleOptions>;
72
70
 
73
71
  /**
74
- * Reject expression statements that exist purely for their side
75
- * effects (`mutate(x);`); pure code is built up from expressions
76
- * with assigned or returned results.
72
+ * Reject expression statements that exist purely for their side effects
73
+ * (`mutate(x);`); pure code is built up from expressions with assigned or
74
+ * returned results.
77
75
  *
78
76
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-expression-statements.md
79
77
  */
@@ -81,120 +79,117 @@ export interface ITtscLintFunctionalRules {
81
79
 
82
80
  /**
83
81
  * Reject `let` declarations so every binding is `const`. The shared
84
- * ignore-pattern options can carve out specific identifier shapes
85
- * (test locals, loop counters) when a full ban is too aggressive.
82
+ * ignore-pattern options can carve out specific identifier shapes (test
83
+ * locals, loop counters) when a full ban is too aggressive.
86
84
  *
87
85
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-let.md
88
86
  */
89
87
  "functional/no-let"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalNoLetRuleOptions>;
90
88
 
91
89
  /**
92
- * Reject `for`, `while`, and `do/while` loop statements; use
93
- * recursive helpers or array methods (`map`, `reduce`) instead.
90
+ * Reject `for`, `while`, and `do/while` loop statements; use recursive
91
+ * helpers or array methods (`map`, `reduce`) instead.
94
92
  *
95
93
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-loop-statements.md
96
94
  */
97
95
  "functional/no-loop-statements"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalEmptyRuleOptions>;
98
96
 
99
97
  /**
100
- * Reject interfaces and type literals that mix property, method,
101
- * call, and index member kinds; mixed shapes make composition
102
- * harder.
98
+ * Reject interfaces and type literals that mix property, method, call, and
99
+ * index member kinds; mixed shapes make composition harder.
103
100
  *
104
101
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-mixed-types.md
105
102
  */
106
103
  "functional/no-mixed-types"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalNoMixedTypesRuleOptions>;
107
104
 
108
105
  /**
109
- * Reject any call to `Promise.reject(...)`; resolve with an
110
- * `Option` / `Result` shape so failures stay in the value channel.
106
+ * Reject any call to `Promise.reject(...)`; resolve with an `Option` /
107
+ * `Result` shape so failures stay in the value channel.
111
108
  *
112
109
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-promise-reject.md
113
110
  */
114
111
  "functional/no-promise-reject"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalEmptyRuleOptions>;
115
112
 
116
113
  /**
117
- * Reject void returns and functions whose declared return type is
118
- * `void`; functions should always return a value.
114
+ * Reject void returns and functions whose declared return type is `void`;
115
+ * functions should always return a value.
119
116
  *
120
117
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-return-void.md
121
118
  */
122
119
  "functional/no-return-void"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalNoReturnVoidRuleOptions>;
123
120
 
124
121
  /**
125
- * Reject any `this` expression. Combined with
126
- * `functional/no-classes` this leaves no place where `this` is
127
- * legal; on its own it still forbids `this` in standalone functions,
128
- * modules, and arrow pipelines.
122
+ * Reject any `this` expression. Combined with `functional/no-classes` this
123
+ * leaves no place where `this` is legal; on its own it still forbids `this`
124
+ * in standalone functions, modules, and arrow pipelines.
129
125
  *
130
126
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-this-expressions.md
131
127
  */
132
128
  "functional/no-this-expressions"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalEmptyRuleOptions>;
133
129
 
134
130
  /**
135
- * Reject `throw` statements; functional code surfaces failures
136
- * through return values (`Either`, `Result`) instead.
131
+ * Reject `throw` statements; functional code surfaces failures through return
132
+ * values (`Either`, `Result`) instead.
137
133
  *
138
134
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-throw-statements.md
139
135
  */
140
136
  "functional/no-throw-statements"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalNoThrowStatementsRuleOptions>;
141
137
 
142
138
  /**
143
- * Reject `try/catch` and `try/finally` statements as a corollary
144
- * of `functional/no-throw-statements`.
139
+ * Reject `try/catch` and `try/finally` statements as a corollary of
140
+ * `functional/no-throw-statements`.
145
141
  *
146
142
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/no-try-statements.md
147
143
  */
148
144
  "functional/no-try-statements"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalNoTryStatementsRuleOptions>;
149
145
 
150
146
  /**
151
- * Require declared variable, parameter, and property types to be
152
- * `readonly` or otherwise structurally immutable.
147
+ * Require declared variable, parameter, and property types to be `readonly`
148
+ * or otherwise structurally immutable.
153
149
  *
154
150
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/prefer-immutable-types.md
155
151
  */
156
152
  "functional/prefer-immutable-types"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalPreferImmutableTypesRuleOptions>;
157
153
 
158
154
  /**
159
- * Prefer function-property signatures (`fn: () => T`) over method
160
- * shorthand (`fn(): T`) in interfaces and type literals.
155
+ * Prefer function-property signatures (`fn: () => T`) over method shorthand
156
+ * (`fn(): T`) in interfaces and type literals.
161
157
  *
162
- * Only the property form accepts `readonly`, so method shorthand
163
- * silently makes the slot mutable; overloads still need the method
164
- * form.
158
+ * Only the property form accepts `readonly`, so method shorthand silently
159
+ * makes the slot mutable; overloads still need the method form.
165
160
  *
166
161
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/prefer-property-signatures.md
167
162
  */
168
163
  "functional/prefer-property-signatures"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalEmptyRuleOptions>;
169
164
 
170
165
  /**
171
- * Prefer `readonly` array, tuple, collection, and property types
172
- * over their mutable counterparts.
166
+ * Prefer `readonly` array, tuple, collection, and property types over their
167
+ * mutable counterparts.
173
168
  *
174
169
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/prefer-readonly-type.md
175
170
  */
176
171
  "functional/prefer-readonly-type"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalPreferReadonlyTypeRuleOptions>;
177
172
 
178
173
  /**
179
- * Reject trivial wrappers such as `x => f(x)` in favor of the tacit
180
- * form `f`; reduces noise in functional pipelines.
174
+ * Reject trivial wrappers such as `x => f(x)` in favor of the tacit form `f`;
175
+ * reduces noise in functional pipelines.
181
176
  *
182
177
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/prefer-tacit.md
183
178
  */
184
179
  "functional/prefer-tacit"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalPreferTacitRuleOptions>;
185
180
 
186
181
  /**
187
- * Enforce one consistent spelling for readonly types — `readonly
188
- * T[]` vs `ReadonlyArray<T>` — across the project.
182
+ * Enforce one consistent spelling for readonly types — `readonly T[]` vs
183
+ * `ReadonlyArray<T>` — across the project.
189
184
  *
190
185
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/readonly-type.md
191
186
  */
192
187
  "functional/readonly-type"?: TtscLintRuleOptionsSetting<ITtscLintFunctionalReadonlyTypeRuleOptions>;
193
188
 
194
189
  /**
195
- * Enforce readonly/immutable type declarations by *declaration
196
- * name* policy — for projects that want only types matching
197
- * certain naming conventions to be locked down.
190
+ * Enforce readonly/immutable type declarations by _declaration name_ policy —
191
+ * for projects that want only types matching certain naming conventions to be
192
+ * locked down.
198
193
  *
199
194
  * @reference https://github.com/eslint-functional/eslint-plugin-functional/blob/main/docs/rules/type-declaration-immutability.md
200
195
  */