@ttsc/lint 0.14.0-dev.20260529.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -23
- 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,49 +1,47 @@
|
|
|
1
1
|
import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
2
2
|
/**
|
|
3
|
-
* Security-focused TypeScript source rules from
|
|
4
|
-
* `eslint-plugin-security`.
|
|
3
|
+
* Security-focused TypeScript source rules from `eslint-plugin-security`.
|
|
5
4
|
*
|
|
6
|
-
* Reports likely security smells — non-literal sinks for eval, file
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* statically provable.
|
|
5
|
+
* Reports likely security smells — non-literal sinks for eval, file I/O, regex
|
|
6
|
+
* construction, child-process spawning, cryptographic primitives — that warrant
|
|
7
|
+
* human review even if no exploit is statically provable.
|
|
10
8
|
*
|
|
11
|
-
* Treat findings as
|
|
9
|
+
* Treat findings as _hints_, not proofs.
|
|
12
10
|
*
|
|
13
11
|
* @reference https://github.com/eslint-community/eslint-plugin-security
|
|
14
12
|
*/
|
|
15
13
|
export interface ITtscLintSecurityRules {
|
|
16
14
|
/**
|
|
17
|
-
* Detect Trojan-Source bidi control characters (U+202A, U+202E,
|
|
18
|
-
*
|
|
15
|
+
* Detect Trojan-Source bidi control characters (U+202A, U+202E, ...) hidden
|
|
16
|
+
* inside source.
|
|
19
17
|
*
|
|
20
18
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-bidi-characters.md
|
|
21
19
|
*/
|
|
22
20
|
"security/detect-bidi-characters"?: TtscLintRuleSetting;
|
|
23
21
|
/**
|
|
24
|
-
* Detect Buffer reads/writes called with `noAssert = true`, which
|
|
25
|
-
*
|
|
22
|
+
* Detect Buffer reads/writes called with `noAssert = true`, which skips
|
|
23
|
+
* Node's offset/length bounds checks.
|
|
26
24
|
*
|
|
27
|
-
* The flag lets the offset slide past the buffer end and read
|
|
28
|
-
*
|
|
25
|
+
* The flag lets the offset slide past the buffer end and read unrelated
|
|
26
|
+
* memory, so production code should never set it.
|
|
29
27
|
*
|
|
30
28
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-buffer-noassert.md
|
|
31
29
|
*/
|
|
32
30
|
"security/detect-buffer-noassert"?: TtscLintRuleSetting;
|
|
33
31
|
/**
|
|
34
|
-
* Detect any import of `child_process` and any `exec`/`execSync`
|
|
35
|
-
*
|
|
32
|
+
* Detect any import of `child_process` and any `exec`/`execSync` call whose
|
|
33
|
+
* command argument is not a string literal.
|
|
36
34
|
*
|
|
37
|
-
* Non-literal commands are the canonical shell-injection sink in
|
|
38
|
-
*
|
|
35
|
+
* Non-literal commands are the canonical shell-injection sink in Node
|
|
36
|
+
* services.
|
|
39
37
|
*
|
|
40
38
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-child-process.md
|
|
41
39
|
*/
|
|
42
40
|
"security/detect-child-process"?: TtscLintRuleSetting;
|
|
43
41
|
/**
|
|
44
|
-
* Detect assignments setting `escapeMarkup = false` (or the
|
|
45
|
-
*
|
|
46
|
-
*
|
|
42
|
+
* Detect assignments setting `escapeMarkup = false` (or the equivalent option
|
|
43
|
+
* on Handlebars/Mustache-style engines), which turns off HTML entity escaping
|
|
44
|
+
* in template output.
|
|
47
45
|
*
|
|
48
46
|
* Result: an unguarded XSS sink for caller-controlled strings.
|
|
49
47
|
*
|
|
@@ -54,15 +52,14 @@ export interface ITtscLintSecurityRules {
|
|
|
54
52
|
* Detect `eval(...)` calls whose argument is not a string literal.
|
|
55
53
|
*
|
|
56
54
|
* Any expression argument means caller-controlled data can reach a
|
|
57
|
-
* code-execution sink. The rule flags the call shape, not proven
|
|
58
|
-
* taint.
|
|
55
|
+
* code-execution sink. The rule flags the call shape, not proven taint.
|
|
59
56
|
*
|
|
60
57
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-eval-with-expression.md
|
|
61
58
|
*/
|
|
62
59
|
"security/detect-eval-with-expression"?: TtscLintRuleSetting;
|
|
63
60
|
/**
|
|
64
|
-
* Detect `new Buffer(input)` constructions with non-literal
|
|
65
|
-
*
|
|
61
|
+
* Detect `new Buffer(input)` constructions with non-literal input —
|
|
62
|
+
* historical source of allocation-disclosure bugs.
|
|
66
63
|
*
|
|
67
64
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-new-buffer.md
|
|
68
65
|
*/
|
|
@@ -75,40 +72,38 @@ export interface ITtscLintSecurityRules {
|
|
|
75
72
|
*/
|
|
76
73
|
"security/detect-no-csrf-before-method-override"?: TtscLintRuleSetting;
|
|
77
74
|
/**
|
|
78
|
-
* Detect `fs` calls (`readFile`, `writeFile`, `createReadStream`,
|
|
79
|
-
*
|
|
75
|
+
* Detect `fs` calls (`readFile`, `writeFile`, `createReadStream`, ...) whose
|
|
76
|
+
* filename argument is not a string literal.
|
|
80
77
|
*
|
|
81
|
-
* Dynamic filenames are the standard path-traversal sink; sanitise
|
|
82
|
-
*
|
|
78
|
+
* Dynamic filenames are the standard path-traversal sink; sanitise or
|
|
79
|
+
* allow-list before the call.
|
|
83
80
|
*
|
|
84
81
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-non-literal-fs-filename.md
|
|
85
82
|
*/
|
|
86
83
|
"security/detect-non-literal-fs-filename"?: TtscLintRuleSetting;
|
|
87
84
|
/**
|
|
88
|
-
* Detect `new RegExp(...)` construction whose pattern argument is
|
|
89
|
-
*
|
|
85
|
+
* Detect `new RegExp(...)` construction whose pattern argument is not a
|
|
86
|
+
* string literal.
|
|
90
87
|
*
|
|
91
|
-
* Caller-controlled patterns can both trigger catastrophic
|
|
92
|
-
*
|
|
93
|
-
* intended validation.
|
|
88
|
+
* Caller-controlled patterns can both trigger catastrophic backtracking and
|
|
89
|
+
* let an attacker reshape the matcher to bypass intended validation.
|
|
94
90
|
*
|
|
95
91
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-non-literal-regexp.md
|
|
96
92
|
*/
|
|
97
93
|
"security/detect-non-literal-regexp"?: TtscLintRuleSetting;
|
|
98
94
|
/**
|
|
99
|
-
* Detect `require(...)` calls whose specifier is computed at
|
|
100
|
-
* runtime.
|
|
95
|
+
* Detect `require(...)` calls whose specifier is computed at runtime.
|
|
101
96
|
*
|
|
102
|
-
* A dynamic specifier lets caller-controlled data choose the module
|
|
103
|
-
*
|
|
97
|
+
* A dynamic specifier lets caller-controlled data choose the module to load,
|
|
98
|
+
* bypassing any module allow-list on Node.
|
|
104
99
|
*
|
|
105
100
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-non-literal-require.md
|
|
106
101
|
*/
|
|
107
102
|
"security/detect-non-literal-require"?: TtscLintRuleSetting;
|
|
108
103
|
/**
|
|
109
|
-
* Detect dynamic bracket-access such as `obj[req.body.x] = ...`,
|
|
110
|
-
*
|
|
111
|
-
*
|
|
104
|
+
* Detect dynamic bracket-access such as `obj[req.body.x] = ...`, which can
|
|
105
|
+
* let caller-controlled keys overwrite prototype-shaped properties or pull
|
|
106
|
+
* out unintended fields.
|
|
112
107
|
*
|
|
113
108
|
* Fires on virtually any computed property access; expect a high
|
|
114
109
|
* false-positive rate in normal application code.
|
|
@@ -117,30 +112,28 @@ export interface ITtscLintSecurityRules {
|
|
|
117
112
|
*/
|
|
118
113
|
"security/detect-object-injection"?: TtscLintRuleSetting;
|
|
119
114
|
/**
|
|
120
|
-
* Detect direct equality comparisons involving secret-like
|
|
121
|
-
*
|
|
122
|
-
* `crypto.timingSafeEqual` instead.
|
|
115
|
+
* Detect direct equality comparisons involving secret-like identifiers (`if
|
|
116
|
+
* (token === expected)`) — use `crypto.timingSafeEqual` instead.
|
|
123
117
|
*
|
|
124
118
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-possible-timing-attacks.md
|
|
125
119
|
*/
|
|
126
120
|
"security/detect-possible-timing-attacks"?: TtscLintRuleSetting;
|
|
127
121
|
/**
|
|
128
|
-
* Detect `crypto.pseudoRandomBytes`, which produces values that
|
|
129
|
-
*
|
|
122
|
+
* Detect `crypto.pseudoRandomBytes`, which produces values that are not
|
|
123
|
+
* cryptographically secure.
|
|
130
124
|
*
|
|
131
|
-
* Tokens, session ids, and key material must use
|
|
132
|
-
*
|
|
125
|
+
* Tokens, session ids, and key material must use `crypto.randomBytes` (or Web
|
|
126
|
+
* Crypto's `getRandomValues`) instead.
|
|
133
127
|
*
|
|
134
128
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-pseudoRandomBytes.md
|
|
135
129
|
*/
|
|
136
130
|
"security/detect-pseudoRandomBytes"?: TtscLintRuleSetting;
|
|
137
131
|
/**
|
|
138
|
-
* Detect regex literals with catastrophic backtracking potential
|
|
139
|
-
*
|
|
140
|
-
* same character set.
|
|
132
|
+
* Detect regex literals with catastrophic backtracking potential (ReDoS) —
|
|
133
|
+
* typically nested or overlapping quantifiers over the same character set.
|
|
141
134
|
*
|
|
142
|
-
* Matching caller-controlled input against such a pattern can
|
|
143
|
-
*
|
|
135
|
+
* Matching caller-controlled input against such a pattern can block the event
|
|
136
|
+
* loop for seconds.
|
|
144
137
|
*
|
|
145
138
|
* @reference https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-unsafe-regex.md
|
|
146
139
|
*/
|
|
@@ -2,64 +2,63 @@ import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
|
2
2
|
/**
|
|
3
3
|
* Solid TSX rules from `eslint-plugin-solid`.
|
|
4
4
|
*
|
|
5
|
-
* Solid components compile to fine-grained reactivity, so patterns
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* Solid components compile to fine-grained reactivity, so patterns that look
|
|
6
|
+
* correct in React (destructuring props, calling `useEffect`-style hooks with
|
|
7
|
+
* array deps) silently break reactivity in Solid. This family captures the
|
|
8
|
+
* common Solid-only pitfalls.
|
|
9
9
|
*
|
|
10
10
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid
|
|
11
11
|
*/
|
|
12
12
|
export interface ITtscLintSolidRules {
|
|
13
13
|
/**
|
|
14
|
-
* Reject early and conditional `return` from a Solid component
|
|
15
|
-
*
|
|
14
|
+
* Reject early and conditional `return` from a Solid component — Solid
|
|
15
|
+
* components must return exactly once at the top level.
|
|
16
16
|
*
|
|
17
17
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/components-return-once.md
|
|
18
18
|
*/
|
|
19
19
|
"solid/components-return-once"?: TtscLintRuleSetting;
|
|
20
20
|
/**
|
|
21
|
-
* Require DOM event handler props to use canonical Solid casing
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* Require DOM event handler props to use canonical Solid casing (`onClick`,
|
|
22
|
+
* not `onclick` / `onClIcK`) so the compiler recognizes them as events. Also
|
|
23
|
+
* flags `on*`-named props bound to non-function values, which look like
|
|
24
|
+
* handlers but are not.
|
|
25
25
|
*
|
|
26
26
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/event-handlers.md
|
|
27
27
|
*/
|
|
28
28
|
"solid/event-handlers"?: TtscLintRuleSetting;
|
|
29
29
|
/**
|
|
30
30
|
* Route each Solid export to the correct entry point (`solid-js`,
|
|
31
|
-
* `solid-js/web`, or `solid-js/store`) and merge duplicate imports
|
|
32
|
-
*
|
|
31
|
+
* `solid-js/web`, or `solid-js/store`) and merge duplicate imports from the
|
|
32
|
+
* same entry.
|
|
33
33
|
*
|
|
34
34
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/imports.md
|
|
35
35
|
*/
|
|
36
36
|
"solid/imports"?: TtscLintRuleSetting;
|
|
37
37
|
/**
|
|
38
|
-
* Reject duplicate JSX props on the same Solid element. Unlike
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* Reject duplicate JSX props on the same Solid element. Unlike React, Solid
|
|
39
|
+
* silently keeps the first value, so the duplicate is dead code and almost
|
|
40
|
+
* always a typo.
|
|
41
41
|
*
|
|
42
42
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/jsx-no-duplicate-props.md
|
|
43
43
|
*/
|
|
44
44
|
"solid/jsx-no-duplicate-props"?: TtscLintRuleSetting;
|
|
45
45
|
/**
|
|
46
|
-
* Reject `javascript:` URLs in Solid JSX attributes (`href`, `src`,
|
|
47
|
-
*
|
|
48
|
-
*
|
|
46
|
+
* Reject `javascript:` URLs in Solid JSX attributes (`href`, `src`, ...) —
|
|
47
|
+
* they evaluate the suffix as code in the page context and are a
|
|
48
|
+
* long-standing XSS vector.
|
|
49
49
|
*
|
|
50
50
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/jsx-no-script-url.md
|
|
51
51
|
*/
|
|
52
52
|
"solid/jsx-no-script-url"?: TtscLintRuleSetting;
|
|
53
53
|
/**
|
|
54
|
-
* Reject Solid JSX component names that are not declared or
|
|
55
|
-
*
|
|
54
|
+
* Reject Solid JSX component names that are not declared or imported in
|
|
55
|
+
* scope.
|
|
56
56
|
*
|
|
57
57
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/jsx-no-undef.md
|
|
58
58
|
*/
|
|
59
59
|
"solid/jsx-no-undef"?: TtscLintRuleSetting;
|
|
60
60
|
/**
|
|
61
|
-
* Scope-marker compatibility rule (mirrors ESLint's
|
|
62
|
-
* `react/jsx-uses-vars`).
|
|
61
|
+
* Scope-marker compatibility rule (mirrors ESLint's `react/jsx-uses-vars`).
|
|
63
62
|
*
|
|
64
63
|
* The native engine emits no diagnostics for this id.
|
|
65
64
|
*
|
|
@@ -67,32 +66,32 @@ export interface ITtscLintSolidRules {
|
|
|
67
66
|
*/
|
|
68
67
|
"solid/jsx-uses-vars"?: TtscLintRuleSetting;
|
|
69
68
|
/**
|
|
70
|
-
* Reject array values passed as Solid event handlers — Solid
|
|
71
|
-
*
|
|
69
|
+
* Reject array values passed as Solid event handlers — Solid does not unwrap
|
|
70
|
+
* the array form React supports.
|
|
72
71
|
*
|
|
73
72
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-array-handlers.md
|
|
74
73
|
*/
|
|
75
74
|
"solid/no-array-handlers"?: TtscLintRuleSetting;
|
|
76
75
|
/**
|
|
77
|
-
* Reject destructured Solid component props — destructuring breaks
|
|
78
|
-
*
|
|
76
|
+
* Reject destructured Solid component props — destructuring breaks reactivity
|
|
77
|
+
* by reading the property eagerly.
|
|
79
78
|
*
|
|
80
79
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-destructure.md
|
|
81
80
|
*/
|
|
82
81
|
"solid/no-destructure"?: TtscLintRuleSetting;
|
|
83
82
|
/**
|
|
84
|
-
* Reject `innerHTML` JSX attributes because they bypass sanitization
|
|
85
|
-
*
|
|
86
|
-
*
|
|
83
|
+
* Reject `innerHTML` JSX attributes because they bypass sanitization and are
|
|
84
|
+
* a common XSS sink. A static string literal is still allowed by default;
|
|
85
|
+
* flip `allowStatic` off to ban that form too.
|
|
87
86
|
*
|
|
88
87
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-innerhtml.md
|
|
89
88
|
*/
|
|
90
89
|
"solid/no-innerhtml"?: TtscLintRuleSetting;
|
|
91
90
|
/**
|
|
92
91
|
* Reject Solid APIs that rely on ES6 `Proxy` (including `new Proxy`,
|
|
93
|
-
* `Proxy.revocable`, imports from `solid-js/store`, and dynamic
|
|
94
|
-
*
|
|
95
|
-
*
|
|
92
|
+
* `Proxy.revocable`, imports from `solid-js/store`, and dynamic spread shapes
|
|
93
|
+
* through `mergeProps`). For shipping to runtimes without `Proxy` support;
|
|
94
|
+
* off by default.
|
|
96
95
|
*
|
|
97
96
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-proxy-apis.md
|
|
98
97
|
*/
|
|
@@ -105,24 +104,24 @@ export interface ITtscLintSolidRules {
|
|
|
105
104
|
*/
|
|
106
105
|
"solid/no-react-deps"?: TtscLintRuleSetting;
|
|
107
106
|
/**
|
|
108
|
-
* Reject React-specific JSX props such as `className` and
|
|
109
|
-
*
|
|
107
|
+
* Reject React-specific JSX props such as `className` and `htmlFor` — Solid
|
|
108
|
+
* uses `class` and `for`.
|
|
110
109
|
*
|
|
111
110
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-react-specific-props.md
|
|
112
111
|
*/
|
|
113
112
|
"solid/no-react-specific-props"?: TtscLintRuleSetting;
|
|
114
113
|
/**
|
|
115
|
-
* Restrict namespaced JSX attributes (`ns:name={...}`) to the
|
|
116
|
-
*
|
|
117
|
-
* `
|
|
118
|
-
*
|
|
114
|
+
* Restrict namespaced JSX attributes (`ns:name={...}`) to the built-in Solid
|
|
115
|
+
* namespaces (`on:`, `oncapture:`, `use:`, `prop:`, `attr:`, `bool:`,
|
|
116
|
+
* `style:`, `class:`). Extra names can be allowed through the
|
|
117
|
+
* `allowedNamespaces` option.
|
|
119
118
|
*
|
|
120
119
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/no-unknown-namespaces.md
|
|
121
120
|
*/
|
|
122
121
|
"solid/no-unknown-namespaces"?: TtscLintRuleSetting;
|
|
123
122
|
/**
|
|
124
|
-
* Rewrite `class={cn({ ... })}` / `clsx(...)` / `classnames(...)`
|
|
125
|
-
*
|
|
123
|
+
* Rewrite `class={cn({ ... })}` / `clsx(...)` / `classnames(...)` calls to
|
|
124
|
+
* the reactive `classlist={{ ... }}` prop.
|
|
126
125
|
*
|
|
127
126
|
* Deprecated and off by default upstream.
|
|
128
127
|
*
|
|
@@ -130,50 +129,48 @@ export interface ITtscLintSolidRules {
|
|
|
130
129
|
*/
|
|
131
130
|
"solid/prefer-classlist"?: TtscLintRuleSetting;
|
|
132
131
|
/**
|
|
133
|
-
* Replace inline `array.map(item => <JSX />)` with Solid's `<For>`
|
|
134
|
-
*
|
|
135
|
-
*
|
|
132
|
+
* Replace inline `array.map(item => <JSX />)` with Solid's `<For>` component
|
|
133
|
+
* so the iteration stays keyed and reactive instead of re-creating every
|
|
134
|
+
* child on each update.
|
|
136
135
|
*
|
|
137
136
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/prefer-for.md
|
|
138
137
|
*/
|
|
139
138
|
"solid/prefer-for"?: TtscLintRuleSetting;
|
|
140
139
|
/**
|
|
141
140
|
* Rewrite `{cond && <JSX />}` short-circuits in JSX to `<Show
|
|
142
|
-
* when={cond}>...</Show>`. Stylistic only — Solid's compiler
|
|
143
|
-
*
|
|
141
|
+
* when={cond}>...</Show>`. Stylistic only — Solid's compiler already handles
|
|
142
|
+
* the boolean form — so it is off by default.
|
|
144
143
|
*
|
|
145
144
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/prefer-show.md
|
|
146
145
|
*/
|
|
147
146
|
"solid/prefer-show"?: TtscLintRuleSetting;
|
|
148
147
|
/**
|
|
149
|
-
* Reject common Solid reactivity breakages — reading a signal
|
|
150
|
-
*
|
|
148
|
+
* Reject common Solid reactivity breakages — reading a signal outside a
|
|
149
|
+
* tracking scope, destructuring a `Store`, etc.
|
|
151
150
|
*
|
|
152
151
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/reactivity.md
|
|
153
152
|
*/
|
|
154
153
|
"solid/reactivity"?: TtscLintRuleSetting;
|
|
155
154
|
/**
|
|
156
155
|
* Collapse JSX elements with no children to the self-closing form
|
|
157
|
-
* (`<Foo></Foo>` to `<Foo />`). Configurable per component vs HTML
|
|
158
|
-
*
|
|
159
|
-
* tags.
|
|
156
|
+
* (`<Foo></Foo>` to `<Foo />`). Configurable per component vs HTML element,
|
|
157
|
+
* including a `"void"` mode that only enforces it for void tags.
|
|
160
158
|
*
|
|
161
159
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/self-closing-comp.md
|
|
162
160
|
*/
|
|
163
161
|
"solid/self-closing-comp"?: TtscLintRuleSetting;
|
|
164
162
|
/**
|
|
165
163
|
* Require `style={{...}}` keys to be valid kebab-case CSS properties
|
|
166
|
-
* (`"font-size"`, not React's `fontSize`) and dimensioned values to
|
|
167
|
-
*
|
|
164
|
+
* (`"font-size"`, not React's `fontSize`) and dimensioned values to be
|
|
165
|
+
* strings — Solid does not append implicit `px`.
|
|
168
166
|
*
|
|
169
167
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/style-prop.md
|
|
170
168
|
*/
|
|
171
169
|
"solid/style-prop"?: TtscLintRuleSetting;
|
|
172
170
|
/**
|
|
173
|
-
* Reject JSX nestings that the HTML parser would silently restructure
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
* interactive elements.
|
|
171
|
+
* Reject JSX nestings that the HTML parser would silently restructure at
|
|
172
|
+
* runtime — `<p>` cannot contain block-level children, `<a>` cannot contain
|
|
173
|
+
* another `<a>`, and `<button>` cannot contain other interactive elements.
|
|
177
174
|
*
|
|
178
175
|
* @reference https://github.com/solidjs-community/eslint-plugin-solid/blob/main/packages/eslint-plugin-solid/docs/validate-jsx-nesting.md
|
|
179
176
|
*/
|
|
@@ -7,15 +7,14 @@
|
|
|
7
7
|
/** `storybook/no-uninstalled-addons` rule options. */
|
|
8
8
|
export interface ITtscLintStorybookNoUninstalledAddonsRuleOptions {
|
|
9
9
|
/**
|
|
10
|
-
* Explicit `package.json` path used to validate configured Storybook
|
|
11
|
-
*
|
|
12
|
-
* file.
|
|
10
|
+
* Explicit `package.json` path used to validate configured Storybook addons.
|
|
11
|
+
* When omitted, the rule walks upward from the linted config file.
|
|
13
12
|
*/
|
|
14
13
|
packageJsonLocation?: string;
|
|
15
14
|
/**
|
|
16
15
|
* Addon package names to skip when checking installation status.
|
|
17
16
|
*
|
|
18
|
-
* @default []
|
|
17
|
+
* @default [ ]
|
|
19
18
|
*/
|
|
20
19
|
ignore?: readonly string[];
|
|
21
20
|
}
|