@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,10 +1,12 @@
1
- import type { TtscLintSeverity } from "./TtscLintSeverity";
1
+ import type { TtscLintSeverity } from "../TtscLintSeverity";
2
+ import type { ITtscLintFormatJsDoc } from "./ITtscLintFormatJsDoc";
3
+ import type { ITtscLintFormatSortImports } from "./ITtscLintFormatSortImports";
2
4
 
3
5
  /**
4
6
  * Prettier-style flat configuration for the format rules.
5
7
  *
6
8
  * The `format` block is the recommended way to enable formatting in
7
- * `@ttsc/lint`. Each key mirrors a Prettier option of the same name users
9
+ * `@ttsc/lint`. Each key mirrors a Prettier option of the same name, users
8
10
  * coming from a `.prettierrc` can copy their config almost verbatim. The block
9
11
  * is opt-in by presence: a `lint.config.ts` with no `format` field keeps every
10
12
  * format rule off, exactly as before.
@@ -14,42 +16,6 @@ import type { TtscLintSeverity } from "./TtscLintSeverity";
14
16
  * `ttsc check` does not report format findings unless `severity` is set to a
15
17
  * non-off value. Individual rules can be overridden or disabled through the
16
18
  * `rules` map (the `rules` entry wins on conflict).
17
- *
18
- * @example
19
- * import type { ITtscLintConfig } from "@ttsc/lint";
20
- *
21
- * export default {
22
- * rules: { "no-var": "error" },
23
- * format: {
24
- * severity: "warning",
25
- * printWidth: 100,
26
- * singleQuote: true,
27
- * importOrder: ["<THIRD_PARTY_MODULES>", "^[./]"],
28
- * },
29
- * } satisfies ITtscLintConfig;
30
- *
31
- * Deviations from Prettier:
32
- * - `endOfLine` is restricted to `"lf"` and `"crlf"`. Prettier's
33
- * `"cr"` and `"auto"` modes are intentionally unsupported — the
34
- * printer does not auto-detect terminators.
35
- * - Many Prettier knobs (`bracketSpacing`, `arrowParens`,
36
- * `quoteProps`, JSX-specific switches) are not yet implemented.
37
- *
38
- * Rule enablement matrix (when the `format` block is present):
39
- *
40
- * - `format/semi` — always on. `semi: false` flips it to `prefer:
41
- * "never"`.
42
- * - `format/quotes` — always on. `singleQuote: true` flips to
43
- * `prefer: "single"`.
44
- * - `format/trailing-comma` — always on. `trailingComma: "none"`
45
- * disables the rule's edits without removing the surface.
46
- * - `format/print-width` — always on, driven by `printWidth`,
47
- * `tabWidth`, `useTabs`, `endOfLine`.
48
- * - `format/sort-imports` — opt-in. Setting `importOrder` enables it.
49
- * - `format/jsdoc` — opt-in. Setting `jsdoc` enables it.
50
- *
51
- * Format findings produced from this block are off by default. Set `severity`
52
- * only when a project intentionally wants check-time format diagnostics.
53
19
  */
54
20
  export interface ITtscLintFormat {
55
21
  /**
@@ -80,6 +46,40 @@ export interface ITtscLintFormat {
80
46
  */
81
47
  singleQuote?: boolean;
82
48
 
49
+ /**
50
+ * Parenthesize a single arrow-function parameter. Mirrors Prettier's
51
+ * `arrowParens`. `"always"` (the default) keeps `(x) => x`; `"avoid"` strips
52
+ * the parentheses of a single bare-identifier parameter, giving `x => x`. A
53
+ * typed, destructured, rest, optional, defaulted, or multi-parameter list
54
+ * keeps its parentheses in both modes.
55
+ *
56
+ * @default "always"
57
+ */
58
+ arrowParens?: "always" | "avoid";
59
+
60
+ /**
61
+ * Pad the inside of single-line braces with one space. Mirrors Prettier's
62
+ * `bracketSpacing`. `true` (the default) gives `{ x: 1 }`, `import { foo }`;
63
+ * `false` gives `{x: 1}`, `import {foo}`. Applies to object literals, object
64
+ * destructuring patterns, named imports/exports, and type literals; block,
65
+ * class, interface, and enum braces are unaffected.
66
+ *
67
+ * @default true
68
+ */
69
+ bracketSpacing?: boolean;
70
+
71
+ /**
72
+ * Quoting policy for object-literal property keys. Mirrors Prettier's
73
+ * `quoteProps`. `"as-needed"` (the default) removes quotes from a key that is
74
+ * a valid identifier (`{ "foo": 1 }` becomes `{ foo: 1 }`), keeping them on
75
+ * non-identifier or numeric keys (`"bar-baz"`, `"123"`). `"consistent"` keeps
76
+ * every key quoted when any one of them requires quotes. `"preserve"` never
77
+ * changes quoting.
78
+ *
79
+ * @default "as-needed"
80
+ */
81
+ quoteProps?: "as-needed" | "consistent" | "preserve";
82
+
83
83
  /**
84
84
  * Trailing-comma policy. Mirrors Prettier's `trailingComma`. The `"none"`
85
85
  * mode disables the rule's edits.
@@ -120,49 +120,22 @@ export interface ITtscLintFormat {
120
120
  endOfLine?: "lf" | "crlf";
121
121
 
122
122
  /**
123
- * Group order for `format/sort-imports`. Setting this enables the rule;
124
- * mirrors `@trivago/prettier-plugin-sort-imports`' `importOrder`. The
125
- * `<THIRD_PARTY_MODULES>` literal is the catch-all placeholder for specifiers
126
- * that match no other group.
127
- */
128
- importOrder?: readonly ("<THIRD_PARTY_MODULES>" | (string & {}))[];
129
-
130
- /**
131
- * Insert blank line between sort-imports groups.
132
- *
133
- * @default true
134
- */
135
- importOrderSeparation?: boolean;
136
-
137
- /**
138
- * Sort named import specifiers alphabetically within each declaration.
139
- *
140
- * @default true
141
- */
142
- importOrderSortSpecifiers?: boolean;
143
-
144
- /**
145
- * Case-insensitive comparison for sort-imports.
123
+ * Import sorting & merging. Off unless present; `true` enables it with
124
+ * defaults, an object customizes.
146
125
  *
147
126
  * @default false
148
127
  */
149
- importOrderCaseInsensitive?: boolean;
128
+ sortImports?: boolean | ITtscLintFormatSortImports;
150
129
 
151
130
  /**
152
- * Enable `format/jsdoc`. Pass `true` to turn it on with built-in defaults, or
153
- * an object to customize:
131
+ * JSDoc tag normalization. On by default like the rest of the format set;
132
+ * pass `false` to disable, or an object to customize.
154
133
  *
155
- * - `tagSynonyms` extra `from to` rewrites layered on the built-in synonym
156
- * table.
157
- * - `sortTags` sort JSDoc tags into canonical order (reserved; today's MVP
158
- * only rewrites tag names).
134
+ * Today it only rewrites tag synonyms (`@return` `@returns`, `@arg`
135
+ * `@param`, ...); tag sorting, `@param` column alignment, and description
136
+ * wrapping are on the roadmap.
159
137
  *
160
- * @default false (off)
138
+ * @default true
161
139
  */
162
- jsdoc?:
163
- | boolean
164
- | {
165
- tagSynonyms?: Record<string, string>;
166
- sortTags?: boolean;
167
- };
140
+ jsDoc?: boolean | ITtscLintFormatJsDoc;
168
141
  }
@@ -0,0 +1,16 @@
1
+ /** Object form of {@link ITtscLintFormat.jsDoc}. */
2
+ export interface ITtscLintFormatJsDoc {
3
+ /**
4
+ * Extra `from → to` tag rewrites layered on the built-in synonym table
5
+ * (`@return` → `@returns`, `@arg` → `@param`, ...).
6
+ */
7
+ tagSynonyms?: Record<string, string>;
8
+
9
+ /**
10
+ * Sort JSDoc tags into canonical order. Reserved; the current MVP only
11
+ * rewrites tag names.
12
+ *
13
+ * @default false
14
+ */
15
+ sortTags?: boolean;
16
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Object form of {@link ITtscLintFormat.sortImports}.
3
+ *
4
+ * The declarative {@link order} array expresses group order, blank-line
5
+ * separation, and special groups all by position. Multiple imports of the same
6
+ * module are always merged into one declaration; merging a value import with a
7
+ * type-only import additionally requires {@link combineTypeAndValue}.
8
+ */
9
+ export interface ITtscLintFormatSortImports {
10
+ /**
11
+ * Group order. Each entry is a regular expression matched against a
12
+ * declaration's module specifier, or one of these placeholders:
13
+ *
14
+ * - `<BUILTIN_MODULES>` — Node built-in modules (`fs`, `node:path`, ...).
15
+ * - `<THIRD_PARTY_MODULES>` — catch-all for specifiers that match no other
16
+ * group. Injected implicitly at the front when omitted.
17
+ * - `<TYPES>` — `import type` declarations. Combine with a regex to scope it,
18
+ * e.g. `<TYPES>^[.]` groups type-only relative imports.
19
+ * - `""` (empty string) — emit one blank line at this position. An array with
20
+ * no `""` entry produces no blank lines between groups.
21
+ *
22
+ * Named specifiers inside each declaration are always sorted. Omit for the
23
+ * default grouping. Example:
24
+ *
25
+ * ```ts
26
+ * order: [
27
+ * "<BUILTIN_MODULES>",
28
+ * "",
29
+ * "<THIRD_PARTY_MODULES>",
30
+ * "",
31
+ * "<TYPES>^[.]",
32
+ * "^[.]",
33
+ * ];
34
+ * ```
35
+ */
36
+ order?: readonly (
37
+ | "<BUILTIN_MODULES>"
38
+ | "<THIRD_PARTY_MODULES>"
39
+ | "<TYPES>"
40
+ | ""
41
+ | (string & {})
42
+ )[];
43
+
44
+ /**
45
+ * Case-sensitive comparison. `false` (the default) sorts case-insensitively,
46
+ * so `React` and `react` order together; `true` uses raw ASCII order
47
+ * (uppercase before lowercase).
48
+ *
49
+ * @default false
50
+ */
51
+ caseSensitive?: boolean;
52
+
53
+ /**
54
+ * Merge a value import and a type-only import of the same module into one
55
+ * declaration with inline `type` specifiers: `import { foo } from "m"` plus
56
+ * `import type { Bar } from "m"` collapse to `import { foo, type Bar } from
57
+ * "m"`.
58
+ *
59
+ * @default false
60
+ */
61
+ combineTypeAndValue?: boolean;
62
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./ITtscLintFormat";
2
+ export * from "./ITtscLintFormatJsDoc";
3
+ export * from "./ITtscLintFormatSortImports";
@@ -1,5 +1,5 @@
1
1
  export * from "./ITtscLintConfig";
2
- export * from "./ITtscLintFormat";
2
+ export * from "./format";
3
3
  export * from "./ITtscLintPlugin";
4
4
  export * from "./ITtscLintPluginConfig";
5
5
  export * from "./ITtscLintPluginMeta";
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * Options shapes for every rule in {@link ITtscLintBoundariesRules}.
3
3
  *
4
- * The `boundaries/*` family classifies each source file as belonging to a
5
- * named *element* (a layer, feature, or app within the project). Every
6
- * rule below shares the same element-declaration block, so the helper
7
- * interfaces in this file describe that block first and then layer the
8
- * per-rule options on top.
4
+ * The `boundaries/*` family classifies each source file as belonging to a named
5
+ * _element_ (a layer, feature, or app within the project). Every rule below
6
+ * shares the same element-declaration block, so the helper interfaces in this
7
+ * file describe that block first and then layer the per-rule options on top.
9
8
  *
10
9
  * @reference https://github.com/javierbrea/eslint-plugin-boundaries
11
10
  */
@@ -16,31 +15,28 @@ export interface ITtscLintBoundariesElement {
16
15
  type: string;
17
16
 
18
17
  /**
19
- * Glob-like source path pattern. Relative patterns are matched against
20
- * any project-path suffix, so `src/app/**` works in temporary and
21
- * monorepo roots alike.
18
+ * Glob-like source path pattern. Relative patterns are matched against any
19
+ * project-path suffix, so `src/app/**` works in temporary and monorepo roots
20
+ * alike.
22
21
  */
23
22
  pattern: string;
24
23
 
25
24
  /**
26
- * File(s) inside the element that may be imported from outside that
27
- * element. Used by `boundaries/entry-point`.
25
+ * File(s) inside the element that may be imported from outside that element.
26
+ * Used by `boundaries/entry-point`.
28
27
  */
29
28
  entry?: string | readonly string[];
30
29
 
31
30
  /**
32
- * File(s) inside the element that may only be imported by the same
33
- * element. Used by `boundaries/no-private`.
31
+ * File(s) inside the element that may only be imported by the same element.
32
+ * Used by `boundaries/no-private`.
34
33
  */
35
34
  private?: string | readonly string[];
36
35
  }
37
36
 
38
37
  /** Dependency policy used by `boundaries/element-types`. */
39
38
  export interface ITtscLintBoundariesElementTypesRule {
40
- /**
41
- * Source element type(s) the policy applies to. Omit to match all
42
- * sources.
43
- */
39
+ /** Source element type(s) the policy applies to. Omit to match all sources. */
44
40
  from?: string | readonly string[];
45
41
 
46
42
  /** Target element type(s) allowed from the matching source. */
@@ -58,15 +54,12 @@ export interface ITtscLintBoundariesElementTypesRule {
58
54
  * `boundaries/*` rule.
59
55
  */
60
56
  export interface ITtscLintBoundariesElementsOptions {
61
- /**
62
- * Source path elements used to classify importers and imported files.
63
- */
57
+ /** Source path elements used to classify importers and imported files. */
64
58
  elements?: readonly ITtscLintBoundariesElement[];
65
59
  }
66
60
 
67
61
  /** `boundaries/element-types` rule options. */
68
- export interface ITtscLintBoundariesElementTypesRuleOptions
69
- extends ITtscLintBoundariesElementsOptions {
62
+ export interface ITtscLintBoundariesElementTypesRuleOptions extends ITtscLintBoundariesElementsOptions {
70
63
  /**
71
64
  * Fallback policy when no rule matches.
72
65
  *
@@ -80,10 +73,7 @@ export interface ITtscLintBoundariesElementTypesRuleOptions
80
73
 
81
74
  /** `boundaries/external` rule options. */
82
75
  export interface ITtscLintBoundariesExternalRuleOptions {
83
- /**
84
- * External package/specifier patterns that are allowed. Empty means
85
- * all.
86
- */
76
+ /** External package/specifier patterns that are allowed. Empty means all. */
87
77
  allow?: string | readonly string[];
88
78
 
89
79
  /** External package/specifier patterns that are rejected. */
@@ -109,13 +99,12 @@ export type ITtscLintBoundariesNoUnknownRuleOptions =
109
99
  * `boundaries/dependencies` rule options.
110
100
  *
111
101
  * The upstream unified rule subsumes `element-types`, `entry-point`,
112
- * `external`, `no-private`, and `no-unknown` behind a single
113
- * direction-aware policy block. The v1 native port registers the rule
114
- * name and decodes this config shape but does not yet emit diagnostics
115
- * (`v1 stub; full validation deferred` — see `rules_boundaries.go`).
102
+ * `external`, `no-private`, and `no-unknown` behind a single direction-aware
103
+ * policy block. The v1 native port registers the rule name and decodes this
104
+ * config shape but does not yet emit diagnostics (`v1 stub; full validation
105
+ * deferred` — see `rules_boundaries.go`).
116
106
  */
117
- export interface ITtscLintBoundariesDependenciesRuleOptions
118
- extends ITtscLintBoundariesElementsOptions {
107
+ export interface ITtscLintBoundariesDependenciesRuleOptions extends ITtscLintBoundariesElementsOptions {
119
108
  /**
120
109
  * Fallback policy when no rule matches.
121
110
  *
@@ -1,3 +1,7 @@
1
+ import type {
2
+ TtscLintRuleOptionsSetting,
3
+ TtscLintRuleSetting,
4
+ } from "../TtscLintRuleSetting";
1
5
  import type {
2
6
  ITtscLintBoundariesDependenciesRuleOptions,
3
7
  ITtscLintBoundariesElementTypesRuleOptions,
@@ -6,29 +10,25 @@ import type {
6
10
  ITtscLintBoundariesNoPrivateRuleOptions,
7
11
  ITtscLintBoundariesNoUnknownRuleOptions,
8
12
  } from "./ITtscLintBoundariesRuleOptions";
9
- import type {
10
- TtscLintRuleOptionsSetting,
11
- TtscLintRuleSetting,
12
- } from "../TtscLintRuleSetting";
13
13
 
14
14
  /**
15
- * Architecture-boundary rules that enforce import direction and
16
- * module visibility between configured source-path *elements*
17
- * (layers, features, apps in a monorepo).
15
+ * Architecture-boundary rules that enforce import direction and module
16
+ * visibility between configured source-path _elements_ (layers, features, apps
17
+ * in a monorepo).
18
18
  *
19
- * Every rule operates on the *resolved source file* of an import —
20
- * relative imports are followed to the real `.ts`/`.tsx`/`.d.ts`
21
- * file before classification.
19
+ * Every rule operates on the _resolved source file_ of an import — relative
20
+ * imports are followed to the real `.ts`/`.tsx`/`.d.ts` file before
21
+ * classification.
22
22
  *
23
23
  * @reference https://github.com/javierbrea/eslint-plugin-boundaries
24
24
  */
25
25
  export interface ITtscLintBoundariesRules {
26
26
  /**
27
- * Enforce allowed dependency directions between configured
28
- * source-path element types.
27
+ * Enforce allowed dependency directions between configured source-path
28
+ * element types.
29
29
  *
30
- * Each `element` entry declares a name, a matching glob, and the
31
- * other element types it is allowed to import.
30
+ * Each `element` entry declares a name, a matching glob, and the other
31
+ * element types it is allowed to import.
32
32
  *
33
33
  * Imports that fall outside the allow-list are reported.
34
34
  *
@@ -37,39 +37,37 @@ export interface ITtscLintBoundariesRules {
37
37
  "boundaries/element-types"?: TtscLintRuleOptionsSetting<ITtscLintBoundariesElementTypesRuleOptions>;
38
38
 
39
39
  /**
40
- * Require imports that cross element boundaries to target the
41
- * importee element's configured public entry files (typically
42
- * `index.ts`), so the public surface of each element is explicit.
40
+ * Require imports that cross element boundaries to target the importee
41
+ * element's configured public entry files (typically `index.ts`), so the
42
+ * public surface of each element is explicit.
43
43
  *
44
44
  * @reference https://github.com/javierbrea/eslint-plugin-boundaries/blob/master/docs/rules/entry-point.md
45
45
  */
46
46
  "boundaries/entry-point"?: TtscLintRuleOptionsSetting<ITtscLintBoundariesEntryPointRuleOptions>;
47
47
 
48
48
  /**
49
- * Restrict external package imports by package or specifier
50
- * pattern.
49
+ * Restrict external package imports by package or specifier pattern.
51
50
  *
52
- * Useful for forbidding direct imports of an underlying library
53
- * when a project-local facade exists.
51
+ * Useful for forbidding direct imports of an underlying library when a
52
+ * project-local facade exists.
54
53
  *
55
54
  * @reference https://github.com/javierbrea/eslint-plugin-boundaries/blob/master/docs/rules/external.md
56
55
  */
57
56
  "boundaries/external"?: TtscLintRuleOptionsSetting<ITtscLintBoundariesExternalRuleOptions>;
58
57
 
59
58
  /**
60
- * Reject imports of files declared *private* by a parent element
61
- * from outside that element.
59
+ * Reject imports of files declared _private_ by a parent element from outside
60
+ * that element.
62
61
  *
63
- * Combines with `element-types` to keep implementation details
64
- * hidden.
62
+ * Combines with `element-types` to keep implementation details hidden.
65
63
  *
66
64
  * @reference https://github.com/javierbrea/eslint-plugin-boundaries/blob/master/docs/rules/no-private.md
67
65
  */
68
66
  "boundaries/no-private"?: TtscLintRuleOptionsSetting<ITtscLintBoundariesNoPrivateRuleOptions>;
69
67
 
70
68
  /**
71
- * Reject relative imports whose resolved source file falls under
72
- * no configured element.
69
+ * Reject relative imports whose resolved source file falls under no
70
+ * configured element.
73
71
  *
74
72
  * Catches stray files that escape the project's boundary map.
75
73
  *
@@ -78,16 +76,14 @@ export interface ITtscLintBoundariesRules {
78
76
  "boundaries/no-unknown"?: TtscLintRuleOptionsSetting<ITtscLintBoundariesNoUnknownRuleOptions>;
79
77
 
80
78
  /**
81
- * Unified dependency-direction rule from upstream
82
- * `eslint-plugin-boundaries`, intended to replace
83
- * `element-types` / `entry-point` / `external` / `no-private` /
84
- * `no-unknown` with a single policy block.
79
+ * Unified dependency-direction rule from upstream `eslint-plugin-boundaries`,
80
+ * intended to replace `element-types` / `entry-point` / `external` /
81
+ * `no-private` / `no-unknown` with a single policy block.
85
82
  *
86
- * The native port registers the rule name and accepts the same
87
- * `elements` + `rules` config shape as `element-types`, but does not
88
- * emit diagnostics yet (v1 stub; full direction validation
89
- * deferred). Configure it today to claim the upstream rule id; the
90
- * legacy split rules continue to enforce policy.
83
+ * The native port registers the rule name and accepts the same `elements` +
84
+ * `rules` config shape as `element-types`, but does not emit diagnostics yet
85
+ * (v1 stub; full direction validation deferred). Configure it today to claim
86
+ * the upstream rule id; the legacy split rules continue to enforce policy.
91
87
  *
92
88
  * @reference https://github.com/javierbrea/eslint-plugin-boundaries/blob/master/docs/rules/dependencies.md
93
89
  */
@@ -1,15 +1,14 @@
1
- import type { TtscLintSeverity } from "../TtscLintSeverity";
2
1
  import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
2
+ import type { TtscLintSeverity } from "../TtscLintSeverity";
3
3
 
4
4
  /**
5
5
  * Catch-all index signature for contributor plugin rules.
6
6
  *
7
- * Plugin authors expose rules under their own namespace prefix
8
- * (`demo/no-demo`, `myplugin/foo-bar`). The signature here
9
- * accepts any `"<namespace>/<rule>"` key with either the bare
10
- * severity form, the severity tuple, or the
11
- * severity-plus-options tuple. Plugins ship their own typings to
12
- * tighten the options shape per rule.
7
+ * Plugin authors expose rules under their own namespace prefix (`demo/no-demo`,
8
+ * `myplugin/foo-bar`). The signature here accepts any `"<namespace>/<rule>"`
9
+ * key with either the bare severity form, the severity tuple, or the
10
+ * severity-plus-options tuple. Plugins ship their own typings to tighten the
11
+ * options shape per rule.
13
12
  *
14
13
  * @reference https://ttsc.dev/lint/development/rules
15
14
  */