@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
|
@@ -1,34 +1,33 @@
|
|
|
1
|
-
import type { ITtscLintStorybookNoUninstalledAddonsRuleOptions } from "./ITtscLintStorybookRuleOptions";
|
|
2
1
|
import type { TtscLintRuleOptionsSetting, TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
2
|
+
import type { ITtscLintStorybookNoUninstalledAddonsRuleOptions } from "./ITtscLintStorybookRuleOptions";
|
|
3
3
|
/**
|
|
4
|
-
* Storybook CSF and configuration rules from
|
|
5
|
-
* `eslint-plugin-storybook`.
|
|
4
|
+
* Storybook CSF and configuration rules from `eslint-plugin-storybook`.
|
|
6
5
|
*
|
|
7
|
-
* Checks Component Story Format conventions (default export meta,
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Checks Component Story Format conventions (default export meta, named story
|
|
7
|
+
* exports, play-function shape) and configuration pitfalls in
|
|
8
|
+
* `.storybook/main.ts`.
|
|
10
9
|
*
|
|
11
10
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook
|
|
12
11
|
*/
|
|
13
12
|
export interface ITtscLintStorybookRules {
|
|
14
13
|
/**
|
|
15
|
-
* Require `await` on Storybook interaction helpers (`userEvent`,
|
|
16
|
-
* `
|
|
14
|
+
* Require `await` on Storybook interaction helpers (`userEvent`, `expect`,
|
|
15
|
+
* `waitFor`, ...) inside a `play` function.
|
|
17
16
|
*
|
|
18
|
-
* The interactions addon intercepts the awaited promises to record
|
|
19
|
-
*
|
|
20
|
-
*
|
|
17
|
+
* The interactions addon intercepts the awaited promises to record steps, so
|
|
18
|
+
* a missing `await` skips that frame in the debugger and races the next
|
|
19
|
+
* assertion.
|
|
21
20
|
*
|
|
22
21
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/await-interactions.md
|
|
23
22
|
*/
|
|
24
23
|
"storybook/await-interactions"?: TtscLintRuleSetting;
|
|
25
24
|
/**
|
|
26
|
-
* Require forwarding the play-function `context` argument when
|
|
27
|
-
*
|
|
25
|
+
* Require forwarding the play-function `context` argument when invoking
|
|
26
|
+
* another story's `play` function.
|
|
28
27
|
*
|
|
29
|
-
* Storybook hangs the canvas, step tracker, and interactions addon
|
|
30
|
-
*
|
|
31
|
-
*
|
|
28
|
+
* Storybook hangs the canvas, step tracker, and interactions addon off
|
|
29
|
+
* `context`; omitting it leaves the nested call without the runtime hooks it
|
|
30
|
+
* needs to drive the canvas.
|
|
32
31
|
*
|
|
33
32
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/context-in-play-function.md
|
|
34
33
|
*/
|
|
@@ -36,9 +35,8 @@ export interface ITtscLintStorybookRules {
|
|
|
36
35
|
/**
|
|
37
36
|
* Require the CSF default meta object to declare a `component`.
|
|
38
37
|
*
|
|
39
|
-
* The reference unlocks Storybook's auto-generated controls,
|
|
40
|
-
*
|
|
41
|
-
* features silently no-op.
|
|
38
|
+
* The reference unlocks Storybook's auto-generated controls, prop-table docs,
|
|
39
|
+
* and CSF3 default render — without it those features silently no-op.
|
|
42
40
|
*
|
|
43
41
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/csf-component.md
|
|
44
42
|
*/
|
|
@@ -46,59 +44,56 @@ export interface ITtscLintStorybookRules {
|
|
|
46
44
|
/**
|
|
47
45
|
* Require every story file to provide the CSF default export.
|
|
48
46
|
*
|
|
49
|
-
* Storybook keys all per-file configuration (title, decorators,
|
|
50
|
-
*
|
|
51
|
-
*
|
|
47
|
+
* Storybook keys all per-file configuration (title, decorators, parameters,
|
|
48
|
+
* component) off that default; files without it are skipped at indexing
|
|
49
|
+
* time.
|
|
52
50
|
*
|
|
53
51
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/default-exports.md
|
|
54
52
|
*/
|
|
55
53
|
"storybook/default-exports"?: TtscLintRuleSetting;
|
|
56
54
|
/**
|
|
57
|
-
* Reject the legacy `|` separator in Storybook story titles
|
|
58
|
-
* (`"Foo|Bar"`).
|
|
55
|
+
* Reject the legacy `|` separator in Storybook story titles (`"Foo|Bar"`).
|
|
59
56
|
*
|
|
60
|
-
* Storybook 6 standardized on `/` for hierarchy and treats `|` as
|
|
61
|
-
*
|
|
62
|
-
*
|
|
57
|
+
* Storybook 6 standardized on `/` for hierarchy and treats `|` as a literal
|
|
58
|
+
* character, so the title collapses into a single sidebar entry instead of
|
|
59
|
+
* nested folders.
|
|
63
60
|
*
|
|
64
61
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/hierarchy-separator.md
|
|
65
62
|
*/
|
|
66
63
|
"storybook/hierarchy-separator"?: TtscLintRuleSetting;
|
|
67
64
|
/**
|
|
68
|
-
* Require `title` and `args` in CSF meta to be inline literals,
|
|
69
|
-
*
|
|
65
|
+
* Require `title` and `args` in CSF meta to be inline literals, not
|
|
66
|
+
* references to outside variables or function calls.
|
|
70
67
|
*
|
|
71
|
-
* Storybook's indexer and upgrade codemods read these via static
|
|
72
|
-
*
|
|
68
|
+
* Storybook's indexer and upgrade codemods read these via static analysis and
|
|
69
|
+
* skip stories where the value is not literal.
|
|
73
70
|
*
|
|
74
71
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/meta-inline-properties.md
|
|
75
72
|
*/
|
|
76
73
|
"storybook/meta-inline-properties"?: TtscLintRuleSetting;
|
|
77
74
|
/**
|
|
78
|
-
* Require CSF meta objects to type-check with `satisfies Meta<…>`
|
|
79
|
-
*
|
|
75
|
+
* Require CSF meta objects to type-check with `satisfies Meta<…>` rather than
|
|
76
|
+
* a `: Meta<…>` annotation or `as` cast.
|
|
80
77
|
*
|
|
81
|
-
* `satisfies` preserves the narrowed literal types so dependent
|
|
82
|
-
*
|
|
83
|
-
* precisely.
|
|
78
|
+
* `satisfies` preserves the narrowed literal types so dependent `StoryObj`
|
|
79
|
+
* declarations can infer the component's args precisely.
|
|
84
80
|
*
|
|
85
81
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/meta-satisfies-type.md
|
|
86
82
|
*/
|
|
87
83
|
"storybook/meta-satisfies-type"?: TtscLintRuleSetting;
|
|
88
84
|
/**
|
|
89
|
-
* Reject `name` metadata on a story when it matches Storybook's
|
|
90
|
-
*
|
|
85
|
+
* Reject `name` metadata on a story when it matches Storybook's auto-derived
|
|
86
|
+
* name from the export identifier.
|
|
91
87
|
*
|
|
92
|
-
* The explicit value adds boilerplate and drifts from the export
|
|
93
|
-
*
|
|
88
|
+
* The explicit value adds boilerplate and drifts from the export when one
|
|
89
|
+
* side is renamed without the other.
|
|
94
90
|
*
|
|
95
91
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/no-redundant-story-name.md
|
|
96
92
|
*/
|
|
97
93
|
"storybook/no-redundant-story-name"?: TtscLintRuleSetting;
|
|
98
94
|
/**
|
|
99
|
-
* Reject direct imports from Storybook renderer packages
|
|
100
|
-
*
|
|
101
|
-
* surface.
|
|
95
|
+
* Reject direct imports from Storybook renderer packages (`@storybook/react`,
|
|
96
|
+
* etc.); use the user-facing package surface.
|
|
102
97
|
*
|
|
103
98
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/no-renderer-packages.md
|
|
104
99
|
*/
|
|
@@ -106,27 +101,25 @@ export interface ITtscLintStorybookRules {
|
|
|
106
101
|
/**
|
|
107
102
|
* Reject the legacy `storiesOf(...)` builder API.
|
|
108
103
|
*
|
|
109
|
-
* Storybook 7 removed it in favour of CSF default-export metadata;
|
|
110
|
-
*
|
|
111
|
-
* indexer.
|
|
104
|
+
* Storybook 7 removed it in favour of CSF default-export metadata; remaining
|
|
105
|
+
* uses block the migration to CSF3 and the modern indexer.
|
|
112
106
|
*
|
|
113
107
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/no-stories-of.md
|
|
114
108
|
*/
|
|
115
109
|
"storybook/no-stories-of"?: TtscLintRuleSetting;
|
|
116
110
|
/**
|
|
117
|
-
* Reject the `title` property in CSF meta when the project uses
|
|
118
|
-
*
|
|
111
|
+
* Reject the `title` property in CSF meta when the project uses Storybook's
|
|
112
|
+
* auto-title generation.
|
|
119
113
|
*
|
|
120
|
-
* CSF3 derives the title from the file path, so an explicit
|
|
121
|
-
*
|
|
122
|
-
* files are moved.
|
|
114
|
+
* CSF3 derives the title from the file path, so an explicit `title` is
|
|
115
|
+
* redundant and drifts from the on-disk layout when files are moved.
|
|
123
116
|
*
|
|
124
117
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/no-title-property-in-meta.md
|
|
125
118
|
*/
|
|
126
119
|
"storybook/no-title-property-in-meta"?: TtscLintRuleSetting;
|
|
127
120
|
/**
|
|
128
|
-
* Validate Storybook addon names against the project's
|
|
129
|
-
*
|
|
121
|
+
* Validate Storybook addon names against the project's dependencies, so
|
|
122
|
+
* misspelled addon ids surface at lint time.
|
|
130
123
|
*
|
|
131
124
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/no-uninstalled-addons.md
|
|
132
125
|
*/
|
|
@@ -134,39 +127,37 @@ export interface ITtscLintStorybookRules {
|
|
|
134
127
|
/**
|
|
135
128
|
* Require named story exports to use PascalCase.
|
|
136
129
|
*
|
|
137
|
-
* Storybook derives the displayed story name from the export
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
* the sidebar.
|
|
130
|
+
* Storybook derives the displayed story name from the export identifier and
|
|
131
|
+
* inserts spaces at case boundaries, so non-PascalCase exports render with
|
|
132
|
+
* awkward or merged labels in the sidebar.
|
|
141
133
|
*
|
|
142
134
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/prefer-pascal-case.md
|
|
143
135
|
*/
|
|
144
136
|
"storybook/prefer-pascal-case"?: TtscLintRuleSetting;
|
|
145
137
|
/**
|
|
146
|
-
* Require every story file to export at least one named story
|
|
147
|
-
*
|
|
138
|
+
* Require every story file to export at least one named story alongside the
|
|
139
|
+
* default meta.
|
|
148
140
|
*
|
|
149
|
-
* A file with only the default export contributes nothing to the
|
|
150
|
-
*
|
|
151
|
-
* not.
|
|
141
|
+
* A file with only the default export contributes nothing to the sidebar and
|
|
142
|
+
* usually means a story was deleted but the file was not.
|
|
152
143
|
*
|
|
153
144
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/story-exports.md
|
|
154
145
|
*/
|
|
155
146
|
"storybook/story-exports"?: TtscLintRuleSetting;
|
|
156
147
|
/**
|
|
157
|
-
* Require `expect` to be imported from `@storybook/test` in play
|
|
158
|
-
*
|
|
148
|
+
* Require `expect` to be imported from `@storybook/test` in play functions,
|
|
149
|
+
* not from Jest.
|
|
159
150
|
*
|
|
160
|
-
* The Storybook re-export is built for the browser interactions
|
|
161
|
-
*
|
|
162
|
-
*
|
|
151
|
+
* The Storybook re-export is built for the browser interactions runner;
|
|
152
|
+
* Jest's `expect` ships only Node-only matchers and throws when the play
|
|
153
|
+
* function executes in a browser preview.
|
|
163
154
|
*
|
|
164
155
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/use-storybook-expect.md
|
|
165
156
|
*/
|
|
166
157
|
"storybook/use-storybook-expect"?: TtscLintRuleSetting;
|
|
167
158
|
/**
|
|
168
|
-
* Reject direct Testing Library imports inside story files;
|
|
169
|
-
*
|
|
159
|
+
* Reject direct Testing Library imports inside story files; use the
|
|
160
|
+
* Storybook-bundled re-exports.
|
|
170
161
|
*
|
|
171
162
|
* @reference https://github.com/storybookjs/eslint-plugin-storybook/blob/main/docs/rules/use-storybook-testing-library.md
|
|
172
163
|
*/
|
|
@@ -2,40 +2,36 @@ import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
|
2
2
|
/**
|
|
3
3
|
* TanStack Query rules from `@tanstack/eslint-plugin-query`.
|
|
4
4
|
*
|
|
5
|
-
* Guards the ergonomic and correctness contracts of TanStack Query
|
|
6
|
-
*
|
|
7
|
-
* TypeScript sources.
|
|
5
|
+
* Guards the ergonomic and correctness contracts of TanStack Query (`useQuery`,
|
|
6
|
+
* `useMutation`, query-options factories) inside React TypeScript sources.
|
|
8
7
|
*
|
|
9
8
|
* @reference https://github.com/TanStack/query/tree/main/packages/eslint-plugin-query
|
|
10
9
|
*/
|
|
11
10
|
export interface ITtscLintTanstackQueryRules {
|
|
12
11
|
/**
|
|
13
|
-
* Require TanStack Query `queryKey` arrays to include every
|
|
14
|
-
*
|
|
15
|
-
* dependency tracking.
|
|
12
|
+
* Require TanStack Query `queryKey` arrays to include every variable read by
|
|
13
|
+
* the `queryFn` body, mirroring React Hooks dependency tracking.
|
|
16
14
|
*
|
|
17
15
|
* @reference https://tanstack.com/query/latest/docs/eslint/exhaustive-deps
|
|
18
16
|
*/
|
|
19
17
|
"tanstack-query/exhaustive-deps"?: TtscLintRuleSetting;
|
|
20
18
|
/**
|
|
21
|
-
* Require `queryFn`, `getPreviousPageParam`, and `getNextPageParam`
|
|
22
|
-
*
|
|
23
|
-
* documents.
|
|
19
|
+
* Require `queryFn`, `getPreviousPageParam`, and `getNextPageParam` inside
|
|
20
|
+
* `useInfiniteQuery` to appear in the order TanStack Query documents.
|
|
24
21
|
*
|
|
25
|
-
* Type inference flows through these callbacks in sequence, so a
|
|
26
|
-
*
|
|
27
|
-
* `unknown`.
|
|
22
|
+
* Type inference flows through these callbacks in sequence, so a reordered
|
|
23
|
+
* options object widens the page-param type to `unknown`.
|
|
28
24
|
*
|
|
29
25
|
* @reference https://tanstack.com/query/latest/docs/eslint/infinite-query-property-order
|
|
30
26
|
*/
|
|
31
27
|
"tanstack-query/infinite-query-property-order"?: TtscLintRuleSetting;
|
|
32
28
|
/**
|
|
33
|
-
* Require `useMutation` callbacks to declare `onMutate` before
|
|
34
|
-
* `
|
|
29
|
+
* Require `useMutation` callbacks to declare `onMutate` before `onError` and
|
|
30
|
+
* `onSettled`.
|
|
35
31
|
*
|
|
36
|
-
* The options object's type inference threads the `onMutate`
|
|
37
|
-
*
|
|
38
|
-
*
|
|
32
|
+
* The options object's type inference threads the `onMutate` return value
|
|
33
|
+
* into the later callbacks' `context` parameter, which collapses to `unknown`
|
|
34
|
+
* when the order is wrong.
|
|
39
35
|
*
|
|
40
36
|
* @reference https://tanstack.com/query/latest/docs/eslint/mutation-property-order
|
|
41
37
|
*/
|
|
@@ -43,21 +39,20 @@ export interface ITtscLintTanstackQueryRules {
|
|
|
43
39
|
/**
|
|
44
40
|
* Reject `...rest` destructuring on TanStack Query hook results.
|
|
45
41
|
*
|
|
46
|
-
* The result object is a tracked proxy that only re-renders for
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* optimization.
|
|
42
|
+
* The result object is a tracked proxy that only re-renders for the fields
|
|
43
|
+
* you read; rest-destructuring touches every field, subscribes the component
|
|
44
|
+
* to all of them, and disables that optimization.
|
|
50
45
|
*
|
|
51
46
|
* @reference https://tanstack.com/query/latest/docs/eslint/no-rest-destructuring
|
|
52
47
|
*/
|
|
53
48
|
"tanstack-query/no-rest-destructuring"?: TtscLintRuleSetting;
|
|
54
49
|
/**
|
|
55
|
-
* Reject passing entire TanStack Query hook results into React
|
|
56
|
-
*
|
|
50
|
+
* Reject passing entire TanStack Query hook results into React dependency
|
|
51
|
+
* arrays.
|
|
57
52
|
*
|
|
58
|
-
* The returned object is a fresh reference on every render, so
|
|
59
|
-
* `
|
|
60
|
-
*
|
|
53
|
+
* The returned object is a fresh reference on every render, so `useEffect` /
|
|
54
|
+
* `useMemo` / `useCallback` would re-run unconditionally; depend on the
|
|
55
|
+
* specific fields you read instead.
|
|
61
56
|
*
|
|
62
57
|
* @reference https://tanstack.com/query/latest/docs/eslint/no-unstable-deps
|
|
63
58
|
*/
|
|
@@ -65,28 +60,27 @@ export interface ITtscLintTanstackQueryRules {
|
|
|
65
60
|
/**
|
|
66
61
|
* Reject `queryFn` callbacks that resolve to `void`.
|
|
67
62
|
*
|
|
68
|
-
* The return value is what TanStack Query caches and exposes as
|
|
69
|
-
*
|
|
70
|
-
*
|
|
63
|
+
* The return value is what TanStack Query caches and exposes as `data`; a
|
|
64
|
+
* void implementation always populates the cache with `undefined` and almost
|
|
65
|
+
* always indicates a forgotten `return`.
|
|
71
66
|
*
|
|
72
67
|
* @reference https://tanstack.com/query/latest/docs/eslint/no-void-query-fn
|
|
73
68
|
*/
|
|
74
69
|
"tanstack-query/no-void-query-fn"?: TtscLintRuleSetting;
|
|
75
70
|
/**
|
|
76
|
-
* Prefer wrapping query options in the `queryOptions()` helper
|
|
77
|
-
*
|
|
71
|
+
* Prefer wrapping query options in the `queryOptions()` helper over inline `{
|
|
72
|
+
* queryKey, queryFn }` literals.
|
|
78
73
|
*
|
|
79
|
-
* The helper co-locates key and fetcher, lets
|
|
80
|
-
* `
|
|
81
|
-
*
|
|
82
|
-
* different `queryFn`s.
|
|
74
|
+
* The helper co-locates key and fetcher, lets `queryClient.getQueryData` and
|
|
75
|
+
* `setQueryData` share the same typed key, and prevents the same key being
|
|
76
|
+
* paired with two different `queryFn`s.
|
|
83
77
|
*
|
|
84
78
|
* @reference https://tanstack.com/query/latest/docs/eslint/prefer-query-options
|
|
85
79
|
*/
|
|
86
80
|
"tanstack-query/prefer-query-options"?: TtscLintRuleSetting;
|
|
87
81
|
/**
|
|
88
|
-
* Reject creating a `QueryClient` inside a React component or
|
|
89
|
-
*
|
|
82
|
+
* Reject creating a `QueryClient` inside a React component or hook body — the
|
|
83
|
+
* client must be stable across renders.
|
|
90
84
|
*
|
|
91
85
|
* @reference https://tanstack.com/query/latest/docs/eslint/stable-query-client
|
|
92
86
|
*/
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
/** `testing-library/consistent-data-testid` rule options. */
|
|
9
9
|
export interface ITtscLintTestingLibraryConsistentDataTestIdRuleOptions {
|
|
10
10
|
/**
|
|
11
|
-
* Regular expression string every configured test-id attribute value
|
|
12
|
-
*
|
|
13
|
-
* first dot.
|
|
11
|
+
* Regular expression string every configured test-id attribute value must
|
|
12
|
+
* match. `{fileName}` is replaced with the basename before the first dot.
|
|
14
13
|
*/
|
|
15
14
|
testIdPattern: string;
|
|
16
15
|
/**
|