@ttsc/lint 0.14.0-dev.20260529.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.md +85 -87
  2. package/lib/defaultFormat.d.ts +10 -6
  3. package/lib/defaultFormat.js +10 -6
  4. package/lib/defaultFormat.js.map +1 -1
  5. package/lib/structures/ITtscLintConfig.d.ts +5 -5
  6. package/lib/structures/TtscLintRuleSetting.d.ts +19 -19
  7. package/lib/structures/{ITtscLintFormat.d.ts → format/ITtscLintFormat.d.ts} +45 -70
  8. package/lib/structures/format/ITtscLintFormat.js.map +1 -0
  9. package/lib/structures/format/ITtscLintFormatJsDoc.d.ts +15 -0
  10. package/lib/structures/format/ITtscLintFormatJsDoc.js +3 -0
  11. package/lib/structures/format/ITtscLintFormatJsDoc.js.map +1 -0
  12. package/lib/structures/format/ITtscLintFormatSortImports.d.ts +54 -0
  13. package/lib/structures/format/ITtscLintFormatSortImports.js +3 -0
  14. package/lib/structures/format/ITtscLintFormatSortImports.js.map +1 -0
  15. package/lib/structures/format/index.d.ts +3 -0
  16. package/lib/structures/format/index.js +20 -0
  17. package/lib/structures/format/index.js.map +1 -0
  18. package/lib/structures/index.d.ts +1 -1
  19. package/lib/structures/index.js +1 -1
  20. package/lib/structures/index.js.map +1 -1
  21. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +18 -27
  22. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +4 -5
  23. package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -1
  24. package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +29 -33
  25. package/lib/structures/rules/ITtscLintContributorRules.d.ts +6 -7
  26. package/lib/structures/rules/ITtscLintCoreRules.d.ts +380 -408
  27. package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +5 -5
  28. package/lib/structures/rules/ITtscLintCypressRuleOptions.js +2 -2
  29. package/lib/structures/rules/ITtscLintCypressRules.d.ts +34 -38
  30. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +21 -24
  31. package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +2 -2
  32. package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +51 -56
  33. package/lib/structures/rules/ITtscLintJestRules.d.ts +63 -74
  34. package/lib/structures/rules/ITtscLintJsdocRules.d.ts +47 -54
  35. package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +94 -102
  36. package/lib/structures/rules/ITtscLintNextjsRules.d.ts +50 -55
  37. package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +104 -122
  38. package/lib/structures/rules/ITtscLintPromiseRules.d.ts +62 -71
  39. package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +4 -4
  40. package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +17 -19
  41. package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +8 -10
  42. package/lib/structures/rules/ITtscLintReactRuleOptions.js +1 -2
  43. package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -1
  44. package/lib/structures/rules/ITtscLintReactRules.d.ts +91 -104
  45. package/lib/structures/rules/ITtscLintRegexpRules.d.ts +46 -54
  46. package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +7 -8
  47. package/lib/structures/rules/ITtscLintSecurityRules.d.ts +45 -52
  48. package/lib/structures/rules/ITtscLintSolidRules.d.ts +53 -56
  49. package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +3 -4
  50. package/lib/structures/rules/ITtscLintStorybookRules.d.ts +60 -69
  51. package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +31 -37
  52. package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +2 -3
  53. package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +102 -119
  54. package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +460 -518
  55. package/lib/structures/rules/ITtscLintVitestRules.d.ts +43 -51
  56. package/linthost/config.go +89 -72
  57. package/linthost/config_format.go +265 -99
  58. package/linthost/directives.go +5 -1
  59. package/linthost/display_width.go +72 -0
  60. package/linthost/fix.go +26 -1
  61. package/linthost/format.go +222 -25
  62. package/linthost/format_editor_settings.go +262 -0
  63. package/linthost/lsp.go +8 -4
  64. package/linthost/print_dispatch.go +3 -0
  65. package/linthost/print_doc.go +13 -0
  66. package/linthost/print_engine.go +68 -11
  67. package/linthost/print_nodes_array.go +108 -5
  68. package/linthost/print_nodes_call.go +515 -74
  69. package/linthost/print_nodes_function.go +25 -0
  70. package/linthost/print_nodes_imports.go +47 -14
  71. package/linthost/print_nodes_list.go +191 -8
  72. package/linthost/print_nodes_object.go +12 -6
  73. package/linthost/print_nodes_ternary.go +106 -0
  74. package/linthost/rules_boundaries.go +400 -400
  75. package/linthost/rules_camelcase.go +81 -81
  76. package/linthost/rules_complexity.go +52 -51
  77. package/linthost/rules_consistent_return.go +81 -81
  78. package/linthost/rules_core_extra.go +472 -472
  79. package/linthost/rules_curly.go +43 -43
  80. package/linthost/rules_default_case.go +15 -15
  81. package/linthost/rules_default_case_last.go +22 -22
  82. package/linthost/rules_format_arrow_parens.go +167 -0
  83. package/linthost/rules_format_bracket_spacing.go +117 -0
  84. package/linthost/rules_format_clause_join.go +172 -0
  85. package/linthost/rules_format_declaration_header.go +664 -0
  86. package/linthost/rules_format_indent.go +616 -0
  87. package/linthost/rules_format_jsdoc.go +4 -4
  88. package/linthost/rules_format_orphan_semi.go +106 -0
  89. package/linthost/rules_format_parameter_properties.go +175 -0
  90. package/linthost/rules_format_print_width.go +185 -69
  91. package/linthost/rules_format_quote_props.go +169 -0
  92. package/linthost/rules_format_quotes.go +75 -29
  93. package/linthost/rules_format_semi.go +185 -10
  94. package/linthost/rules_format_sort_imports.go +456 -121
  95. package/linthost/rules_format_statement_split.go +368 -0
  96. package/linthost/rules_format_ternary_nullish_parens.go +77 -0
  97. package/linthost/rules_format_trailing_comma.go +21 -2
  98. package/linthost/rules_format_whitespace.go +336 -0
  99. package/linthost/rules_functional.go +688 -688
  100. package/linthost/rules_gap.go +146 -11
  101. package/linthost/rules_grouped_accessor_pairs.go +60 -60
  102. package/linthost/rules_guard_for_in.go +122 -122
  103. package/linthost/rules_id_length.go +44 -44
  104. package/linthost/rules_imports.go +11 -3
  105. package/linthost/rules_init_declarations.go +25 -25
  106. package/linthost/rules_jsx_a11y.go +844 -844
  107. package/linthost/rules_max_classes_per_file.go +24 -24
  108. package/linthost/rules_max_depth.go +43 -43
  109. package/linthost/rules_max_lines.go +53 -53
  110. package/linthost/rules_max_lines_per_function.go +28 -28
  111. package/linthost/rules_max_nested_callbacks.go +26 -26
  112. package/linthost/rules_max_params.go +20 -20
  113. package/linthost/rules_max_statements.go +29 -29
  114. package/linthost/rules_nextjs.go +5 -5
  115. package/linthost/rules_no_else_return.go +38 -38
  116. package/linthost/rules_no_empty_named_blocks.go +45 -45
  117. package/linthost/rules_no_import_assign.go +96 -96
  118. package/linthost/rules_no_invalid_this.go +19 -19
  119. package/linthost/rules_no_loop_func.go +43 -43
  120. package/linthost/rules_no_magic_numbers.go +60 -60
  121. package/linthost/rules_no_mixed_operators.go +44 -44
  122. package/linthost/rules_no_param_reassign.go +64 -64
  123. package/linthost/rules_no_restricted_imports.go +45 -45
  124. package/linthost/rules_no_restricted_syntax.go +17 -17
  125. package/linthost/rules_no_shadow.go +112 -112
  126. package/linthost/rules_no_unreachable.go +36 -36
  127. package/linthost/rules_no_useless_assignment.go +79 -79
  128. package/linthost/rules_no_useless_constructor.go +167 -167
  129. package/linthost/rules_no_useless_return.go +28 -28
  130. package/linthost/rules_prefer_arrow_callback.go +74 -74
  131. package/linthost/rules_prefer_destructuring.go +61 -61
  132. package/linthost/rules_prefer_named_capture_group.go +87 -87
  133. package/linthost/rules_prefer_rest_params.go +61 -61
  134. package/linthost/rules_promise.go +800 -800
  135. package/linthost/rules_react.go +600 -600
  136. package/linthost/rules_react_extras.go +162 -162
  137. package/linthost/rules_react_hooks.go +2 -2
  138. package/linthost/rules_react_perf.go +231 -231
  139. package/linthost/rules_regexp.go +293 -293
  140. package/linthost/rules_security.go +613 -613
  141. package/linthost/rules_sort_imports.go +37 -37
  142. package/linthost/rules_sort_keys.go +88 -88
  143. package/linthost/rules_suggestions.go +13 -0
  144. package/linthost/rules_ts.go +2 -2
  145. package/linthost/rules_ts_async.go +247 -247
  146. package/linthost/rules_ts_class_literal_property_style.go +64 -64
  147. package/linthost/rules_ts_consistent_type_exports.go +209 -209
  148. package/linthost/rules_ts_explicit_function_return_type.go +35 -35
  149. package/linthost/rules_ts_extra.go +6 -2
  150. package/linthost/rules_ts_no_base_to_string.go +140 -140
  151. package/linthost/rules_ts_no_confusing_void.go +28 -28
  152. package/linthost/rules_ts_no_deprecated.go +110 -110
  153. package/linthost/rules_ts_no_for_in_array.go +45 -45
  154. package/linthost/rules_ts_no_magic_numbers.go +67 -67
  155. package/linthost/rules_ts_no_meaningless_void_operator.go +44 -44
  156. package/linthost/rules_ts_no_misused_spread.go +64 -64
  157. package/linthost/rules_ts_no_redundant_type_constituents.go +72 -72
  158. package/linthost/rules_ts_no_restricted_types.go +28 -28
  159. package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +87 -87
  160. package/linthost/rules_ts_no_unnecessary_condition.go +184 -184
  161. package/linthost/rules_ts_no_unnecessary_qualifier.go +72 -72
  162. package/linthost/rules_ts_no_unnecessary_template_expression.go +120 -120
  163. package/linthost/rules_ts_no_unnecessary_type_arguments.go +171 -171
  164. package/linthost/rules_ts_no_unnecessary_type_assertion.go +90 -90
  165. package/linthost/rules_ts_no_unsafe_argument.go +50 -50
  166. package/linthost/rules_ts_no_unsafe_assignment.go +60 -60
  167. package/linthost/rules_ts_no_unsafe_call.go +40 -40
  168. package/linthost/rules_ts_no_unsafe_enum_comparison.go +147 -147
  169. package/linthost/rules_ts_no_unsafe_member_access.go +29 -29
  170. package/linthost/rules_ts_no_unsafe_return.go +64 -64
  171. package/linthost/rules_ts_no_unsafe_unary_minus.go +42 -42
  172. package/linthost/rules_ts_no_useless_constructor.go +20 -20
  173. package/linthost/rules_ts_non_nullable_type_assertion_style.go +60 -60
  174. package/linthost/rules_ts_parameter_properties.go +10 -10
  175. package/linthost/rules_ts_prefer_find.go +116 -116
  176. package/linthost/rules_ts_prefer_includes.go +173 -173
  177. package/linthost/rules_ts_prefer_nullish_coalescing.go +54 -54
  178. package/linthost/rules_ts_prefer_optional_chain.go +156 -156
  179. package/linthost/rules_ts_prefer_promise_reject_errors.go +104 -104
  180. package/linthost/rules_ts_prefer_readonly.go +31 -31
  181. package/linthost/rules_ts_prefer_reduce_type_parameter.go +74 -74
  182. package/linthost/rules_ts_prefer_regexp_exec.go +69 -69
  183. package/linthost/rules_ts_prefer_return_this_type.go +79 -79
  184. package/linthost/rules_ts_prefer_string_starts_ends_with.go +237 -237
  185. package/linthost/rules_ts_promise_function_async.go +41 -41
  186. package/linthost/rules_ts_related_getter_setter_pairs.go +61 -61
  187. package/linthost/rules_ts_require_array_sort_compare.go +58 -58
  188. package/linthost/rules_ts_restrict_plus_operands.go +82 -82
  189. package/linthost/rules_ts_restrict_template_expressions.go +50 -50
  190. package/linthost/rules_ts_simple.go +249 -249
  191. package/linthost/rules_ts_sort_type_constituents.go +88 -88
  192. package/linthost/rules_ts_strict_boolean_expressions.go +103 -103
  193. package/linthost/rules_ts_switch_exhaustiveness_check.go +90 -90
  194. package/linthost/rules_ts_unbound_method.go +65 -65
  195. package/linthost/rules_tsdoc.go +88 -88
  196. package/linthost/rules_unicorn_better_regex.go +1 -1
  197. package/linthost/rules_unicorn_catch_error_name.go +19 -19
  198. package/linthost/rules_unicorn_consistent_assert.go +20 -20
  199. package/linthost/rules_unicorn_consistent_date_clone.go +27 -27
  200. package/linthost/rules_unicorn_consistent_destructuring.go +3 -3
  201. package/linthost/rules_unicorn_consistent_empty_array_spread.go +34 -34
  202. package/linthost/rules_unicorn_consistent_existence_index_check.go +42 -42
  203. package/linthost/rules_unicorn_consistent_function_scoping.go +3 -3
  204. package/linthost/rules_unicorn_consistent_template_literal_escape.go +3 -3
  205. package/linthost/rules_unicorn_custom_error_definition.go +92 -92
  206. package/linthost/rules_unicorn_empty_brace_spaces.go +47 -47
  207. package/linthost/rules_unicorn_error_message.go +34 -34
  208. package/linthost/rules_unicorn_escape_case.go +14 -14
  209. package/linthost/rules_unicorn_expiring_todo_comments.go +36 -36
  210. package/linthost/rules_unicorn_explicit_length_check.go +51 -51
  211. package/linthost/rules_unicorn_filename_case.go +1 -1
  212. package/linthost/rules_unicorn_import_style.go +1 -1
  213. package/linthost/rules_unicorn_isolated_functions.go +2 -2
  214. package/linthost/rules_unicorn_new_for_builtins.go +49 -49
  215. package/linthost/rules_unicorn_no_abusive_eslint_disable.go +31 -31
  216. package/linthost/rules_unicorn_no_accessor_recursion.go +69 -69
  217. package/linthost/rules_unicorn_no_anonymous_default_export.go +40 -40
  218. package/linthost/rules_unicorn_no_array_callback_reference.go +33 -33
  219. package/linthost/rules_unicorn_no_array_for_each.go +14 -14
  220. package/linthost/rules_unicorn_no_array_method_this_argument.go +29 -29
  221. package/linthost/rules_unicorn_no_array_reduce.go +15 -15
  222. package/linthost/rules_unicorn_no_array_reverse.go +17 -17
  223. package/linthost/rules_unicorn_no_array_sort.go +17 -17
  224. package/linthost/rules_unicorn_no_await_expression_member.go +12 -12
  225. package/linthost/rules_unicorn_no_await_in_promise_methods.go +38 -38
  226. package/linthost/rules_unicorn_no_console_spaces.go +30 -30
  227. package/linthost/rules_unicorn_no_document_cookie.go +13 -13
  228. package/linthost/rules_unicorn_no_empty_file.go +16 -16
  229. package/linthost/rules_unicorn_no_for_loop.go +58 -58
  230. package/linthost/rules_unicorn_no_hex_escape.go +11 -11
  231. package/linthost/rules_unicorn_no_immediate_mutation.go +55 -55
  232. package/linthost/rules_unicorn_no_instanceof_builtins.go +34 -34
  233. package/linthost/rules_unicorn_no_invalid_fetch_options.go +52 -52
  234. package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +25 -25
  235. package/linthost/rules_unicorn_no_keyword_prefix.go +56 -56
  236. package/linthost/rules_unicorn_no_lonely_if.go +21 -21
  237. package/linthost/rules_unicorn_no_magic_array_flat_depth.go +22 -22
  238. package/linthost/rules_unicorn_no_named_default.go +25 -25
  239. package/linthost/rules_unicorn_no_negated_condition.go +54 -54
  240. package/linthost/rules_unicorn_no_negation_in_equality_check.go +23 -23
  241. package/linthost/rules_unicorn_no_nested_ternary.go +15 -15
  242. package/linthost/rules_unicorn_no_new_array.go +5 -5
  243. package/linthost/rules_unicorn_no_new_buffer.go +5 -5
  244. package/linthost/rules_unicorn_no_null.go +2 -2
  245. package/linthost/rules_unicorn_no_object_as_default_parameter.go +19 -19
  246. package/linthost/rules_unicorn_no_process_exit.go +17 -17
  247. package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +29 -29
  248. package/linthost/rules_unicorn_no_static_only_class.go +27 -27
  249. package/linthost/rules_unicorn_no_thenable.go +47 -47
  250. package/linthost/rules_unicorn_no_this_assignment.go +10 -10
  251. package/linthost/rules_unicorn_no_typeof_undefined.go +31 -31
  252. package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +23 -23
  253. package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +37 -37
  254. package/linthost/rules_unicorn_no_unnecessary_await.go +24 -24
  255. package/linthost/rules_unicorn_no_unnecessary_slice_end.go +22 -22
  256. package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +67 -67
  257. package/linthost/rules_unicorn_no_unreadable_iife.go +22 -22
  258. package/linthost/rules_unicorn_no_useless_collection_argument.go +34 -34
  259. package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +18 -18
  260. package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +49 -49
  261. package/linthost/rules_unicorn_no_useless_iterator_to_array.go +41 -41
  262. package/linthost/rules_unicorn_no_useless_length_check.go +82 -82
  263. package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +42 -42
  264. package/linthost/rules_unicorn_no_useless_spread.go +38 -38
  265. package/linthost/rules_unicorn_no_useless_switch_case.go +29 -29
  266. package/linthost/rules_unicorn_no_useless_undefined.go +25 -25
  267. package/linthost/rules_unicorn_no_zero_fractions.go +17 -17
  268. package/linthost/rules_unicorn_number_literal_case.go +33 -33
  269. package/linthost/rules_unicorn_numeric_separators_style.go +36 -36
  270. package/linthost/rules_unicorn_prefer_add_event_listener.go +30 -30
  271. package/linthost/rules_unicorn_prefer_array_find.go +27 -27
  272. package/linthost/rules_unicorn_prefer_array_flat.go +25 -25
  273. package/linthost/rules_unicorn_prefer_array_flat_map.go +37 -37
  274. package/linthost/rules_unicorn_prefer_array_index_of.go +108 -108
  275. package/linthost/rules_unicorn_prefer_array_some.go +43 -43
  276. package/linthost/rules_unicorn_prefer_at.go +42 -42
  277. package/linthost/rules_unicorn_prefer_bigint_literals.go +42 -42
  278. package/linthost/rules_unicorn_prefer_blob_reading_methods.go +15 -15
  279. package/linthost/rules_unicorn_prefer_class_fields.go +57 -57
  280. package/linthost/rules_unicorn_prefer_classlist_toggle.go +76 -76
  281. package/linthost/rules_unicorn_prefer_code_point.go +21 -21
  282. package/linthost/rules_unicorn_prefer_date_now.go +47 -47
  283. package/linthost/rules_unicorn_prefer_default_parameters.go +96 -96
  284. package/linthost/rules_unicorn_prefer_dom_node_append.go +14 -14
  285. package/linthost/rules_unicorn_prefer_dom_node_dataset.go +27 -27
  286. package/linthost/rules_unicorn_prefer_dom_node_remove.go +17 -17
  287. package/linthost/rules_unicorn_prefer_dom_node_text_content.go +11 -11
  288. package/linthost/rules_unicorn_prefer_event_target.go +10 -10
  289. package/linthost/rules_unicorn_prefer_export_from.go +99 -99
  290. package/linthost/rules_unicorn_prefer_global_this.go +91 -91
  291. package/linthost/rules_unicorn_prefer_import_meta_properties.go +38 -38
  292. package/linthost/rules_unicorn_prefer_includes.go +108 -108
  293. package/linthost/rules_unicorn_prefer_json_parse_buffer.go +37 -37
  294. package/linthost/rules_unicorn_prefer_keyboard_event_key.go +10 -10
  295. package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +20 -20
  296. package/linthost/rules_unicorn_prefer_math_min_max.go +33 -33
  297. package/linthost/rules_unicorn_prefer_math_trunc.go +32 -32
  298. package/linthost/rules_unicorn_prefer_modern_dom_apis.go +18 -18
  299. package/linthost/rules_unicorn_prefer_modern_math_apis.go +38 -38
  300. package/linthost/rules_unicorn_prefer_module.go +22 -22
  301. package/linthost/rules_unicorn_prefer_native_coercion_functions.go +73 -73
  302. package/linthost/rules_unicorn_prefer_negative_index.go +46 -46
  303. package/linthost/rules_unicorn_prefer_node_protocol.go +90 -90
  304. package/linthost/rules_unicorn_prefer_number_properties.go +57 -57
  305. package/linthost/rules_unicorn_prefer_object_from_entries.go +26 -26
  306. package/linthost/rules_unicorn_prefer_optional_catch_binding.go +24 -24
  307. package/linthost/rules_unicorn_prefer_prototype_methods.go +25 -25
  308. package/linthost/rules_unicorn_prefer_query_selector.go +25 -25
  309. package/linthost/rules_unicorn_prefer_reflect_apply.go +10 -10
  310. package/linthost/rules_unicorn_prefer_regexp_test_rule.go +47 -47
  311. package/linthost/rules_unicorn_prefer_response_static_json.go +26 -26
  312. package/linthost/rules_unicorn_prefer_set_has.go +16 -16
  313. package/linthost/rules_unicorn_prefer_set_size.go +22 -22
  314. package/linthost/rules_unicorn_prefer_simple_condition_first.go +3 -3
  315. package/linthost/rules_unicorn_prefer_single_call.go +59 -59
  316. package/linthost/rules_unicorn_prefer_spread.go +24 -24
  317. package/linthost/rules_unicorn_prefer_string_raw.go +12 -12
  318. package/linthost/rules_unicorn_prefer_string_replace_all.go +46 -46
  319. package/linthost/rules_unicorn_prefer_string_slice.go +17 -17
  320. package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +104 -104
  321. package/linthost/rules_unicorn_prefer_string_trim_start_end.go +21 -21
  322. package/linthost/rules_unicorn_prefer_structured_clone.go +36 -36
  323. package/linthost/rules_unicorn_prefer_switch.go +65 -65
  324. package/linthost/rules_unicorn_prefer_ternary.go +35 -35
  325. package/linthost/rules_unicorn_prefer_top_level_await.go +34 -34
  326. package/linthost/rules_unicorn_prefer_type_error.go +84 -84
  327. package/linthost/rules_unicorn_prevent_abbreviations.go +68 -68
  328. package/linthost/rules_unicorn_relative_url_style.go +19 -19
  329. package/linthost/rules_unicorn_require_array_join_separator.go +18 -18
  330. package/linthost/rules_unicorn_require_module_attributes.go +25 -25
  331. package/linthost/rules_unicorn_require_module_specifiers.go +28 -28
  332. package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +18 -18
  333. package/linthost/rules_unicorn_require_post_message_target_origin.go +18 -18
  334. package/linthost/rules_unicorn_string_content.go +1 -1
  335. package/linthost/rules_unicorn_switch_case_braces.go +16 -16
  336. package/linthost/rules_unicorn_switch_case_break_position.go +3 -3
  337. package/linthost/rules_unicorn_template_indent.go +1 -1
  338. package/linthost/rules_unicorn_text_encoding_identifier_case.go +36 -36
  339. package/linthost/rules_unicorn_throw_new_error.go +30 -30
  340. package/linthost/rules_var.go +273 -3
  341. package/package.json +3 -3
  342. package/src/defaultFormat.ts +11 -7
  343. package/src/structures/ITtscLintConfig.ts +5 -5
  344. package/src/structures/TtscLintRuleSetting.ts +19 -19
  345. package/src/structures/{ITtscLintFormat.ts → format/ITtscLintFormat.ts} +48 -75
  346. package/src/structures/format/ITtscLintFormatJsDoc.ts +16 -0
  347. package/src/structures/format/ITtscLintFormatSortImports.ts +62 -0
  348. package/src/structures/format/index.ts +3 -0
  349. package/src/structures/index.ts +1 -1
  350. package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +20 -31
  351. package/src/structures/rules/ITtscLintBoundariesRules.ts +32 -36
  352. package/src/structures/rules/ITtscLintContributorRules.ts +6 -7
  353. package/src/structures/rules/ITtscLintCoreRules.ts +380 -408
  354. package/src/structures/rules/ITtscLintCypressRuleOptions.ts +5 -5
  355. package/src/structures/rules/ITtscLintCypressRules.ts +34 -38
  356. package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +28 -41
  357. package/src/structures/rules/ITtscLintFunctionalRules.ts +51 -56
  358. package/src/structures/rules/ITtscLintJestRules.ts +63 -74
  359. package/src/structures/rules/ITtscLintJsdocRules.ts +47 -54
  360. package/src/structures/rules/ITtscLintJsxA11yRules.ts +94 -102
  361. package/src/structures/rules/ITtscLintNextjsRules.ts +50 -55
  362. package/src/structures/rules/ITtscLintPlaywrightRules.ts +104 -122
  363. package/src/structures/rules/ITtscLintPromiseRules.ts +62 -71
  364. package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +4 -4
  365. package/src/structures/rules/ITtscLintReactPerfRules.ts +17 -19
  366. package/src/structures/rules/ITtscLintReactRuleOptions.ts +8 -10
  367. package/src/structures/rules/ITtscLintReactRules.ts +91 -104
  368. package/src/structures/rules/ITtscLintRegexpRules.ts +46 -54
  369. package/src/structures/rules/ITtscLintRuleOptionsMap.ts +7 -8
  370. package/src/structures/rules/ITtscLintSecurityRules.ts +45 -52
  371. package/src/structures/rules/ITtscLintSolidRules.ts +53 -56
  372. package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +3 -4
  373. package/src/structures/rules/ITtscLintStorybookRules.ts +60 -69
  374. package/src/structures/rules/ITtscLintTanstackQueryRules.ts +31 -37
  375. package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +2 -3
  376. package/src/structures/rules/ITtscLintTestingLibraryRules.ts +102 -119
  377. package/src/structures/rules/ITtscLintTypeScriptRules.ts +460 -518
  378. package/src/structures/rules/ITtscLintVitestRules.ts +43 -51
  379. package/lib/structures/ITtscLintFormat.js.map +0 -1
  380. /package/lib/structures/{ITtscLintFormat.js → format/ITtscLintFormat.js} +0 -0
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Documented defaults for the `format` block's _always-on_ rules
3
- * (`format/semi`, `format/quotes`, `format/trailing-comma`,
3
+ * (`format/semi`, `format/quotes`, `format/arrow-parens`,
4
+ * `format/bracket-spacing`, `format/quote-props`, `format/trailing-comma`,
4
5
  * `format/print-width`).
5
6
  *
6
7
  * Exported so users can spread defaults next to overrides:
7
8
  *
8
9
  * ```ts
9
- * import { defaultFormat, type ITtscLintConfig } from "@ttsc/lint";
10
+ * import { type ITtscLintConfig, defaultFormat } from "@ttsc/lint";
10
11
  *
11
12
  * export default {
12
13
  * format: { ...defaultFormat, printWidth: 100 },
@@ -16,15 +17,18 @@
16
17
  * The values mirror Prettier 1:1 except for the documented `endOfLine`
17
18
  * narrowing (no `"cr"` / `"auto"`).
18
19
  *
19
- * Notably absent: `importOrder` and `jsdoc`. `format/sort-imports` and
20
- * `format/jsdoc` are opt-in by setting their corresponding fields; this
21
- * const documents only the rules that turn on unconditionally with a
22
- * non-empty `format` block the Go host owns runtime activation.
20
+ * Notably absent: `sortImports`. Import sorting is opt-in by setting
21
+ * `sortImports`; JSDoc normalization is always on (set `jsDoc: false` to opt
22
+ * out). This const documents only the keys that turn on unconditionally with a
23
+ * non-empty `format` block; the Go host owns runtime activation.
23
24
  */
24
25
  export declare const defaultFormat: Readonly<{
25
26
  severity: "off";
26
27
  semi: true;
27
28
  singleQuote: false;
29
+ arrowParens: "always";
30
+ bracketSpacing: true;
31
+ quoteProps: "as-needed";
28
32
  trailingComma: "all";
29
33
  printWidth: number;
30
34
  tabWidth: number;
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultFormat = void 0;
4
4
  /**
5
5
  * Documented defaults for the `format` block's _always-on_ rules
6
- * (`format/semi`, `format/quotes`, `format/trailing-comma`,
6
+ * (`format/semi`, `format/quotes`, `format/arrow-parens`,
7
+ * `format/bracket-spacing`, `format/quote-props`, `format/trailing-comma`,
7
8
  * `format/print-width`).
8
9
  *
9
10
  * Exported so users can spread defaults next to overrides:
10
11
  *
11
12
  * ```ts
12
- * import { defaultFormat, type ITtscLintConfig } from "@ttsc/lint";
13
+ * import { type ITtscLintConfig, defaultFormat } from "@ttsc/lint";
13
14
  *
14
15
  * export default {
15
16
  * format: { ...defaultFormat, printWidth: 100 },
@@ -19,15 +20,18 @@ exports.defaultFormat = void 0;
19
20
  * The values mirror Prettier 1:1 except for the documented `endOfLine`
20
21
  * narrowing (no `"cr"` / `"auto"`).
21
22
  *
22
- * Notably absent: `importOrder` and `jsdoc`. `format/sort-imports` and
23
- * `format/jsdoc` are opt-in by setting their corresponding fields; this
24
- * const documents only the rules that turn on unconditionally with a
25
- * non-empty `format` block the Go host owns runtime activation.
23
+ * Notably absent: `sortImports`. Import sorting is opt-in by setting
24
+ * `sortImports`; JSDoc normalization is always on (set `jsDoc: false` to opt
25
+ * out). This const documents only the keys that turn on unconditionally with a
26
+ * non-empty `format` block; the Go host owns runtime activation.
26
27
  */
27
28
  exports.defaultFormat = Object.freeze({
28
29
  severity: "off",
29
30
  semi: true,
30
31
  singleQuote: false,
32
+ arrowParens: "always",
33
+ bracketSpacing: true,
34
+ quoteProps: "as-needed",
31
35
  trailingComma: "all",
32
36
  printWidth: 80,
33
37
  tabWidth: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"defaultFormat.js","sourceRoot":"","sources":["../src/defaultFormat.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACU,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;CACU,CAAC,CAAC"}
1
+ {"version":3,"file":"defaultFormat.js","sourceRoot":"","sources":["../src/defaultFormat.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,WAAW;IACvB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;CACU,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { ITtscLintFormat } from "./ITtscLintFormat";
2
1
  import type { ITtscLintPlugin } from "./ITtscLintPlugin";
2
+ import type { ITtscLintFormat } from "./format/ITtscLintFormat";
3
3
  import type { ITtscLintRules } from "./rules/ITtscLintRules";
4
4
  /**
5
5
  * Top-level object accepted by `@ttsc/lint` config files.
@@ -18,8 +18,8 @@ export interface ITtscLintConfig {
18
18
  * Relative paths resolve from the containing config file's directory.
19
19
  */
20
20
  extends?: string;
21
- /** Contributor plugin objects keyed by namespace. */
22
- plugins?: Record<string, ITtscLintPlugin>;
21
+ /** Prettier-style flat configuration for the format rules. */
22
+ format?: ITtscLintFormat;
23
23
  /**
24
24
  * Kebab-case built-in rule severities plus namespaced contributor rules.
25
25
  *
@@ -28,6 +28,6 @@ export interface ITtscLintConfig {
28
28
  * form such as `react/jsx-key` or `demo/no-demo`.
29
29
  */
30
30
  rules?: ITtscLintRules;
31
- /** Prettier-style flat configuration for the format rules. */
32
- format?: ITtscLintFormat;
31
+ /** Contributor plugin objects keyed by namespace. */
32
+ plugins?: Record<string, ITtscLintPlugin>;
33
33
  }
@@ -5,12 +5,12 @@ import type { TtscLintSeverity } from "./TtscLintSeverity";
5
5
  *
6
6
  * A rule may be configured either as a bare severity string (`"error"`,
7
7
  * `"warning"`, `"off"`) or as a single-element tuple containing the same
8
- * severity. Both forms are equivalent at runtime; the tuple form exists so
9
- * that severity-only rules and options-bearing rules look uniform when read
8
+ * severity. Both forms are equivalent at runtime; the tuple form exists so that
9
+ * severity-only rules and options-bearing rules look uniform when read
10
10
  * top-to-bottom in a `ttsc.lint.config.ts` file.
11
11
  *
12
- * Use {@link TtscLintRuleOptionsSetting} when the rule accepts a typed
13
- * options object.
12
+ * Use {@link TtscLintRuleOptionsSetting} when the rule accepts a typed options
13
+ * object.
14
14
  *
15
15
  * @example
16
16
  * const config: ITtscLintConfig = {
@@ -26,24 +26,24 @@ export type TtscLintRuleSetting = TtscLintSeverity | readonly [TtscLintSeverity]
26
26
  * Per-rule severity-plus-options setting for rules that accept a typed options
27
27
  * object.
28
28
  *
29
- * This is the tuple form ESLint users know — `[severity, options]` —
30
- * kept strongly typed by way of the rule's dedicated options interface
31
- * (see `TtscLintRuleOptions.ts`). The bare {@link TtscLintRuleSetting}
32
- * forms remain accepted; omitting the options object means "use the
33
- * rule's default options".
34
- *
35
- * @typeParam TOptions - The rule's options shape. Each rule supplies its
36
- * own interface from `TtscLintRuleOptions.ts` (for example
37
- * `ITtscLintBoundariesElementTypesRuleOptions`).
29
+ * This is the tuple form ESLint users know — `[severity, options]` — kept
30
+ * strongly typed by way of the rule's dedicated options interface (see
31
+ * `TtscLintRuleOptions.ts`). The bare {@link TtscLintRuleSetting} forms remain
32
+ * accepted; omitting the options object means "use the rule's default
33
+ * options".
38
34
  *
39
35
  * @example
40
36
  * const config: ITtscLintConfig = {
41
- * rules: {
42
- * "boundaries/element-types": [
43
- * "error",
44
- * { default: "disallow", rules: [...] },
45
- * ],
46
- * },
37
+ * rules: {
38
+ * "boundaries/element-types": [
39
+ * "error",
40
+ * { default: "disallow", rules: [...] },
41
+ * ],
42
+ * },
47
43
  * };
44
+ *
45
+ * @typeParam TOptions - The rule's options shape. Each rule supplies its own
46
+ * interface from `TtscLintRuleOptions.ts` (for example
47
+ * `ITtscLintBoundariesElementTypesRuleOptions`).
48
48
  */
49
49
  export type TtscLintRuleOptionsSetting<TOptions> = TtscLintRuleSetting | readonly [TtscLintSeverity, TOptions];
@@ -1,9 +1,11 @@
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
  * Prettier-style flat configuration for the format rules.
4
6
  *
5
7
  * The `format` block is the recommended way to enable formatting in
6
- * `@ttsc/lint`. Each key mirrors a Prettier option of the same name users
8
+ * `@ttsc/lint`. Each key mirrors a Prettier option of the same name, users
7
9
  * coming from a `.prettierrc` can copy their config almost verbatim. The block
8
10
  * is opt-in by presence: a `lint.config.ts` with no `format` field keeps every
9
11
  * format rule off, exactly as before.
@@ -13,42 +15,6 @@ import type { TtscLintSeverity } from "./TtscLintSeverity";
13
15
  * `ttsc check` does not report format findings unless `severity` is set to a
14
16
  * non-off value. Individual rules can be overridden or disabled through the
15
17
  * `rules` map (the `rules` entry wins on conflict).
16
- *
17
- * @example
18
- * import type { ITtscLintConfig } from "@ttsc/lint";
19
- *
20
- * export default {
21
- * rules: { "no-var": "error" },
22
- * format: {
23
- * severity: "warning",
24
- * printWidth: 100,
25
- * singleQuote: true,
26
- * importOrder: ["<THIRD_PARTY_MODULES>", "^[./]"],
27
- * },
28
- * } satisfies ITtscLintConfig;
29
- *
30
- * Deviations from Prettier:
31
- * - `endOfLine` is restricted to `"lf"` and `"crlf"`. Prettier's
32
- * `"cr"` and `"auto"` modes are intentionally unsupported — the
33
- * printer does not auto-detect terminators.
34
- * - Many Prettier knobs (`bracketSpacing`, `arrowParens`,
35
- * `quoteProps`, JSX-specific switches) are not yet implemented.
36
- *
37
- * Rule enablement matrix (when the `format` block is present):
38
- *
39
- * - `format/semi` — always on. `semi: false` flips it to `prefer:
40
- * "never"`.
41
- * - `format/quotes` — always on. `singleQuote: true` flips to
42
- * `prefer: "single"`.
43
- * - `format/trailing-comma` — always on. `trailingComma: "none"`
44
- * disables the rule's edits without removing the surface.
45
- * - `format/print-width` — always on, driven by `printWidth`,
46
- * `tabWidth`, `useTabs`, `endOfLine`.
47
- * - `format/sort-imports` — opt-in. Setting `importOrder` enables it.
48
- * - `format/jsdoc` — opt-in. Setting `jsdoc` enables it.
49
- *
50
- * Format findings produced from this block are off by default. Set `severity`
51
- * only when a project intentionally wants check-time format diagnostics.
52
18
  */
53
19
  export interface ITtscLintFormat {
54
20
  /**
@@ -76,6 +42,37 @@ export interface ITtscLintFormat {
76
42
  * @default false
77
43
  */
78
44
  singleQuote?: boolean;
45
+ /**
46
+ * Parenthesize a single arrow-function parameter. Mirrors Prettier's
47
+ * `arrowParens`. `"always"` (the default) keeps `(x) => x`; `"avoid"` strips
48
+ * the parentheses of a single bare-identifier parameter, giving `x => x`. A
49
+ * typed, destructured, rest, optional, defaulted, or multi-parameter list
50
+ * keeps its parentheses in both modes.
51
+ *
52
+ * @default "always"
53
+ */
54
+ arrowParens?: "always" | "avoid";
55
+ /**
56
+ * Pad the inside of single-line braces with one space. Mirrors Prettier's
57
+ * `bracketSpacing`. `true` (the default) gives `{ x: 1 }`, `import { foo }`;
58
+ * `false` gives `{x: 1}`, `import {foo}`. Applies to object literals, object
59
+ * destructuring patterns, named imports/exports, and type literals; block,
60
+ * class, interface, and enum braces are unaffected.
61
+ *
62
+ * @default true
63
+ */
64
+ bracketSpacing?: boolean;
65
+ /**
66
+ * Quoting policy for object-literal property keys. Mirrors Prettier's
67
+ * `quoteProps`. `"as-needed"` (the default) removes quotes from a key that is
68
+ * a valid identifier (`{ "foo": 1 }` becomes `{ foo: 1 }`), keeping them on
69
+ * non-identifier or numeric keys (`"bar-baz"`, `"123"`). `"consistent"` keeps
70
+ * every key quoted when any one of them requires quotes. `"preserve"` never
71
+ * changes quoting.
72
+ *
73
+ * @default "as-needed"
74
+ */
75
+ quoteProps?: "as-needed" | "consistent" | "preserve";
79
76
  /**
80
77
  * Trailing-comma policy. Mirrors Prettier's `trailingComma`. The `"none"`
81
78
  * mode disables the rule's edits.
@@ -111,43 +108,21 @@ export interface ITtscLintFormat {
111
108
  */
112
109
  endOfLine?: "lf" | "crlf";
113
110
  /**
114
- * Group order for `format/sort-imports`. Setting this enables the rule;
115
- * mirrors `@trivago/prettier-plugin-sort-imports`' `importOrder`. The
116
- * `<THIRD_PARTY_MODULES>` literal is the catch-all placeholder for specifiers
117
- * that match no other group.
118
- */
119
- importOrder?: readonly ("<THIRD_PARTY_MODULES>" | (string & {}))[];
120
- /**
121
- * Insert blank line between sort-imports groups.
122
- *
123
- * @default true
124
- */
125
- importOrderSeparation?: boolean;
126
- /**
127
- * Sort named import specifiers alphabetically within each declaration.
128
- *
129
- * @default true
130
- */
131
- importOrderSortSpecifiers?: boolean;
132
- /**
133
- * Case-insensitive comparison for sort-imports.
111
+ * Import sorting & merging. Off unless present; `true` enables it with
112
+ * defaults, an object customizes.
134
113
  *
135
114
  * @default false
136
115
  */
137
- importOrderCaseInsensitive?: boolean;
116
+ sortImports?: boolean | ITtscLintFormatSortImports;
138
117
  /**
139
- * Enable `format/jsdoc`. Pass `true` to turn it on with built-in defaults, or
140
- * an object to customize:
118
+ * JSDoc tag normalization. On by default like the rest of the format set;
119
+ * pass `false` to disable, or an object to customize.
141
120
  *
142
- * - `tagSynonyms` extra `from to` rewrites layered on the built-in synonym
143
- * table.
144
- * - `sortTags` sort JSDoc tags into canonical order (reserved; today's MVP
145
- * only rewrites tag names).
121
+ * Today it only rewrites tag synonyms (`@return` `@returns`, `@arg`
122
+ * `@param`, ...); tag sorting, `@param` column alignment, and description
123
+ * wrapping are on the roadmap.
146
124
  *
147
- * @default false (off)
125
+ * @default true
148
126
  */
149
- jsdoc?: boolean | {
150
- tagSynonyms?: Record<string, string>;
151
- sortTags?: boolean;
152
- };
127
+ jsDoc?: boolean | ITtscLintFormatJsDoc;
153
128
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITtscLintFormat.js","sourceRoot":"","sources":["../../../src/structures/format/ITtscLintFormat.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
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
+ * Sort JSDoc tags into canonical order. Reserved; the current MVP only
10
+ * rewrites tag names.
11
+ *
12
+ * @default false
13
+ */
14
+ sortTags?: boolean;
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITtscLintFormatJsDoc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITtscLintFormatJsDoc.js","sourceRoot":"","sources":["../../../src/structures/format/ITtscLintFormatJsDoc.ts"],"names":[],"mappings":""}
@@ -0,0 +1,54 @@
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 ("<BUILTIN_MODULES>" | "<THIRD_PARTY_MODULES>" | "<TYPES>" | "" | (string & {}))[];
37
+ /**
38
+ * Case-sensitive comparison. `false` (the default) sorts case-insensitively,
39
+ * so `React` and `react` order together; `true` uses raw ASCII order
40
+ * (uppercase before lowercase).
41
+ *
42
+ * @default false
43
+ */
44
+ caseSensitive?: boolean;
45
+ /**
46
+ * Merge a value import and a type-only import of the same module into one
47
+ * declaration with inline `type` specifiers: `import { foo } from "m"` plus
48
+ * `import type { Bar } from "m"` collapse to `import { foo, type Bar } from
49
+ * "m"`.
50
+ *
51
+ * @default false
52
+ */
53
+ combineTypeAndValue?: boolean;
54
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ITtscLintFormatSortImports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITtscLintFormatSortImports.js","sourceRoot":"","sources":["../../../src/structures/format/ITtscLintFormatSortImports.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from "./ITtscLintFormat";
2
+ export * from "./ITtscLintFormatJsDoc";
3
+ export * from "./ITtscLintFormatSortImports";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ITtscLintFormat"), exports);
18
+ __exportStar(require("./ITtscLintFormatJsDoc"), exports);
19
+ __exportStar(require("./ITtscLintFormatSortImports"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/structures/format/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,yDAAuC;AACvC,+DAA6C"}
@@ -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";
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ITtscLintConfig"), exports);
18
- __exportStar(require("./ITtscLintFormat"), exports);
18
+ __exportStar(require("./format"), exports);
19
19
  __exportStar(require("./ITtscLintPlugin"), exports);
20
20
  __exportStar(require("./ITtscLintPluginConfig"), exports);
21
21
  __exportStar(require("./ITtscLintPluginMeta"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/structures/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,wDAAsC;AACtC,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/structures/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,2CAAyB;AACzB,oDAAkC;AAClC,0DAAwC;AACxC,wDAAsC;AACtC,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB"}
@@ -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
  */
@@ -14,28 +13,25 @@ export interface ITtscLintBoundariesElement {
14
13
  /** Element type name used by `boundaries/element-types` policies. */
15
14
  type: string;
16
15
  /**
17
- * Glob-like source path pattern. Relative patterns are matched against
18
- * any project-path suffix, so `src/app/**` works in temporary and
19
- * monorepo roots alike.
16
+ * Glob-like source path pattern. Relative patterns are matched against any
17
+ * project-path suffix, so `src/app/**` works in temporary and monorepo roots
18
+ * alike.
20
19
  */
21
20
  pattern: string;
22
21
  /**
23
- * File(s) inside the element that may be imported from outside that
24
- * element. Used by `boundaries/entry-point`.
22
+ * File(s) inside the element that may be imported from outside that element.
23
+ * Used by `boundaries/entry-point`.
25
24
  */
26
25
  entry?: string | readonly string[];
27
26
  /**
28
- * File(s) inside the element that may only be imported by the same
29
- * element. Used by `boundaries/no-private`.
27
+ * File(s) inside the element that may only be imported by the same element.
28
+ * Used by `boundaries/no-private`.
30
29
  */
31
30
  private?: string | readonly string[];
32
31
  }
33
32
  /** Dependency policy used by `boundaries/element-types`. */
34
33
  export interface ITtscLintBoundariesElementTypesRule {
35
- /**
36
- * Source element type(s) the policy applies to. Omit to match all
37
- * sources.
38
- */
34
+ /** Source element type(s) the policy applies to. Omit to match all sources. */
39
35
  from?: string | readonly string[];
40
36
  /** Target element type(s) allowed from the matching source. */
41
37
  allow?: string | readonly string[];
@@ -49,9 +45,7 @@ export interface ITtscLintBoundariesElementTypesRule {
49
45
  * `boundaries/*` rule.
50
46
  */
51
47
  export interface ITtscLintBoundariesElementsOptions {
52
- /**
53
- * Source path elements used to classify importers and imported files.
54
- */
48
+ /** Source path elements used to classify importers and imported files. */
55
49
  elements?: readonly ITtscLintBoundariesElement[];
56
50
  }
57
51
  /** `boundaries/element-types` rule options. */
@@ -67,10 +61,7 @@ export interface ITtscLintBoundariesElementTypesRuleOptions extends ITtscLintBou
67
61
  }
68
62
  /** `boundaries/external` rule options. */
69
63
  export interface ITtscLintBoundariesExternalRuleOptions {
70
- /**
71
- * External package/specifier patterns that are allowed. Empty means
72
- * all.
73
- */
64
+ /** External package/specifier patterns that are allowed. Empty means all. */
74
65
  allow?: string | readonly string[];
75
66
  /** External package/specifier patterns that are rejected. */
76
67
  disallow?: string | readonly string[];
@@ -87,10 +78,10 @@ export type ITtscLintBoundariesNoUnknownRuleOptions = ITtscLintBoundariesElement
87
78
  * `boundaries/dependencies` rule options.
88
79
  *
89
80
  * The upstream unified rule subsumes `element-types`, `entry-point`,
90
- * `external`, `no-private`, and `no-unknown` behind a single
91
- * direction-aware policy block. The v1 native port registers the rule
92
- * name and decodes this config shape but does not yet emit diagnostics
93
- * (`v1 stub; full validation deferred` — see `rules_boundaries.go`).
81
+ * `external`, `no-private`, and `no-unknown` behind a single direction-aware
82
+ * policy block. The v1 native port registers the rule name and decodes this
83
+ * config shape but does not yet emit diagnostics (`v1 stub; full validation
84
+ * deferred` — see `rules_boundaries.go`).
94
85
  */
95
86
  export interface ITtscLintBoundariesDependenciesRuleOptions extends ITtscLintBoundariesElementsOptions {
96
87
  /**
@@ -2,11 +2,10 @@
2
2
  /**
3
3
  * Options shapes for every rule in {@link ITtscLintBoundariesRules}.
4
4
  *
5
- * The `boundaries/*` family classifies each source file as belonging to a
6
- * named *element* (a layer, feature, or app within the project). Every
7
- * rule below shares the same element-declaration block, so the helper
8
- * interfaces in this file describe that block first and then layer the
9
- * per-rule options on top.
5
+ * The `boundaries/*` family classifies each source file as belonging to a named
6
+ * _element_ (a layer, feature, or app within the project). Every rule below
7
+ * shares the same element-declaration block, so the helper interfaces in this
8
+ * file describe that block first and then layer the per-rule options on top.
10
9
  *
11
10
  * @reference https://github.com/javierbrea/eslint-plugin-boundaries
12
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ITtscLintBoundariesRuleOptions.js","sourceRoot":"","sources":["../../../src/structures/rules/ITtscLintBoundariesRuleOptions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"ITtscLintBoundariesRuleOptions.js","sourceRoot":"","sources":["../../../src/structures/rules/ITtscLintBoundariesRuleOptions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}