@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.
- package/README.md +85 -87
- package/lib/defaultFormat.d.ts +10 -6
- package/lib/defaultFormat.js +10 -6
- package/lib/defaultFormat.js.map +1 -1
- package/lib/structures/ITtscLintConfig.d.ts +5 -5
- package/lib/structures/TtscLintRuleSetting.d.ts +19 -19
- package/lib/structures/{ITtscLintFormat.d.ts → format/ITtscLintFormat.d.ts} +45 -70
- package/lib/structures/format/ITtscLintFormat.js.map +1 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.d.ts +15 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.js +3 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.js.map +1 -0
- package/lib/structures/format/ITtscLintFormatSortImports.d.ts +54 -0
- package/lib/structures/format/ITtscLintFormatSortImports.js +3 -0
- package/lib/structures/format/ITtscLintFormatSortImports.js.map +1 -0
- package/lib/structures/format/index.d.ts +3 -0
- package/lib/structures/format/index.js +20 -0
- package/lib/structures/format/index.js.map +1 -0
- package/lib/structures/index.d.ts +1 -1
- package/lib/structures/index.js +1 -1
- package/lib/structures/index.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +18 -27
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +4 -5
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +29 -33
- package/lib/structures/rules/ITtscLintContributorRules.d.ts +6 -7
- package/lib/structures/rules/ITtscLintCoreRules.d.ts +380 -408
- package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +5 -5
- package/lib/structures/rules/ITtscLintCypressRuleOptions.js +2 -2
- package/lib/structures/rules/ITtscLintCypressRules.d.ts +34 -38
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +21 -24
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +2 -2
- package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +51 -56
- package/lib/structures/rules/ITtscLintJestRules.d.ts +63 -74
- package/lib/structures/rules/ITtscLintJsdocRules.d.ts +47 -54
- package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +94 -102
- package/lib/structures/rules/ITtscLintNextjsRules.d.ts +50 -55
- package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +104 -122
- package/lib/structures/rules/ITtscLintPromiseRules.d.ts +62 -71
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +4 -4
- package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +17 -19
- package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +8 -10
- package/lib/structures/rules/ITtscLintReactRuleOptions.js +1 -2
- package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -1
- package/lib/structures/rules/ITtscLintReactRules.d.ts +91 -104
- package/lib/structures/rules/ITtscLintRegexpRules.d.ts +46 -54
- package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +7 -8
- package/lib/structures/rules/ITtscLintSecurityRules.d.ts +45 -52
- package/lib/structures/rules/ITtscLintSolidRules.d.ts +53 -56
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +3 -4
- package/lib/structures/rules/ITtscLintStorybookRules.d.ts +60 -69
- package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +31 -37
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +2 -3
- package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +102 -119
- package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +460 -518
- package/lib/structures/rules/ITtscLintVitestRules.d.ts +43 -51
- package/linthost/config.go +89 -72
- package/linthost/config_format.go +265 -99
- package/linthost/directives.go +5 -1
- package/linthost/display_width.go +72 -0
- package/linthost/fix.go +26 -1
- package/linthost/format.go +222 -25
- package/linthost/format_editor_settings.go +262 -0
- package/linthost/lsp.go +8 -4
- package/linthost/print_dispatch.go +3 -0
- package/linthost/print_doc.go +13 -0
- package/linthost/print_engine.go +68 -11
- package/linthost/print_nodes_array.go +108 -5
- package/linthost/print_nodes_call.go +515 -74
- package/linthost/print_nodes_function.go +25 -0
- package/linthost/print_nodes_imports.go +47 -14
- package/linthost/print_nodes_list.go +191 -8
- package/linthost/print_nodes_object.go +12 -6
- package/linthost/print_nodes_ternary.go +106 -0
- package/linthost/rules_boundaries.go +400 -400
- package/linthost/rules_camelcase.go +81 -81
- package/linthost/rules_complexity.go +52 -51
- package/linthost/rules_consistent_return.go +81 -81
- package/linthost/rules_core_extra.go +472 -472
- package/linthost/rules_curly.go +43 -43
- package/linthost/rules_default_case.go +15 -15
- package/linthost/rules_default_case_last.go +22 -22
- package/linthost/rules_format_arrow_parens.go +167 -0
- package/linthost/rules_format_bracket_spacing.go +117 -0
- package/linthost/rules_format_clause_join.go +172 -0
- package/linthost/rules_format_declaration_header.go +664 -0
- package/linthost/rules_format_indent.go +616 -0
- package/linthost/rules_format_jsdoc.go +4 -4
- package/linthost/rules_format_orphan_semi.go +106 -0
- package/linthost/rules_format_parameter_properties.go +175 -0
- package/linthost/rules_format_print_width.go +185 -69
- package/linthost/rules_format_quote_props.go +169 -0
- package/linthost/rules_format_quotes.go +75 -29
- package/linthost/rules_format_semi.go +185 -10
- package/linthost/rules_format_sort_imports.go +456 -121
- package/linthost/rules_format_statement_split.go +368 -0
- package/linthost/rules_format_ternary_nullish_parens.go +77 -0
- package/linthost/rules_format_trailing_comma.go +21 -2
- package/linthost/rules_format_whitespace.go +336 -0
- package/linthost/rules_functional.go +688 -688
- package/linthost/rules_gap.go +146 -11
- package/linthost/rules_grouped_accessor_pairs.go +60 -60
- package/linthost/rules_guard_for_in.go +122 -122
- package/linthost/rules_id_length.go +44 -44
- package/linthost/rules_imports.go +11 -3
- package/linthost/rules_init_declarations.go +25 -25
- package/linthost/rules_jsx_a11y.go +844 -844
- package/linthost/rules_max_classes_per_file.go +24 -24
- package/linthost/rules_max_depth.go +43 -43
- package/linthost/rules_max_lines.go +53 -53
- package/linthost/rules_max_lines_per_function.go +28 -28
- package/linthost/rules_max_nested_callbacks.go +26 -26
- package/linthost/rules_max_params.go +20 -20
- package/linthost/rules_max_statements.go +29 -29
- package/linthost/rules_nextjs.go +5 -5
- package/linthost/rules_no_else_return.go +38 -38
- package/linthost/rules_no_empty_named_blocks.go +45 -45
- package/linthost/rules_no_import_assign.go +96 -96
- package/linthost/rules_no_invalid_this.go +19 -19
- package/linthost/rules_no_loop_func.go +43 -43
- package/linthost/rules_no_magic_numbers.go +60 -60
- package/linthost/rules_no_mixed_operators.go +44 -44
- package/linthost/rules_no_param_reassign.go +64 -64
- package/linthost/rules_no_restricted_imports.go +45 -45
- package/linthost/rules_no_restricted_syntax.go +17 -17
- package/linthost/rules_no_shadow.go +112 -112
- package/linthost/rules_no_unreachable.go +36 -36
- package/linthost/rules_no_useless_assignment.go +79 -79
- package/linthost/rules_no_useless_constructor.go +167 -167
- package/linthost/rules_no_useless_return.go +28 -28
- package/linthost/rules_prefer_arrow_callback.go +74 -74
- package/linthost/rules_prefer_destructuring.go +61 -61
- package/linthost/rules_prefer_named_capture_group.go +87 -87
- package/linthost/rules_prefer_rest_params.go +61 -61
- package/linthost/rules_promise.go +800 -800
- package/linthost/rules_react.go +600 -600
- package/linthost/rules_react_extras.go +162 -162
- package/linthost/rules_react_hooks.go +2 -2
- package/linthost/rules_react_perf.go +231 -231
- package/linthost/rules_regexp.go +293 -293
- package/linthost/rules_security.go +613 -613
- package/linthost/rules_sort_imports.go +37 -37
- package/linthost/rules_sort_keys.go +88 -88
- package/linthost/rules_suggestions.go +13 -0
- package/linthost/rules_ts.go +2 -2
- package/linthost/rules_ts_async.go +247 -247
- package/linthost/rules_ts_class_literal_property_style.go +64 -64
- package/linthost/rules_ts_consistent_type_exports.go +209 -209
- package/linthost/rules_ts_explicit_function_return_type.go +35 -35
- package/linthost/rules_ts_extra.go +6 -2
- package/linthost/rules_ts_no_base_to_string.go +140 -140
- package/linthost/rules_ts_no_confusing_void.go +28 -28
- package/linthost/rules_ts_no_deprecated.go +110 -110
- package/linthost/rules_ts_no_for_in_array.go +45 -45
- package/linthost/rules_ts_no_magic_numbers.go +67 -67
- package/linthost/rules_ts_no_meaningless_void_operator.go +44 -44
- package/linthost/rules_ts_no_misused_spread.go +64 -64
- package/linthost/rules_ts_no_redundant_type_constituents.go +72 -72
- package/linthost/rules_ts_no_restricted_types.go +28 -28
- package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +87 -87
- package/linthost/rules_ts_no_unnecessary_condition.go +184 -184
- package/linthost/rules_ts_no_unnecessary_qualifier.go +72 -72
- package/linthost/rules_ts_no_unnecessary_template_expression.go +120 -120
- package/linthost/rules_ts_no_unnecessary_type_arguments.go +171 -171
- package/linthost/rules_ts_no_unnecessary_type_assertion.go +90 -90
- package/linthost/rules_ts_no_unsafe_argument.go +50 -50
- package/linthost/rules_ts_no_unsafe_assignment.go +60 -60
- package/linthost/rules_ts_no_unsafe_call.go +40 -40
- package/linthost/rules_ts_no_unsafe_enum_comparison.go +147 -147
- package/linthost/rules_ts_no_unsafe_member_access.go +29 -29
- package/linthost/rules_ts_no_unsafe_return.go +64 -64
- package/linthost/rules_ts_no_unsafe_unary_minus.go +42 -42
- package/linthost/rules_ts_no_useless_constructor.go +20 -20
- package/linthost/rules_ts_non_nullable_type_assertion_style.go +60 -60
- package/linthost/rules_ts_parameter_properties.go +10 -10
- package/linthost/rules_ts_prefer_find.go +116 -116
- package/linthost/rules_ts_prefer_includes.go +173 -173
- package/linthost/rules_ts_prefer_nullish_coalescing.go +54 -54
- package/linthost/rules_ts_prefer_optional_chain.go +156 -156
- package/linthost/rules_ts_prefer_promise_reject_errors.go +104 -104
- package/linthost/rules_ts_prefer_readonly.go +31 -31
- package/linthost/rules_ts_prefer_reduce_type_parameter.go +74 -74
- package/linthost/rules_ts_prefer_regexp_exec.go +69 -69
- package/linthost/rules_ts_prefer_return_this_type.go +79 -79
- package/linthost/rules_ts_prefer_string_starts_ends_with.go +237 -237
- package/linthost/rules_ts_promise_function_async.go +41 -41
- package/linthost/rules_ts_related_getter_setter_pairs.go +61 -61
- package/linthost/rules_ts_require_array_sort_compare.go +58 -58
- package/linthost/rules_ts_restrict_plus_operands.go +82 -82
- package/linthost/rules_ts_restrict_template_expressions.go +50 -50
- package/linthost/rules_ts_simple.go +249 -249
- package/linthost/rules_ts_sort_type_constituents.go +88 -88
- package/linthost/rules_ts_strict_boolean_expressions.go +103 -103
- package/linthost/rules_ts_switch_exhaustiveness_check.go +90 -90
- package/linthost/rules_ts_unbound_method.go +65 -65
- package/linthost/rules_tsdoc.go +88 -88
- package/linthost/rules_unicorn_better_regex.go +1 -1
- package/linthost/rules_unicorn_catch_error_name.go +19 -19
- package/linthost/rules_unicorn_consistent_assert.go +20 -20
- package/linthost/rules_unicorn_consistent_date_clone.go +27 -27
- package/linthost/rules_unicorn_consistent_destructuring.go +3 -3
- package/linthost/rules_unicorn_consistent_empty_array_spread.go +34 -34
- package/linthost/rules_unicorn_consistent_existence_index_check.go +42 -42
- package/linthost/rules_unicorn_consistent_function_scoping.go +3 -3
- package/linthost/rules_unicorn_consistent_template_literal_escape.go +3 -3
- package/linthost/rules_unicorn_custom_error_definition.go +92 -92
- package/linthost/rules_unicorn_empty_brace_spaces.go +47 -47
- package/linthost/rules_unicorn_error_message.go +34 -34
- package/linthost/rules_unicorn_escape_case.go +14 -14
- package/linthost/rules_unicorn_expiring_todo_comments.go +36 -36
- package/linthost/rules_unicorn_explicit_length_check.go +51 -51
- package/linthost/rules_unicorn_filename_case.go +1 -1
- package/linthost/rules_unicorn_import_style.go +1 -1
- package/linthost/rules_unicorn_isolated_functions.go +2 -2
- package/linthost/rules_unicorn_new_for_builtins.go +49 -49
- package/linthost/rules_unicorn_no_abusive_eslint_disable.go +31 -31
- package/linthost/rules_unicorn_no_accessor_recursion.go +69 -69
- package/linthost/rules_unicorn_no_anonymous_default_export.go +40 -40
- package/linthost/rules_unicorn_no_array_callback_reference.go +33 -33
- package/linthost/rules_unicorn_no_array_for_each.go +14 -14
- package/linthost/rules_unicorn_no_array_method_this_argument.go +29 -29
- package/linthost/rules_unicorn_no_array_reduce.go +15 -15
- package/linthost/rules_unicorn_no_array_reverse.go +17 -17
- package/linthost/rules_unicorn_no_array_sort.go +17 -17
- package/linthost/rules_unicorn_no_await_expression_member.go +12 -12
- package/linthost/rules_unicorn_no_await_in_promise_methods.go +38 -38
- package/linthost/rules_unicorn_no_console_spaces.go +30 -30
- package/linthost/rules_unicorn_no_document_cookie.go +13 -13
- package/linthost/rules_unicorn_no_empty_file.go +16 -16
- package/linthost/rules_unicorn_no_for_loop.go +58 -58
- package/linthost/rules_unicorn_no_hex_escape.go +11 -11
- package/linthost/rules_unicorn_no_immediate_mutation.go +55 -55
- package/linthost/rules_unicorn_no_instanceof_builtins.go +34 -34
- package/linthost/rules_unicorn_no_invalid_fetch_options.go +52 -52
- package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +25 -25
- package/linthost/rules_unicorn_no_keyword_prefix.go +56 -56
- package/linthost/rules_unicorn_no_lonely_if.go +21 -21
- package/linthost/rules_unicorn_no_magic_array_flat_depth.go +22 -22
- package/linthost/rules_unicorn_no_named_default.go +25 -25
- package/linthost/rules_unicorn_no_negated_condition.go +54 -54
- package/linthost/rules_unicorn_no_negation_in_equality_check.go +23 -23
- package/linthost/rules_unicorn_no_nested_ternary.go +15 -15
- package/linthost/rules_unicorn_no_new_array.go +5 -5
- package/linthost/rules_unicorn_no_new_buffer.go +5 -5
- package/linthost/rules_unicorn_no_null.go +2 -2
- package/linthost/rules_unicorn_no_object_as_default_parameter.go +19 -19
- package/linthost/rules_unicorn_no_process_exit.go +17 -17
- package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +29 -29
- package/linthost/rules_unicorn_no_static_only_class.go +27 -27
- package/linthost/rules_unicorn_no_thenable.go +47 -47
- package/linthost/rules_unicorn_no_this_assignment.go +10 -10
- package/linthost/rules_unicorn_no_typeof_undefined.go +31 -31
- package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +23 -23
- package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +37 -37
- package/linthost/rules_unicorn_no_unnecessary_await.go +24 -24
- package/linthost/rules_unicorn_no_unnecessary_slice_end.go +22 -22
- package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +67 -67
- package/linthost/rules_unicorn_no_unreadable_iife.go +22 -22
- package/linthost/rules_unicorn_no_useless_collection_argument.go +34 -34
- package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +18 -18
- package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +49 -49
- package/linthost/rules_unicorn_no_useless_iterator_to_array.go +41 -41
- package/linthost/rules_unicorn_no_useless_length_check.go +82 -82
- package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +42 -42
- package/linthost/rules_unicorn_no_useless_spread.go +38 -38
- package/linthost/rules_unicorn_no_useless_switch_case.go +29 -29
- package/linthost/rules_unicorn_no_useless_undefined.go +25 -25
- package/linthost/rules_unicorn_no_zero_fractions.go +17 -17
- package/linthost/rules_unicorn_number_literal_case.go +33 -33
- package/linthost/rules_unicorn_numeric_separators_style.go +36 -36
- package/linthost/rules_unicorn_prefer_add_event_listener.go +30 -30
- package/linthost/rules_unicorn_prefer_array_find.go +27 -27
- package/linthost/rules_unicorn_prefer_array_flat.go +25 -25
- package/linthost/rules_unicorn_prefer_array_flat_map.go +37 -37
- package/linthost/rules_unicorn_prefer_array_index_of.go +108 -108
- package/linthost/rules_unicorn_prefer_array_some.go +43 -43
- package/linthost/rules_unicorn_prefer_at.go +42 -42
- package/linthost/rules_unicorn_prefer_bigint_literals.go +42 -42
- package/linthost/rules_unicorn_prefer_blob_reading_methods.go +15 -15
- package/linthost/rules_unicorn_prefer_class_fields.go +57 -57
- package/linthost/rules_unicorn_prefer_classlist_toggle.go +76 -76
- package/linthost/rules_unicorn_prefer_code_point.go +21 -21
- package/linthost/rules_unicorn_prefer_date_now.go +47 -47
- package/linthost/rules_unicorn_prefer_default_parameters.go +96 -96
- package/linthost/rules_unicorn_prefer_dom_node_append.go +14 -14
- package/linthost/rules_unicorn_prefer_dom_node_dataset.go +27 -27
- package/linthost/rules_unicorn_prefer_dom_node_remove.go +17 -17
- package/linthost/rules_unicorn_prefer_dom_node_text_content.go +11 -11
- package/linthost/rules_unicorn_prefer_event_target.go +10 -10
- package/linthost/rules_unicorn_prefer_export_from.go +99 -99
- package/linthost/rules_unicorn_prefer_global_this.go +91 -91
- package/linthost/rules_unicorn_prefer_import_meta_properties.go +38 -38
- package/linthost/rules_unicorn_prefer_includes.go +108 -108
- package/linthost/rules_unicorn_prefer_json_parse_buffer.go +37 -37
- package/linthost/rules_unicorn_prefer_keyboard_event_key.go +10 -10
- package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +20 -20
- package/linthost/rules_unicorn_prefer_math_min_max.go +33 -33
- package/linthost/rules_unicorn_prefer_math_trunc.go +32 -32
- package/linthost/rules_unicorn_prefer_modern_dom_apis.go +18 -18
- package/linthost/rules_unicorn_prefer_modern_math_apis.go +38 -38
- package/linthost/rules_unicorn_prefer_module.go +22 -22
- package/linthost/rules_unicorn_prefer_native_coercion_functions.go +73 -73
- package/linthost/rules_unicorn_prefer_negative_index.go +46 -46
- package/linthost/rules_unicorn_prefer_node_protocol.go +90 -90
- package/linthost/rules_unicorn_prefer_number_properties.go +57 -57
- package/linthost/rules_unicorn_prefer_object_from_entries.go +26 -26
- package/linthost/rules_unicorn_prefer_optional_catch_binding.go +24 -24
- package/linthost/rules_unicorn_prefer_prototype_methods.go +25 -25
- package/linthost/rules_unicorn_prefer_query_selector.go +25 -25
- package/linthost/rules_unicorn_prefer_reflect_apply.go +10 -10
- package/linthost/rules_unicorn_prefer_regexp_test_rule.go +47 -47
- package/linthost/rules_unicorn_prefer_response_static_json.go +26 -26
- package/linthost/rules_unicorn_prefer_set_has.go +16 -16
- package/linthost/rules_unicorn_prefer_set_size.go +22 -22
- package/linthost/rules_unicorn_prefer_simple_condition_first.go +3 -3
- package/linthost/rules_unicorn_prefer_single_call.go +59 -59
- package/linthost/rules_unicorn_prefer_spread.go +24 -24
- package/linthost/rules_unicorn_prefer_string_raw.go +12 -12
- package/linthost/rules_unicorn_prefer_string_replace_all.go +46 -46
- package/linthost/rules_unicorn_prefer_string_slice.go +17 -17
- package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +104 -104
- package/linthost/rules_unicorn_prefer_string_trim_start_end.go +21 -21
- package/linthost/rules_unicorn_prefer_structured_clone.go +36 -36
- package/linthost/rules_unicorn_prefer_switch.go +65 -65
- package/linthost/rules_unicorn_prefer_ternary.go +35 -35
- package/linthost/rules_unicorn_prefer_top_level_await.go +34 -34
- package/linthost/rules_unicorn_prefer_type_error.go +84 -84
- package/linthost/rules_unicorn_prevent_abbreviations.go +68 -68
- package/linthost/rules_unicorn_relative_url_style.go +19 -19
- package/linthost/rules_unicorn_require_array_join_separator.go +18 -18
- package/linthost/rules_unicorn_require_module_attributes.go +25 -25
- package/linthost/rules_unicorn_require_module_specifiers.go +28 -28
- package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +18 -18
- package/linthost/rules_unicorn_require_post_message_target_origin.go +18 -18
- package/linthost/rules_unicorn_string_content.go +1 -1
- package/linthost/rules_unicorn_switch_case_braces.go +16 -16
- package/linthost/rules_unicorn_switch_case_break_position.go +3 -3
- package/linthost/rules_unicorn_template_indent.go +1 -1
- package/linthost/rules_unicorn_text_encoding_identifier_case.go +36 -36
- package/linthost/rules_unicorn_throw_new_error.go +30 -30
- package/linthost/rules_var.go +273 -3
- package/package.json +3 -3
- package/src/defaultFormat.ts +11 -7
- package/src/structures/ITtscLintConfig.ts +5 -5
- package/src/structures/TtscLintRuleSetting.ts +19 -19
- package/src/structures/{ITtscLintFormat.ts → format/ITtscLintFormat.ts} +48 -75
- package/src/structures/format/ITtscLintFormatJsDoc.ts +16 -0
- package/src/structures/format/ITtscLintFormatSortImports.ts +62 -0
- package/src/structures/format/index.ts +3 -0
- package/src/structures/index.ts +1 -1
- package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +20 -31
- package/src/structures/rules/ITtscLintBoundariesRules.ts +32 -36
- package/src/structures/rules/ITtscLintContributorRules.ts +6 -7
- package/src/structures/rules/ITtscLintCoreRules.ts +380 -408
- package/src/structures/rules/ITtscLintCypressRuleOptions.ts +5 -5
- package/src/structures/rules/ITtscLintCypressRules.ts +34 -38
- package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +28 -41
- package/src/structures/rules/ITtscLintFunctionalRules.ts +51 -56
- package/src/structures/rules/ITtscLintJestRules.ts +63 -74
- package/src/structures/rules/ITtscLintJsdocRules.ts +47 -54
- package/src/structures/rules/ITtscLintJsxA11yRules.ts +94 -102
- package/src/structures/rules/ITtscLintNextjsRules.ts +50 -55
- package/src/structures/rules/ITtscLintPlaywrightRules.ts +104 -122
- package/src/structures/rules/ITtscLintPromiseRules.ts +62 -71
- package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +4 -4
- package/src/structures/rules/ITtscLintReactPerfRules.ts +17 -19
- package/src/structures/rules/ITtscLintReactRuleOptions.ts +8 -10
- package/src/structures/rules/ITtscLintReactRules.ts +91 -104
- package/src/structures/rules/ITtscLintRegexpRules.ts +46 -54
- package/src/structures/rules/ITtscLintRuleOptionsMap.ts +7 -8
- package/src/structures/rules/ITtscLintSecurityRules.ts +45 -52
- package/src/structures/rules/ITtscLintSolidRules.ts +53 -56
- package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +3 -4
- package/src/structures/rules/ITtscLintStorybookRules.ts +60 -69
- package/src/structures/rules/ITtscLintTanstackQueryRules.ts +31 -37
- package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +2 -3
- package/src/structures/rules/ITtscLintTestingLibraryRules.ts +102 -119
- package/src/structures/rules/ITtscLintTypeScriptRules.ts +460 -518
- package/src/structures/rules/ITtscLintVitestRules.ts +43 -51
- package/lib/structures/ITtscLintFormat.js.map +0 -1
- /package/lib/structures/{ITtscLintFormat.js → format/ITtscLintFormat.js} +0 -0
package/lib/defaultFormat.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Documented defaults for the `format` block's _always-on_ rules
|
|
3
|
-
* (`format/semi`, `format/quotes`, `format/
|
|
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 {
|
|
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: `
|
|
20
|
-
* `
|
|
21
|
-
* const documents only the
|
|
22
|
-
* non-empty `format` block
|
|
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;
|
package/lib/defaultFormat.js
CHANGED
|
@@ -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/
|
|
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 {
|
|
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: `
|
|
23
|
-
* `
|
|
24
|
-
* const documents only the
|
|
25
|
-
* non-empty `format` block
|
|
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,
|
package/lib/defaultFormat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultFormat.js","sourceRoot":"","sources":["../src/defaultFormat.ts"],"names":[],"mappings":";;;AAEA
|
|
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
|
-
/**
|
|
22
|
-
|
|
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
|
-
/**
|
|
32
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
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
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
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 "
|
|
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
|
|
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
|
-
*
|
|
115
|
-
*
|
|
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
|
-
|
|
116
|
+
sortImports?: boolean | ITtscLintFormatSortImports;
|
|
138
117
|
/**
|
|
139
|
-
*
|
|
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
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
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
|
|
125
|
+
* @default true
|
|
148
126
|
*/
|
|
149
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"ITtscLintFormatSortImports.js","sourceRoot":"","sources":["../../../src/structures/format/ITtscLintFormatSortImports.ts"],"names":[],"mappings":""}
|
|
@@ -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"}
|
package/lib/structures/index.js
CHANGED
|
@@ -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("./
|
|
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,
|
|
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
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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
|
-
*
|
|
19
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
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
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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
|
|
1
|
+
{"version":3,"file":"ITtscLintBoundariesRuleOptions.js","sourceRoot":"","sources":["../../../src/structures/rules/ITtscLintBoundariesRuleOptions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
|