@ttsc/lint 0.13.0 → 0.14.0-dev.20250530.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +955 -85
- package/lib/defaultFormat.d.ts +15 -8
- package/lib/defaultFormat.js +15 -8
- package/lib/defaultFormat.js.map +1 -1
- package/lib/index.d.ts +46 -0
- package/lib/index.js +60 -37
- package/lib/index.js.map +1 -1
- package/lib/structures/ITtscLintConfig.d.ts +12 -6
- package/lib/structures/TtscLintRuleSetting.d.ts +49 -0
- package/lib/structures/{TtscLintRuleOptions.js → TtscLintRuleSetting.js} +1 -1
- package/lib/structures/TtscLintRuleSetting.js.map +1 -0
- package/lib/structures/format/ITtscLintFormat.d.ts +128 -0
- package/lib/structures/{TtscLintRuleMap.js → format/ITtscLintFormat.js} +1 -1
- package/lib/structures/format/ITtscLintFormat.js.map +1 -0
- package/lib/structures/format/ITtscLintFormatJsDoc.d.ts +17 -0
- package/lib/structures/{ITtscLintFormatConfig.js → format/ITtscLintFormatJsDoc.js} +1 -1
- 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 +3 -4
- package/lib/structures/index.js +3 -4
- package/lib/structures/index.js.map +1 -1
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.d.ts +95 -0
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js +13 -0
- package/lib/structures/rules/ITtscLintBoundariesRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintBoundariesRules.d.ts +75 -0
- package/lib/structures/rules/ITtscLintBoundariesRules.js +3 -0
- package/lib/structures/rules/ITtscLintBoundariesRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintContributorRules.d.ts +16 -0
- package/lib/structures/rules/ITtscLintContributorRules.js +3 -0
- package/lib/structures/rules/ITtscLintContributorRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintCoreRules.d.ts +1229 -0
- package/lib/structures/rules/ITtscLintCoreRules.js +3 -0
- package/lib/structures/rules/ITtscLintCoreRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintCypressRuleOptions.d.ts +17 -0
- package/lib/structures/rules/ITtscLintCypressRuleOptions.js +10 -0
- package/lib/structures/rules/ITtscLintCypressRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintCypressRules.d.ts +125 -0
- package/lib/structures/rules/ITtscLintCypressRules.js +3 -0
- package/lib/structures/rules/ITtscLintCypressRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.d.ts +154 -0
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js +13 -0
- package/lib/structures/rules/ITtscLintFunctionalRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintFunctionalRules.d.ts +162 -0
- package/lib/structures/rules/ITtscLintFunctionalRules.js +3 -0
- package/lib/structures/rules/ITtscLintFunctionalRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintJestRules.d.ts +190 -0
- package/lib/structures/rules/ITtscLintJestRules.js +3 -0
- package/lib/structures/rules/ITtscLintJestRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintJsdocRules.d.ts +133 -0
- package/lib/structures/rules/ITtscLintJsdocRules.js +3 -0
- package/lib/structures/rules/ITtscLintJsdocRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintJsxA11yRules.d.ts +294 -0
- package/lib/structures/rules/ITtscLintJsxA11yRules.js +3 -0
- package/lib/structures/rules/ITtscLintJsxA11yRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintNextjsRules.d.ts +180 -0
- package/lib/structures/rules/ITtscLintNextjsRules.js +3 -0
- package/lib/structures/rules/ITtscLintNextjsRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintPlaywrightRules.d.ts +312 -0
- package/lib/structures/rules/ITtscLintPlaywrightRules.js +3 -0
- package/lib/structures/rules/ITtscLintPlaywrightRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintPromiseRules.d.ts +179 -0
- package/lib/structures/rules/ITtscLintPromiseRules.js +3 -0
- package/lib/structures/rules/ITtscLintPromiseRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.d.ts +18 -0
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.js +8 -0
- package/lib/structures/rules/ITtscLintReactPerfRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactPerfRules.d.ts +49 -0
- package/lib/structures/rules/ITtscLintReactPerfRules.js +3 -0
- package/lib/structures/rules/ITtscLintReactPerfRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactRuleOptions.d.ts +37 -0
- package/lib/structures/rules/ITtscLintReactRuleOptions.js +11 -0
- package/lib/structures/rules/ITtscLintReactRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintReactRules.d.ts +276 -0
- package/lib/structures/rules/ITtscLintReactRules.js +3 -0
- package/lib/structures/rules/ITtscLintReactRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintRegexpRules.d.ts +182 -0
- package/lib/structures/rules/ITtscLintRegexpRules.js +3 -0
- package/lib/structures/rules/ITtscLintRegexpRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintRuleOptionsMap.d.ts +65 -0
- package/lib/structures/rules/ITtscLintRuleOptionsMap.js +3 -0
- package/lib/structures/rules/ITtscLintRuleOptionsMap.js.map +1 -0
- package/lib/structures/rules/ITtscLintRules.d.ts +55 -0
- package/lib/structures/{TtscLintRule.js → rules/ITtscLintRules.js} +1 -1
- package/lib/structures/rules/ITtscLintRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintSecurityRules.d.ts +141 -0
- package/lib/structures/rules/ITtscLintSecurityRules.js +3 -0
- package/lib/structures/rules/ITtscLintSecurityRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintSolidRules.d.ts +178 -0
- package/lib/structures/rules/ITtscLintSolidRules.js +3 -0
- package/lib/structures/rules/ITtscLintSolidRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.d.ts +20 -0
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.js +9 -0
- package/lib/structures/rules/ITtscLintStorybookRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintStorybookRules.d.ts +165 -0
- package/lib/structures/rules/ITtscLintStorybookRules.js +3 -0
- package/lib/structures/rules/ITtscLintStorybookRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintTanstackQueryRules.d.ts +88 -0
- package/lib/structures/rules/ITtscLintTanstackQueryRules.js +3 -0
- package/lib/structures/rules/ITtscLintTanstackQueryRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.d.ts +21 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.js +10 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRuleOptions.js.map +1 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRules.d.ts +293 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRules.js +3 -0
- package/lib/structures/rules/ITtscLintTestingLibraryRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintTypeScriptRules.d.ts +1074 -0
- package/lib/structures/rules/ITtscLintTypeScriptRules.js +3 -0
- package/lib/structures/rules/ITtscLintTypeScriptRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintUnicornRules.d.ts +997 -0
- package/lib/structures/rules/ITtscLintUnicornRules.js +3 -0
- package/lib/structures/rules/ITtscLintUnicornRules.js.map +1 -0
- package/lib/structures/rules/ITtscLintVitestRules.d.ts +133 -0
- package/lib/structures/rules/ITtscLintVitestRules.js +3 -0
- package/lib/structures/rules/ITtscLintVitestRules.js.map +1 -0
- package/lib/structures/rules/index.d.ts +31 -0
- package/lib/structures/rules/index.js +48 -0
- package/lib/structures/rules/index.js.map +1 -0
- package/linthost/ast_helpers.go +30 -5
- package/linthost/compile.go +33 -2
- package/linthost/config.go +118 -71
- package/linthost/config_format.go +270 -104
- package/linthost/directives.go +67 -25
- package/linthost/dispatch.go +14 -3
- package/linthost/engine.go +160 -40
- package/linthost/fix.go +10 -3
- package/linthost/flags_gen.go +17 -15
- package/linthost/format.go +222 -25
- package/linthost/format_editor_settings.go +262 -0
- package/linthost/host.go +40 -3
- package/linthost/lsp.go +898 -0
- package/linthost/print_dispatch.go +5 -2
- package/linthost/print_engine.go +5 -5
- package/linthost/print_nodes_call.go +149 -67
- package/linthost/print_nodes_function.go +27 -2
- package/linthost/print_nodes_list.go +40 -5
- package/linthost/print_nodes_object.go +1 -1
- package/linthost/print_nodes_ternary.go +86 -0
- package/linthost/rule_names.go +14 -0
- package/linthost/rules_arrays.go +2 -2
- package/linthost/rules_boundaries.go +532 -0
- package/linthost/rules_camelcase.go +133 -0
- package/linthost/rules_complexity.go +95 -0
- package/linthost/rules_consistent_return.go +130 -0
- package/linthost/rules_console.go +1 -1
- package/linthost/rules_core_extra.go +739 -0
- package/linthost/rules_curly.go +70 -0
- package/linthost/rules_cypress.go +608 -0
- package/linthost/rules_debugger.go +2 -2
- package/linthost/rules_default_case.go +39 -0
- package/linthost/rules_default_case_last.go +46 -0
- package/linthost/rules_dupes.go +3 -3
- package/linthost/rules_empty.go +3 -3
- package/linthost/rules_escape.go +44 -24
- package/linthost/rules_eval.go +2 -2
- package/linthost/rules_finally.go +2 -2
- 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 +595 -0
- package/linthost/rules_format_indent.go +372 -0
- package/linthost/rules_format_jsdoc.go +5 -5
- 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 +66 -55
- package/linthost/rules_format_quote_props.go +169 -0
- package/linthost/rules_format_quotes.go +76 -30
- package/linthost/rules_format_semi.go +186 -11
- package/linthost/rules_format_sort_imports.go +437 -118
- package/linthost/rules_format_statement_split.go +343 -0
- package/linthost/rules_format_ternary_nullish_parens.go +77 -0
- package/linthost/rules_format_trailing_comma.go +22 -3
- package/linthost/rules_format_whitespace.go +336 -0
- package/linthost/rules_functional.go +967 -0
- package/linthost/rules_gap.go +24 -45
- package/linthost/rules_grouped_accessor_pairs.go +87 -0
- package/linthost/rules_guard_for_in.go +198 -0
- package/linthost/rules_id_length.go +77 -0
- package/linthost/rules_imports.go +70 -2
- package/linthost/rules_init_declarations.go +53 -0
- package/linthost/rules_jest.go +618 -0
- package/linthost/rules_jsdoc.go +502 -0
- package/linthost/rules_jsx_a11y.go +1264 -0
- package/linthost/rules_logic.go +12 -12
- package/linthost/rules_loops.go +1 -1
- package/linthost/rules_max_classes_per_file.go +58 -0
- package/linthost/rules_max_depth.go +83 -0
- package/linthost/rules_max_lines.go +101 -0
- package/linthost/rules_max_lines_per_function.go +57 -0
- package/linthost/rules_max_nested_callbacks.go +61 -0
- package/linthost/rules_max_params.go +49 -0
- package/linthost/rules_max_statements.go +59 -0
- package/linthost/rules_misc.go +1 -1
- package/linthost/rules_nextjs.go +697 -0
- package/linthost/rules_no_else_return.go +75 -0
- package/linthost/rules_no_empty_named_blocks.go +91 -0
- package/linthost/rules_no_extend_native.go +51 -0
- package/linthost/rules_no_import_assign.go +140 -0
- package/linthost/rules_no_invalid_this.go +52 -0
- package/linthost/rules_no_loop_func.go +85 -0
- package/linthost/rules_no_magic_numbers.go +123 -0
- package/linthost/rules_no_mixed_operators.go +80 -0
- package/linthost/rules_no_param_reassign.go +98 -0
- package/linthost/rules_no_redeclare.go +270 -0
- package/linthost/rules_no_restricted_imports.go +105 -0
- package/linthost/rules_no_restricted_syntax.go +49 -0
- package/linthost/rules_no_shadow.go +147 -0
- package/linthost/rules_no_unreachable.go +77 -0
- package/linthost/rules_no_useless_assignment.go +120 -0
- package/linthost/rules_no_useless_constructor.go +245 -0
- package/linthost/rules_no_useless_return.go +51 -0
- package/linthost/rules_params.go +1 -1
- package/linthost/rules_playwright.go +788 -0
- package/linthost/rules_prefer_arrow_callback.go +124 -0
- package/linthost/rules_prefer_destructuring.go +98 -0
- package/linthost/rules_prefer_named_capture_group.go +129 -0
- package/linthost/rules_prefer_rest_params.go +94 -0
- package/linthost/rules_problems.go +41 -30
- package/linthost/rules_promise.go +1057 -2
- package/linthost/rules_protos.go +2 -2
- package/linthost/rules_react.go +773 -0
- package/linthost/rules_react_extras.go +227 -0
- package/linthost/rules_react_hooks.go +848 -0
- package/linthost/rules_react_perf.go +293 -0
- package/linthost/rules_react_refresh.go +583 -0
- package/linthost/rules_regexp.go +410 -0
- package/linthost/rules_security.go +830 -0
- package/linthost/rules_self.go +2 -2
- package/linthost/rules_solid.go +1073 -0
- package/linthost/rules_sort_imports.go +69 -0
- package/linthost/rules_sort_keys.go +134 -0
- package/linthost/rules_storybook.go +1176 -0
- package/linthost/rules_strings.go +4 -4
- package/linthost/rules_suggestions.go +38 -38
- package/linthost/rules_tanstack_query.go +844 -0
- package/linthost/rules_testing_library.go +1204 -0
- package/linthost/rules_throw.go +1 -1
- package/linthost/rules_ts.go +19 -19
- package/linthost/rules_ts_async.go +399 -0
- package/linthost/rules_ts_class_literal_property_style.go +115 -0
- package/linthost/rules_ts_consistent_type_exports.go +256 -0
- package/linthost/rules_ts_explicit_function_return_type.go +67 -0
- package/linthost/rules_ts_extra.go +159 -36
- package/linthost/rules_ts_no_base_to_string.go +218 -0
- package/linthost/rules_ts_no_confusing_void.go +72 -0
- package/linthost/rules_ts_no_deprecated.go +195 -0
- package/linthost/rules_ts_no_for_in_array.go +84 -0
- package/linthost/rules_ts_no_magic_numbers.go +124 -0
- package/linthost/rules_ts_no_meaningless_void_operator.go +84 -0
- package/linthost/rules_ts_no_misused_spread.go +104 -0
- package/linthost/rules_ts_no_redundant_type_constituents.go +113 -0
- package/linthost/rules_ts_no_restricted_types.go +62 -0
- package/linthost/rules_ts_no_unnecessary_boolean_literal_compare.go +129 -0
- package/linthost/rules_ts_no_unnecessary_condition.go +250 -0
- package/linthost/rules_ts_no_unnecessary_qualifier.go +118 -0
- package/linthost/rules_ts_no_unnecessary_template_expression.go +178 -0
- package/linthost/rules_ts_no_unnecessary_type_arguments.go +234 -0
- package/linthost/rules_ts_no_unnecessary_type_assertion.go +157 -0
- package/linthost/rules_ts_no_unsafe_argument.go +82 -0
- package/linthost/rules_ts_no_unsafe_assignment.go +102 -0
- package/linthost/rules_ts_no_unsafe_call.go +82 -0
- package/linthost/rules_ts_no_unsafe_enum_comparison.go +235 -0
- package/linthost/rules_ts_no_unsafe_member_access.go +58 -0
- package/linthost/rules_ts_no_unsafe_return.go +126 -0
- package/linthost/rules_ts_no_unsafe_unary_minus.go +81 -0
- package/linthost/rules_ts_no_useless_constructor.go +52 -0
- package/linthost/rules_ts_non_nullable_type_assertion_style.go +108 -0
- package/linthost/rules_ts_parameter_properties.go +38 -0
- package/linthost/rules_ts_prefer_find.go +178 -0
- package/linthost/rules_ts_prefer_includes.go +255 -0
- package/linthost/rules_ts_prefer_nullish_coalescing.go +104 -0
- package/linthost/rules_ts_prefer_optional_chain.go +228 -0
- package/linthost/rules_ts_prefer_promise_reject_errors.go +176 -0
- package/linthost/rules_ts_prefer_readonly.go +73 -0
- package/linthost/rules_ts_prefer_reduce_type_parameter.go +116 -0
- package/linthost/rules_ts_prefer_regexp_exec.go +122 -0
- package/linthost/rules_ts_prefer_return_this_type.go +135 -0
- package/linthost/rules_ts_prefer_string_starts_ends_with.go +360 -0
- package/linthost/rules_ts_promise_function_async.go +77 -0
- package/linthost/rules_ts_related_getter_setter_pairs.go +113 -0
- package/linthost/rules_ts_require_array_sort_compare.go +96 -0
- package/linthost/rules_ts_restrict_plus_operands.go +127 -0
- package/linthost/rules_ts_restrict_template_expressions.go +95 -0
- package/linthost/rules_ts_simple.go +387 -0
- package/linthost/rules_ts_sort_type_constituents.go +144 -0
- package/linthost/rules_ts_strict_boolean_expressions.go +157 -0
- package/linthost/rules_ts_switch_exhaustiveness_check.go +147 -0
- package/linthost/rules_ts_unbound_method.go +126 -0
- package/linthost/rules_tsdoc.go +136 -0
- package/linthost/rules_unicorn_better_regex.go +27 -0
- package/linthost/rules_unicorn_catch_error_name.go +46 -0
- package/linthost/rules_unicorn_consistent_assert.go +47 -0
- package/linthost/rules_unicorn_consistent_date_clone.go +54 -0
- package/linthost/rules_unicorn_consistent_destructuring.go +25 -0
- package/linthost/rules_unicorn_consistent_empty_array_spread.go +62 -0
- package/linthost/rules_unicorn_consistent_existence_index_check.go +80 -0
- package/linthost/rules_unicorn_consistent_function_scoping.go +25 -0
- package/linthost/rules_unicorn_consistent_template_literal_escape.go +25 -0
- package/linthost/rules_unicorn_custom_error_definition.go +138 -0
- package/linthost/rules_unicorn_empty_brace_spaces.go +73 -0
- package/linthost/rules_unicorn_error_message.go +64 -0
- package/linthost/rules_unicorn_escape_case.go +51 -0
- package/linthost/rules_unicorn_expiring_todo_comments.go +78 -0
- package/linthost/rules_unicorn_explicit_length_check.go +88 -0
- package/linthost/rules_unicorn_filename_case.go +29 -0
- package/linthost/rules_unicorn_import_style.go +28 -0
- package/linthost/rules_unicorn_isolated_functions.go +29 -0
- package/linthost/rules_unicorn_new_for_builtins.go +87 -0
- package/linthost/rules_unicorn_no_abusive_eslint_disable.go +63 -0
- package/linthost/rules_unicorn_no_accessor_recursion.go +115 -0
- package/linthost/rules_unicorn_no_anonymous_default_export.go +74 -0
- package/linthost/rules_unicorn_no_array_callback_reference.go +65 -0
- package/linthost/rules_unicorn_no_array_for_each.go +40 -0
- package/linthost/rules_unicorn_no_array_method_this_argument.go +61 -0
- package/linthost/rules_unicorn_no_array_reduce.go +41 -0
- package/linthost/rules_unicorn_no_array_reverse.go +44 -0
- package/linthost/rules_unicorn_no_array_sort.go +43 -0
- package/linthost/rules_unicorn_no_await_expression_member.go +40 -0
- package/linthost/rules_unicorn_no_await_in_promise_methods.go +69 -0
- package/linthost/rules_unicorn_no_console_spaces.go +61 -0
- package/linthost/rules_unicorn_no_document_cookie.go +41 -0
- package/linthost/rules_unicorn_no_empty_file.go +44 -0
- package/linthost/rules_unicorn_no_for_loop.go +102 -0
- package/linthost/rules_unicorn_no_hex_escape.go +42 -0
- package/linthost/rules_unicorn_no_immediate_mutation.go +90 -0
- package/linthost/rules_unicorn_no_instanceof_builtins.go +66 -0
- package/linthost/rules_unicorn_no_invalid_fetch_options.go +79 -0
- package/linthost/rules_unicorn_no_invalid_remove_event_listener.go +51 -0
- package/linthost/rules_unicorn_no_keyword_prefix.go +101 -0
- package/linthost/rules_unicorn_no_lonely_if.go +44 -0
- package/linthost/rules_unicorn_no_magic_array_flat_depth.go +51 -0
- package/linthost/rules_unicorn_no_named_default.go +54 -0
- package/linthost/rules_unicorn_no_negated_condition.go +85 -0
- package/linthost/rules_unicorn_no_negation_in_equality_check.go +50 -0
- package/linthost/rules_unicorn_no_nested_ternary.go +43 -0
- package/linthost/rules_unicorn_no_new_array.go +30 -0
- package/linthost/rules_unicorn_no_new_buffer.go +31 -0
- package/linthost/rules_unicorn_no_null.go +24 -0
- package/linthost/rules_unicorn_no_object_as_default_parameter.go +48 -0
- package/linthost/rules_unicorn_no_process_exit.go +43 -0
- package/linthost/rules_unicorn_no_single_promise_in_promise_methods.go +59 -0
- package/linthost/rules_unicorn_no_static_only_class.go +56 -0
- package/linthost/rules_unicorn_no_thenable.go +74 -0
- package/linthost/rules_unicorn_no_this_assignment.go +35 -0
- package/linthost/rules_unicorn_no_typeof_undefined.go +58 -0
- package/linthost/rules_unicorn_no_unnecessary_array_flat_depth.go +49 -0
- package/linthost/rules_unicorn_no_unnecessary_array_splice_count.go +70 -0
- package/linthost/rules_unicorn_no_unnecessary_await.go +51 -0
- package/linthost/rules_unicorn_no_unnecessary_polyfills.go +32 -0
- package/linthost/rules_unicorn_no_unnecessary_slice_end.go +48 -0
- package/linthost/rules_unicorn_no_unreadable_array_destructuring.go +115 -0
- package/linthost/rules_unicorn_no_unreadable_iife.go +50 -0
- package/linthost/rules_unicorn_no_unused_properties.go +30 -0
- package/linthost/rules_unicorn_no_useless_collection_argument.go +63 -0
- package/linthost/rules_unicorn_no_useless_error_capture_stack_trace.go +46 -0
- package/linthost/rules_unicorn_no_useless_fallback_in_spread.go +81 -0
- package/linthost/rules_unicorn_no_useless_iterator_to_array.go +72 -0
- package/linthost/rules_unicorn_no_useless_length_check.go +144 -0
- package/linthost/rules_unicorn_no_useless_promise_resolve_reject.go +81 -0
- package/linthost/rules_unicorn_no_useless_spread.go +67 -0
- package/linthost/rules_unicorn_no_useless_switch_case.go +55 -0
- package/linthost/rules_unicorn_no_useless_undefined.go +55 -0
- package/linthost/rules_unicorn_no_zero_fractions.go +52 -0
- package/linthost/rules_unicorn_number_literal_case.go +69 -0
- package/linthost/rules_unicorn_numeric_separators_style.go +75 -0
- package/linthost/rules_unicorn_prefer_add_event_listener.go +66 -0
- package/linthost/rules_unicorn_prefer_array_find.go +51 -0
- package/linthost/rules_unicorn_prefer_array_flat.go +52 -0
- package/linthost/rules_unicorn_prefer_array_flat_map.go +63 -0
- package/linthost/rules_unicorn_prefer_array_index_of.go +147 -0
- package/linthost/rules_unicorn_prefer_array_some.go +67 -0
- package/linthost/rules_unicorn_prefer_at.go +77 -0
- package/linthost/rules_unicorn_prefer_bigint_literals.go +77 -0
- package/linthost/rules_unicorn_prefer_blob_reading_methods.go +44 -0
- package/linthost/rules_unicorn_prefer_class_fields.go +93 -0
- package/linthost/rules_unicorn_prefer_classlist_toggle.go +120 -0
- package/linthost/rules_unicorn_prefer_code_point.go +49 -0
- package/linthost/rules_unicorn_prefer_date_now.go +78 -0
- package/linthost/rules_unicorn_prefer_default_parameters.go +144 -0
- package/linthost/rules_unicorn_prefer_dom_node_append.go +40 -0
- package/linthost/rules_unicorn_prefer_dom_node_dataset.go +55 -0
- package/linthost/rules_unicorn_prefer_dom_node_remove.go +41 -0
- package/linthost/rules_unicorn_prefer_dom_node_text_content.go +37 -0
- package/linthost/rules_unicorn_prefer_event_target.go +36 -0
- package/linthost/rules_unicorn_prefer_export_from.go +129 -0
- package/linthost/rules_unicorn_prefer_global_this.go +127 -0
- package/linthost/rules_unicorn_prefer_import_meta_properties.go +66 -0
- package/linthost/rules_unicorn_prefer_includes.go +149 -0
- package/linthost/rules_unicorn_prefer_json_parse_buffer.go +65 -0
- package/linthost/rules_unicorn_prefer_keyboard_event_key.go +38 -0
- package/linthost/rules_unicorn_prefer_logical_operator_over_ternary.go +48 -0
- package/linthost/rules_unicorn_prefer_math_min_max.go +60 -0
- package/linthost/rules_unicorn_prefer_math_trunc.go +62 -0
- package/linthost/rules_unicorn_prefer_modern_dom_apis.go +47 -0
- package/linthost/rules_unicorn_prefer_modern_math_apis.go +70 -0
- package/linthost/rules_unicorn_prefer_module.go +50 -0
- package/linthost/rules_unicorn_prefer_native_coercion_functions.go +114 -0
- package/linthost/rules_unicorn_prefer_negative_index.go +74 -0
- package/linthost/rules_unicorn_prefer_node_protocol.go +122 -0
- package/linthost/rules_unicorn_prefer_number_properties.go +88 -0
- package/linthost/rules_unicorn_prefer_object_from_entries.go +55 -0
- package/linthost/rules_unicorn_prefer_optional_catch_binding.go +62 -0
- package/linthost/rules_unicorn_prefer_prototype_methods.go +54 -0
- package/linthost/rules_unicorn_prefer_query_selector.go +56 -0
- package/linthost/rules_unicorn_prefer_reflect_apply.go +36 -0
- package/linthost/rules_unicorn_prefer_regexp_test_rule.go +80 -0
- package/linthost/rules_unicorn_prefer_response_static_json.go +53 -0
- package/linthost/rules_unicorn_prefer_set_has.go +42 -0
- package/linthost/rules_unicorn_prefer_set_size.go +48 -0
- package/linthost/rules_unicorn_prefer_simple_condition_first.go +34 -0
- package/linthost/rules_unicorn_prefer_single_call.go +96 -0
- package/linthost/rules_unicorn_prefer_spread.go +51 -0
- package/linthost/rules_unicorn_prefer_string_raw.go +43 -0
- package/linthost/rules_unicorn_prefer_string_replace_all.go +95 -0
- package/linthost/rules_unicorn_prefer_string_slice.go +43 -0
- package/linthost/rules_unicorn_prefer_string_starts_ends_with.go +148 -0
- package/linthost/rules_unicorn_prefer_string_trim_start_end.go +48 -0
- package/linthost/rules_unicorn_prefer_structured_clone.go +71 -0
- package/linthost/rules_unicorn_prefer_switch.go +103 -0
- package/linthost/rules_unicorn_prefer_ternary.go +71 -0
- package/linthost/rules_unicorn_prefer_top_level_await.go +72 -0
- package/linthost/rules_unicorn_prefer_type_error.go +127 -0
- package/linthost/rules_unicorn_prevent_abbreviations.go +127 -0
- package/linthost/rules_unicorn_relative_url_style.go +49 -0
- package/linthost/rules_unicorn_require_array_join_separator.go +45 -0
- package/linthost/rules_unicorn_require_module_attributes.go +54 -0
- package/linthost/rules_unicorn_require_module_specifiers.go +55 -0
- package/linthost/rules_unicorn_require_number_to_fixed_digits_argument.go +43 -0
- package/linthost/rules_unicorn_require_post_message_target_origin.go +44 -0
- package/linthost/rules_unicorn_string_content.go +27 -0
- package/linthost/rules_unicorn_switch_case_braces.go +42 -0
- package/linthost/rules_unicorn_switch_case_break_position.go +31 -0
- package/linthost/rules_unicorn_template_indent.go +28 -0
- package/linthost/rules_unicorn_text_encoding_identifier_case.go +72 -0
- package/linthost/rules_unicorn_throw_new_error.go +61 -0
- package/linthost/rules_var.go +10 -4
- package/linthost/rules_vitest.go +568 -0
- package/package.json +3 -3
- package/plugin/main.go +49 -3
- package/rule/astutil/astutil.go +10 -3
- package/rule/rule.go +12 -10
- package/src/defaultFormat.ts +17 -10
- package/src/index.ts +65 -43
- package/src/structures/ITtscLintConfig.ts +14 -8
- package/src/structures/TtscLintRuleSetting.ts +55 -0
- package/src/structures/format/ITtscLintFormat.ts +141 -0
- package/src/structures/format/ITtscLintFormatJsDoc.ts +18 -0
- package/src/structures/format/ITtscLintFormatSortImports.ts +62 -0
- package/src/structures/format/index.ts +3 -0
- package/src/structures/index.ts +3 -4
- package/src/structures/rules/ITtscLintBoundariesRuleOptions.ts +117 -0
- package/src/structures/rules/ITtscLintBoundariesRules.ts +91 -0
- package/src/structures/rules/ITtscLintContributorRules.ts +20 -0
- package/src/structures/rules/ITtscLintCoreRules.ts +1378 -0
- package/src/structures/rules/ITtscLintCypressRuleOptions.ts +18 -0
- package/src/structures/rules/ITtscLintCypressRules.ts +141 -0
- package/src/structures/rules/ITtscLintFunctionalRuleOptions.ts +200 -0
- package/src/structures/rules/ITtscLintFunctionalRules.ts +197 -0
- package/src/structures/rules/ITtscLintJestRules.ts +209 -0
- package/src/structures/rules/ITtscLintJsdocRules.ts +146 -0
- package/src/structures/rules/ITtscLintJsxA11yRules.ts +331 -0
- package/src/structures/rules/ITtscLintNextjsRules.ts +201 -0
- package/src/structures/rules/ITtscLintPlaywrightRules.ts +343 -0
- package/src/structures/rules/ITtscLintPromiseRules.ts +196 -0
- package/src/structures/rules/ITtscLintReactPerfRuleOptions.ts +19 -0
- package/src/structures/rules/ITtscLintReactPerfRules.ts +53 -0
- package/src/structures/rules/ITtscLintReactRuleOptions.ts +41 -0
- package/src/structures/rules/ITtscLintReactRules.ts +308 -0
- package/src/structures/rules/ITtscLintRegexpRules.ts +204 -0
- package/src/structures/rules/ITtscLintRuleOptionsMap.ts +88 -0
- package/src/structures/rules/ITtscLintRules.ts +77 -0
- package/src/structures/rules/ITtscLintSecurityRules.ts +155 -0
- package/src/structures/rules/ITtscLintSolidRules.ts +199 -0
- package/src/structures/rules/ITtscLintStorybookRuleOptions.ts +22 -0
- package/src/structures/rules/ITtscLintStorybookRules.ts +184 -0
- package/src/structures/rules/ITtscLintTanstackQueryRules.ts +96 -0
- package/src/structures/rules/ITtscLintTestingLibraryRuleOptions.ts +23 -0
- package/src/structures/rules/ITtscLintTestingLibraryRules.ts +325 -0
- package/src/structures/rules/ITtscLintTypeScriptRules.ts +1172 -0
- package/src/structures/rules/ITtscLintUnicornRules.ts +1143 -0
- package/src/structures/rules/ITtscLintVitestRules.ts +146 -0
- package/src/structures/rules/index.ts +31 -0
- package/lib/structures/ITtscLintFormatConfig.d.ts +0 -153
- package/lib/structures/ITtscLintFormatConfig.js.map +0 -1
- package/lib/structures/TtscLintRule.d.ts +0 -17
- package/lib/structures/TtscLintRule.js.map +0 -1
- package/lib/structures/TtscLintRuleMap.d.ts +0 -46
- package/lib/structures/TtscLintRuleMap.js.map +0 -1
- package/lib/structures/TtscLintRuleOptions.d.ts +0 -137
- package/lib/structures/TtscLintRuleOptions.js.map +0 -1
- package/src/structures/ITtscLintFormatConfig.ts +0 -168
- package/src/structures/TtscLintRule.ts +0 -160
- package/src/structures/TtscLintRuleMap.ts +0 -55
- package/src/structures/TtscLintRuleOptions.ts +0 -151
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
2
|
+
/**
|
|
3
|
+
* Jest test source rules from `eslint-plugin-jest`.
|
|
4
|
+
*
|
|
5
|
+
* Apply to TypeScript test files that use the Jest runner (`describe`,
|
|
6
|
+
* `test`/`it`, `expect`, lifecycle hooks). They guard test-quality patterns the
|
|
7
|
+
* type system cannot detect — unended assertions, focused tests left behind,
|
|
8
|
+
* duplicate hook calls.
|
|
9
|
+
*
|
|
10
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest
|
|
11
|
+
*/
|
|
12
|
+
export interface ITtscLintJestRules {
|
|
13
|
+
/**
|
|
14
|
+
* Require every Jest test body to contain at least one `expect(...)` call. A
|
|
15
|
+
* test with no expectations passes silently.
|
|
16
|
+
*
|
|
17
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/expect-expect.md
|
|
18
|
+
*/
|
|
19
|
+
"jest/expect-expect"?: TtscLintRuleSetting;
|
|
20
|
+
/**
|
|
21
|
+
* Limit the number of `expect(...)` calls inside a single Jest test body.
|
|
22
|
+
*
|
|
23
|
+
* A test packed with assertions usually verifies several behaviors at once,
|
|
24
|
+
* making failures ambiguous — splitting per scenario keeps each case
|
|
25
|
+
* diagnostic.
|
|
26
|
+
*
|
|
27
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/max-expects.md
|
|
28
|
+
*/
|
|
29
|
+
"jest/max-expects"?: TtscLintRuleSetting;
|
|
30
|
+
/**
|
|
31
|
+
* Reject `expect(...)` calls under `if`/`try`/`catch` or other conditional
|
|
32
|
+
* branches in Jest tests.
|
|
33
|
+
*
|
|
34
|
+
* A branch that never executes turns the assertion into a silent no-op, so
|
|
35
|
+
* the test passes without verifying anything.
|
|
36
|
+
*
|
|
37
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-conditional-expect.md
|
|
38
|
+
*/
|
|
39
|
+
"jest/no-conditional-expect"?: TtscLintRuleSetting;
|
|
40
|
+
/**
|
|
41
|
+
* Reject conditional logic (`if`/`switch`/ternary) inside Jest test bodies.
|
|
42
|
+
*
|
|
43
|
+
* Each test should describe a single deterministic scenario; branching hides
|
|
44
|
+
* which path the runner took when reading a passing log.
|
|
45
|
+
*
|
|
46
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-conditional-in-test.md
|
|
47
|
+
*/
|
|
48
|
+
"jest/no-conditional-in-test"?: TtscLintRuleSetting;
|
|
49
|
+
/**
|
|
50
|
+
* Reject `test.skip`, `xit`, `xdescribe`, and other disabled Jest tests.
|
|
51
|
+
*
|
|
52
|
+
* Skipped tests appear green in CI but quietly drop coverage for the feature
|
|
53
|
+
* they were meant to pin, so they rot unseen.
|
|
54
|
+
*
|
|
55
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-disabled-tests.md
|
|
56
|
+
*/
|
|
57
|
+
"jest/no-disabled-tests"?: TtscLintRuleSetting;
|
|
58
|
+
/**
|
|
59
|
+
* Reject `done` callback parameters in Jest tests and hooks.
|
|
60
|
+
*
|
|
61
|
+
* The callback style predates async/await and makes error propagation easy to
|
|
62
|
+
* miss — forgetting `done()` hangs the test until timeout. Use
|
|
63
|
+
* `async`/`await` or return a Promise instead.
|
|
64
|
+
*
|
|
65
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-done-callback.md
|
|
66
|
+
*/
|
|
67
|
+
"jest/no-done-callback"?: TtscLintRuleSetting;
|
|
68
|
+
/**
|
|
69
|
+
* Reject duplicate setup/teardown hook calls (`beforeEach`/`beforeAll`/etc.)
|
|
70
|
+
* within the same `describe` block.
|
|
71
|
+
*
|
|
72
|
+
* Jest runs both copies in declaration order, which is almost always a
|
|
73
|
+
* copy-paste mistake.
|
|
74
|
+
*
|
|
75
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-duplicate-hooks.md
|
|
76
|
+
*/
|
|
77
|
+
"jest/no-duplicate-hooks"?: TtscLintRuleSetting;
|
|
78
|
+
/**
|
|
79
|
+
* Reject `export` declarations in Jest test files.
|
|
80
|
+
*
|
|
81
|
+
* Tests are leaf consumers and should not expose helpers; the runner silently
|
|
82
|
+
* skips test files with any export, so a stray `export` can make a whole file
|
|
83
|
+
* disappear from the suite.
|
|
84
|
+
*
|
|
85
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-export.md
|
|
86
|
+
*/
|
|
87
|
+
"jest/no-export"?: TtscLintRuleSetting;
|
|
88
|
+
/**
|
|
89
|
+
* Reject `test.only`, `fit`, `fdescribe`, and other focused Jest tests.
|
|
90
|
+
*
|
|
91
|
+
* A focused test silently skips every other test in the file, so a stray
|
|
92
|
+
* `.only` left from debugging hides the rest of the suite in CI.
|
|
93
|
+
*
|
|
94
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-focused-tests.md
|
|
95
|
+
*/
|
|
96
|
+
"jest/no-focused-tests"?: TtscLintRuleSetting;
|
|
97
|
+
/**
|
|
98
|
+
* Reject Jest setup/teardown hooks altogether.
|
|
99
|
+
*
|
|
100
|
+
* Promotes the style where each test arranges and tears down its own state
|
|
101
|
+
* inline, so a reader can understand it in isolation without scrolling to a
|
|
102
|
+
* distant `beforeEach`.
|
|
103
|
+
*
|
|
104
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-hooks.md
|
|
105
|
+
*/
|
|
106
|
+
"jest/no-hooks"?: TtscLintRuleSetting;
|
|
107
|
+
/**
|
|
108
|
+
* Reject duplicate test or `describe` titles at the same suite level — the
|
|
109
|
+
* runner cannot distinguish two tests with the same name in error output.
|
|
110
|
+
*
|
|
111
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-identical-title.md
|
|
112
|
+
*/
|
|
113
|
+
"jest/no-identical-title"?: TtscLintRuleSetting;
|
|
114
|
+
/**
|
|
115
|
+
* Reject `expect(...)` calls outside the body of a Jest test or lifecycle
|
|
116
|
+
* hook.
|
|
117
|
+
*
|
|
118
|
+
* Top-level assertions execute at module load before any test starts, so
|
|
119
|
+
* failures never attach to a named case in the runner's report.
|
|
120
|
+
*
|
|
121
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-standalone-expect.md
|
|
122
|
+
*/
|
|
123
|
+
"jest/no-standalone-expect"?: TtscLintRuleSetting;
|
|
124
|
+
/**
|
|
125
|
+
* Reject `xit`, `fit`, `xdescribe`, `fdescribe`, and the rest of the
|
|
126
|
+
* single-letter Jest test prefix aliases.
|
|
127
|
+
*
|
|
128
|
+
* They duplicate the `.only`/`.skip` variants but read as typos at a glance,
|
|
129
|
+
* making accidental focus or disable harder to spot in review.
|
|
130
|
+
*
|
|
131
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-test-prefixes.md
|
|
132
|
+
*/
|
|
133
|
+
"jest/no-test-prefixes"?: TtscLintRuleSetting;
|
|
134
|
+
/**
|
|
135
|
+
* Reject non-Promise `return` statements from Jest test bodies.
|
|
136
|
+
*
|
|
137
|
+
* Jest only awaits returned thenables, so a plain `return` value is dropped
|
|
138
|
+
* and following code becomes dead — usually a symptom of a missing `await` or
|
|
139
|
+
* an accidental early exit.
|
|
140
|
+
*
|
|
141
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-test-return-statement.md
|
|
142
|
+
*/
|
|
143
|
+
"jest/no-test-return-statement"?: TtscLintRuleSetting;
|
|
144
|
+
/**
|
|
145
|
+
* Prefer `expect(value).toHaveLength(n)` over asserting on `value.length`
|
|
146
|
+
* directly with `toBe`.
|
|
147
|
+
*
|
|
148
|
+
* The dedicated matcher reports the actual length on failure instead of a
|
|
149
|
+
* bare number mismatch with no context.
|
|
150
|
+
*
|
|
151
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/prefer-to-have-length.md
|
|
152
|
+
*/
|
|
153
|
+
"jest/prefer-to-have-length"?: TtscLintRuleSetting;
|
|
154
|
+
/**
|
|
155
|
+
* Require a message argument on `expect(...).toThrow(...)` so a regression
|
|
156
|
+
* with a different error type still surfaces clearly.
|
|
157
|
+
*
|
|
158
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/require-to-throw-message.md
|
|
159
|
+
*/
|
|
160
|
+
"jest/require-to-throw-message"?: TtscLintRuleSetting;
|
|
161
|
+
/**
|
|
162
|
+
* Validate the shape of Jest `describe` callbacks.
|
|
163
|
+
*
|
|
164
|
+
* The callback must be synchronous and take no arguments — Jest ignores
|
|
165
|
+
* returned Promises and `done`-style parameters at the describe level,
|
|
166
|
+
* silently swallowing setup errors.
|
|
167
|
+
*
|
|
168
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-describe-callback.md
|
|
169
|
+
*/
|
|
170
|
+
"jest/valid-describe-callback"?: TtscLintRuleSetting;
|
|
171
|
+
/**
|
|
172
|
+
* Validate `expect(...)` arity and matcher chaining: exactly one argument,
|
|
173
|
+
* terminated by a matcher call, and async matchers properly awaited.
|
|
174
|
+
*
|
|
175
|
+
* Malformed expects either throw at runtime or pass without asserting
|
|
176
|
+
* anything.
|
|
177
|
+
*
|
|
178
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-expect.md
|
|
179
|
+
*/
|
|
180
|
+
"jest/valid-expect"?: TtscLintRuleSetting;
|
|
181
|
+
/**
|
|
182
|
+
* Require non-empty static Jest test and `describe` titles.
|
|
183
|
+
*
|
|
184
|
+
* Empty or dynamically-built titles produce unreadable failure output and
|
|
185
|
+
* break filter-by-name flags like `--testNamePattern`.
|
|
186
|
+
*
|
|
187
|
+
* @reference https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/valid-title.md
|
|
188
|
+
*/
|
|
189
|
+
"jest/valid-title"?: TtscLintRuleSetting;
|
|
190
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITtscLintJestRules.js","sourceRoot":"","sources":["../../../src/structures/rules/ITtscLintJestRules.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
2
|
+
/**
|
|
3
|
+
* Documentation-comment validation rules.
|
|
4
|
+
*
|
|
5
|
+
* Bundles `eslint-plugin-jsdoc` content checks (tag names, parameter coverage,
|
|
6
|
+
* descriptions) with the lone `eslint-plugin-tsdoc` syntax check
|
|
7
|
+
* (`jsdoc/tsdoc-syntax`) — both target `/** ... *\/` comments and are too small
|
|
8
|
+
* in upstream-tsdoc's case to justify a dedicated family.
|
|
9
|
+
*
|
|
10
|
+
* Formatting concerns (alignment, indentation) are configured through the
|
|
11
|
+
* top-level `format` block, not here.
|
|
12
|
+
*
|
|
13
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc
|
|
14
|
+
*/
|
|
15
|
+
export interface ITtscLintJsdocRules {
|
|
16
|
+
/**
|
|
17
|
+
* Reject unknown JSDoc block-tag names. Catches typos like `@returs` or
|
|
18
|
+
* `@parm`.
|
|
19
|
+
*
|
|
20
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md
|
|
21
|
+
*/
|
|
22
|
+
"jsdoc/check-tag-names"?: TtscLintRuleSetting;
|
|
23
|
+
/**
|
|
24
|
+
* Validate `@access` values against the closed set `public`, `protected`,
|
|
25
|
+
* `private`, `package`. (Upstream extends to
|
|
26
|
+
* `@version`/`@since`/`@license`/`@kind`/`@import` value checks; those shapes
|
|
27
|
+
* are not yet implemented in the native engine.)
|
|
28
|
+
*
|
|
29
|
+
* Catches typos and stale enum members that slip past doc tooling.
|
|
30
|
+
*
|
|
31
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md
|
|
32
|
+
*/
|
|
33
|
+
"jsdoc/check-values"?: TtscLintRuleSetting;
|
|
34
|
+
/**
|
|
35
|
+
* Reject content on marker-only JSDoc tags (`@async`, `@public`, `@override`,
|
|
36
|
+
* ...) — these tags take no value.
|
|
37
|
+
*
|
|
38
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md
|
|
39
|
+
*/
|
|
40
|
+
"jsdoc/empty-tags"?: TtscLintRuleSetting;
|
|
41
|
+
/**
|
|
42
|
+
* Reject JSDoc type braces in TypeScript sources, since the surrounding
|
|
43
|
+
* TypeScript already carries the type.
|
|
44
|
+
*
|
|
45
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md
|
|
46
|
+
*/
|
|
47
|
+
"jsdoc/no-types"?: TtscLintRuleSetting;
|
|
48
|
+
/**
|
|
49
|
+
* Reject `any` and `*` inside JSDoc type braces — these escape the documented
|
|
50
|
+
* type system the same way TypeScript `any` does.
|
|
51
|
+
*
|
|
52
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md
|
|
53
|
+
*/
|
|
54
|
+
"jsdoc/reject-any-type"?: TtscLintRuleSetting;
|
|
55
|
+
/**
|
|
56
|
+
* Reject the unsafe `Function` type inside JSDoc type braces.
|
|
57
|
+
*
|
|
58
|
+
* Mirrors the `typescript/no-unsafe-function-type` rule from
|
|
59
|
+
* {@link ITtscLintTypeScriptRules} for JSDoc comments.
|
|
60
|
+
*
|
|
61
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md
|
|
62
|
+
*/
|
|
63
|
+
"jsdoc/reject-function-type"?: TtscLintRuleSetting;
|
|
64
|
+
/**
|
|
65
|
+
* Require JSDoc blocks to include a leading block-level description — every
|
|
66
|
+
* documented identifier should explain itself.
|
|
67
|
+
*
|
|
68
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md
|
|
69
|
+
*/
|
|
70
|
+
"jsdoc/require-description"?: TtscLintRuleSetting;
|
|
71
|
+
/**
|
|
72
|
+
* Require every `@param` tag that names a parameter to also carry a
|
|
73
|
+
* description after the name.
|
|
74
|
+
*
|
|
75
|
+
* A name-only `@param` adds nothing beyond the signature, so the rule pushes
|
|
76
|
+
* authors to either describe the parameter or drop the tag.
|
|
77
|
+
*
|
|
78
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md
|
|
79
|
+
*/
|
|
80
|
+
"jsdoc/require-param-description"?: TtscLintRuleSetting;
|
|
81
|
+
/**
|
|
82
|
+
* Require every `@param` tag to include the parameter name it documents.
|
|
83
|
+
*
|
|
84
|
+
* A bare `@param` cannot be linked to a signature position, so doc tooling
|
|
85
|
+
* silently drops it.
|
|
86
|
+
*
|
|
87
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md
|
|
88
|
+
*/
|
|
89
|
+
"jsdoc/require-param-name"?: TtscLintRuleSetting;
|
|
90
|
+
/**
|
|
91
|
+
* Require every `@property` tag that names a property to also carry a
|
|
92
|
+
* description.
|
|
93
|
+
*
|
|
94
|
+
* Mirrors `require-param-description` for typedef and object-shape comments,
|
|
95
|
+
* where a name-only entry adds nothing the surrounding type doesn't convey.
|
|
96
|
+
*
|
|
97
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md
|
|
98
|
+
*/
|
|
99
|
+
"jsdoc/require-property-description"?: TtscLintRuleSetting;
|
|
100
|
+
/**
|
|
101
|
+
* Require every `@property` tag to include the property name it documents.
|
|
102
|
+
*
|
|
103
|
+
* Without the name the tag cannot be linked to a member of the surrounding
|
|
104
|
+
* typedef, and doc generators discard it.
|
|
105
|
+
*
|
|
106
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md
|
|
107
|
+
*/
|
|
108
|
+
"jsdoc/require-property-name"?: TtscLintRuleSetting;
|
|
109
|
+
/**
|
|
110
|
+
* Require every `@returns` tag to carry a description of the returned value.
|
|
111
|
+
*
|
|
112
|
+
* The TypeScript signature already states the return type, so the tag earns
|
|
113
|
+
* its keep only when it explains what the value means, not its shape.
|
|
114
|
+
*
|
|
115
|
+
* @reference https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md
|
|
116
|
+
*/
|
|
117
|
+
"jsdoc/require-returns-description"?: TtscLintRuleSetting;
|
|
118
|
+
/**
|
|
119
|
+
* Detect structural TSDoc problems in documentation comments: malformed
|
|
120
|
+
* top-level block tags (`@` followed by non-letter) and malformed or unclosed
|
|
121
|
+
* inline tags (`{@link ...}`). The broader TSDoc grammar — closed-set tag
|
|
122
|
+
* names, escape sequences, `{Type}`-annotation rejection, fenced-code rules —
|
|
123
|
+
* is not yet implemented.
|
|
124
|
+
*
|
|
125
|
+
* TSDoc is Microsoft's curated dialect that powers API Extractor and the rest
|
|
126
|
+
* of the Microsoft TypeScript documentation pipeline. Upstream
|
|
127
|
+
* `eslint-plugin-tsdoc` ships exactly one rule; it lives here rather than in
|
|
128
|
+
* a one-rule `tsdoc/*` family.
|
|
129
|
+
*
|
|
130
|
+
* @reference https://github.com/microsoft/tsdoc/blob/main/eslint-plugin/README.md
|
|
131
|
+
*/
|
|
132
|
+
"jsdoc/tsdoc-syntax"?: TtscLintRuleSetting;
|
|
133
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITtscLintJsdocRules.js","sourceRoot":"","sources":["../../../src/structures/rules/ITtscLintJsdocRules.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import type { TtscLintRuleSetting } from "../TtscLintRuleSetting";
|
|
2
|
+
/**
|
|
3
|
+
* JSX accessibility rules from `eslint-plugin-jsx-a11y`, applied to TSX (and
|
|
4
|
+
* JSX-in-TS) sources.
|
|
5
|
+
*
|
|
6
|
+
* Checks the static structure of JSX elements against WAI-ARIA authoring
|
|
7
|
+
* guidance — interactive controls should be focusable, labels should reference
|
|
8
|
+
* a control, ARIA properties should match the element role, and so on. Runtime
|
|
9
|
+
* accessibility issues require live audits; this family catches the
|
|
10
|
+
* statically-decidable subset.
|
|
11
|
+
*
|
|
12
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y
|
|
13
|
+
*/
|
|
14
|
+
export interface ITtscLintJsxA11yRules {
|
|
15
|
+
/**
|
|
16
|
+
* Require image-like JSX elements (`<img>`, `<input type="image">`,
|
|
17
|
+
* `<object>`, `<area>`) to expose alt text or an ARIA label.
|
|
18
|
+
*
|
|
19
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/alt-text.md
|
|
20
|
+
*/
|
|
21
|
+
"jsx-a11y/alt-text"?: TtscLintRuleSetting;
|
|
22
|
+
/**
|
|
23
|
+
* Reject `<a>` elements whose visible text is one of a small set of phrases
|
|
24
|
+
* that carry no information out of context. Screen-reader users navigate by
|
|
25
|
+
* listing links — "click here" / "more" / "read more" turn that list into
|
|
26
|
+
* noise.
|
|
27
|
+
*
|
|
28
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/anchor-ambiguous-text.md
|
|
29
|
+
*/
|
|
30
|
+
"jsx-a11y/anchor-ambiguous-text"?: TtscLintRuleSetting;
|
|
31
|
+
/**
|
|
32
|
+
* Reject empty JSX anchors with no accessible content (text, `aria-label`, or
|
|
33
|
+
* labelled child).
|
|
34
|
+
*
|
|
35
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/anchor-has-content.md
|
|
36
|
+
*/
|
|
37
|
+
"jsx-a11y/anchor-has-content"?: TtscLintRuleSetting;
|
|
38
|
+
/**
|
|
39
|
+
* Reject anchors with missing, `#`-only, empty, or `javascript:` `href`
|
|
40
|
+
* values, all of which break navigation semantics.
|
|
41
|
+
*
|
|
42
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/anchor-is-valid.md
|
|
43
|
+
*/
|
|
44
|
+
"jsx-a11y/anchor-is-valid"?: TtscLintRuleSetting;
|
|
45
|
+
/**
|
|
46
|
+
* Require `tabIndex` on any element carrying `aria-activedescendant` unless
|
|
47
|
+
* the tag is already focusable by default (`<input>`, etc.) — the
|
|
48
|
+
* composite-widget host must keep document focus for the descendant id to do
|
|
49
|
+
* anything.
|
|
50
|
+
*
|
|
51
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-activedescendant-has-tabindex.md
|
|
52
|
+
*/
|
|
53
|
+
"jsx-a11y/aria-activedescendant-has-tabindex"?: TtscLintRuleSetting;
|
|
54
|
+
/**
|
|
55
|
+
* Reject `aria-*` JSX attribute names that are not part of the WAI-ARIA
|
|
56
|
+
* States and Properties spec — catches typos such as `aria-labeledby`
|
|
57
|
+
* (missing second `l`) that silently disable assistive-tech support.
|
|
58
|
+
*
|
|
59
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-props.md
|
|
60
|
+
*/
|
|
61
|
+
"jsx-a11y/aria-props"?: TtscLintRuleSetting;
|
|
62
|
+
/**
|
|
63
|
+
* Validate literal values supplied to ARIA properties against the type the
|
|
64
|
+
* spec declares for them — e.g. `aria-checked` must be one of `true`,
|
|
65
|
+
* `false`, `"mixed"`, and `aria-hidden="yes"` is rejected because the type is
|
|
66
|
+
* boolean.
|
|
67
|
+
*
|
|
68
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-proptypes.md
|
|
69
|
+
*/
|
|
70
|
+
"jsx-a11y/aria-proptypes"?: TtscLintRuleSetting;
|
|
71
|
+
/**
|
|
72
|
+
* Require `role` values to be a concrete, non-abstract WAI-ARIA role
|
|
73
|
+
* (`"button"`, `"checkbox"`, ...). Rejects misspellings and abstract roles
|
|
74
|
+
* like `"range"`; computed values are skipped because the concrete role
|
|
75
|
+
* cannot be checked statically.
|
|
76
|
+
*
|
|
77
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-role.md
|
|
78
|
+
*/
|
|
79
|
+
"jsx-a11y/aria-role"?: TtscLintRuleSetting;
|
|
80
|
+
/**
|
|
81
|
+
* Reject ARIA roles and attributes on elements that do not support them (e.g.
|
|
82
|
+
* `aria-checked` on a `<meta>` tag).
|
|
83
|
+
*
|
|
84
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/aria-unsupported-elements.md
|
|
85
|
+
*/
|
|
86
|
+
"jsx-a11y/aria-unsupported-elements"?: TtscLintRuleSetting;
|
|
87
|
+
/**
|
|
88
|
+
* Validate the literal `autocomplete` token against the HTML spec vocabulary
|
|
89
|
+
* and against the `type` of the surrounding input — e.g. `autocomplete="url"`
|
|
90
|
+
* on `<input type="email">` is rejected because the two sets do not overlap.
|
|
91
|
+
*
|
|
92
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/autocomplete-valid.md
|
|
93
|
+
*/
|
|
94
|
+
"jsx-a11y/autocomplete-valid"?: TtscLintRuleSetting;
|
|
95
|
+
/**
|
|
96
|
+
* Require keyboard handlers alongside `onClick` on non-interactive JSX
|
|
97
|
+
* elements so the element is also reachable by keyboard.
|
|
98
|
+
*
|
|
99
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/click-events-have-key-events.md
|
|
100
|
+
*/
|
|
101
|
+
"jsx-a11y/click-events-have-key-events"?: TtscLintRuleSetting;
|
|
102
|
+
/**
|
|
103
|
+
* Require interactive controls to have an accessible label (visible text,
|
|
104
|
+
* `aria-label`, or `aria-labelledby`).
|
|
105
|
+
*
|
|
106
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md
|
|
107
|
+
*/
|
|
108
|
+
"jsx-a11y/control-has-associated-label"?: TtscLintRuleSetting;
|
|
109
|
+
/**
|
|
110
|
+
* Reject empty JSX headings (`<h1>{}</h1>`) — assistive technology cannot
|
|
111
|
+
* announce content that does not exist.
|
|
112
|
+
*
|
|
113
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/heading-has-content.md
|
|
114
|
+
*/
|
|
115
|
+
"jsx-a11y/heading-has-content"?: TtscLintRuleSetting;
|
|
116
|
+
/**
|
|
117
|
+
* Require `<html>` JSX elements to declare a non-empty `lang` attribute so
|
|
118
|
+
* screen readers can pick the correct pronunciation. Largely superseded by
|
|
119
|
+
* `jsx-a11y/lang`, which also validates the tag value.
|
|
120
|
+
*
|
|
121
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/html-has-lang.md
|
|
122
|
+
*/
|
|
123
|
+
"jsx-a11y/html-has-lang"?: TtscLintRuleSetting;
|
|
124
|
+
/**
|
|
125
|
+
* Require every `<iframe>` JSX element to declare a non-empty, unique `title`
|
|
126
|
+
* so assistive tech can announce the embedded content. Empty strings,
|
|
127
|
+
* booleans, numbers, and `{...spread}` without a literal title are all
|
|
128
|
+
* flagged.
|
|
129
|
+
*
|
|
130
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/iframe-has-title.md
|
|
131
|
+
*/
|
|
132
|
+
"jsx-a11y/iframe-has-title"?: TtscLintRuleSetting;
|
|
133
|
+
/**
|
|
134
|
+
* Reject redundant words such as _image_, _photo_, or _picture_ inside the
|
|
135
|
+
* `alt` attribute of an `<img>` — the role already conveys "this is an
|
|
136
|
+
* image".
|
|
137
|
+
*
|
|
138
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/img-redundant-alt.md
|
|
139
|
+
*/
|
|
140
|
+
"jsx-a11y/img-redundant-alt"?: TtscLintRuleSetting;
|
|
141
|
+
/**
|
|
142
|
+
* Require elements with interactive ARIA roles (`role="button"`,
|
|
143
|
+
* `role="link"`, ...) to be focusable.
|
|
144
|
+
*
|
|
145
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/interactive-supports-focus.md
|
|
146
|
+
*/
|
|
147
|
+
"jsx-a11y/interactive-supports-focus"?: TtscLintRuleSetting;
|
|
148
|
+
/**
|
|
149
|
+
* Require `<label>` elements to either wrap a form control or reference one
|
|
150
|
+
* via `htmlFor`.
|
|
151
|
+
*
|
|
152
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md
|
|
153
|
+
*/
|
|
154
|
+
"jsx-a11y/label-has-associated-control"?: TtscLintRuleSetting;
|
|
155
|
+
/**
|
|
156
|
+
* Deprecated predecessor of `label-has-associated-control`. Checks the same
|
|
157
|
+
* nesting / `htmlFor` association requirement and supports configuring which
|
|
158
|
+
* custom components count as labels. Off in `recommended`; kept only for
|
|
159
|
+
* legacy configs.
|
|
160
|
+
*
|
|
161
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-for.md
|
|
162
|
+
*/
|
|
163
|
+
"jsx-a11y/label-has-for"?: TtscLintRuleSetting;
|
|
164
|
+
/**
|
|
165
|
+
* Require the `<html lang>` value to be a valid IETF BCP-47 tag (`"en"`,
|
|
166
|
+
* `"en-US"`, ...). Superset of `html-has-lang`, since it also catches
|
|
167
|
+
* present-but-invalid tags like `lang="foo"`.
|
|
168
|
+
*
|
|
169
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/lang.md
|
|
170
|
+
*/
|
|
171
|
+
"jsx-a11y/lang"?: TtscLintRuleSetting;
|
|
172
|
+
/**
|
|
173
|
+
* Require `<audio>` and `<video>` elements to provide a `<track
|
|
174
|
+
* kind="captions">` child.
|
|
175
|
+
*
|
|
176
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/media-has-caption.md
|
|
177
|
+
*/
|
|
178
|
+
"jsx-a11y/media-has-caption"?: TtscLintRuleSetting;
|
|
179
|
+
/**
|
|
180
|
+
* Require `onMouseOver` / `onMouseOut` handlers to have `onFocus` / `onBlur`
|
|
181
|
+
* parity so keyboard users get the same interaction.
|
|
182
|
+
*
|
|
183
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/mouse-events-have-key-events.md
|
|
184
|
+
*/
|
|
185
|
+
"jsx-a11y/mouse-events-have-key-events"?: TtscLintRuleSetting;
|
|
186
|
+
/**
|
|
187
|
+
* Reject the `accessKey` JSX attribute — it conflicts with
|
|
188
|
+
* assistive-technology keyboard shortcuts.
|
|
189
|
+
*
|
|
190
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-access-key.md
|
|
191
|
+
*/
|
|
192
|
+
"jsx-a11y/no-access-key"?: TtscLintRuleSetting;
|
|
193
|
+
/**
|
|
194
|
+
* Reject `aria-hidden` on focusable JSX elements — focus would land on an
|
|
195
|
+
* element hidden from assistive tech.
|
|
196
|
+
*
|
|
197
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-aria-hidden-on-focusable.md
|
|
198
|
+
*/
|
|
199
|
+
"jsx-a11y/no-aria-hidden-on-focusable"?: TtscLintRuleSetting;
|
|
200
|
+
/**
|
|
201
|
+
* Reject `autoFocus` / `autofocus` JSX attributes — they steal focus on page
|
|
202
|
+
* load and disorient keyboard users.
|
|
203
|
+
*
|
|
204
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-autofocus.md
|
|
205
|
+
*/
|
|
206
|
+
"jsx-a11y/no-autofocus"?: TtscLintRuleSetting;
|
|
207
|
+
/**
|
|
208
|
+
* Reject `<blink>` and `<marquee>` — moving content cannot be paused and
|
|
209
|
+
* harms users with cognitive or visual impairments (WCAG 2.2.2). The list is
|
|
210
|
+
* closed: extra elements cannot be added.
|
|
211
|
+
*
|
|
212
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-distracting-elements.md
|
|
213
|
+
*/
|
|
214
|
+
"jsx-a11y/no-distracting-elements"?: TtscLintRuleSetting;
|
|
215
|
+
/**
|
|
216
|
+
* Reject non-interactive ARIA roles applied to natively interactive elements
|
|
217
|
+
* (e.g. `<button role="presentation">`).
|
|
218
|
+
*
|
|
219
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-interactive-element-to-noninteractive-role.md
|
|
220
|
+
*/
|
|
221
|
+
"jsx-a11y/no-interactive-element-to-noninteractive-role"?: TtscLintRuleSetting;
|
|
222
|
+
/**
|
|
223
|
+
* Reject interaction event handlers (`onClick`, `onKeyDown`) placed on known
|
|
224
|
+
* non-interactive elements without a role override.
|
|
225
|
+
*
|
|
226
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-noninteractive-element-interactions.md
|
|
227
|
+
*/
|
|
228
|
+
"jsx-a11y/no-noninteractive-element-interactions"?: TtscLintRuleSetting;
|
|
229
|
+
/**
|
|
230
|
+
* Reject interactive ARIA roles applied to non-interactive elements (e.g.
|
|
231
|
+
* `<li role="button">`); use the matching interactive tag.
|
|
232
|
+
*
|
|
233
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-noninteractive-element-to-interactive-role.md
|
|
234
|
+
*/
|
|
235
|
+
"jsx-a11y/no-noninteractive-element-to-interactive-role"?: TtscLintRuleSetting;
|
|
236
|
+
/**
|
|
237
|
+
* Reject `tabIndex` on non-interactive JSX elements that have no interactive
|
|
238
|
+
* role.
|
|
239
|
+
*
|
|
240
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-noninteractive-tabindex.md
|
|
241
|
+
*/
|
|
242
|
+
"jsx-a11y/no-noninteractive-tabindex"?: TtscLintRuleSetting;
|
|
243
|
+
/**
|
|
244
|
+
* Reject explicit `role` attributes that duplicate the native semantics of
|
|
245
|
+
* the element (e.g. `<button role="button">`).
|
|
246
|
+
*
|
|
247
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-redundant-roles.md
|
|
248
|
+
*/
|
|
249
|
+
"jsx-a11y/no-redundant-roles"?: TtscLintRuleSetting;
|
|
250
|
+
/**
|
|
251
|
+
* Require static elements with interaction handlers to declare an interactive
|
|
252
|
+
* `role`.
|
|
253
|
+
*
|
|
254
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/no-static-element-interactions.md
|
|
255
|
+
*/
|
|
256
|
+
"jsx-a11y/no-static-element-interactions"?: TtscLintRuleSetting;
|
|
257
|
+
/**
|
|
258
|
+
* Prefer native JSX tags over `div` / `span` plus an equivalent `role` (e.g.
|
|
259
|
+
* `<button>` over `<div role="button">`).
|
|
260
|
+
*
|
|
261
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/prefer-tag-over-role.md
|
|
262
|
+
*/
|
|
263
|
+
"jsx-a11y/prefer-tag-over-role"?: TtscLintRuleSetting;
|
|
264
|
+
/**
|
|
265
|
+
* Require ARIA properties that the chosen role mandates (e.g. `aria-checked`
|
|
266
|
+
* on `role="checkbox"`).
|
|
267
|
+
*
|
|
268
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/role-has-required-aria-props.md
|
|
269
|
+
*/
|
|
270
|
+
"jsx-a11y/role-has-required-aria-props"?: TtscLintRuleSetting;
|
|
271
|
+
/**
|
|
272
|
+
* Reject ARIA properties that the role does not support (e.g. `aria-checked`
|
|
273
|
+
* on `role="link"`).
|
|
274
|
+
*
|
|
275
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/role-supports-aria-props.md
|
|
276
|
+
*/
|
|
277
|
+
"jsx-a11y/role-supports-aria-props"?: TtscLintRuleSetting;
|
|
278
|
+
/**
|
|
279
|
+
* Restrict the `scope` attribute to `<th>` cells. On any other tag (`<div
|
|
280
|
+
* scope="col">`, `<td scope="row">`) the attribute is ignored by browsers and
|
|
281
|
+
* confuses table-aware assistive tech.
|
|
282
|
+
*
|
|
283
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/scope.md
|
|
284
|
+
*/
|
|
285
|
+
"jsx-a11y/scope"?: TtscLintRuleSetting;
|
|
286
|
+
/**
|
|
287
|
+
* Reject `tabIndex` values greater than zero. Positive indices jump the
|
|
288
|
+
* keyboard focus order out of document order and almost always desynchronize
|
|
289
|
+
* from later DOM changes; `0` and `-1` remain allowed.
|
|
290
|
+
*
|
|
291
|
+
* @reference https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/tabindex-no-positive.md
|
|
292
|
+
*/
|
|
293
|
+
"jsx-a11y/tabindex-no-positive"?: TtscLintRuleSetting;
|
|
294
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITtscLintJsxA11yRules.js","sourceRoot":"","sources":["../../../src/structures/rules/ITtscLintJsxA11yRules.ts"],"names":[],"mappings":""}
|