@ttsc/lint 0.14.0-dev.20260529.2 → 0.14.0

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