From bd3b6dd22ff1702a4c46e49a6f9345c7085f6b33 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 6 Aug 2025 17:50:16 +0100 Subject: [PATCH 01/20] feat: promote rules --- .claude/settings.json | 20 + .../migrate/eslint_any_rule_to_biome.rs | 228 +- .../src/analyzer/linter/rules.rs | 2868 ++++++++--------- crates/biome_css_analyze/src/lint.rs | 3 +- .../biome_css_analyze/src/lint/complexity.rs | 7 + .../no_important_styles.rs | 0 crates/biome_css_analyze/src/lint/nursery.rs | 4 +- .../nursery/no_useless_escape_in_string.rs | 4 +- .../biome_css_analyze/src/lint/suspicious.rs | 3 +- .../no_unknown_at_rule.rs | 0 .../noImportantStyles/invalid.css | 0 .../noImportantStyles/invalid.css.snap | 7 +- .../noUnknownAtRule/invalid.css | 0 .../noUnknownAtRule/invalid.css.snap | 16 +- .../noUnknownAtRule/valid.css | 0 .../noUnknownAtRule/valid.css.snap | 0 .../src/categories.rs | 40 +- crates/biome_graphql_analyze/src/lint.rs | 3 +- .../src/lint/correctness.rs | 7 + .../use_named_graphql_operations.rs | 118 + .../biome_graphql_analyze/src/lint/nursery.rs | 3 +- .../src/lint/nursery/use_named_operation.rs | 4 +- .../biome_graphql_analyze/src/lint/style.rs | 3 +- .../use_naming_convention.rs | 0 .../invalid.graphql | 0 .../invalid.graphql.snap | 6 +- .../useNamedGraphqlOperations}/valid.graphql | 0 .../valid.graphql.snap | 0 .../useNamingConvention/invalid.graphql | 0 .../useNamingConvention/invalid.graphql.snap | 3 +- .../useNamingConvention/valid.graphql | 0 .../useNamingConvention/valid.graphql.snap | 0 crates/biome_js_analyze/src/lint/a11y.rs | 3 +- .../no_noninteractive_element_interactions.rs | 0 .../biome_js_analyze/src/lint/complexity.rs | 5 +- .../no_excessive_lines_per_function.rs | 0 .../no_implicit_coercions.rs} | 10 +- .../{nursery => complexity}/use_index_of.rs | 0 .../biome_js_analyze/src/lint/correctness.rs | 12 +- .../no_global_dirname_filename.rs | 0 .../no_nested_component_definitions.rs | 0 .../no_process_global.rs | 0 .../no_react_prop_assignments.rs} | 10 +- .../no_restricted_elements.rs | 0 .../no_solid_destructured_props.rs} | 10 +- .../use_json_import_attributes.rs} | 10 +- .../use_parse_int_radix.rs | 0 .../use_single_js_doc_asterisk.rs | 0 .../use_unique_element_ids.rs | 0 crates/biome_js_analyze/src/lint/nursery.rs | 41 +- .../biome_js_analyze/src/lint/performance.rs | 6 +- .../no_await_in_loops.rs} | 10 +- .../no_unwanted_polyfillio.rs | 0 .../use_google_font_preconnect.rs | 0 .../use_solid_for_component.rs} | 10 +- crates/biome_js_analyze/src/lint/style.rs | 12 +- .../{nursery => style}/no_magic_numbers.rs | 0 .../no_useless_undefined.rs | 0 .../use_consistent_object_definitions.rs} | 12 +- .../{nursery => style}/use_exports_last.rs | 0 .../use_grouped_accessor_pairs.rs} | 10 +- .../use_numeric_separators.rs | 0 .../{nursery => style}/use_object_spread.rs | 0 .../use_readonly_class_properties.rs | 0 .../use_symbol_description.rs | 0 .../use_unified_type_signatures.rs} | 10 +- .../biome_js_analyze/src/lint/suspicious.rs | 10 +- .../no_bitwise_operators.rs | 0 .../no_constant_binary_expressions.rs} | 10 +- .../{nursery => suspicious}/no_ts_ignore.rs | 0 .../no_unassigned_variables.rs | 0 .../no_useless_regex_backrefs.rs} | 10 +- .../no_useless_string_escapes.rs} | 10 +- ...istent_iterable_callback_return_values.rs} | 10 +- .../use_static_response_methods.rs} | 10 +- .../invalid.jsx | 0 .../invalid.jsx.snap | 175 +- .../valid.jsx | 0 .../valid.jsx.snap | 0 .../noExcessiveLinesPerFunction/invalid.js | 0 .../invalid.js.snap | 114 + .../invalid.options.json | 0 .../invalidSkipBlankLines.js | 0 .../invalidSkipBlankLines.js.snap | 57 + .../invalidSkipBlankLines.options.json | 0 .../noExcessiveLinesPerFunction/valid.js | 0 .../noExcessiveLinesPerFunction/valid.js.snap | 0 .../valid.options.json | 0 .../validSkipBlankLines.js | 0 .../validSkipBlankLines.js.snap | 0 .../validSkipBlankLines.options.json | 0 .../validSkipIiefs.options.json | 0 .../validSkipIifes.js | 0 .../validSkipIifes.js.snap | 0 .../noImplicitCoercions}/invalid.js | 0 .../noImplicitCoercions}/invalid.js.snap | 67 +- .../noImplicitCoercions}/valid.js | 0 .../noImplicitCoercions}/valid.js.snap | 0 .../useIndexOf/invalid.js | 0 .../useIndexOf/invalid.js.snap | 21 +- .../useIndexOf/valid.js | 0 .../useIndexOf/valid.js.snap | 0 .../noGlobalDirnameFilename/invalid.js | 0 .../noGlobalDirnameFilename/invalid.js.snap | 17 +- .../noGlobalDirnameFilename/valid.cjs | 0 .../noGlobalDirnameFilename/valid.cjs.snap | 0 .../noGlobalDirnameFilename/valid.js | 0 .../noGlobalDirnameFilename/valid.js.snap | 0 .../noNestedComponentDefinitions/invalid.js | 0 .../invalid.js.snap | 45 +- .../invalidDefaultExpression.js | 0 .../invalidDefaultExpression.js.snap | 3 +- .../noNestedComponentDefinitions/valid.js | 0 .../valid.js.snap | 0 .../noProcessGlobal/declare_process.js | 0 .../noProcessGlobal/declare_process.js.snap | 0 .../noProcessGlobal/invalid.js | 0 .../noProcessGlobal/invalid.js.snap | 11 +- .../noProcessGlobal/invalid_with_import.js | 0 .../invalid_with_import.js.snap | 3 +- .../noProcessGlobal/valid.js | 0 .../noProcessGlobal/valid.js.snap | 0 .../noReactPropAssignments}/invalid.jsx | 0 .../noReactPropAssignments}/invalid.jsx.snap | 15 +- .../noReactPropAssignments}/valid.jsx | 0 .../noReactPropAssignments}/valid.jsx.snap | 0 .../noRestrictedElements/invalid.jsx | 0 .../noRestrictedElements/invalid.jsx.snap | 94 + .../noRestrictedElements/invalid.options.json | 0 .../noRestrictedElements/valid.jsx | 0 .../noRestrictedElements/valid.jsx.snap | 0 .../noRestrictedElements/valid.options.json | 0 .../noSolidDestructuredProps}/invalid.tsx | 0 .../invalid.tsx.snap | 75 +- .../issue_5449_valid.tsx | 0 .../issue_5449_valid.tsx.snap | 0 .../noSolidDestructuredProps}/valid.tsx | 0 .../noSolidDestructuredProps}/valid.tsx.snap | 0 .../useJsonImportAttributes}/invalid.js | 0 .../useJsonImportAttributes}/invalid.js.snap | 10 +- .../useJsonImportAttributes}/valid.js | 0 .../useJsonImportAttributes}/valid.js.snap | 0 .../useParseIntRadix/invalid.js | 0 .../useParseIntRadix/invalid.js.snap | 22 +- .../useParseIntRadix/valid.js | 0 .../useParseIntRadix/valid.js.snap | 0 .../useSingleJsDocAsterisk/invalid-crlf.js | 0 .../invalid-crlf.js.snap | 14 +- .../useSingleJsDocAsterisk/invalid.js | 0 .../useSingleJsDocAsterisk/invalid.js.snap | 14 +- .../useSingleJsDocAsterisk/valid.js | 0 .../useSingleJsDocAsterisk/valid.js.snap | 0 .../useUniqueElementIds/allowlist.jsx | 0 .../useUniqueElementIds/allowlist.jsx.snap | 213 ++ .../allowlist.options.json | 0 .../useUniqueElementIds/badAllowlist.jsx | 0 .../useUniqueElementIds/badAllowlist.jsx.snap | 69 + .../badAllowlist.options.json | 0 .../useUniqueElementIds/invalid.jsx | 0 .../useUniqueElementIds/invalid.jsx.snap | 10 +- .../useUniqueElementIds/valid.jsx | 0 .../useUniqueElementIds/valid.jsx.snap | 0 .../invalid.js.snap | 290 -- .../invalidSkipBlankLines.js.snap | 37 - .../noRestrictedElements/invalid.jsx.snap | 53 - .../invalidShorthand.js.snap | 370 --- .../invalid_checkAllPropertiesTrue.ts.snap | 446 --- .../useUniqueElementIds/allowlist.jsx.snap | 91 - .../useUniqueElementIds/badAllowlist.jsx.snap | 46 - .../noAwaitInLoops}/invalid.js | 0 .../noAwaitInLoops}/invalid.js.snap | 28 +- .../noAwaitInLoops}/valid.js | 0 .../noAwaitInLoops}/valid.js.snap | 0 .../invalid-next-script.jsx | 0 .../invalid-next-script.jsx.snap | 2 +- .../noUnwantedPolyfillio/invalid.jsx | 0 .../noUnwantedPolyfillio/invalid.jsx.snap | 8 +- .../noUnwantedPolyfillio/valid.jsx | 0 .../noUnwantedPolyfillio/valid.jsx.snap | 0 .../useGoogleFontPreconnect/invalid.jsx | 0 .../useGoogleFontPreconnect/invalid.jsx.snap | 9 +- .../useGoogleFontPreconnect/valid.jsx | 0 .../useGoogleFontPreconnect/valid.jsx.snap | 0 .../useSolidForComponent}/invalid.tsx | 0 .../useSolidForComponent}/invalid.tsx.snap | 15 +- .../useSolidForComponent}/valid.tsx | 0 .../useSolidForComponent}/valid.tsx.snap | 0 .../noMagicNumbers/invalid.tsx | 0 .../noMagicNumbers/invalid.tsx.snap | 33 +- .../noMagicNumbers/valid.tsx | 0 .../noMagicNumbers/valid.tsx.snap | 0 .../noUselessUndefined/invalid.json | 0 .../noUselessUndefined/invalid.json.snap | 37 +- .../noUselessUndefined/valid.json | 0 .../noUselessUndefined/valid.json.snap | 0 .../invalidExplicit.js | 0 .../invalidExplicit.js.snap | 67 +- .../invalidExplicit.options.json | 0 .../invalidShorthand.js | 0 .../invalidShorthand.js.snap | 74 + .../invalidShorthand.options.json | 0 .../validExplicit.js | 0 .../validExplicit.js.snap | 0 .../validExplicit.options.json | 0 .../validShorthand.js | 0 .../validShorthand.js.snap | 0 .../validShorthand.options.json | 0 .../useExportsLast/invalid.js | 0 .../useExportsLast/invalid.js.snap | 3 +- .../invalid_multiline_export.js | 0 .../invalid_multiline_export.js.snap | 3 +- .../invalid_multiple_separate_exports.js | 0 .../invalid_multiple_separate_exports.js.snap | 3 +- .../useExportsLast/invalid_named_export.js | 0 .../invalid_named_export.js.snap | 3 +- .../useExportsLast/invalid_re-export.js | 0 .../useExportsLast/invalid_re-export.js.snap | 3 +- .../useExportsLast/valid.js | 0 .../useExportsLast/valid.js.snap | 0 .../useExportsLast/valid_empty_file.js | 0 .../useExportsLast/valid_empty_file.js.snap | 0 .../valid_group_named_export.js | 0 .../valid_group_named_export.js.snap | 0 .../useExportsLast/valid_multiline_export.js | 0 .../valid_multiline_export.js.snap | 0 .../valid_multiple_separate_exports.js | 0 .../valid_multiple_separate_exports.js.snap | 0 .../useExportsLast/valid_named_export.js | 0 .../useExportsLast/valid_named_export.js.snap | 0 .../useExportsLast/valid_no_exports.js | 0 .../useExportsLast/valid_no_exports.js.snap | 0 .../useExportsLast/valid_only_exports.js | 0 .../useExportsLast/valid_only_exports.js.snap | 0 .../useExportsLast/valid_re-export.js | 0 .../useExportsLast/valid_re-export.js.snap | 0 .../useGroupedAccessorPairs}/invalid.ts | 0 .../useGroupedAccessorPairs}/invalid.ts.snap | 21 +- .../useGroupedAccessorPairs}/valid.ts | 0 .../useGroupedAccessorPairs}/valid.ts.snap | 0 .../useNumericSeparators/invalid.js | 0 .../useNumericSeparators/invalid.js.snap | 66 +- .../useNumericSeparators/valid.js | 0 .../useNumericSeparators/valid.js.snap | 0 .../useObjectSpread/invalid.js | 0 .../useObjectSpread/invalid.js.snap | 53 +- .../useObjectSpread/valid.js | 0 .../useObjectSpread/valid.js.snap | 0 .../useObjectSpread/validCustomObject.js | 0 .../useObjectSpread/validCustomObject.js.snap | 0 .../useObjectSpread/validImportedObject.js | 0 .../validImportedObject.js.snap | 0 .../useObjectSpread/validRequiredObject.js | 0 .../validRequiredObject.js.snap | 0 .../useReadonlyClassProperties/invalid.ts | 0 .../invalid.ts.snap | 79 +- ...nvalid_checkAllPropertiesTrue.options.json | 0 .../invalid_checkAllPropertiesTrue.ts | 0 .../invalid_checkAllPropertiesTrue.ts.snap | 276 ++ .../useReadonlyClassProperties/valid.ts | 0 .../useReadonlyClassProperties/valid.ts.snap | 0 .../valid_checkAllPropertiesTrue.options.json | 0 .../valid_checkAllPropertiesTrue.ts | 0 .../valid_checkAllPropertiesTrue.ts.snap | 0 .../useSymbolDescription/invalid.js | 0 .../useSymbolDescription/invalid.js.snap | 8 +- .../useSymbolDescription/valid.js | 0 .../useSymbolDescription/valid.js.snap | 0 .../useUnifiedTypeSignatures}/invalid.ts | 0 .../useUnifiedTypeSignatures}/invalid.ts.snap | 59 +- .../useUnifiedTypeSignatures}/valid.ts | 0 .../useUnifiedTypeSignatures}/valid.ts.snap | 0 .../noBitwiseOperators/invalid.js | 0 .../noBitwiseOperators/invalid.js.snap | 32 +- .../noBitwiseOperators/valid.js | 0 .../noBitwiseOperators/valid.js.snap | 0 .../noBitwiseOperators/validBitwiseAnd.js | 0 .../validBitwiseAnd.js.snap | 0 .../validBitwiseAnd.options.json | 0 .../noConstantBinaryExpressions}/invalid.js | 0 .../invalid.js.snap | 437 ++- .../noConstantBinaryExpressions}/invalid.jsx | 0 .../invalid.jsx.snap | 13 +- .../noConstantBinaryExpressions}/valid.js | 0 .../valid.js.snap | 0 .../noConstantBinaryExpressions}/valid.jsx | 0 .../valid.jsx.snap | 0 .../noTsIgnore/invalid.ts | 0 .../noTsIgnore/invalid.ts.snap | 9 +- .../noUnassignedVariables/invalid.js | 0 .../noUnassignedVariables/invalid.js.snap | 12 +- .../noUnassignedVariables/invalid.ts | 0 .../noUnassignedVariables/invalid.ts.snap | 2 +- .../noUnassignedVariables/valid.js | 0 .../noUnassignedVariables/valid.js.snap | 0 .../noUnassignedVariables/valid.ts | 0 .../noUnassignedVariables/valid.ts.snap | 0 .../noUselessRegexBackrefs}/invalid.js | 0 .../noUselessRegexBackrefs}/invalid.js.snap | 166 +- .../noUselessRegexBackrefs}/issue5989.js | 0 .../noUselessRegexBackrefs}/issue5989.js.snap | 2 +- .../noUselessRegexBackrefs}/valid.js | 0 .../noUselessRegexBackrefs}/valid.js.snap | 0 .../noUselessStringEscapes}/invalid.js | 0 .../noUselessStringEscapes}/invalid.js.snap | 21 +- .../noUselessStringEscapes}/valid.js | 0 .../noUselessStringEscapes}/valid.js.snap | 0 .../noUselessStringEscapes}/valid.jsx | 0 .../noUselessStringEscapes}/valid.jsx.snap | 0 .../invalid.js | 0 .../invalid.js.snap | 133 +- .../valid.js | 0 .../valid.js.snap | 0 .../useStaticResponseMethods}/invalid.js | 0 .../useStaticResponseMethods}/invalid.js.snap | 16 +- .../useStaticResponseMethods}/valid.js | 0 .../useStaticResponseMethods}/valid.js.snap | 0 crates/biome_rule_options/Cargo.toml | 2 +- crates/biome_rule_options/src/lib.rs | 28 +- ..._await_in_loop.rs => no_await_in_loops.rs} | 2 +- ...n.rs => no_constant_binary_expressions.rs} | 2 +- ...ured_props.rs => no_implicit_coercions.rs} | 2 +- ...ercion.rs => no_react_prop_assignments.rs} | 2 +- .../src/no_solid_destructured_props.rs | 6 + .../src/no_useless_backref_in_regex.rs | 6 - .../src/no_useless_regex_backrefs.rs | 6 + .../src/no_useless_string_escapes.rs | 6 + .../src/use_adjacent_getter_setter.rs | 6 - ...sistent_iterable_callback_return_values.rs | 6 + ...s => use_consistent_object_definitions.rs} | 2 +- .../src/use_consistent_response.rs | 6 - .../src/use_for_component.rs | 6 - .../src/use_grouped_accessor_pairs.rs | 6 + .../src/use_iterable_callback_return.rs | 6 - .../src/use_json_import_attribute.rs | 6 - .../src/use_json_import_attributes.rs | 6 + .../src/use_named_graphql_operations.rs | 6 + ...p_assign.rs => use_solid_for_component.rs} | 2 +- .../src/use_static_response_methods.rs | 6 + .../src/use_unified_type_signature.rs | 6 - .../src/use_unified_type_signatures.rs | 6 + justfile | 9 +- promote_and_rename_rules.sh | 177 + 342 files changed, 3880 insertions(+), 4097 deletions(-) create mode 100644 .claude/settings.json create mode 100644 crates/biome_css_analyze/src/lint/complexity.rs rename crates/biome_css_analyze/src/lint/{nursery => complexity}/no_important_styles.rs (100%) rename crates/biome_css_analyze/src/lint/{nursery => suspicious}/no_unknown_at_rule.rs (100%) rename crates/biome_css_analyze/tests/specs/{nursery => complexity}/noImportantStyles/invalid.css (100%) rename crates/biome_css_analyze/tests/specs/{nursery => complexity}/noImportantStyles/invalid.css.snap (83%) rename crates/biome_css_analyze/tests/specs/{nursery => suspicious}/noUnknownAtRule/invalid.css (100%) rename crates/biome_css_analyze/tests/specs/{nursery => suspicious}/noUnknownAtRule/invalid.css.snap (88%) rename crates/biome_css_analyze/tests/specs/{nursery => suspicious}/noUnknownAtRule/valid.css (100%) rename crates/biome_css_analyze/tests/specs/{nursery => suspicious}/noUnknownAtRule/valid.css.snap (100%) create mode 100644 crates/biome_graphql_analyze/src/lint/correctness.rs create mode 100644 crates/biome_graphql_analyze/src/lint/correctness/use_named_graphql_operations.rs rename crates/biome_graphql_analyze/src/lint/{nursery => style}/use_naming_convention.rs (100%) rename crates/biome_graphql_analyze/tests/specs/{nursery/useNamedOperation => correctness/useNamedGraphqlOperations}/invalid.graphql (100%) rename crates/biome_graphql_analyze/tests/specs/{nursery/useNamedOperation => correctness/useNamedGraphqlOperations}/invalid.graphql.snap (72%) rename crates/biome_graphql_analyze/tests/specs/{nursery/useNamedOperation => correctness/useNamedGraphqlOperations}/valid.graphql (100%) rename crates/biome_graphql_analyze/tests/specs/{nursery/useNamedOperation => correctness/useNamedGraphqlOperations}/valid.graphql.snap (100%) rename crates/biome_graphql_analyze/tests/specs/{nursery => style}/useNamingConvention/invalid.graphql (100%) rename crates/biome_graphql_analyze/tests/specs/{nursery => style}/useNamingConvention/invalid.graphql.snap (72%) rename crates/biome_graphql_analyze/tests/specs/{nursery => style}/useNamingConvention/valid.graphql (100%) rename crates/biome_graphql_analyze/tests/specs/{nursery => style}/useNamingConvention/valid.graphql.snap (100%) rename crates/biome_js_analyze/src/lint/{nursery => a11y}/no_noninteractive_element_interactions.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => complexity}/no_excessive_lines_per_function.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/no_implicit_coercion.rs => complexity/no_implicit_coercions.rs} (99%) rename crates/biome_js_analyze/src/lint/{nursery => complexity}/use_index_of.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => correctness}/no_global_dirname_filename.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => correctness}/no_nested_component_definitions.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => correctness}/no_process_global.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/no_react_prop_assign.rs => correctness/no_react_prop_assignments.rs} (96%) rename crates/biome_js_analyze/src/lint/{nursery => correctness}/no_restricted_elements.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/no_destructured_props.rs => correctness/no_solid_destructured_props.rs} (97%) rename crates/biome_js_analyze/src/lint/{nursery/use_json_import_attribute.rs => correctness/use_json_import_attributes.rs} (97%) rename crates/biome_js_analyze/src/lint/{nursery => correctness}/use_parse_int_radix.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => correctness}/use_single_js_doc_asterisk.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => correctness}/use_unique_element_ids.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/no_await_in_loop.rs => performance/no_await_in_loops.rs} (96%) rename crates/biome_js_analyze/src/lint/{nursery => performance}/no_unwanted_polyfillio.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => performance}/use_google_font_preconnect.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/use_for_component.rs => performance/use_solid_for_component.rs} (93%) rename crates/biome_js_analyze/src/lint/{nursery => style}/no_magic_numbers.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => style}/no_useless_undefined.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/use_consistent_object_definition.rs => style/use_consistent_object_definitions.rs} (97%) rename crates/biome_js_analyze/src/lint/{nursery => style}/use_exports_last.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/use_adjacent_getter_setter.rs => style/use_grouped_accessor_pairs.rs} (98%) rename crates/biome_js_analyze/src/lint/{nursery => style}/use_numeric_separators.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => style}/use_object_spread.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => style}/use_readonly_class_properties.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => style}/use_symbol_description.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/use_unified_type_signature.rs => style/use_unified_type_signatures.rs} (99%) rename crates/biome_js_analyze/src/lint/{nursery => suspicious}/no_bitwise_operators.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/no_constant_binary_expression.rs => suspicious/no_constant_binary_expressions.rs} (98%) rename crates/biome_js_analyze/src/lint/{nursery => suspicious}/no_ts_ignore.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery => suspicious}/no_unassigned_variables.rs (100%) rename crates/biome_js_analyze/src/lint/{nursery/no_useless_backref_in_regex.rs => suspicious/no_useless_regex_backrefs.rs} (99%) rename crates/biome_js_analyze/src/lint/{nursery/no_useless_escape_in_string.rs => suspicious/no_useless_string_escapes.rs} (96%) rename crates/biome_js_analyze/src/lint/{nursery/use_iterable_callback_return.rs => suspicious/use_consistent_iterable_callback_return_values.rs} (97%) rename crates/biome_js_analyze/src/lint/{nursery/use_consistent_response.rs => suspicious/use_static_response_methods.rs} (97%) rename crates/biome_js_analyze/tests/specs/{nursery => a11y}/noNoninteractiveElementInteractions/invalid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => a11y}/noNoninteractiveElementInteractions/invalid.jsx.snap (74%) rename crates/biome_js_analyze/tests/specs/{nursery => a11y}/noNoninteractiveElementInteractions/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => a11y}/noNoninteractiveElementInteractions/valid.jsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/invalid.js (100%) create mode 100644 crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/invalid.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/invalidSkipBlankLines.js (100%) create mode 100644 crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/valid.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/validSkipBlankLines.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/validSkipBlankLines.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/validSkipBlankLines.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/validSkipIiefs.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/validSkipIifes.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/noExcessiveLinesPerFunction/validSkipIifes.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noImplicitCoercion => complexity/noImplicitCoercions}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noImplicitCoercion => complexity/noImplicitCoercions}/invalid.js.snap (75%) rename crates/biome_js_analyze/tests/specs/{nursery/noImplicitCoercion => complexity/noImplicitCoercions}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noImplicitCoercion => complexity/noImplicitCoercions}/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/useIndexOf/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/useIndexOf/invalid.js.snap (93%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/useIndexOf/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => complexity}/useIndexOf/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noGlobalDirnameFilename/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noGlobalDirnameFilename/invalid.js.snap (79%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noGlobalDirnameFilename/valid.cjs (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noGlobalDirnameFilename/valid.cjs.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noGlobalDirnameFilename/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noGlobalDirnameFilename/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noNestedComponentDefinitions/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noNestedComponentDefinitions/invalid.js.snap (85%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noNestedComponentDefinitions/invalidDefaultExpression.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noNestedComponentDefinitions/invalidDefaultExpression.js.snap (83%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noNestedComponentDefinitions/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noNestedComponentDefinitions/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/declare_process.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/declare_process.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/invalid.js.snap (79%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/invalid_with_import.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/invalid_with_import.js.snap (79%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noProcessGlobal/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noReactPropAssign => correctness/noReactPropAssignments}/invalid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noReactPropAssign => correctness/noReactPropAssignments}/invalid.jsx.snap (76%) rename crates/biome_js_analyze/tests/specs/{nursery/noReactPropAssign => correctness/noReactPropAssignments}/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noReactPropAssign => correctness/noReactPropAssignments}/valid.jsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noRestrictedElements/invalid.jsx (100%) create mode 100644 crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noRestrictedElements/invalid.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noRestrictedElements/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noRestrictedElements/valid.jsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/noRestrictedElements/valid.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noDestructuredProps => correctness/noSolidDestructuredProps}/invalid.tsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noDestructuredProps => correctness/noSolidDestructuredProps}/invalid.tsx.snap (86%) rename crates/biome_js_analyze/tests/specs/{nursery/noDestructuredProps => correctness/noSolidDestructuredProps}/issue_5449_valid.tsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noDestructuredProps => correctness/noSolidDestructuredProps}/issue_5449_valid.tsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noDestructuredProps => correctness/noSolidDestructuredProps}/valid.tsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noDestructuredProps => correctness/noSolidDestructuredProps}/valid.tsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useJsonImportAttribute => correctness/useJsonImportAttributes}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useJsonImportAttribute => correctness/useJsonImportAttributes}/invalid.js.snap (79%) rename crates/biome_js_analyze/tests/specs/{nursery/useJsonImportAttribute => correctness/useJsonImportAttributes}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useJsonImportAttribute => correctness/useJsonImportAttributes}/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useParseIntRadix/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useParseIntRadix/invalid.js.snap (79%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useParseIntRadix/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useParseIntRadix/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useSingleJsDocAsterisk/invalid-crlf.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useSingleJsDocAsterisk/invalid-crlf.js.snap (73%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useSingleJsDocAsterisk/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useSingleJsDocAsterisk/invalid.js.snap (72%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useSingleJsDocAsterisk/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useSingleJsDocAsterisk/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/allowlist.jsx (100%) create mode 100644 crates/biome_js_analyze/tests/specs/correctness/useUniqueElementIds/allowlist.jsx.snap rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/allowlist.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/badAllowlist.jsx (100%) create mode 100644 crates/biome_js_analyze/tests/specs/correctness/useUniqueElementIds/badAllowlist.jsx.snap rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/badAllowlist.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/invalid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/invalid.jsx.snap (84%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => correctness}/useUniqueElementIds/valid.jsx.snap (100%) delete mode 100644 crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalid.js.snap delete mode 100644 crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap delete mode 100644 crates/biome_js_analyze/tests/specs/nursery/noRestrictedElements/invalid.jsx.snap delete mode 100644 crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidShorthand.js.snap delete mode 100644 crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts.snap delete mode 100644 crates/biome_js_analyze/tests/specs/nursery/useUniqueElementIds/allowlist.jsx.snap delete mode 100644 crates/biome_js_analyze/tests/specs/nursery/useUniqueElementIds/badAllowlist.jsx.snap rename crates/biome_js_analyze/tests/specs/{nursery/noAwaitInLoop => performance/noAwaitInLoops}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noAwaitInLoop => performance/noAwaitInLoops}/invalid.js.snap (85%) rename crates/biome_js_analyze/tests/specs/{nursery/noAwaitInLoop => performance/noAwaitInLoops}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noAwaitInLoop => performance/noAwaitInLoops}/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/noUnwantedPolyfillio/invalid-next-script.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/noUnwantedPolyfillio/invalid-next-script.jsx.snap (84%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/noUnwantedPolyfillio/invalid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/noUnwantedPolyfillio/invalid.jsx.snap (89%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/noUnwantedPolyfillio/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/noUnwantedPolyfillio/valid.jsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/useGoogleFontPreconnect/invalid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/useGoogleFontPreconnect/invalid.jsx.snap (80%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/useGoogleFontPreconnect/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => performance}/useGoogleFontPreconnect/valid.jsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useForComponent => performance/useSolidForComponent}/invalid.tsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useForComponent => performance/useSolidForComponent}/invalid.tsx.snap (82%) rename crates/biome_js_analyze/tests/specs/{nursery/useForComponent => performance/useSolidForComponent}/valid.tsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useForComponent => performance/useSolidForComponent}/valid.tsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noMagicNumbers/invalid.tsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noMagicNumbers/invalid.tsx.snap (83%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noMagicNumbers/valid.tsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noMagicNumbers/valid.tsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noUselessUndefined/invalid.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noUselessUndefined/invalid.json.snap (74%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noUselessUndefined/valid.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/noUselessUndefined/valid.json.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/invalidExplicit.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/invalidExplicit.js.snap (79%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/invalidExplicit.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/invalidShorthand.js (100%) create mode 100644 crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.js.snap rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/invalidShorthand.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/validExplicit.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/validExplicit.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/validExplicit.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/validShorthand.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/validShorthand.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentObjectDefinition => style/useConsistentObjectDefinitions}/validShorthand.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid.js.snap (74%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_multiline_export.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_multiline_export.js.snap (74%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_multiple_separate_exports.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_multiple_separate_exports.js.snap (76%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_named_export.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_named_export.js.snap (78%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_re-export.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/invalid_re-export.js.snap (77%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_empty_file.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_empty_file.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_group_named_export.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_group_named_export.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_multiline_export.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_multiline_export.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_multiple_separate_exports.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_multiple_separate_exports.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_named_export.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_named_export.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_no_exports.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_no_exports.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_only_exports.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_only_exports.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_re-export.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useExportsLast/valid_re-export.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useAdjacentGetterSetter => style/useGroupedAccessorPairs}/invalid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useAdjacentGetterSetter => style/useGroupedAccessorPairs}/invalid.ts.snap (87%) rename crates/biome_js_analyze/tests/specs/{nursery/useAdjacentGetterSetter => style/useGroupedAccessorPairs}/valid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useAdjacentGetterSetter => style/useGroupedAccessorPairs}/valid.ts.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useNumericSeparators/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useNumericSeparators/invalid.js.snap (81%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useNumericSeparators/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useNumericSeparators/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/invalid.js.snap (89%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/validCustomObject.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/validCustomObject.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/validImportedObject.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/validImportedObject.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/validRequiredObject.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useObjectSpread/validRequiredObject.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/invalid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/invalid.ts.snap (82%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts (100%) create mode 100644 crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts.snap rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/valid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/valid.ts.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/valid_checkAllPropertiesTrue.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useSymbolDescription/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useSymbolDescription/invalid.js.snap (72%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useSymbolDescription/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => style}/useSymbolDescription/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useUnifiedTypeSignature => style/useUnifiedTypeSignatures}/invalid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useUnifiedTypeSignature => style/useUnifiedTypeSignatures}/invalid.ts.snap (87%) rename crates/biome_js_analyze/tests/specs/{nursery/useUnifiedTypeSignature => style/useUnifiedTypeSignatures}/valid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useUnifiedTypeSignature => style/useUnifiedTypeSignatures}/valid.ts.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noBitwiseOperators/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noBitwiseOperators/invalid.js.snap (85%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noBitwiseOperators/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noBitwiseOperators/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noBitwiseOperators/validBitwiseAnd.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noBitwiseOperators/validBitwiseAnd.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noBitwiseOperators/validBitwiseAnd.options.json (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/invalid.js.snap (71%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/invalid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/invalid.jsx.snap (68%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noConstantBinaryExpression => suspicious/noConstantBinaryExpressions}/valid.jsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noTsIgnore/invalid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noTsIgnore/invalid.ts.snap (92%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/invalid.js.snap (87%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/invalid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/invalid.ts.snap (88%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/valid.ts (100%) rename crates/biome_js_analyze/tests/specs/{nursery => suspicious}/noUnassignedVariables/valid.ts.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessBackrefInRegex => suspicious/noUselessRegexBackrefs}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessBackrefInRegex => suspicious/noUselessRegexBackrefs}/invalid.js.snap (85%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessBackrefInRegex => suspicious/noUselessRegexBackrefs}/issue5989.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessBackrefInRegex => suspicious/noUselessRegexBackrefs}/issue5989.js.snap (73%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessBackrefInRegex => suspicious/noUselessRegexBackrefs}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessBackrefInRegex => suspicious/noUselessRegexBackrefs}/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessEscapeInString => suspicious/noUselessStringEscapes}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessEscapeInString => suspicious/noUselessStringEscapes}/invalid.js.snap (78%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessEscapeInString => suspicious/noUselessStringEscapes}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessEscapeInString => suspicious/noUselessStringEscapes}/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessEscapeInString => suspicious/noUselessStringEscapes}/valid.jsx (100%) rename crates/biome_js_analyze/tests/specs/{nursery/noUselessEscapeInString => suspicious/noUselessStringEscapes}/valid.jsx.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useIterableCallbackReturn => suspicious/useConsistentIterableCallbackReturnValues}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useIterableCallbackReturn => suspicious/useConsistentIterableCallbackReturnValues}/invalid.js.snap (66%) rename crates/biome_js_analyze/tests/specs/{nursery/useIterableCallbackReturn => suspicious/useConsistentIterableCallbackReturnValues}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useIterableCallbackReturn => suspicious/useConsistentIterableCallbackReturnValues}/valid.js.snap (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentResponse => suspicious/useStaticResponseMethods}/invalid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentResponse => suspicious/useStaticResponseMethods}/invalid.js.snap (84%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentResponse => suspicious/useStaticResponseMethods}/valid.js (100%) rename crates/biome_js_analyze/tests/specs/{nursery/useConsistentResponse => suspicious/useStaticResponseMethods}/valid.js.snap (100%) rename crates/biome_rule_options/src/{no_await_in_loop.rs => no_await_in_loops.rs} (89%) rename crates/biome_rule_options/src/{no_constant_binary_expression.rs => no_constant_binary_expressions.rs} (85%) rename crates/biome_rule_options/src/{no_destructured_props.rs => no_implicit_coercions.rs} (87%) rename crates/biome_rule_options/src/{no_implicit_coercion.rs => no_react_prop_assignments.rs} (87%) create mode 100644 crates/biome_rule_options/src/no_solid_destructured_props.rs delete mode 100644 crates/biome_rule_options/src/no_useless_backref_in_regex.rs create mode 100644 crates/biome_rule_options/src/no_useless_regex_backrefs.rs create mode 100644 crates/biome_rule_options/src/no_useless_string_escapes.rs delete mode 100644 crates/biome_rule_options/src/use_adjacent_getter_setter.rs create mode 100644 crates/biome_rule_options/src/use_consistent_iterable_callback_return_values.rs rename crates/biome_rule_options/src/{use_consistent_object_definition.rs => use_consistent_object_definitions.rs} (93%) delete mode 100644 crates/biome_rule_options/src/use_consistent_response.rs delete mode 100644 crates/biome_rule_options/src/use_for_component.rs create mode 100644 crates/biome_rule_options/src/use_grouped_accessor_pairs.rs delete mode 100644 crates/biome_rule_options/src/use_iterable_callback_return.rs delete mode 100644 crates/biome_rule_options/src/use_json_import_attribute.rs create mode 100644 crates/biome_rule_options/src/use_json_import_attributes.rs create mode 100644 crates/biome_rule_options/src/use_named_graphql_operations.rs rename crates/biome_rule_options/src/{no_react_prop_assign.rs => use_solid_for_component.rs} (87%) create mode 100644 crates/biome_rule_options/src/use_static_response_methods.rs delete mode 100644 crates/biome_rule_options/src/use_unified_type_signature.rs create mode 100644 crates/biome_rule_options/src/use_unified_type_signatures.rs create mode 100755 promote_and_rename_rules.sh diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 000000000000..ba0461ebcb55 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,20 @@ +{ + "permissions": { + "allow": [ + "Bash(cargo insta:*)", + "Bash(grep:*)", + "Bash(find:*)", + "Bash(just:*)", + "Bash(cargo test:*)", + "Bash(cargo check:*)", + "Bash(cargo run:*)", + "WebFetch(domain:github.com)", + "WebFetch(domain:typescript-eslint.io)", + "WebFetch(domain:eslint.org)" + ], + "deny": [ + "Bash(cargo biome-cli-dev:*)", + "Bash(cargo biome-cli:*)" + ] + } +} diff --git a/crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs b/crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs index 89038b0c5f56..edfbd3359757 100644 --- a/crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs +++ b/crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs @@ -10,11 +10,7 @@ pub(crate) fn migrate_eslint_any_rule( ) -> bool { match eslint_name { "@eslint-react/no-nested-component-definitions" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_nested_component_definitions @@ -22,11 +18,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "@eslint-react/no-nested-components" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_nested_component_definitions @@ -50,11 +42,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "@next/google-font-preconnect" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.performance.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_google_font_preconnect @@ -106,11 +94,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "@next/no-unwanted-polyfillio" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.performance.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_unwanted_polyfillio @@ -146,11 +130,7 @@ pub(crate) fn migrate_eslint_any_rule( results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Inspired); return false; } - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.suspicious.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_ts_ignore @@ -366,11 +346,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "@typescript-eslint/no-magic-numbers" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_magic_numbers @@ -610,11 +586,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "@typescript-eslint/prefer-readonly" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_readonly_class_properties @@ -642,26 +614,18 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "@typescript-eslint/unified-signatures" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .use_unified_type_signature + .use_unified_type_signatures .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } "array-callback-return" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.suspicious.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .use_iterable_callback_return + .use_consistent_iterable_callback_return_values .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -734,11 +698,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "deno-lint/no-process-global" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_process_global @@ -778,14 +738,10 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "grouped-accessor-pairs" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .use_adjacent_getter_setter + .use_grouped_accessor_pairs .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -806,11 +762,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "import/exports-last" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_exports_last @@ -954,11 +906,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "jsdoc/no-multi-asterisks" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_single_js_doc_asterisk @@ -1158,11 +1106,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "jsx-a11y/no-noninteractive-element-interactions" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.a11y.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_noninteractive_element_interactions @@ -1246,11 +1190,7 @@ pub(crate) fn migrate_eslint_any_rule( results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Inspired); return false; } - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.complexity.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_excessive_lines_per_function @@ -1302,23 +1242,15 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "no-await-in-loop" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.performance.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .no_await_in_loop + .no_await_in_loops .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } "no-bitwise" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.suspicious.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_bitwise_operators @@ -1378,14 +1310,10 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "no-constant-binary-expression" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.suspicious.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .no_constant_binary_expression + .no_constant_binary_expressions .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -1570,14 +1498,10 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "no-implicit-coercion" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.complexity.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .no_implicit_coercion + .no_implicit_coercions .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -1866,11 +1790,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "no-unassigned-vars" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.suspicious.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_unassigned_variables @@ -1966,14 +1886,10 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "no-useless-backreference" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.suspicious.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .no_useless_backref_in_regex + .no_useless_regex_backrefs .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -2054,14 +1970,10 @@ pub(crate) fn migrate_eslint_any_rule( results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Inspired); return false; } - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .use_consistent_object_definition + .use_consistent_object_definitions .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -2126,11 +2038,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "prefer-object-spread" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_object_spread @@ -2210,11 +2118,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "radix" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_parse_int_radix @@ -2230,14 +2134,10 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "react-hooks/react-compiler" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .no_react_prop_assign + .no_react_prop_assignments .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -2282,11 +2182,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "react/forbid-elements" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_restricted_elements @@ -2410,14 +2306,10 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "regexp/no-useless-backreference" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.suspicious.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .no_useless_backref_in_regex + .no_useless_regex_backrefs .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -2442,14 +2334,10 @@ pub(crate) fn migrate_eslint_any_rule( results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Inspired); return false; } - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .no_destructured_props + .no_solid_destructured_props .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -2466,14 +2354,10 @@ pub(crate) fn migrate_eslint_any_rule( results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Inspired); return false; } - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.performance.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() - .use_for_component + .use_solid_for_component .get_or_insert(Default::default()); rule.set_level(rule.level().max(rule_severity.into())); } @@ -2494,11 +2378,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "symbol-description" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_symbol_description @@ -2606,11 +2486,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "unicorn/no-useless-undefined" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_useless_undefined @@ -2618,11 +2494,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "unicorn/numeric-separators-style" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.style.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_numeric_separators @@ -2638,11 +2510,7 @@ pub(crate) fn migrate_eslint_any_rule( rule.set_level(rule.level().max(rule_severity.into())); } "unicorn/prefer-array-index-of" => { - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.complexity.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .use_index_of @@ -2674,11 +2542,7 @@ pub(crate) fn migrate_eslint_any_rule( results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Inspired); return false; } - if !options.include_nursery { - results.add(eslint_name, eslint_to_biome::RuleMigrationResult::Nursery); - return false; - } - let group = rules.nursery.get_or_insert_with(Default::default); + let group = rules.correctness.get_or_insert_with(Default::default); let rule = group .unwrap_group_as_mut() .no_global_dirname_filename diff --git a/crates/biome_configuration/src/analyzer/linter/rules.rs b/crates/biome_configuration/src/analyzer/linter/rules.rs index d076cc9eb01f..0e4acdaa97da 100644 --- a/crates/biome_configuration/src/analyzer/linter/rules.rs +++ b/crates/biome_configuration/src/analyzer/linter/rules.rs @@ -101,7 +101,7 @@ pub enum RuleName { NoAssignInExpressions, NoAsyncPromiseExecutor, NoAutofocus, - NoAwaitInLoop, + NoAwaitInLoops, NoBannedTypes, NoBarrelFile, NoBitwiseOperators, @@ -118,7 +118,7 @@ pub enum RuleName { NoConsole, NoConstAssign, NoConstEnum, - NoConstantBinaryExpression, + NoConstantBinaryExpressions, NoConstantCondition, NoConstantMathMinMaxClamp, NoConstructorReturn, @@ -129,7 +129,6 @@ pub enum RuleName { NoDefaultExport, NoDelete, NoDescendingSpecificity, - NoDestructuredProps, NoDistractingElements, NoDocumentCookie, NoDocumentImportInPage, @@ -183,7 +182,7 @@ pub enum RuleName { NoImgElement, NoImplicitAnyLet, NoImplicitBoolean, - NoImplicitCoercion, + NoImplicitCoercions, NoImportAssign, NoImportCycles, NoImportantInKeyframe, @@ -212,7 +211,6 @@ pub enum RuleName { NoNegationElse, NoNestedComponentDefinitions, NoNestedTernary, - NoNextAsyncClientComponent, NoNodejsModules, NoNonNullAssertedOptionalChain, NoNonNullAssertion, @@ -232,7 +230,7 @@ pub enum RuleName { NoQuickfixBiome, NoQwikUseVisibleTask, NoReExportAll, - NoReactPropAssign, + NoReactPropAssignments, NoReactSpecificProps, NoRedeclare, NoRedundantAlt, @@ -252,6 +250,7 @@ pub enum RuleName { NoShorthandPropertyOverrides, NoShoutyConstants, NoSkippedTests, + NoSolidDestructuredProps, NoSparseArray, NoStaticElementInteractions, NoStaticOnlyClass, @@ -291,7 +290,6 @@ pub enum RuleName { NoUnusedTemplateLiteral, NoUnusedVariables, NoUnwantedPolyfillio, - NoUselessBackrefInRegex, NoUselessCatch, NoUselessConstructor, NoUselessContinue, @@ -302,8 +300,10 @@ pub enum RuleName { NoUselessFragments, NoUselessLabel, NoUselessLoneBlockStatements, + NoUselessRegexBackrefs, NoUselessRename, NoUselessStringConcat, + NoUselessStringEscapes, NoUselessStringRaw, NoUselessSwitchCase, NoUselessTernary, @@ -316,12 +316,10 @@ pub enum RuleName { NoVoid, NoVoidElementsWithChildren, NoVoidTypeReturn, - NoVueDataObjectDeclaration, NoVueReservedKeys, NoVueReservedProps, NoWith, NoYodaExpression, - UseAdjacentGetterSetter, UseAdjacentOverloadSignatures, UseAltText, UseAnchorContent, @@ -342,9 +340,9 @@ pub enum RuleName { UseConsistentArrayType, UseConsistentBuiltinInstantiation, UseConsistentCurlyBraces, + UseConsistentIterableCallbackReturnValues, UseConsistentMemberAccessibility, - UseConsistentObjectDefinition, - UseConsistentResponse, + UseConsistentObjectDefinitions, UseConsistentTypeDefinitions, UseConst, UseDateNow, @@ -364,13 +362,13 @@ pub enum RuleName { UseFilenamingConvention, UseFlatMap, UseFocusableInteractive, - UseForComponent, UseForOf, UseFragmentSyntax, UseGenericFontNames, UseGetterReturn, UseGoogleFontDisplay, UseGoogleFontPreconnect, + UseGroupedAccessorPairs, UseGuardForIn, UseHeadingContent, UseHookAtTopLevel, @@ -382,15 +380,14 @@ pub enum RuleName { UseIndexOf, UseIsArray, UseIsNan, - UseIterableCallbackReturn, - UseJsonImportAttribute, + UseJsonImportAttributes, UseJsxKeyInIterable, UseKeyWithClickEvents, UseKeyWithMouseEvents, UseLiteralEnumMembers, UseLiteralKeys, - UseMaxParams, UseMediaCaption, + UseNamedGraphqlOperations, UseNamedOperation, UseNamespaceKeyword, UseNamingConvention, @@ -415,7 +412,9 @@ pub enum RuleName { UseSimplifiedLogicExpression, UseSingleJsDocAsterisk, UseSingleVarDeclarator, + UseSolidForComponent, UseSortedClasses, + UseStaticResponseMethods, UseStrictMode, UseSymbolDescription, UseTemplate, @@ -423,7 +422,7 @@ pub enum RuleName { UseThrowOnlyError, UseTopLevelRegex, UseTrimStartEnd, - UseUnifiedTypeSignature, + UseUnifiedTypeSignatures, UseUniqueElementIds, UseValidAnchor, UseValidAriaProps, @@ -451,7 +450,7 @@ impl RuleName { Self::NoAssignInExpressions => "noAssignInExpressions", Self::NoAsyncPromiseExecutor => "noAsyncPromiseExecutor", Self::NoAutofocus => "noAutofocus", - Self::NoAwaitInLoop => "noAwaitInLoop", + Self::NoAwaitInLoops => "noAwaitInLoops", Self::NoBannedTypes => "noBannedTypes", Self::NoBarrelFile => "noBarrelFile", Self::NoBitwiseOperators => "noBitwiseOperators", @@ -468,7 +467,7 @@ impl RuleName { Self::NoConsole => "noConsole", Self::NoConstAssign => "noConstAssign", Self::NoConstEnum => "noConstEnum", - Self::NoConstantBinaryExpression => "noConstantBinaryExpression", + Self::NoConstantBinaryExpressions => "noConstantBinaryExpressions", Self::NoConstantCondition => "noConstantCondition", Self::NoConstantMathMinMaxClamp => "noConstantMathMinMaxClamp", Self::NoConstructorReturn => "noConstructorReturn", @@ -479,7 +478,6 @@ impl RuleName { Self::NoDefaultExport => "noDefaultExport", Self::NoDelete => "noDelete", Self::NoDescendingSpecificity => "noDescendingSpecificity", - Self::NoDestructuredProps => "noDestructuredProps", Self::NoDistractingElements => "noDistractingElements", Self::NoDocumentCookie => "noDocumentCookie", Self::NoDocumentImportInPage => "noDocumentImportInPage", @@ -533,7 +531,7 @@ impl RuleName { Self::NoImgElement => "noImgElement", Self::NoImplicitAnyLet => "noImplicitAnyLet", Self::NoImplicitBoolean => "noImplicitBoolean", - Self::NoImplicitCoercion => "noImplicitCoercion", + Self::NoImplicitCoercions => "noImplicitCoercions", Self::NoImportAssign => "noImportAssign", Self::NoImportCycles => "noImportCycles", Self::NoImportantInKeyframe => "noImportantInKeyframe", @@ -564,7 +562,6 @@ impl RuleName { Self::NoNegationElse => "noNegationElse", Self::NoNestedComponentDefinitions => "noNestedComponentDefinitions", Self::NoNestedTernary => "noNestedTernary", - Self::NoNextAsyncClientComponent => "noNextAsyncClientComponent", Self::NoNodejsModules => "noNodejsModules", Self::NoNonNullAssertedOptionalChain => "noNonNullAssertedOptionalChain", Self::NoNonNullAssertion => "noNonNullAssertion", @@ -586,7 +583,7 @@ impl RuleName { Self::NoQuickfixBiome => "noQuickfixBiome", Self::NoQwikUseVisibleTask => "noQwikUseVisibleTask", Self::NoReExportAll => "noReExportAll", - Self::NoReactPropAssign => "noReactPropAssign", + Self::NoReactPropAssignments => "noReactPropAssignments", Self::NoReactSpecificProps => "noReactSpecificProps", Self::NoRedeclare => "noRedeclare", Self::NoRedundantAlt => "noRedundantAlt", @@ -606,6 +603,7 @@ impl RuleName { Self::NoShorthandPropertyOverrides => "noShorthandPropertyOverrides", Self::NoShoutyConstants => "noShoutyConstants", Self::NoSkippedTests => "noSkippedTests", + Self::NoSolidDestructuredProps => "noSolidDestructuredProps", Self::NoSparseArray => "noSparseArray", Self::NoStaticElementInteractions => "noStaticElementInteractions", Self::NoStaticOnlyClass => "noStaticOnlyClass", @@ -645,7 +643,6 @@ impl RuleName { Self::NoUnusedTemplateLiteral => "noUnusedTemplateLiteral", Self::NoUnusedVariables => "noUnusedVariables", Self::NoUnwantedPolyfillio => "noUnwantedPolyfillio", - Self::NoUselessBackrefInRegex => "noUselessBackrefInRegex", Self::NoUselessCatch => "noUselessCatch", Self::NoUselessConstructor => "noUselessConstructor", Self::NoUselessContinue => "noUselessContinue", @@ -656,8 +653,10 @@ impl RuleName { Self::NoUselessFragments => "noUselessFragments", Self::NoUselessLabel => "noUselessLabel", Self::NoUselessLoneBlockStatements => "noUselessLoneBlockStatements", + Self::NoUselessRegexBackrefs => "noUselessRegexBackrefs", Self::NoUselessRename => "noUselessRename", Self::NoUselessStringConcat => "noUselessStringConcat", + Self::NoUselessStringEscapes => "noUselessStringEscapes", Self::NoUselessStringRaw => "noUselessStringRaw", Self::NoUselessSwitchCase => "noUselessSwitchCase", Self::NoUselessTernary => "noUselessTernary", @@ -670,12 +669,10 @@ impl RuleName { Self::NoVoid => "noVoid", Self::NoVoidElementsWithChildren => "noVoidElementsWithChildren", Self::NoVoidTypeReturn => "noVoidTypeReturn", - Self::NoVueDataObjectDeclaration => "noVueDataObjectDeclaration", Self::NoVueReservedKeys => "noVueReservedKeys", Self::NoVueReservedProps => "noVueReservedProps", Self::NoWith => "noWith", Self::NoYodaExpression => "noYodaExpression", - Self::UseAdjacentGetterSetter => "useAdjacentGetterSetter", Self::UseAdjacentOverloadSignatures => "useAdjacentOverloadSignatures", Self::UseAltText => "useAltText", Self::UseAnchorContent => "useAnchorContent", @@ -696,9 +693,11 @@ impl RuleName { Self::UseConsistentArrayType => "useConsistentArrayType", Self::UseConsistentBuiltinInstantiation => "useConsistentBuiltinInstantiation", Self::UseConsistentCurlyBraces => "useConsistentCurlyBraces", + Self::UseConsistentIterableCallbackReturnValues => { + "useConsistentIterableCallbackReturnValues" + } Self::UseConsistentMemberAccessibility => "useConsistentMemberAccessibility", - Self::UseConsistentObjectDefinition => "useConsistentObjectDefinition", - Self::UseConsistentResponse => "useConsistentResponse", + Self::UseConsistentObjectDefinitions => "useConsistentObjectDefinitions", Self::UseConsistentTypeDefinitions => "useConsistentTypeDefinitions", Self::UseConst => "useConst", Self::UseDateNow => "useDateNow", @@ -718,13 +717,13 @@ impl RuleName { Self::UseFilenamingConvention => "useFilenamingConvention", Self::UseFlatMap => "useFlatMap", Self::UseFocusableInteractive => "useFocusableInteractive", - Self::UseForComponent => "useForComponent", Self::UseForOf => "useForOf", Self::UseFragmentSyntax => "useFragmentSyntax", Self::UseGenericFontNames => "useGenericFontNames", Self::UseGetterReturn => "useGetterReturn", Self::UseGoogleFontDisplay => "useGoogleFontDisplay", Self::UseGoogleFontPreconnect => "useGoogleFontPreconnect", + Self::UseGroupedAccessorPairs => "useGroupedAccessorPairs", Self::UseGuardForIn => "useGuardForIn", Self::UseHeadingContent => "useHeadingContent", Self::UseHookAtTopLevel => "useHookAtTopLevel", @@ -736,15 +735,14 @@ impl RuleName { Self::UseIndexOf => "useIndexOf", Self::UseIsArray => "useIsArray", Self::UseIsNan => "useIsNan", - Self::UseIterableCallbackReturn => "useIterableCallbackReturn", - Self::UseJsonImportAttribute => "useJsonImportAttribute", + Self::UseJsonImportAttributes => "useJsonImportAttributes", Self::UseJsxKeyInIterable => "useJsxKeyInIterable", Self::UseKeyWithClickEvents => "useKeyWithClickEvents", Self::UseKeyWithMouseEvents => "useKeyWithMouseEvents", Self::UseLiteralEnumMembers => "useLiteralEnumMembers", Self::UseLiteralKeys => "useLiteralKeys", - Self::UseMaxParams => "useMaxParams", Self::UseMediaCaption => "useMediaCaption", + Self::UseNamedGraphqlOperations => "useNamedGraphqlOperations", Self::UseNamedOperation => "useNamedOperation", Self::UseNamespaceKeyword => "useNamespaceKeyword", Self::UseNamingConvention => "useNamingConvention", @@ -769,7 +767,9 @@ impl RuleName { Self::UseSimplifiedLogicExpression => "useSimplifiedLogicExpression", Self::UseSingleJsDocAsterisk => "useSingleJsDocAsterisk", Self::UseSingleVarDeclarator => "useSingleVarDeclarator", + Self::UseSolidForComponent => "useSolidForComponent", Self::UseSortedClasses => "useSortedClasses", + Self::UseStaticResponseMethods => "useStaticResponseMethods", Self::UseStrictMode => "useStrictMode", Self::UseSymbolDescription => "useSymbolDescription", Self::UseTemplate => "useTemplate", @@ -777,7 +777,7 @@ impl RuleName { Self::UseThrowOnlyError => "useThrowOnlyError", Self::UseTopLevelRegex => "useTopLevelRegex", Self::UseTrimStartEnd => "useTrimStartEnd", - Self::UseUnifiedTypeSignature => "useUnifiedTypeSignature", + Self::UseUnifiedTypeSignatures => "useUnifiedTypeSignatures", Self::UseUniqueElementIds => "useUniqueElementIds", Self::UseValidAnchor => "useValidAnchor", Self::UseValidAriaProps => "useValidAriaProps", @@ -805,10 +805,10 @@ impl RuleName { Self::NoAssignInExpressions => RuleGroup::Suspicious, Self::NoAsyncPromiseExecutor => RuleGroup::Suspicious, Self::NoAutofocus => RuleGroup::A11y, - Self::NoAwaitInLoop => RuleGroup::Nursery, + Self::NoAwaitInLoops => RuleGroup::Performance, Self::NoBannedTypes => RuleGroup::Complexity, Self::NoBarrelFile => RuleGroup::Performance, - Self::NoBitwiseOperators => RuleGroup::Nursery, + Self::NoBitwiseOperators => RuleGroup::Suspicious, Self::NoBlankTarget => RuleGroup::Security, Self::NoCatchAssign => RuleGroup::Suspicious, Self::NoChildrenProp => RuleGroup::Correctness, @@ -822,7 +822,7 @@ impl RuleName { Self::NoConsole => RuleGroup::Suspicious, Self::NoConstAssign => RuleGroup::Correctness, Self::NoConstEnum => RuleGroup::Suspicious, - Self::NoConstantBinaryExpression => RuleGroup::Nursery, + Self::NoConstantBinaryExpressions => RuleGroup::Suspicious, Self::NoConstantCondition => RuleGroup::Correctness, Self::NoConstantMathMinMaxClamp => RuleGroup::Correctness, Self::NoConstructorReturn => RuleGroup::Correctness, @@ -833,7 +833,6 @@ impl RuleName { Self::NoDefaultExport => RuleGroup::Style, Self::NoDelete => RuleGroup::Performance, Self::NoDescendingSpecificity => RuleGroup::Style, - Self::NoDestructuredProps => RuleGroup::Nursery, Self::NoDistractingElements => RuleGroup::A11y, Self::NoDocumentCookie => RuleGroup::Suspicious, Self::NoDocumentImportInPage => RuleGroup::Suspicious, @@ -862,7 +861,7 @@ impl RuleName { Self::NoEnum => RuleGroup::Style, Self::NoEvolvingTypes => RuleGroup::Suspicious, Self::NoExcessiveCognitiveComplexity => RuleGroup::Complexity, - Self::NoExcessiveLinesPerFunction => RuleGroup::Nursery, + Self::NoExcessiveLinesPerFunction => RuleGroup::Complexity, Self::NoExcessiveNestedTestSuites => RuleGroup::Complexity, Self::NoExplicitAny => RuleGroup::Suspicious, Self::NoExportedImports => RuleGroup::Style, @@ -876,7 +875,7 @@ impl RuleName { Self::NoForEach => RuleGroup::Complexity, Self::NoFunctionAssign => RuleGroup::Suspicious, Self::NoGlobalAssign => RuleGroup::Suspicious, - Self::NoGlobalDirnameFilename => RuleGroup::Nursery, + Self::NoGlobalDirnameFilename => RuleGroup::Correctness, Self::NoGlobalEval => RuleGroup::Security, Self::NoGlobalIsFinite => RuleGroup::Suspicious, Self::NoGlobalIsNan => RuleGroup::Suspicious, @@ -887,11 +886,11 @@ impl RuleName { Self::NoImgElement => RuleGroup::Performance, Self::NoImplicitAnyLet => RuleGroup::Suspicious, Self::NoImplicitBoolean => RuleGroup::Style, - Self::NoImplicitCoercion => RuleGroup::Nursery, + Self::NoImplicitCoercions => RuleGroup::Complexity, Self::NoImportAssign => RuleGroup::Suspicious, Self::NoImportCycles => RuleGroup::Nursery, Self::NoImportantInKeyframe => RuleGroup::Suspicious, - Self::NoImportantStyles => RuleGroup::Nursery, + Self::NoImportantStyles => RuleGroup::Complexity, Self::NoInferrableTypes => RuleGroup::Style, Self::NoInnerDeclarations => RuleGroup::Correctness, Self::NoInteractiveElementToNoninteractiveRole => RuleGroup::A11y, @@ -904,7 +903,7 @@ impl RuleName { Self::NoIrregularWhitespace => RuleGroup::Suspicious, Self::NoLabelVar => RuleGroup::Suspicious, Self::NoLabelWithoutControl => RuleGroup::A11y, - Self::NoMagicNumbers => RuleGroup::Nursery, + Self::NoMagicNumbers => RuleGroup::Style, Self::NoMisleadingCharacterClass => RuleGroup::Suspicious, Self::NoMisleadingInstantiator => RuleGroup::Suspicious, Self::NoMisplacedAssertion => RuleGroup::Suspicious, @@ -914,13 +913,12 @@ impl RuleName { Self::NoNamespace => RuleGroup::Style, Self::NoNamespaceImport => RuleGroup::Performance, Self::NoNegationElse => RuleGroup::Style, - Self::NoNestedComponentDefinitions => RuleGroup::Nursery, + Self::NoNestedComponentDefinitions => RuleGroup::Correctness, Self::NoNestedTernary => RuleGroup::Style, - Self::NoNextAsyncClientComponent => RuleGroup::Nursery, Self::NoNodejsModules => RuleGroup::Correctness, Self::NoNonNullAssertedOptionalChain => RuleGroup::Nursery, Self::NoNonNullAssertion => RuleGroup::Style, - Self::NoNoninteractiveElementInteractions => RuleGroup::Nursery, + Self::NoNoninteractiveElementInteractions => RuleGroup::A11y, Self::NoNoninteractiveElementToInteractiveRole => RuleGroup::A11y, Self::NoNoninteractiveTabindex => RuleGroup::A11y, Self::NoNonoctalDecimalEscape => RuleGroup::Correctness, @@ -931,19 +929,19 @@ impl RuleName { Self::NoPrecisionLoss => RuleGroup::Correctness, Self::NoPrivateImports => RuleGroup::Correctness, Self::NoProcessEnv => RuleGroup::Style, - Self::NoProcessGlobal => RuleGroup::Nursery, + Self::NoProcessGlobal => RuleGroup::Correctness, Self::NoPrototypeBuiltins => RuleGroup::Suspicious, Self::NoQuickfixBiome => RuleGroup::Nursery, Self::NoQwikUseVisibleTask => RuleGroup::Nursery, Self::NoReExportAll => RuleGroup::Performance, - Self::NoReactPropAssign => RuleGroup::Nursery, + Self::NoReactPropAssignments => RuleGroup::Correctness, Self::NoReactSpecificProps => RuleGroup::Suspicious, Self::NoRedeclare => RuleGroup::Suspicious, Self::NoRedundantAlt => RuleGroup::A11y, Self::NoRedundantRoles => RuleGroup::A11y, Self::NoRedundantUseStrict => RuleGroup::Suspicious, Self::NoRenderReturnValue => RuleGroup::Correctness, - Self::NoRestrictedElements => RuleGroup::Nursery, + Self::NoRestrictedElements => RuleGroup::Correctness, Self::NoRestrictedGlobals => RuleGroup::Style, Self::NoRestrictedImports => RuleGroup::Style, Self::NoRestrictedTypes => RuleGroup::Style, @@ -956,6 +954,7 @@ impl RuleName { Self::NoShorthandPropertyOverrides => RuleGroup::Suspicious, Self::NoShoutyConstants => RuleGroup::Style, Self::NoSkippedTests => RuleGroup::Suspicious, + Self::NoSolidDestructuredProps => RuleGroup::Correctness, Self::NoSparseArray => RuleGroup::Suspicious, Self::NoStaticElementInteractions => RuleGroup::A11y, Self::NoStaticOnlyClass => RuleGroup::Complexity, @@ -967,11 +966,11 @@ impl RuleName { Self::NoTemplateCurlyInString => RuleGroup::Suspicious, Self::NoThenProperty => RuleGroup::Suspicious, Self::NoThisInStatic => RuleGroup::Complexity, - Self::NoTsIgnore => RuleGroup::Nursery, - Self::NoUnassignedVariables => RuleGroup::Nursery, + Self::NoTsIgnore => RuleGroup::Suspicious, + Self::NoUnassignedVariables => RuleGroup::Suspicious, Self::NoUndeclaredDependencies => RuleGroup::Correctness, Self::NoUndeclaredVariables => RuleGroup::Correctness, - Self::NoUnknownAtRule => RuleGroup::Nursery, + Self::NoUnknownAtRule => RuleGroup::Suspicious, Self::NoUnknownFunction => RuleGroup::Correctness, Self::NoUnknownMediaFeatureName => RuleGroup::Correctness, Self::NoUnknownProperty => RuleGroup::Correctness, @@ -994,8 +993,7 @@ impl RuleName { Self::NoUnusedPrivateClassMembers => RuleGroup::Correctness, Self::NoUnusedTemplateLiteral => RuleGroup::Style, Self::NoUnusedVariables => RuleGroup::Correctness, - Self::NoUnwantedPolyfillio => RuleGroup::Nursery, - Self::NoUselessBackrefInRegex => RuleGroup::Nursery, + Self::NoUnwantedPolyfillio => RuleGroup::Performance, Self::NoUselessCatch => RuleGroup::Complexity, Self::NoUselessConstructor => RuleGroup::Complexity, Self::NoUselessContinue => RuleGroup::Complexity, @@ -1006,26 +1004,26 @@ impl RuleName { Self::NoUselessFragments => RuleGroup::Complexity, Self::NoUselessLabel => RuleGroup::Complexity, Self::NoUselessLoneBlockStatements => RuleGroup::Complexity, + Self::NoUselessRegexBackrefs => RuleGroup::Suspicious, Self::NoUselessRename => RuleGroup::Complexity, Self::NoUselessStringConcat => RuleGroup::Complexity, + Self::NoUselessStringEscapes => RuleGroup::Suspicious, Self::NoUselessStringRaw => RuleGroup::Complexity, Self::NoUselessSwitchCase => RuleGroup::Complexity, Self::NoUselessTernary => RuleGroup::Complexity, Self::NoUselessThisAlias => RuleGroup::Complexity, Self::NoUselessTypeConstraint => RuleGroup::Complexity, - Self::NoUselessUndefined => RuleGroup::Nursery, + Self::NoUselessUndefined => RuleGroup::Style, Self::NoUselessUndefinedInitialization => RuleGroup::Complexity, Self::NoValueAtRule => RuleGroup::Style, Self::NoVar => RuleGroup::Suspicious, Self::NoVoid => RuleGroup::Complexity, Self::NoVoidElementsWithChildren => RuleGroup::Correctness, Self::NoVoidTypeReturn => RuleGroup::Correctness, - Self::NoVueDataObjectDeclaration => RuleGroup::Nursery, Self::NoVueReservedKeys => RuleGroup::Nursery, Self::NoVueReservedProps => RuleGroup::Nursery, Self::NoWith => RuleGroup::Suspicious, Self::NoYodaExpression => RuleGroup::Style, - Self::UseAdjacentGetterSetter => RuleGroup::Nursery, Self::UseAdjacentOverloadSignatures => RuleGroup::Suspicious, Self::UseAltText => RuleGroup::A11y, Self::UseAnchorContent => RuleGroup::A11y, @@ -1046,9 +1044,9 @@ impl RuleName { Self::UseConsistentArrayType => RuleGroup::Style, Self::UseConsistentBuiltinInstantiation => RuleGroup::Style, Self::UseConsistentCurlyBraces => RuleGroup::Style, + Self::UseConsistentIterableCallbackReturnValues => RuleGroup::Suspicious, Self::UseConsistentMemberAccessibility => RuleGroup::Style, - Self::UseConsistentObjectDefinition => RuleGroup::Nursery, - Self::UseConsistentResponse => RuleGroup::Nursery, + Self::UseConsistentObjectDefinitions => RuleGroup::Style, Self::UseConsistentTypeDefinitions => RuleGroup::Nursery, Self::UseConst => RuleGroup::Style, Self::UseDateNow => RuleGroup::Complexity, @@ -1064,17 +1062,17 @@ impl RuleName { Self::UseExplicitType => RuleGroup::Nursery, Self::UseExponentiationOperator => RuleGroup::Style, Self::UseExportType => RuleGroup::Style, - Self::UseExportsLast => RuleGroup::Nursery, + Self::UseExportsLast => RuleGroup::Style, Self::UseFilenamingConvention => RuleGroup::Style, Self::UseFlatMap => RuleGroup::Complexity, Self::UseFocusableInteractive => RuleGroup::A11y, - Self::UseForComponent => RuleGroup::Nursery, Self::UseForOf => RuleGroup::Style, Self::UseFragmentSyntax => RuleGroup::Style, Self::UseGenericFontNames => RuleGroup::A11y, Self::UseGetterReturn => RuleGroup::Suspicious, Self::UseGoogleFontDisplay => RuleGroup::Suspicious, - Self::UseGoogleFontPreconnect => RuleGroup::Nursery, + Self::UseGoogleFontPreconnect => RuleGroup::Performance, + Self::UseGroupedAccessorPairs => RuleGroup::Style, Self::UseGuardForIn => RuleGroup::Suspicious, Self::UseHeadingContent => RuleGroup::A11y, Self::UseHookAtTopLevel => RuleGroup::Correctness, @@ -1083,33 +1081,32 @@ impl RuleName { Self::UseImageSize => RuleGroup::Nursery, Self::UseImportExtensions => RuleGroup::Correctness, Self::UseImportType => RuleGroup::Style, - Self::UseIndexOf => RuleGroup::Nursery, + Self::UseIndexOf => RuleGroup::Complexity, Self::UseIsArray => RuleGroup::Suspicious, Self::UseIsNan => RuleGroup::Correctness, - Self::UseIterableCallbackReturn => RuleGroup::Nursery, - Self::UseJsonImportAttribute => RuleGroup::Nursery, + Self::UseJsonImportAttributes => RuleGroup::Correctness, Self::UseJsxKeyInIterable => RuleGroup::Correctness, Self::UseKeyWithClickEvents => RuleGroup::A11y, Self::UseKeyWithMouseEvents => RuleGroup::A11y, Self::UseLiteralEnumMembers => RuleGroup::Style, Self::UseLiteralKeys => RuleGroup::Complexity, - Self::UseMaxParams => RuleGroup::Nursery, Self::UseMediaCaption => RuleGroup::A11y, + Self::UseNamedGraphqlOperations => RuleGroup::Correctness, Self::UseNamedOperation => RuleGroup::Nursery, Self::UseNamespaceKeyword => RuleGroup::Suspicious, - Self::UseNamingConvention => RuleGroup::Nursery, + Self::UseNamingConvention => RuleGroup::Style, Self::UseNodeAssertStrict => RuleGroup::Style, Self::UseNodejsImportProtocol => RuleGroup::Style, Self::UseNumberNamespace => RuleGroup::Style, Self::UseNumberToFixedDigitsArgument => RuleGroup::Suspicious, Self::UseNumericLiterals => RuleGroup::Complexity, - Self::UseNumericSeparators => RuleGroup::Nursery, - Self::UseObjectSpread => RuleGroup::Nursery, + Self::UseNumericSeparators => RuleGroup::Style, + Self::UseObjectSpread => RuleGroup::Style, Self::UseOptionalChain => RuleGroup::Complexity, - Self::UseParseIntRadix => RuleGroup::Nursery, + Self::UseParseIntRadix => RuleGroup::Correctness, Self::UseQwikClasslist => RuleGroup::Nursery, Self::UseReactFunctionComponents => RuleGroup::Nursery, - Self::UseReadonlyClassProperties => RuleGroup::Nursery, + Self::UseReadonlyClassProperties => RuleGroup::Style, Self::UseRegexLiterals => RuleGroup::Complexity, Self::UseSelfClosingElements => RuleGroup::Style, Self::UseSemanticElements => RuleGroup::A11y, @@ -1117,18 +1114,20 @@ impl RuleName { Self::UseShorthandFunctionType => RuleGroup::Style, Self::UseSimpleNumberKeys => RuleGroup::Complexity, Self::UseSimplifiedLogicExpression => RuleGroup::Complexity, - Self::UseSingleJsDocAsterisk => RuleGroup::Nursery, + Self::UseSingleJsDocAsterisk => RuleGroup::Correctness, Self::UseSingleVarDeclarator => RuleGroup::Style, + Self::UseSolidForComponent => RuleGroup::Performance, Self::UseSortedClasses => RuleGroup::Nursery, + Self::UseStaticResponseMethods => RuleGroup::Suspicious, Self::UseStrictMode => RuleGroup::Suspicious, - Self::UseSymbolDescription => RuleGroup::Nursery, + Self::UseSymbolDescription => RuleGroup::Style, Self::UseTemplate => RuleGroup::Style, Self::UseThrowNewError => RuleGroup::Style, Self::UseThrowOnlyError => RuleGroup::Style, Self::UseTopLevelRegex => RuleGroup::Performance, Self::UseTrimStartEnd => RuleGroup::Style, - Self::UseUnifiedTypeSignature => RuleGroup::Nursery, - Self::UseUniqueElementIds => RuleGroup::Nursery, + Self::UseUnifiedTypeSignatures => RuleGroup::Style, + Self::UseUniqueElementIds => RuleGroup::Correctness, Self::UseValidAnchor => RuleGroup::A11y, Self::UseValidAriaProps => RuleGroup::A11y, Self::UseValidAriaRole => RuleGroup::A11y, @@ -1158,7 +1157,7 @@ impl std::str::FromStr for RuleName { "noAssignInExpressions" => Ok(Self::NoAssignInExpressions), "noAsyncPromiseExecutor" => Ok(Self::NoAsyncPromiseExecutor), "noAutofocus" => Ok(Self::NoAutofocus), - "noAwaitInLoop" => Ok(Self::NoAwaitInLoop), + "noAwaitInLoops" => Ok(Self::NoAwaitInLoops), "noBannedTypes" => Ok(Self::NoBannedTypes), "noBarrelFile" => Ok(Self::NoBarrelFile), "noBitwiseOperators" => Ok(Self::NoBitwiseOperators), @@ -1175,7 +1174,7 @@ impl std::str::FromStr for RuleName { "noConsole" => Ok(Self::NoConsole), "noConstAssign" => Ok(Self::NoConstAssign), "noConstEnum" => Ok(Self::NoConstEnum), - "noConstantBinaryExpression" => Ok(Self::NoConstantBinaryExpression), + "noConstantBinaryExpressions" => Ok(Self::NoConstantBinaryExpressions), "noConstantCondition" => Ok(Self::NoConstantCondition), "noConstantMathMinMaxClamp" => Ok(Self::NoConstantMathMinMaxClamp), "noConstructorReturn" => Ok(Self::NoConstructorReturn), @@ -1188,7 +1187,6 @@ impl std::str::FromStr for RuleName { "noDefaultExport" => Ok(Self::NoDefaultExport), "noDelete" => Ok(Self::NoDelete), "noDescendingSpecificity" => Ok(Self::NoDescendingSpecificity), - "noDestructuredProps" => Ok(Self::NoDestructuredProps), "noDistractingElements" => Ok(Self::NoDistractingElements), "noDocumentCookie" => Ok(Self::NoDocumentCookie), "noDocumentImportInPage" => Ok(Self::NoDocumentImportInPage), @@ -1242,7 +1240,7 @@ impl std::str::FromStr for RuleName { "noImgElement" => Ok(Self::NoImgElement), "noImplicitAnyLet" => Ok(Self::NoImplicitAnyLet), "noImplicitBoolean" => Ok(Self::NoImplicitBoolean), - "noImplicitCoercion" => Ok(Self::NoImplicitCoercion), + "noImplicitCoercions" => Ok(Self::NoImplicitCoercions), "noImportAssign" => Ok(Self::NoImportAssign), "noImportCycles" => Ok(Self::NoImportCycles), "noImportantInKeyframe" => Ok(Self::NoImportantInKeyframe), @@ -1273,7 +1271,6 @@ impl std::str::FromStr for RuleName { "noNegationElse" => Ok(Self::NoNegationElse), "noNestedComponentDefinitions" => Ok(Self::NoNestedComponentDefinitions), "noNestedTernary" => Ok(Self::NoNestedTernary), - "noNextAsyncClientComponent" => Ok(Self::NoNextAsyncClientComponent), "noNodejsModules" => Ok(Self::NoNodejsModules), "noNonNullAssertedOptionalChain" => Ok(Self::NoNonNullAssertedOptionalChain), "noNonNullAssertion" => Ok(Self::NoNonNullAssertion), @@ -1295,7 +1292,7 @@ impl std::str::FromStr for RuleName { "noQuickfixBiome" => Ok(Self::NoQuickfixBiome), "noQwikUseVisibleTask" => Ok(Self::NoQwikUseVisibleTask), "noReExportAll" => Ok(Self::NoReExportAll), - "noReactPropAssign" => Ok(Self::NoReactPropAssign), + "noReactPropAssignments" => Ok(Self::NoReactPropAssignments), "noReactSpecificProps" => Ok(Self::NoReactSpecificProps), "noRedeclare" => Ok(Self::NoRedeclare), "noRedundantAlt" => Ok(Self::NoRedundantAlt), @@ -1315,6 +1312,7 @@ impl std::str::FromStr for RuleName { "noShorthandPropertyOverrides" => Ok(Self::NoShorthandPropertyOverrides), "noShoutyConstants" => Ok(Self::NoShoutyConstants), "noSkippedTests" => Ok(Self::NoSkippedTests), + "noSolidDestructuredProps" => Ok(Self::NoSolidDestructuredProps), "noSparseArray" => Ok(Self::NoSparseArray), "noStaticElementInteractions" => Ok(Self::NoStaticElementInteractions), "noStaticOnlyClass" => Ok(Self::NoStaticOnlyClass), @@ -1354,7 +1352,6 @@ impl std::str::FromStr for RuleName { "noUnusedTemplateLiteral" => Ok(Self::NoUnusedTemplateLiteral), "noUnusedVariables" => Ok(Self::NoUnusedVariables), "noUnwantedPolyfillio" => Ok(Self::NoUnwantedPolyfillio), - "noUselessBackrefInRegex" => Ok(Self::NoUselessBackrefInRegex), "noUselessCatch" => Ok(Self::NoUselessCatch), "noUselessConstructor" => Ok(Self::NoUselessConstructor), "noUselessContinue" => Ok(Self::NoUselessContinue), @@ -1365,8 +1362,10 @@ impl std::str::FromStr for RuleName { "noUselessFragments" => Ok(Self::NoUselessFragments), "noUselessLabel" => Ok(Self::NoUselessLabel), "noUselessLoneBlockStatements" => Ok(Self::NoUselessLoneBlockStatements), + "noUselessRegexBackrefs" => Ok(Self::NoUselessRegexBackrefs), "noUselessRename" => Ok(Self::NoUselessRename), "noUselessStringConcat" => Ok(Self::NoUselessStringConcat), + "noUselessStringEscapes" => Ok(Self::NoUselessStringEscapes), "noUselessStringRaw" => Ok(Self::NoUselessStringRaw), "noUselessSwitchCase" => Ok(Self::NoUselessSwitchCase), "noUselessTernary" => Ok(Self::NoUselessTernary), @@ -1379,12 +1378,10 @@ impl std::str::FromStr for RuleName { "noVoid" => Ok(Self::NoVoid), "noVoidElementsWithChildren" => Ok(Self::NoVoidElementsWithChildren), "noVoidTypeReturn" => Ok(Self::NoVoidTypeReturn), - "noVueDataObjectDeclaration" => Ok(Self::NoVueDataObjectDeclaration), "noVueReservedKeys" => Ok(Self::NoVueReservedKeys), "noVueReservedProps" => Ok(Self::NoVueReservedProps), "noWith" => Ok(Self::NoWith), "noYodaExpression" => Ok(Self::NoYodaExpression), - "useAdjacentGetterSetter" => Ok(Self::UseAdjacentGetterSetter), "useAdjacentOverloadSignatures" => Ok(Self::UseAdjacentOverloadSignatures), "useAltText" => Ok(Self::UseAltText), "useAnchorContent" => Ok(Self::UseAnchorContent), @@ -1405,9 +1402,11 @@ impl std::str::FromStr for RuleName { "useConsistentArrayType" => Ok(Self::UseConsistentArrayType), "useConsistentBuiltinInstantiation" => Ok(Self::UseConsistentBuiltinInstantiation), "useConsistentCurlyBraces" => Ok(Self::UseConsistentCurlyBraces), + "useConsistentIterableCallbackReturnValues" => { + Ok(Self::UseConsistentIterableCallbackReturnValues) + } "useConsistentMemberAccessibility" => Ok(Self::UseConsistentMemberAccessibility), - "useConsistentObjectDefinition" => Ok(Self::UseConsistentObjectDefinition), - "useConsistentResponse" => Ok(Self::UseConsistentResponse), + "useConsistentObjectDefinitions" => Ok(Self::UseConsistentObjectDefinitions), "useConsistentTypeDefinitions" => Ok(Self::UseConsistentTypeDefinitions), "useConst" => Ok(Self::UseConst), "useDateNow" => Ok(Self::UseDateNow), @@ -1427,13 +1426,13 @@ impl std::str::FromStr for RuleName { "useFilenamingConvention" => Ok(Self::UseFilenamingConvention), "useFlatMap" => Ok(Self::UseFlatMap), "useFocusableInteractive" => Ok(Self::UseFocusableInteractive), - "useForComponent" => Ok(Self::UseForComponent), "useForOf" => Ok(Self::UseForOf), "useFragmentSyntax" => Ok(Self::UseFragmentSyntax), "useGenericFontNames" => Ok(Self::UseGenericFontNames), "useGetterReturn" => Ok(Self::UseGetterReturn), "useGoogleFontDisplay" => Ok(Self::UseGoogleFontDisplay), "useGoogleFontPreconnect" => Ok(Self::UseGoogleFontPreconnect), + "useGroupedAccessorPairs" => Ok(Self::UseGroupedAccessorPairs), "useGuardForIn" => Ok(Self::UseGuardForIn), "useHeadingContent" => Ok(Self::UseHeadingContent), "useHookAtTopLevel" => Ok(Self::UseHookAtTopLevel), @@ -1445,15 +1444,14 @@ impl std::str::FromStr for RuleName { "useIndexOf" => Ok(Self::UseIndexOf), "useIsArray" => Ok(Self::UseIsArray), "useIsNan" => Ok(Self::UseIsNan), - "useIterableCallbackReturn" => Ok(Self::UseIterableCallbackReturn), - "useJsonImportAttribute" => Ok(Self::UseJsonImportAttribute), + "useJsonImportAttributes" => Ok(Self::UseJsonImportAttributes), "useJsxKeyInIterable" => Ok(Self::UseJsxKeyInIterable), "useKeyWithClickEvents" => Ok(Self::UseKeyWithClickEvents), "useKeyWithMouseEvents" => Ok(Self::UseKeyWithMouseEvents), "useLiteralEnumMembers" => Ok(Self::UseLiteralEnumMembers), "useLiteralKeys" => Ok(Self::UseLiteralKeys), - "useMaxParams" => Ok(Self::UseMaxParams), "useMediaCaption" => Ok(Self::UseMediaCaption), + "useNamedGraphqlOperations" => Ok(Self::UseNamedGraphqlOperations), "useNamedOperation" => Ok(Self::UseNamedOperation), "useNamespaceKeyword" => Ok(Self::UseNamespaceKeyword), "useNamingConvention" => Ok(Self::UseNamingConvention), @@ -1478,7 +1476,9 @@ impl std::str::FromStr for RuleName { "useSimplifiedLogicExpression" => Ok(Self::UseSimplifiedLogicExpression), "useSingleJsDocAsterisk" => Ok(Self::UseSingleJsDocAsterisk), "useSingleVarDeclarator" => Ok(Self::UseSingleVarDeclarator), + "useSolidForComponent" => Ok(Self::UseSolidForComponent), "useSortedClasses" => Ok(Self::UseSortedClasses), + "useStaticResponseMethods" => Ok(Self::UseStaticResponseMethods), "useStrictMode" => Ok(Self::UseStrictMode), "useSymbolDescription" => Ok(Self::UseSymbolDescription), "useTemplate" => Ok(Self::UseTemplate), @@ -1486,7 +1486,7 @@ impl std::str::FromStr for RuleName { "useThrowOnlyError" => Ok(Self::UseThrowOnlyError), "useTopLevelRegex" => Ok(Self::UseTopLevelRegex), "useTrimStartEnd" => Ok(Self::UseTrimStartEnd), - "useUnifiedTypeSignature" => Ok(Self::UseUnifiedTypeSignature), + "useUnifiedTypeSignatures" => Ok(Self::UseUnifiedTypeSignatures), "useUniqueElementIds" => Ok(Self::UseUniqueElementIds), "useValidAnchor" => Ok(Self::UseValidAnchor), "useValidAriaProps" => Ok(Self::UseValidAriaProps), @@ -1796,7 +1796,7 @@ impl Rules { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct A11y { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Enforce that the accessKey attribute is not used on any HTML element."] # [serde (skip_serializing_if = "Option::is_none")] pub no_access_key : Option < RuleFixConfiguration < biome_rule_options :: no_access_key :: NoAccessKeyOptions >> , # [doc = "Enforce that aria-hidden=\"true\" is not set on focusable elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_aria_hidden_on_focusable : Option < RuleFixConfiguration < biome_rule_options :: no_aria_hidden_on_focusable :: NoAriaHiddenOnFocusableOptions >> , # [doc = "Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes."] # [serde (skip_serializing_if = "Option::is_none")] pub no_aria_unsupported_elements : Option < RuleFixConfiguration < biome_rule_options :: no_aria_unsupported_elements :: NoAriaUnsupportedElementsOptions >> , # [doc = "Enforce that autoFocus prop is not used on elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_autofocus : Option < RuleFixConfiguration < biome_rule_options :: no_autofocus :: NoAutofocusOptions >> , # [doc = "Enforces that no distracting elements are used."] # [serde (skip_serializing_if = "Option::is_none")] pub no_distracting_elements : Option < RuleFixConfiguration < biome_rule_options :: no_distracting_elements :: NoDistractingElementsOptions >> , # [doc = "The scope prop should be used only on \\ elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_header_scope : Option < RuleFixConfiguration < biome_rule_options :: no_header_scope :: NoHeaderScopeOptions >> , # [doc = "Enforce that non-interactive ARIA roles are not assigned to interactive HTML elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_interactive_element_to_noninteractive_role : Option < RuleFixConfiguration < biome_rule_options :: no_interactive_element_to_noninteractive_role :: NoInteractiveElementToNoninteractiveRoleOptions >> , # [doc = "Enforce that a label element or component has a text label and an associated input."] # [serde (skip_serializing_if = "Option::is_none")] pub no_label_without_control : Option < RuleConfiguration < biome_rule_options :: no_label_without_control :: NoLabelWithoutControlOptions >> , # [doc = "Enforce that interactive ARIA roles are not assigned to non-interactive HTML elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_noninteractive_element_to_interactive_role : Option < RuleFixConfiguration < biome_rule_options :: no_noninteractive_element_to_interactive_role :: NoNoninteractiveElementToInteractiveRoleOptions >> , # [doc = "Enforce that tabIndex is not assigned to non-interactive HTML elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_noninteractive_tabindex : Option < RuleFixConfiguration < biome_rule_options :: no_noninteractive_tabindex :: NoNoninteractiveTabindexOptions >> , # [doc = "Prevent the usage of positive integers on tabIndex property"] # [serde (skip_serializing_if = "Option::is_none")] pub no_positive_tabindex : Option < RuleFixConfiguration < biome_rule_options :: no_positive_tabindex :: NoPositiveTabindexOptions >> , # [doc = "Enforce img alt prop does not contain the word \"image\", \"picture\", or \"photo\"."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_alt : Option < RuleConfiguration < biome_rule_options :: no_redundant_alt :: NoRedundantAltOptions >> , # [doc = "Enforce explicit role property is not the same as implicit/default role property on an element."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_roles : Option < RuleFixConfiguration < biome_rule_options :: no_redundant_roles :: NoRedundantRolesOptions >> , # [doc = "Enforce that static, visible elements (such as \\
) that have click handlers use the valid role attribute."] # [serde (skip_serializing_if = "Option::is_none")] pub no_static_element_interactions : Option < RuleConfiguration < biome_rule_options :: no_static_element_interactions :: NoStaticElementInteractionsOptions >> , # [doc = "Enforces the usage of the title element for the svg element."] # [serde (skip_serializing_if = "Option::is_none")] pub no_svg_without_title : Option < RuleConfiguration < biome_rule_options :: no_svg_without_title :: NoSvgWithoutTitleOptions >> , # [doc = "Enforce that all elements that require alternative text have meaningful information to relay back to the end user."] # [serde (skip_serializing_if = "Option::is_none")] pub use_alt_text : Option < RuleConfiguration < biome_rule_options :: use_alt_text :: UseAltTextOptions >> , # [doc = "Enforce that anchors have content and that the content is accessible to screen readers."] # [serde (skip_serializing_if = "Option::is_none")] pub use_anchor_content : Option < RuleFixConfiguration < biome_rule_options :: use_anchor_content :: UseAnchorContentOptions >> , # [doc = "Enforce that tabIndex is assigned to non-interactive HTML elements with aria-activedescendant."] # [serde (skip_serializing_if = "Option::is_none")] pub use_aria_activedescendant_with_tabindex : Option < RuleFixConfiguration < biome_rule_options :: use_aria_activedescendant_with_tabindex :: UseAriaActivedescendantWithTabindexOptions >> , # [doc = "Enforce that elements with ARIA roles must have all required ARIA attributes for that role."] # [serde (skip_serializing_if = "Option::is_none")] pub use_aria_props_for_role : Option < RuleConfiguration < biome_rule_options :: use_aria_props_for_role :: UseAriaPropsForRoleOptions >> , # [doc = "Enforce that ARIA properties are valid for the roles that are supported by the element."] # [serde (skip_serializing_if = "Option::is_none")] pub use_aria_props_supported_by_role : Option < RuleConfiguration < biome_rule_options :: use_aria_props_supported_by_role :: UseAriaPropsSupportedByRoleOptions >> , # [doc = "Enforces the usage of the attribute type for the element button"] # [serde (skip_serializing_if = "Option::is_none")] pub use_button_type : Option < RuleConfiguration < biome_rule_options :: use_button_type :: UseButtonTypeOptions >> , # [doc = "Elements with an interactive role and interaction handlers must be focusable."] # [serde (skip_serializing_if = "Option::is_none")] pub use_focusable_interactive : Option < RuleConfiguration < biome_rule_options :: use_focusable_interactive :: UseFocusableInteractiveOptions >> , # [doc = "Disallow a missing generic family keyword within font families."] # [serde (skip_serializing_if = "Option::is_none")] pub use_generic_font_names : Option < RuleConfiguration < biome_rule_options :: use_generic_font_names :: UseGenericFontNamesOptions >> , # [doc = "Enforce that heading elements (h1, h2, etc.) have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the aria-hidden prop."] # [serde (skip_serializing_if = "Option::is_none")] pub use_heading_content : Option < RuleConfiguration < biome_rule_options :: use_heading_content :: UseHeadingContentOptions >> , # [doc = "Enforce that html element has lang attribute."] # [serde (skip_serializing_if = "Option::is_none")] pub use_html_lang : Option < RuleConfiguration < biome_rule_options :: use_html_lang :: UseHtmlLangOptions >> , # [doc = "Enforces the usage of the attribute title for the element iframe."] # [serde (skip_serializing_if = "Option::is_none")] pub use_iframe_title : Option < RuleConfiguration < biome_rule_options :: use_iframe_title :: UseIframeTitleOptions >> , # [doc = "Enforce onClick is accompanied by at least one of the following: onKeyUp, onKeyDown, onKeyPress."] # [serde (skip_serializing_if = "Option::is_none")] pub use_key_with_click_events : Option < RuleConfiguration < biome_rule_options :: use_key_with_click_events :: UseKeyWithClickEventsOptions >> , # [doc = "Enforce onMouseOver / onMouseOut are accompanied by onFocus / onBlur."] # [serde (skip_serializing_if = "Option::is_none")] pub use_key_with_mouse_events : Option < RuleConfiguration < biome_rule_options :: use_key_with_mouse_events :: UseKeyWithMouseEventsOptions >> , # [doc = "Enforces that audio and video elements must have a track for captions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_media_caption : Option < RuleConfiguration < biome_rule_options :: use_media_caption :: UseMediaCaptionOptions >> , # [doc = "It detects the use of role attributes in JSX elements and suggests using semantic elements instead."] # [serde (skip_serializing_if = "Option::is_none")] pub use_semantic_elements : Option < RuleConfiguration < biome_rule_options :: use_semantic_elements :: UseSemanticElementsOptions >> , # [doc = "Enforce that all anchors are valid, and they are navigable elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_anchor : Option < RuleConfiguration < biome_rule_options :: use_valid_anchor :: UseValidAnchorOptions >> , # [doc = "Ensures that ARIA properties aria-* are all valid."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_aria_props : Option < RuleFixConfiguration < biome_rule_options :: use_valid_aria_props :: UseValidAriaPropsOptions >> , # [doc = "Elements with ARIA roles must use a valid, non-abstract ARIA role."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_aria_role : Option < RuleFixConfiguration < biome_rule_options :: use_valid_aria_role :: UseValidAriaRoleOptions >> , # [doc = "Enforce that ARIA state and property values are valid."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_aria_values : Option < RuleConfiguration < biome_rule_options :: use_valid_aria_values :: UseValidAriaValuesOptions >> , # [doc = "Use valid values for the autocomplete attribute on input elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_autocomplete : Option < RuleConfiguration < biome_rule_options :: use_valid_autocomplete :: UseValidAutocompleteOptions >> , # [doc = "Ensure that the attribute passed to the lang attribute is a correct ISO language and/or country."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_lang : Option < RuleConfiguration < biome_rule_options :: use_valid_lang :: UseValidLangOptions >> } +pub struct A11y { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Enforce that the accessKey attribute is not used on any HTML element."] # [serde (skip_serializing_if = "Option::is_none")] pub no_access_key : Option < RuleFixConfiguration < biome_rule_options :: no_access_key :: NoAccessKeyOptions >> , # [doc = "Enforce that aria-hidden=\"true\" is not set on focusable elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_aria_hidden_on_focusable : Option < RuleFixConfiguration < biome_rule_options :: no_aria_hidden_on_focusable :: NoAriaHiddenOnFocusableOptions >> , # [doc = "Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes."] # [serde (skip_serializing_if = "Option::is_none")] pub no_aria_unsupported_elements : Option < RuleFixConfiguration < biome_rule_options :: no_aria_unsupported_elements :: NoAriaUnsupportedElementsOptions >> , # [doc = "Enforce that autoFocus prop is not used on elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_autofocus : Option < RuleFixConfiguration < biome_rule_options :: no_autofocus :: NoAutofocusOptions >> , # [doc = "Enforces that no distracting elements are used."] # [serde (skip_serializing_if = "Option::is_none")] pub no_distracting_elements : Option < RuleFixConfiguration < biome_rule_options :: no_distracting_elements :: NoDistractingElementsOptions >> , # [doc = "The scope prop should be used only on \\ elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_header_scope : Option < RuleFixConfiguration < biome_rule_options :: no_header_scope :: NoHeaderScopeOptions >> , # [doc = "Enforce that non-interactive ARIA roles are not assigned to interactive HTML elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_interactive_element_to_noninteractive_role : Option < RuleFixConfiguration < biome_rule_options :: no_interactive_element_to_noninteractive_role :: NoInteractiveElementToNoninteractiveRoleOptions >> , # [doc = "Enforce that a label element or component has a text label and an associated input."] # [serde (skip_serializing_if = "Option::is_none")] pub no_label_without_control : Option < RuleConfiguration < biome_rule_options :: no_label_without_control :: NoLabelWithoutControlOptions >> , # [doc = "Disallow use event handlers on non-interactive elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_noninteractive_element_interactions : Option < RuleConfiguration < biome_rule_options :: no_noninteractive_element_interactions :: NoNoninteractiveElementInteractionsOptions >> , # [doc = "Enforce that interactive ARIA roles are not assigned to non-interactive HTML elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_noninteractive_element_to_interactive_role : Option < RuleFixConfiguration < biome_rule_options :: no_noninteractive_element_to_interactive_role :: NoNoninteractiveElementToInteractiveRoleOptions >> , # [doc = "Enforce that tabIndex is not assigned to non-interactive HTML elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_noninteractive_tabindex : Option < RuleFixConfiguration < biome_rule_options :: no_noninteractive_tabindex :: NoNoninteractiveTabindexOptions >> , # [doc = "Prevent the usage of positive integers on tabIndex property"] # [serde (skip_serializing_if = "Option::is_none")] pub no_positive_tabindex : Option < RuleFixConfiguration < biome_rule_options :: no_positive_tabindex :: NoPositiveTabindexOptions >> , # [doc = "Enforce img alt prop does not contain the word \"image\", \"picture\", or \"photo\"."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_alt : Option < RuleConfiguration < biome_rule_options :: no_redundant_alt :: NoRedundantAltOptions >> , # [doc = "Enforce explicit role property is not the same as implicit/default role property on an element."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_roles : Option < RuleFixConfiguration < biome_rule_options :: no_redundant_roles :: NoRedundantRolesOptions >> , # [doc = "Enforce that static, visible elements (such as \\
) that have click handlers use the valid role attribute."] # [serde (skip_serializing_if = "Option::is_none")] pub no_static_element_interactions : Option < RuleConfiguration < biome_rule_options :: no_static_element_interactions :: NoStaticElementInteractionsOptions >> , # [doc = "Enforces the usage of the title element for the svg element."] # [serde (skip_serializing_if = "Option::is_none")] pub no_svg_without_title : Option < RuleConfiguration < biome_rule_options :: no_svg_without_title :: NoSvgWithoutTitleOptions >> , # [doc = "Enforce that all elements that require alternative text have meaningful information to relay back to the end user."] # [serde (skip_serializing_if = "Option::is_none")] pub use_alt_text : Option < RuleConfiguration < biome_rule_options :: use_alt_text :: UseAltTextOptions >> , # [doc = "Enforce that anchors have content and that the content is accessible to screen readers."] # [serde (skip_serializing_if = "Option::is_none")] pub use_anchor_content : Option < RuleFixConfiguration < biome_rule_options :: use_anchor_content :: UseAnchorContentOptions >> , # [doc = "Enforce that tabIndex is assigned to non-interactive HTML elements with aria-activedescendant."] # [serde (skip_serializing_if = "Option::is_none")] pub use_aria_activedescendant_with_tabindex : Option < RuleFixConfiguration < biome_rule_options :: use_aria_activedescendant_with_tabindex :: UseAriaActivedescendantWithTabindexOptions >> , # [doc = "Enforce that elements with ARIA roles must have all required ARIA attributes for that role."] # [serde (skip_serializing_if = "Option::is_none")] pub use_aria_props_for_role : Option < RuleConfiguration < biome_rule_options :: use_aria_props_for_role :: UseAriaPropsForRoleOptions >> , # [doc = "Enforce that ARIA properties are valid for the roles that are supported by the element."] # [serde (skip_serializing_if = "Option::is_none")] pub use_aria_props_supported_by_role : Option < RuleConfiguration < biome_rule_options :: use_aria_props_supported_by_role :: UseAriaPropsSupportedByRoleOptions >> , # [doc = "Enforces the usage of the attribute type for the element button"] # [serde (skip_serializing_if = "Option::is_none")] pub use_button_type : Option < RuleConfiguration < biome_rule_options :: use_button_type :: UseButtonTypeOptions >> , # [doc = "Elements with an interactive role and interaction handlers must be focusable."] # [serde (skip_serializing_if = "Option::is_none")] pub use_focusable_interactive : Option < RuleConfiguration < biome_rule_options :: use_focusable_interactive :: UseFocusableInteractiveOptions >> , # [doc = "Disallow a missing generic family keyword within font families."] # [serde (skip_serializing_if = "Option::is_none")] pub use_generic_font_names : Option < RuleConfiguration < biome_rule_options :: use_generic_font_names :: UseGenericFontNamesOptions >> , # [doc = "Enforce that heading elements (h1, h2, etc.) have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the aria-hidden prop."] # [serde (skip_serializing_if = "Option::is_none")] pub use_heading_content : Option < RuleConfiguration < biome_rule_options :: use_heading_content :: UseHeadingContentOptions >> , # [doc = "Enforce that html element has lang attribute."] # [serde (skip_serializing_if = "Option::is_none")] pub use_html_lang : Option < RuleConfiguration < biome_rule_options :: use_html_lang :: UseHtmlLangOptions >> , # [doc = "Enforces the usage of the attribute title for the element iframe."] # [serde (skip_serializing_if = "Option::is_none")] pub use_iframe_title : Option < RuleConfiguration < biome_rule_options :: use_iframe_title :: UseIframeTitleOptions >> , # [doc = "Enforce onClick is accompanied by at least one of the following: onKeyUp, onKeyDown, onKeyPress."] # [serde (skip_serializing_if = "Option::is_none")] pub use_key_with_click_events : Option < RuleConfiguration < biome_rule_options :: use_key_with_click_events :: UseKeyWithClickEventsOptions >> , # [doc = "Enforce onMouseOver / onMouseOut are accompanied by onFocus / onBlur."] # [serde (skip_serializing_if = "Option::is_none")] pub use_key_with_mouse_events : Option < RuleConfiguration < biome_rule_options :: use_key_with_mouse_events :: UseKeyWithMouseEventsOptions >> , # [doc = "Enforces that audio and video elements must have a track for captions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_media_caption : Option < RuleConfiguration < biome_rule_options :: use_media_caption :: UseMediaCaptionOptions >> , # [doc = "It detects the use of role attributes in JSX elements and suggests using semantic elements instead."] # [serde (skip_serializing_if = "Option::is_none")] pub use_semantic_elements : Option < RuleConfiguration < biome_rule_options :: use_semantic_elements :: UseSemanticElementsOptions >> , # [doc = "Enforce that all anchors are valid, and they are navigable elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_anchor : Option < RuleConfiguration < biome_rule_options :: use_valid_anchor :: UseValidAnchorOptions >> , # [doc = "Ensures that ARIA properties aria-* are all valid."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_aria_props : Option < RuleFixConfiguration < biome_rule_options :: use_valid_aria_props :: UseValidAriaPropsOptions >> , # [doc = "Elements with ARIA roles must use a valid, non-abstract ARIA role."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_aria_role : Option < RuleFixConfiguration < biome_rule_options :: use_valid_aria_role :: UseValidAriaRoleOptions >> , # [doc = "Enforce that ARIA state and property values are valid."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_aria_values : Option < RuleConfiguration < biome_rule_options :: use_valid_aria_values :: UseValidAriaValuesOptions >> , # [doc = "Use valid values for the autocomplete attribute on input elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_autocomplete : Option < RuleConfiguration < biome_rule_options :: use_valid_autocomplete :: UseValidAutocompleteOptions >> , # [doc = "Ensure that the attribute passed to the lang attribute is a correct ISO language and/or country."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_lang : Option < RuleConfiguration < biome_rule_options :: use_valid_lang :: UseValidLangOptions >> } impl A11y { const GROUP_NAME: &'static str = "a11y"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -1808,6 +1808,7 @@ impl A11y { "noHeaderScope", "noInteractiveElementToNoninteractiveRole", "noLabelWithoutControl", + "noNoninteractiveElementInteractions", "noNoninteractiveElementToInteractiveRole", "noNoninteractiveTabindex", "noPositiveTabindex", @@ -1846,7 +1847,6 @@ impl A11y { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11]), @@ -1874,6 +1874,7 @@ impl A11y { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -1912,6 +1913,7 @@ impl A11y { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36]), ]; } impl RuleGroupExt for A11y { @@ -1963,146 +1965,151 @@ impl RuleGroupExt for A11y { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_noninteractive_element_to_interactive_role.as_ref() { + if let Some(rule) = self.no_noninteractive_element_interactions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_noninteractive_tabindex.as_ref() { + if let Some(rule) = self.no_noninteractive_element_to_interactive_role.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_positive_tabindex.as_ref() { + if let Some(rule) = self.no_noninteractive_tabindex.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_redundant_alt.as_ref() { + if let Some(rule) = self.no_positive_tabindex.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_redundant_roles.as_ref() { + if let Some(rule) = self.no_redundant_alt.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_static_element_interactions.as_ref() { + if let Some(rule) = self.no_redundant_roles.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_svg_without_title.as_ref() { + if let Some(rule) = self.no_static_element_interactions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.use_alt_text.as_ref() { + if let Some(rule) = self.no_svg_without_title.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.use_anchor_content.as_ref() { + if let Some(rule) = self.use_alt_text.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.use_aria_activedescendant_with_tabindex.as_ref() { + if let Some(rule) = self.use_anchor_content.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.use_aria_props_for_role.as_ref() { + if let Some(rule) = self.use_aria_activedescendant_with_tabindex.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { + if let Some(rule) = self.use_aria_props_for_role.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.use_button_type.as_ref() { + if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.use_focusable_interactive.as_ref() { + if let Some(rule) = self.use_button_type.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.use_generic_font_names.as_ref() { + if let Some(rule) = self.use_focusable_interactive.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.use_heading_content.as_ref() { + if let Some(rule) = self.use_generic_font_names.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.use_html_lang.as_ref() { + if let Some(rule) = self.use_heading_content.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.use_iframe_title.as_ref() { + if let Some(rule) = self.use_html_lang.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.use_key_with_click_events.as_ref() { + if let Some(rule) = self.use_iframe_title.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.use_key_with_mouse_events.as_ref() { + if let Some(rule) = self.use_key_with_click_events.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.use_media_caption.as_ref() { + if let Some(rule) = self.use_key_with_mouse_events.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.use_semantic_elements.as_ref() { + if let Some(rule) = self.use_media_caption.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.use_valid_anchor.as_ref() { + if let Some(rule) = self.use_semantic_elements.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.use_valid_aria_props.as_ref() { + if let Some(rule) = self.use_valid_anchor.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.use_valid_aria_role.as_ref() { + if let Some(rule) = self.use_valid_aria_props.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.use_valid_aria_values.as_ref() { + if let Some(rule) = self.use_valid_aria_role.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.use_valid_autocomplete.as_ref() { + if let Some(rule) = self.use_valid_aria_values.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.use_valid_lang.as_ref() { + if let Some(rule) = self.use_valid_autocomplete.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } + if let Some(rule) = self.use_valid_lang.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); + } + } index_set } fn get_disabled_rules(&self) -> FxHashSet> { @@ -2147,146 +2154,151 @@ impl RuleGroupExt for A11y { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_noninteractive_element_to_interactive_role.as_ref() { + if let Some(rule) = self.no_noninteractive_element_interactions.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_noninteractive_tabindex.as_ref() { + if let Some(rule) = self.no_noninteractive_element_to_interactive_role.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_positive_tabindex.as_ref() { + if let Some(rule) = self.no_noninteractive_tabindex.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_redundant_alt.as_ref() { + if let Some(rule) = self.no_positive_tabindex.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_redundant_roles.as_ref() { + if let Some(rule) = self.no_redundant_alt.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_static_element_interactions.as_ref() { + if let Some(rule) = self.no_redundant_roles.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_svg_without_title.as_ref() { + if let Some(rule) = self.no_static_element_interactions.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.use_alt_text.as_ref() { + if let Some(rule) = self.no_svg_without_title.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.use_anchor_content.as_ref() { + if let Some(rule) = self.use_alt_text.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.use_aria_activedescendant_with_tabindex.as_ref() { + if let Some(rule) = self.use_anchor_content.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.use_aria_props_for_role.as_ref() { + if let Some(rule) = self.use_aria_activedescendant_with_tabindex.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { + if let Some(rule) = self.use_aria_props_for_role.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.use_button_type.as_ref() { + if let Some(rule) = self.use_aria_props_supported_by_role.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.use_focusable_interactive.as_ref() { + if let Some(rule) = self.use_button_type.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.use_generic_font_names.as_ref() { + if let Some(rule) = self.use_focusable_interactive.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.use_heading_content.as_ref() { + if let Some(rule) = self.use_generic_font_names.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.use_html_lang.as_ref() { + if let Some(rule) = self.use_heading_content.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.use_iframe_title.as_ref() { + if let Some(rule) = self.use_html_lang.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.use_key_with_click_events.as_ref() { + if let Some(rule) = self.use_iframe_title.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.use_key_with_mouse_events.as_ref() { + if let Some(rule) = self.use_key_with_click_events.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.use_media_caption.as_ref() { + if let Some(rule) = self.use_key_with_mouse_events.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.use_semantic_elements.as_ref() { + if let Some(rule) = self.use_media_caption.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.use_valid_anchor.as_ref() { + if let Some(rule) = self.use_semantic_elements.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.use_valid_aria_props.as_ref() { + if let Some(rule) = self.use_valid_anchor.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.use_valid_aria_role.as_ref() { + if let Some(rule) = self.use_valid_aria_props.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.use_valid_aria_values.as_ref() { + if let Some(rule) = self.use_valid_aria_role.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.use_valid_autocomplete.as_ref() { + if let Some(rule) = self.use_valid_aria_values.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.use_valid_lang.as_ref() { + if let Some(rule) = self.use_valid_autocomplete.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } + if let Some(rule) = self.use_valid_lang.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); + } + } index_set } #[doc = r" Checks if, given a rule name, matches one of the rules contained in this category"] @@ -2349,6 +2361,10 @@ impl RuleGroupExt for A11y { .no_label_without_control .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noNoninteractiveElementInteractions" => self + .no_noninteractive_element_interactions + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noNoninteractiveElementToInteractiveRole" => self .no_noninteractive_element_to_interactive_role .as_ref() @@ -2477,6 +2493,7 @@ impl From for A11y { no_header_scope: Some(value.into()), no_interactive_element_to_noninteractive_role: Some(value.into()), no_label_without_control: Some(value.into()), + no_noninteractive_element_interactions: Some(value.into()), no_noninteractive_element_to_interactive_role: Some(value.into()), no_noninteractive_tabindex: Some(value.into()), no_positive_tabindex: Some(value.into()), @@ -2512,7 +2529,7 @@ impl From for A11y { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Complexity { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow unclear usage of consecutive space characters in regular expression literals"] # [serde (skip_serializing_if = "Option::is_none")] pub no_adjacent_spaces_in_regex : Option < RuleFixConfiguration < biome_rule_options :: no_adjacent_spaces_in_regex :: NoAdjacentSpacesInRegexOptions >> , # [doc = "Disallow the use of arguments."] # [serde (skip_serializing_if = "Option::is_none")] pub no_arguments : Option < RuleConfiguration < biome_rule_options :: no_arguments :: NoArgumentsOptions >> , # [doc = "Disallow primitive type aliases and misleading types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_banned_types : Option < RuleFixConfiguration < biome_rule_options :: no_banned_types :: NoBannedTypesOptions >> , # [doc = "Disallow comma operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_comma_operator : Option < RuleConfiguration < biome_rule_options :: no_comma_operator :: NoCommaOperatorOptions >> , # [doc = "Disallow empty type parameters in type aliases and interfaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_type_parameters : Option < RuleConfiguration < biome_rule_options :: no_empty_type_parameters :: NoEmptyTypeParametersOptions >> , # [doc = "Disallow functions that exceed a given Cognitive Complexity score."] # [serde (skip_serializing_if = "Option::is_none")] pub no_excessive_cognitive_complexity : Option < RuleConfiguration < biome_rule_options :: no_excessive_cognitive_complexity :: NoExcessiveCognitiveComplexityOptions >> , # [doc = "This rule enforces a maximum depth to nested describe() in test files."] # [serde (skip_serializing_if = "Option::is_none")] pub no_excessive_nested_test_suites : Option < RuleConfiguration < biome_rule_options :: no_excessive_nested_test_suites :: NoExcessiveNestedTestSuitesOptions >> , # [doc = "Disallow unnecessary boolean casts"] # [serde (skip_serializing_if = "Option::is_none")] pub no_extra_boolean_cast : Option < RuleFixConfiguration < biome_rule_options :: no_extra_boolean_cast :: NoExtraBooleanCastOptions >> , # [doc = "Disallow to use unnecessary callback on flatMap."] # [serde (skip_serializing_if = "Option::is_none")] pub no_flat_map_identity : Option < RuleFixConfiguration < biome_rule_options :: no_flat_map_identity :: NoFlatMapIdentityOptions >> , # [doc = "Prefer for...of statement instead of Array.forEach."] # [serde (skip_serializing_if = "Option::is_none")] pub no_for_each : Option < RuleConfiguration < biome_rule_options :: no_for_each :: NoForEachOptions >> , # [doc = "This rule reports when a class has no non-static members, such as for a class used exclusively as a static namespace."] # [serde (skip_serializing_if = "Option::is_none")] pub no_static_only_class : Option < RuleConfiguration < biome_rule_options :: no_static_only_class :: NoStaticOnlyClassOptions >> , # [doc = "Disallow this and super in static contexts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_this_in_static : Option < RuleFixConfiguration < biome_rule_options :: no_this_in_static :: NoThisInStaticOptions >> , # [doc = "Disallow unnecessary catch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_catch : Option < RuleFixConfiguration < biome_rule_options :: no_useless_catch :: NoUselessCatchOptions >> , # [doc = "Disallow unnecessary constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_constructor : Option < RuleFixConfiguration < biome_rule_options :: no_useless_constructor :: NoUselessConstructorOptions >> , # [doc = "Avoid using unnecessary continue."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_continue : Option < RuleFixConfiguration < biome_rule_options :: no_useless_continue :: NoUselessContinueOptions >> , # [doc = "Disallow empty exports that don't change anything in a module file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_empty_export : Option < RuleFixConfiguration < biome_rule_options :: no_useless_empty_export :: NoUselessEmptyExportOptions >> , # [doc = "Disallow unnecessary escape sequence in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_escape_in_regex : Option < RuleFixConfiguration < biome_rule_options :: no_useless_escape_in_regex :: NoUselessEscapeInRegexOptions >> , # [doc = "Disallow unnecessary fragments"] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_fragments : Option < RuleFixConfiguration < biome_rule_options :: no_useless_fragments :: NoUselessFragmentsOptions >> , # [doc = "Disallow unnecessary labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_label : Option < RuleFixConfiguration < biome_rule_options :: no_useless_label :: NoUselessLabelOptions >> , # [doc = "Disallow unnecessary nested block statements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_lone_block_statements : Option < RuleFixConfiguration < biome_rule_options :: no_useless_lone_block_statements :: NoUselessLoneBlockStatementsOptions >> , # [doc = "Disallow renaming import, export, and destructured assignments to the same name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_rename : Option < RuleFixConfiguration < biome_rule_options :: no_useless_rename :: NoUselessRenameOptions >> , # [doc = "Disallow unnecessary concatenation of string or template literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_string_concat : Option < RuleFixConfiguration < biome_rule_options :: no_useless_string_concat :: NoUselessStringConcatOptions >> , # [doc = "Disallow unnecessary String.raw function in template string literals without any escape sequence."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_string_raw : Option < RuleConfiguration < biome_rule_options :: no_useless_string_raw :: NoUselessStringRawOptions >> , # [doc = "Disallow useless case in switch statements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_switch_case : Option < RuleFixConfiguration < biome_rule_options :: no_useless_switch_case :: NoUselessSwitchCaseOptions >> , # [doc = "Disallow ternary operators when simpler alternatives exist."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_ternary : Option < RuleFixConfiguration < biome_rule_options :: no_useless_ternary :: NoUselessTernaryOptions >> , # [doc = "Disallow useless this aliasing."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_this_alias : Option < RuleFixConfiguration < biome_rule_options :: no_useless_this_alias :: NoUselessThisAliasOptions >> , # [doc = "Disallow using any or unknown as type constraint."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_type_constraint : Option < RuleFixConfiguration < biome_rule_options :: no_useless_type_constraint :: NoUselessTypeConstraintOptions >> , # [doc = "Disallow initializing variables to undefined."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_undefined_initialization : Option < RuleFixConfiguration < biome_rule_options :: no_useless_undefined_initialization :: NoUselessUndefinedInitializationOptions >> , # [doc = "Disallow the use of void operators, which is not a familiar operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_void : Option < RuleConfiguration < biome_rule_options :: no_void :: NoVoidOptions >> , # [doc = "Use arrow functions over function expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_arrow_function : Option < RuleFixConfiguration < biome_rule_options :: use_arrow_function :: UseArrowFunctionOptions >> , # [doc = "Use Date.now() to get the number of milliseconds since the Unix Epoch."] # [serde (skip_serializing_if = "Option::is_none")] pub use_date_now : Option < RuleFixConfiguration < biome_rule_options :: use_date_now :: UseDateNowOptions >> , # [doc = "Promotes the use of .flatMap() when map().flat() are used together."] # [serde (skip_serializing_if = "Option::is_none")] pub use_flat_map : Option < RuleFixConfiguration < biome_rule_options :: use_flat_map :: UseFlatMapOptions >> , # [doc = "Enforce the usage of a literal access to properties over computed property access."] # [serde (skip_serializing_if = "Option::is_none")] pub use_literal_keys : Option < RuleFixConfiguration < biome_rule_options :: use_literal_keys :: UseLiteralKeysOptions >> , # [doc = "Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals"] # [serde (skip_serializing_if = "Option::is_none")] pub use_numeric_literals : Option < RuleFixConfiguration < biome_rule_options :: use_numeric_literals :: UseNumericLiteralsOptions >> , # [doc = "Enforce using concise optional chain instead of chained logical expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_optional_chain : Option < RuleFixConfiguration < biome_rule_options :: use_optional_chain :: UseOptionalChainOptions >> , # [doc = "Enforce the use of the regular expression literals instead of the RegExp constructor if possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_regex_literals : Option < RuleFixConfiguration < biome_rule_options :: use_regex_literals :: UseRegexLiteralsOptions >> , # [doc = "Disallow number literal object member names which are not base 10 or use underscore as separator."] # [serde (skip_serializing_if = "Option::is_none")] pub use_simple_number_keys : Option < RuleFixConfiguration < biome_rule_options :: use_simple_number_keys :: UseSimpleNumberKeysOptions >> , # [doc = "Discard redundant terms from logical expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_simplified_logic_expression : Option < RuleFixConfiguration < biome_rule_options :: use_simplified_logic_expression :: UseSimplifiedLogicExpressionOptions >> , # [doc = "Enforce the use of while loops instead of for loops when the initializer and update expressions are not needed."] # [serde (skip_serializing_if = "Option::is_none")] pub use_while : Option < RuleFixConfiguration < biome_rule_options :: use_while :: UseWhileOptions >> } +pub struct Complexity { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow unclear usage of consecutive space characters in regular expression literals"] # [serde (skip_serializing_if = "Option::is_none")] pub no_adjacent_spaces_in_regex : Option < RuleFixConfiguration < biome_rule_options :: no_adjacent_spaces_in_regex :: NoAdjacentSpacesInRegexOptions >> , # [doc = "Disallow the use of arguments."] # [serde (skip_serializing_if = "Option::is_none")] pub no_arguments : Option < RuleConfiguration < biome_rule_options :: no_arguments :: NoArgumentsOptions >> , # [doc = "Disallow primitive type aliases and misleading types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_banned_types : Option < RuleFixConfiguration < biome_rule_options :: no_banned_types :: NoBannedTypesOptions >> , # [doc = "Disallow comma operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_comma_operator : Option < RuleConfiguration < biome_rule_options :: no_comma_operator :: NoCommaOperatorOptions >> , # [doc = "Disallow empty type parameters in type aliases and interfaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_type_parameters : Option < RuleConfiguration < biome_rule_options :: no_empty_type_parameters :: NoEmptyTypeParametersOptions >> , # [doc = "Disallow functions that exceed a given Cognitive Complexity score."] # [serde (skip_serializing_if = "Option::is_none")] pub no_excessive_cognitive_complexity : Option < RuleConfiguration < biome_rule_options :: no_excessive_cognitive_complexity :: NoExcessiveCognitiveComplexityOptions >> , # [doc = "Restrict the number of lines of code in a function."] # [serde (skip_serializing_if = "Option::is_none")] pub no_excessive_lines_per_function : Option < RuleConfiguration < biome_rule_options :: no_excessive_lines_per_function :: NoExcessiveLinesPerFunctionOptions >> , # [doc = "This rule enforces a maximum depth to nested describe() in test files."] # [serde (skip_serializing_if = "Option::is_none")] pub no_excessive_nested_test_suites : Option < RuleConfiguration < biome_rule_options :: no_excessive_nested_test_suites :: NoExcessiveNestedTestSuitesOptions >> , # [doc = "Disallow unnecessary boolean casts"] # [serde (skip_serializing_if = "Option::is_none")] pub no_extra_boolean_cast : Option < RuleFixConfiguration < biome_rule_options :: no_extra_boolean_cast :: NoExtraBooleanCastOptions >> , # [doc = "Disallow to use unnecessary callback on flatMap."] # [serde (skip_serializing_if = "Option::is_none")] pub no_flat_map_identity : Option < RuleFixConfiguration < biome_rule_options :: no_flat_map_identity :: NoFlatMapIdentityOptions >> , # [doc = "Prefer for...of statement instead of Array.forEach."] # [serde (skip_serializing_if = "Option::is_none")] pub no_for_each : Option < RuleConfiguration < biome_rule_options :: no_for_each :: NoForEachOptions >> , # [doc = "Disallow shorthand type conversions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_coercions : Option < RuleFixConfiguration < biome_rule_options :: no_implicit_coercions :: NoImplicitCoercionsOptions >> , # [doc = "Disallow the use of the !important style."] # [serde (skip_serializing_if = "Option::is_none")] pub no_important_styles : Option < RuleFixConfiguration < biome_rule_options :: no_important_styles :: NoImportantStylesOptions >> , # [doc = "This rule reports when a class has no non-static members, such as for a class used exclusively as a static namespace."] # [serde (skip_serializing_if = "Option::is_none")] pub no_static_only_class : Option < RuleConfiguration < biome_rule_options :: no_static_only_class :: NoStaticOnlyClassOptions >> , # [doc = "Disallow this and super in static contexts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_this_in_static : Option < RuleFixConfiguration < biome_rule_options :: no_this_in_static :: NoThisInStaticOptions >> , # [doc = "Disallow unnecessary catch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_catch : Option < RuleFixConfiguration < biome_rule_options :: no_useless_catch :: NoUselessCatchOptions >> , # [doc = "Disallow unnecessary constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_constructor : Option < RuleFixConfiguration < biome_rule_options :: no_useless_constructor :: NoUselessConstructorOptions >> , # [doc = "Avoid using unnecessary continue."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_continue : Option < RuleFixConfiguration < biome_rule_options :: no_useless_continue :: NoUselessContinueOptions >> , # [doc = "Disallow empty exports that don't change anything in a module file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_empty_export : Option < RuleFixConfiguration < biome_rule_options :: no_useless_empty_export :: NoUselessEmptyExportOptions >> , # [doc = "Disallow unnecessary escape sequence in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_escape_in_regex : Option < RuleFixConfiguration < biome_rule_options :: no_useless_escape_in_regex :: NoUselessEscapeInRegexOptions >> , # [doc = "Disallow unnecessary fragments"] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_fragments : Option < RuleFixConfiguration < biome_rule_options :: no_useless_fragments :: NoUselessFragmentsOptions >> , # [doc = "Disallow unnecessary labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_label : Option < RuleFixConfiguration < biome_rule_options :: no_useless_label :: NoUselessLabelOptions >> , # [doc = "Disallow unnecessary nested block statements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_lone_block_statements : Option < RuleFixConfiguration < biome_rule_options :: no_useless_lone_block_statements :: NoUselessLoneBlockStatementsOptions >> , # [doc = "Disallow renaming import, export, and destructured assignments to the same name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_rename : Option < RuleFixConfiguration < biome_rule_options :: no_useless_rename :: NoUselessRenameOptions >> , # [doc = "Disallow unnecessary concatenation of string or template literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_string_concat : Option < RuleFixConfiguration < biome_rule_options :: no_useless_string_concat :: NoUselessStringConcatOptions >> , # [doc = "Disallow unnecessary String.raw function in template string literals without any escape sequence."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_string_raw : Option < RuleConfiguration < biome_rule_options :: no_useless_string_raw :: NoUselessStringRawOptions >> , # [doc = "Disallow useless case in switch statements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_switch_case : Option < RuleFixConfiguration < biome_rule_options :: no_useless_switch_case :: NoUselessSwitchCaseOptions >> , # [doc = "Disallow ternary operators when simpler alternatives exist."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_ternary : Option < RuleFixConfiguration < biome_rule_options :: no_useless_ternary :: NoUselessTernaryOptions >> , # [doc = "Disallow useless this aliasing."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_this_alias : Option < RuleFixConfiguration < biome_rule_options :: no_useless_this_alias :: NoUselessThisAliasOptions >> , # [doc = "Disallow using any or unknown as type constraint."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_type_constraint : Option < RuleFixConfiguration < biome_rule_options :: no_useless_type_constraint :: NoUselessTypeConstraintOptions >> , # [doc = "Disallow initializing variables to undefined."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_undefined_initialization : Option < RuleFixConfiguration < biome_rule_options :: no_useless_undefined_initialization :: NoUselessUndefinedInitializationOptions >> , # [doc = "Disallow the use of void operators, which is not a familiar operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_void : Option < RuleConfiguration < biome_rule_options :: no_void :: NoVoidOptions >> , # [doc = "Use arrow functions over function expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_arrow_function : Option < RuleFixConfiguration < biome_rule_options :: use_arrow_function :: UseArrowFunctionOptions >> , # [doc = "Use Date.now() to get the number of milliseconds since the Unix Epoch."] # [serde (skip_serializing_if = "Option::is_none")] pub use_date_now : Option < RuleFixConfiguration < biome_rule_options :: use_date_now :: UseDateNowOptions >> , # [doc = "Promotes the use of .flatMap() when map().flat() are used together."] # [serde (skip_serializing_if = "Option::is_none")] pub use_flat_map : Option < RuleFixConfiguration < biome_rule_options :: use_flat_map :: UseFlatMapOptions >> , # [doc = "Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item."] # [serde (skip_serializing_if = "Option::is_none")] pub use_index_of : Option < RuleFixConfiguration < biome_rule_options :: use_index_of :: UseIndexOfOptions >> , # [doc = "Enforce the usage of a literal access to properties over computed property access."] # [serde (skip_serializing_if = "Option::is_none")] pub use_literal_keys : Option < RuleFixConfiguration < biome_rule_options :: use_literal_keys :: UseLiteralKeysOptions >> , # [doc = "Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals"] # [serde (skip_serializing_if = "Option::is_none")] pub use_numeric_literals : Option < RuleFixConfiguration < biome_rule_options :: use_numeric_literals :: UseNumericLiteralsOptions >> , # [doc = "Enforce using concise optional chain instead of chained logical expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_optional_chain : Option < RuleFixConfiguration < biome_rule_options :: use_optional_chain :: UseOptionalChainOptions >> , # [doc = "Enforce the use of the regular expression literals instead of the RegExp constructor if possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_regex_literals : Option < RuleFixConfiguration < biome_rule_options :: use_regex_literals :: UseRegexLiteralsOptions >> , # [doc = "Disallow number literal object member names which are not base 10 or use underscore as separator."] # [serde (skip_serializing_if = "Option::is_none")] pub use_simple_number_keys : Option < RuleFixConfiguration < biome_rule_options :: use_simple_number_keys :: UseSimpleNumberKeysOptions >> , # [doc = "Discard redundant terms from logical expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_simplified_logic_expression : Option < RuleFixConfiguration < biome_rule_options :: use_simplified_logic_expression :: UseSimplifiedLogicExpressionOptions >> , # [doc = "Enforce the use of while loops instead of for loops when the initializer and update expressions are not needed."] # [serde (skip_serializing_if = "Option::is_none")] pub use_while : Option < RuleFixConfiguration < biome_rule_options :: use_while :: UseWhileOptions >> } impl Complexity { const GROUP_NAME: &'static str = "complexity"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -2522,10 +2539,13 @@ impl Complexity { "noCommaOperator", "noEmptyTypeParameters", "noExcessiveCognitiveComplexity", + "noExcessiveLinesPerFunction", "noExcessiveNestedTestSuites", "noExtraBooleanCast", "noFlatMapIdentity", "noForEach", + "noImplicitCoercions", + "noImportantStyles", "noStaticOnlyClass", "noThisInStatic", "noUselessCatch", @@ -2548,6 +2568,7 @@ impl Complexity { "useArrowFunction", "useDateNow", "useFlatMap", + "useIndexOf", "useLiteralKeys", "useNumericLiterals", "useOptionalChain", @@ -2562,10 +2583,8 @@ impl Complexity { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14]), @@ -2575,20 +2594,24 @@ impl Complexity { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -2630,6 +2653,10 @@ impl Complexity { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42]), ]; } impl RuleGroupExt for Complexity { @@ -2671,171 +2698,191 @@ impl RuleGroupExt for Complexity { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_excessive_nested_test_suites.as_ref() { + if let Some(rule) = self.no_excessive_lines_per_function.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_extra_boolean_cast.as_ref() { + if let Some(rule) = self.no_excessive_nested_test_suites.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_flat_map_identity.as_ref() { + if let Some(rule) = self.no_extra_boolean_cast.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_for_each.as_ref() { + if let Some(rule) = self.no_flat_map_identity.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_static_only_class.as_ref() { + if let Some(rule) = self.no_for_each.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_this_in_static.as_ref() { + if let Some(rule) = self.no_implicit_coercions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_useless_catch.as_ref() { + if let Some(rule) = self.no_important_styles.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_useless_constructor.as_ref() { + if let Some(rule) = self.no_static_only_class.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_useless_continue.as_ref() { + if let Some(rule) = self.no_this_in_static.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_useless_empty_export.as_ref() { + if let Some(rule) = self.no_useless_catch.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { + if let Some(rule) = self.no_useless_constructor.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_useless_fragments.as_ref() { + if let Some(rule) = self.no_useless_continue.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_useless_label.as_ref() { + if let Some(rule) = self.no_useless_empty_export.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_useless_lone_block_statements.as_ref() { + if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_useless_rename.as_ref() { + if let Some(rule) = self.no_useless_fragments.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_useless_string_concat.as_ref() { + if let Some(rule) = self.no_useless_label.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_useless_string_raw.as_ref() { + if let Some(rule) = self.no_useless_lone_block_statements.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_useless_switch_case.as_ref() { + if let Some(rule) = self.no_useless_rename.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_useless_ternary.as_ref() { + if let Some(rule) = self.no_useless_string_concat.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_useless_this_alias.as_ref() { + if let Some(rule) = self.no_useless_string_raw.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_useless_type_constraint.as_ref() { + if let Some(rule) = self.no_useless_switch_case.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { + if let Some(rule) = self.no_useless_ternary.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_void.as_ref() { + if let Some(rule) = self.no_useless_this_alias.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.use_arrow_function.as_ref() { + if let Some(rule) = self.no_useless_type_constraint.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.use_date_now.as_ref() { + if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.use_flat_map.as_ref() { + if let Some(rule) = self.no_void.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.use_literal_keys.as_ref() { + if let Some(rule) = self.use_arrow_function.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.use_numeric_literals.as_ref() { + if let Some(rule) = self.use_date_now.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.use_optional_chain.as_ref() { + if let Some(rule) = self.use_flat_map.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.use_regex_literals.as_ref() { + if let Some(rule) = self.use_index_of.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.use_simple_number_keys.as_ref() { + if let Some(rule) = self.use_literal_keys.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.use_simplified_logic_expression.as_ref() { + if let Some(rule) = self.use_numeric_literals.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.use_while.as_ref() { + if let Some(rule) = self.use_optional_chain.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } + if let Some(rule) = self.use_regex_literals.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); + } + } + if let Some(rule) = self.use_simple_number_keys.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); + } + } + if let Some(rule) = self.use_simplified_logic_expression.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); + } + } + if let Some(rule) = self.use_while.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); + } + } index_set } fn get_disabled_rules(&self) -> FxHashSet> { @@ -2870,171 +2917,191 @@ impl RuleGroupExt for Complexity { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_excessive_nested_test_suites.as_ref() { + if let Some(rule) = self.no_excessive_lines_per_function.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_extra_boolean_cast.as_ref() { + if let Some(rule) = self.no_excessive_nested_test_suites.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_flat_map_identity.as_ref() { + if let Some(rule) = self.no_extra_boolean_cast.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_for_each.as_ref() { + if let Some(rule) = self.no_flat_map_identity.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_static_only_class.as_ref() { + if let Some(rule) = self.no_for_each.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_this_in_static.as_ref() { + if let Some(rule) = self.no_implicit_coercions.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_useless_catch.as_ref() { + if let Some(rule) = self.no_important_styles.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_useless_constructor.as_ref() { + if let Some(rule) = self.no_static_only_class.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_useless_continue.as_ref() { + if let Some(rule) = self.no_this_in_static.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_useless_empty_export.as_ref() { + if let Some(rule) = self.no_useless_catch.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { + if let Some(rule) = self.no_useless_constructor.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_useless_fragments.as_ref() { + if let Some(rule) = self.no_useless_continue.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_useless_label.as_ref() { + if let Some(rule) = self.no_useless_empty_export.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_useless_lone_block_statements.as_ref() { + if let Some(rule) = self.no_useless_escape_in_regex.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_useless_rename.as_ref() { + if let Some(rule) = self.no_useless_fragments.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_useless_string_concat.as_ref() { + if let Some(rule) = self.no_useless_label.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_useless_string_raw.as_ref() { + if let Some(rule) = self.no_useless_lone_block_statements.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_useless_switch_case.as_ref() { + if let Some(rule) = self.no_useless_rename.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_useless_ternary.as_ref() { + if let Some(rule) = self.no_useless_string_concat.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_useless_this_alias.as_ref() { + if let Some(rule) = self.no_useless_string_raw.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_useless_type_constraint.as_ref() { + if let Some(rule) = self.no_useless_switch_case.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { + if let Some(rule) = self.no_useless_ternary.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_void.as_ref() { + if let Some(rule) = self.no_useless_this_alias.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.use_arrow_function.as_ref() { + if let Some(rule) = self.no_useless_type_constraint.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.use_date_now.as_ref() { + if let Some(rule) = self.no_useless_undefined_initialization.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.use_flat_map.as_ref() { + if let Some(rule) = self.no_void.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.use_literal_keys.as_ref() { + if let Some(rule) = self.use_arrow_function.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.use_numeric_literals.as_ref() { + if let Some(rule) = self.use_date_now.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.use_optional_chain.as_ref() { + if let Some(rule) = self.use_flat_map.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.use_regex_literals.as_ref() { + if let Some(rule) = self.use_index_of.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.use_simple_number_keys.as_ref() { + if let Some(rule) = self.use_literal_keys.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.use_simplified_logic_expression.as_ref() { + if let Some(rule) = self.use_numeric_literals.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.use_while.as_ref() { + if let Some(rule) = self.use_optional_chain.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } + if let Some(rule) = self.use_regex_literals.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); + } + } + if let Some(rule) = self.use_simple_number_keys.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); + } + } + if let Some(rule) = self.use_simplified_logic_expression.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); + } + } + if let Some(rule) = self.use_while.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); + } + } index_set } #[doc = r" Checks if, given a rule name, matches one of the rules contained in this category"] @@ -3089,6 +3156,10 @@ impl RuleGroupExt for Complexity { .no_excessive_cognitive_complexity .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noExcessiveLinesPerFunction" => self + .no_excessive_lines_per_function + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noExcessiveNestedTestSuites" => self .no_excessive_nested_test_suites .as_ref() @@ -3105,6 +3176,14 @@ impl RuleGroupExt for Complexity { .no_for_each .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noImplicitCoercions" => self + .no_implicit_coercions + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "noImportantStyles" => self + .no_important_styles + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noStaticOnlyClass" => self .no_static_only_class .as_ref() @@ -3193,6 +3272,10 @@ impl RuleGroupExt for Complexity { .use_flat_map .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useIndexOf" => self + .use_index_of + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useLiteralKeys" => self .use_literal_keys .as_ref() @@ -3235,10 +3318,13 @@ impl From for Complexity { no_comma_operator: Some(value.into()), no_empty_type_parameters: Some(value.into()), no_excessive_cognitive_complexity: Some(value.into()), + no_excessive_lines_per_function: Some(value.into()), no_excessive_nested_test_suites: Some(value.into()), no_extra_boolean_cast: Some(value.into()), no_flat_map_identity: Some(value.into()), no_for_each: Some(value.into()), + no_implicit_coercions: Some(value.into()), + no_important_styles: Some(value.into()), no_static_only_class: Some(value.into()), no_this_in_static: Some(value.into()), no_useless_catch: Some(value.into()), @@ -3261,6 +3347,7 @@ impl From for Complexity { use_arrow_function: Some(value.into()), use_date_now: Some(value.into()), use_flat_map: Some(value.into()), + use_index_of: Some(value.into()), use_literal_keys: Some(value.into()), use_numeric_literals: Some(value.into()), use_optional_chain: Some(value.into()), @@ -3275,7 +3362,7 @@ impl From for Complexity { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Correctness { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Prevent passing of children as props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_children_prop : Option < RuleConfiguration < biome_rule_options :: no_children_prop :: NoChildrenPropOptions >> , # [doc = "Prevents from having const variables being re-assigned."] # [serde (skip_serializing_if = "Option::is_none")] pub no_const_assign : Option < RuleFixConfiguration < biome_rule_options :: no_const_assign :: NoConstAssignOptions >> , # [doc = "Disallow constant expressions in conditions"] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_condition : Option < RuleConfiguration < biome_rule_options :: no_constant_condition :: NoConstantConditionOptions >> , # [doc = "Disallow the use of Math.min and Math.max to clamp a value where the result itself is constant."] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_math_min_max_clamp : Option < RuleFixConfiguration < biome_rule_options :: no_constant_math_min_max_clamp :: NoConstantMathMinMaxClampOptions >> , # [doc = "Disallow returning a value from a constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_constructor_return : Option < RuleConfiguration < biome_rule_options :: no_constructor_return :: NoConstructorReturnOptions >> , # [doc = "Disallow empty character classes in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_character_class_in_regex : Option < RuleConfiguration < biome_rule_options :: no_empty_character_class_in_regex :: NoEmptyCharacterClassInRegexOptions >> , # [doc = "Disallows empty destructuring patterns."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_pattern : Option < RuleConfiguration < biome_rule_options :: no_empty_pattern :: NoEmptyPatternOptions >> , # [doc = "Disallow calling global object properties as functions"] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_object_calls : Option < RuleConfiguration < biome_rule_options :: no_global_object_calls :: NoGlobalObjectCallsOptions >> , # [doc = "Disallow function and var declarations that are accessible outside their block."] # [serde (skip_serializing_if = "Option::is_none")] pub no_inner_declarations : Option < RuleConfiguration < biome_rule_options :: no_inner_declarations :: NoInnerDeclarationsOptions >> , # [doc = "Ensure that builtins are correctly instantiated."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_builtin_instantiation : Option < RuleFixConfiguration < biome_rule_options :: no_invalid_builtin_instantiation :: NoInvalidBuiltinInstantiationOptions >> , # [doc = "Prevents the incorrect use of super() inside classes. It also checks whether a call super() is missing from classes that extends other constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_constructor_super : Option < RuleConfiguration < biome_rule_options :: no_invalid_constructor_super :: NoInvalidConstructorSuperOptions >> , # [doc = "Disallow non-standard direction values for linear gradient functions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_direction_in_linear_gradient : Option < RuleConfiguration < biome_rule_options :: no_invalid_direction_in_linear_gradient :: NoInvalidDirectionInLinearGradientOptions >> , # [doc = "Disallows invalid named grid areas in CSS Grid Layouts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_grid_areas : Option < RuleConfiguration < biome_rule_options :: no_invalid_grid_areas :: NoInvalidGridAreasOptions >> , # [doc = "Disallow the use of @import at-rules in invalid positions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_position_at_import_rule : Option < RuleConfiguration < biome_rule_options :: no_invalid_position_at_import_rule :: NoInvalidPositionAtImportRuleOptions >> , # [doc = "Disallow the use of variables and function parameters before their declaration"] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_use_before_declaration : Option < RuleConfiguration < biome_rule_options :: no_invalid_use_before_declaration :: NoInvalidUseBeforeDeclarationOptions >> , # [doc = "Disallow missing var function for css variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_missing_var_function : Option < RuleConfiguration < biome_rule_options :: no_missing_var_function :: NoMissingVarFunctionOptions >> , # [doc = "Forbid the use of Node.js builtin modules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nodejs_modules : Option < RuleConfiguration < biome_rule_options :: no_nodejs_modules :: NoNodejsModulesOptions >> , # [doc = "Disallow \\8 and \\9 escape sequences in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nonoctal_decimal_escape : Option < RuleFixConfiguration < biome_rule_options :: no_nonoctal_decimal_escape :: NoNonoctalDecimalEscapeOptions >> , # [doc = "Disallow literal numbers that lose precision"] # [serde (skip_serializing_if = "Option::is_none")] pub no_precision_loss : Option < RuleConfiguration < biome_rule_options :: no_precision_loss :: NoPrecisionLossOptions >> , # [doc = "Restrict imports of private exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_private_imports : Option < RuleConfiguration < biome_rule_options :: no_private_imports :: NoPrivateImportsOptions >> , # [doc = "Prevent the usage of the return value of React.render."] # [serde (skip_serializing_if = "Option::is_none")] pub no_render_return_value : Option < RuleConfiguration < biome_rule_options :: no_render_return_value :: NoRenderReturnValueOptions >> , # [doc = "Disallow assignments where both sides are exactly the same."] # [serde (skip_serializing_if = "Option::is_none")] pub no_self_assign : Option < RuleConfiguration < biome_rule_options :: no_self_assign :: NoSelfAssignOptions >> , # [doc = "Disallow returning a value from a setter"] # [serde (skip_serializing_if = "Option::is_none")] pub no_setter_return : Option < RuleConfiguration < biome_rule_options :: no_setter_return :: NoSetterReturnOptions >> , # [doc = "Disallow comparison of expressions modifying the string case with non-compliant value."] # [serde (skip_serializing_if = "Option::is_none")] pub no_string_case_mismatch : Option < RuleFixConfiguration < biome_rule_options :: no_string_case_mismatch :: NoStringCaseMismatchOptions >> , # [doc = "Disallow lexical declarations in switch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_switch_declarations : Option < RuleFixConfiguration < biome_rule_options :: no_switch_declarations :: NoSwitchDeclarationsOptions >> , # [doc = "Disallow the use of dependencies that aren't specified in the package.json."] # [serde (skip_serializing_if = "Option::is_none")] pub no_undeclared_dependencies : Option < RuleConfiguration < biome_rule_options :: no_undeclared_dependencies :: NoUndeclaredDependenciesOptions >> , # [doc = "Prevents the usage of variables that haven't been declared inside the document."] # [serde (skip_serializing_if = "Option::is_none")] pub no_undeclared_variables : Option < RuleConfiguration < biome_rule_options :: no_undeclared_variables :: NoUndeclaredVariablesOptions >> , # [doc = "Disallow unknown CSS value functions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_function : Option < RuleConfiguration < biome_rule_options :: no_unknown_function :: NoUnknownFunctionOptions >> , # [doc = "Disallow unknown media feature names."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_media_feature_name : Option < RuleConfiguration < biome_rule_options :: no_unknown_media_feature_name :: NoUnknownMediaFeatureNameOptions >> , # [doc = "Disallow unknown properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_property : Option < RuleConfiguration < biome_rule_options :: no_unknown_property :: NoUnknownPropertyOptions >> , # [doc = "Disallow unknown pseudo-class selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_pseudo_class : Option < RuleConfiguration < biome_rule_options :: no_unknown_pseudo_class :: NoUnknownPseudoClassOptions >> , # [doc = "Disallow unknown pseudo-element selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_pseudo_element : Option < RuleConfiguration < biome_rule_options :: no_unknown_pseudo_element :: NoUnknownPseudoElementOptions >> , # [doc = "Disallow unknown type selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_type_selector : Option < RuleConfiguration < biome_rule_options :: no_unknown_type_selector :: NoUnknownTypeSelectorOptions >> , # [doc = "Disallow unknown CSS units."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_unit : Option < RuleConfiguration < biome_rule_options :: no_unknown_unit :: NoUnknownUnitOptions >> , # [doc = "Disallow unmatchable An+B selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unmatchable_anb_selector : Option < RuleConfiguration < biome_rule_options :: no_unmatchable_anb_selector :: NoUnmatchableAnbSelectorOptions >> , # [doc = "Disallow unreachable code"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unreachable : Option < RuleConfiguration < biome_rule_options :: no_unreachable :: NoUnreachableOptions >> , # [doc = "Ensures the super() constructor is called exactly once on every code path in a class constructor before this is accessed if the class has a superclass"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unreachable_super : Option < RuleConfiguration < biome_rule_options :: no_unreachable_super :: NoUnreachableSuperOptions >> , # [doc = "Disallow control flow statements in finally blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_finally : Option < RuleConfiguration < biome_rule_options :: no_unsafe_finally :: NoUnsafeFinallyOptions >> , # [doc = "Disallow the use of optional chaining in contexts where the undefined value is not allowed."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_optional_chaining : Option < RuleConfiguration < biome_rule_options :: no_unsafe_optional_chaining :: NoUnsafeOptionalChainingOptions >> , # [doc = "Disallow unused function parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_function_parameters : Option < RuleFixConfiguration < biome_rule_options :: no_unused_function_parameters :: NoUnusedFunctionParametersOptions >> , # [doc = "Disallow unused imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_imports : Option < RuleFixConfiguration < biome_rule_options :: no_unused_imports :: NoUnusedImportsOptions >> , # [doc = "Disallow unused labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_labels : Option < RuleFixConfiguration < biome_rule_options :: no_unused_labels :: NoUnusedLabelsOptions >> , # [doc = "Disallow unused private class members"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_private_class_members : Option < RuleFixConfiguration < biome_rule_options :: no_unused_private_class_members :: NoUnusedPrivateClassMembersOptions >> , # [doc = "Disallow unused variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_variables : Option < RuleFixConfiguration < biome_rule_options :: no_unused_variables :: NoUnusedVariablesOptions >> , # [doc = "This rules prevents void elements (AKA self-closing elements) from having children."] # [serde (skip_serializing_if = "Option::is_none")] pub no_void_elements_with_children : Option < RuleFixConfiguration < biome_rule_options :: no_void_elements_with_children :: NoVoidElementsWithChildrenOptions >> , # [doc = "Disallow returning a value from a function with the return type 'void'"] # [serde (skip_serializing_if = "Option::is_none")] pub no_void_type_return : Option < RuleConfiguration < biome_rule_options :: no_void_type_return :: NoVoidTypeReturnOptions >> , # [doc = "Enforce all dependencies are correctly specified in a React hook."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exhaustive_dependencies : Option < RuleFixConfiguration < biome_rule_options :: use_exhaustive_dependencies :: UseExhaustiveDependenciesOptions >> , # [doc = "Enforce that all React hooks are being called from the Top Level component functions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_hook_at_top_level : Option < RuleConfiguration < biome_rule_options :: use_hook_at_top_level :: UseHookAtTopLevelOptions >> , # [doc = "Enforce file extensions for relative imports."] # [serde (skip_serializing_if = "Option::is_none")] pub use_import_extensions : Option < RuleFixConfiguration < biome_rule_options :: use_import_extensions :: UseImportExtensionsOptions >> , # [doc = "Require calls to isNaN() when checking for NaN."] # [serde (skip_serializing_if = "Option::is_none")] pub use_is_nan : Option < RuleFixConfiguration < biome_rule_options :: use_is_nan :: UseIsNanOptions >> , # [doc = "Disallow missing key props in iterators/collection literals."] # [serde (skip_serializing_if = "Option::is_none")] pub use_jsx_key_in_iterable : Option < RuleConfiguration < biome_rule_options :: use_jsx_key_in_iterable :: UseJsxKeyInIterableOptions >> , # [doc = "Enforce \"for\" loop update clause moving the counter in the right direction."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_for_direction : Option < RuleConfiguration < biome_rule_options :: use_valid_for_direction :: UseValidForDirectionOptions >> , # [doc = "This rule checks that the result of a typeof expression is compared to a valid value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_typeof : Option < RuleFixConfiguration < biome_rule_options :: use_valid_typeof :: UseValidTypeofOptions >> , # [doc = "Require generator functions to contain yield."] # [serde (skip_serializing_if = "Option::is_none")] pub use_yield : Option < RuleConfiguration < biome_rule_options :: use_yield :: UseYieldOptions >> } +pub struct Correctness { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Prevent passing of children as props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_children_prop : Option < RuleConfiguration < biome_rule_options :: no_children_prop :: NoChildrenPropOptions >> , # [doc = "Prevents from having const variables being re-assigned."] # [serde (skip_serializing_if = "Option::is_none")] pub no_const_assign : Option < RuleFixConfiguration < biome_rule_options :: no_const_assign :: NoConstAssignOptions >> , # [doc = "Disallow constant expressions in conditions"] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_condition : Option < RuleConfiguration < biome_rule_options :: no_constant_condition :: NoConstantConditionOptions >> , # [doc = "Disallow the use of Math.min and Math.max to clamp a value where the result itself is constant."] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_math_min_max_clamp : Option < RuleFixConfiguration < biome_rule_options :: no_constant_math_min_max_clamp :: NoConstantMathMinMaxClampOptions >> , # [doc = "Disallow returning a value from a constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_constructor_return : Option < RuleConfiguration < biome_rule_options :: no_constructor_return :: NoConstructorReturnOptions >> , # [doc = "Disallow empty character classes in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_character_class_in_regex : Option < RuleConfiguration < biome_rule_options :: no_empty_character_class_in_regex :: NoEmptyCharacterClassInRegexOptions >> , # [doc = "Disallows empty destructuring patterns."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_pattern : Option < RuleConfiguration < biome_rule_options :: no_empty_pattern :: NoEmptyPatternOptions >> , # [doc = "Disallow the use of __dirname and __filename in the global scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_dirname_filename : Option < RuleFixConfiguration < biome_rule_options :: no_global_dirname_filename :: NoGlobalDirnameFilenameOptions >> , # [doc = "Disallow calling global object properties as functions"] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_object_calls : Option < RuleConfiguration < biome_rule_options :: no_global_object_calls :: NoGlobalObjectCallsOptions >> , # [doc = "Disallow function and var declarations that are accessible outside their block."] # [serde (skip_serializing_if = "Option::is_none")] pub no_inner_declarations : Option < RuleConfiguration < biome_rule_options :: no_inner_declarations :: NoInnerDeclarationsOptions >> , # [doc = "Ensure that builtins are correctly instantiated."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_builtin_instantiation : Option < RuleFixConfiguration < biome_rule_options :: no_invalid_builtin_instantiation :: NoInvalidBuiltinInstantiationOptions >> , # [doc = "Prevents the incorrect use of super() inside classes. It also checks whether a call super() is missing from classes that extends other constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_constructor_super : Option < RuleConfiguration < biome_rule_options :: no_invalid_constructor_super :: NoInvalidConstructorSuperOptions >> , # [doc = "Disallow non-standard direction values for linear gradient functions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_direction_in_linear_gradient : Option < RuleConfiguration < biome_rule_options :: no_invalid_direction_in_linear_gradient :: NoInvalidDirectionInLinearGradientOptions >> , # [doc = "Disallows invalid named grid areas in CSS Grid Layouts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_grid_areas : Option < RuleConfiguration < biome_rule_options :: no_invalid_grid_areas :: NoInvalidGridAreasOptions >> , # [doc = "Disallow the use of @import at-rules in invalid positions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_position_at_import_rule : Option < RuleConfiguration < biome_rule_options :: no_invalid_position_at_import_rule :: NoInvalidPositionAtImportRuleOptions >> , # [doc = "Disallow the use of variables and function parameters before their declaration"] # [serde (skip_serializing_if = "Option::is_none")] pub no_invalid_use_before_declaration : Option < RuleConfiguration < biome_rule_options :: no_invalid_use_before_declaration :: NoInvalidUseBeforeDeclarationOptions >> , # [doc = "Disallow missing var function for css variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_missing_var_function : Option < RuleConfiguration < biome_rule_options :: no_missing_var_function :: NoMissingVarFunctionOptions >> , # [doc = "Disallows defining React components inside other components."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nested_component_definitions : Option < RuleConfiguration < biome_rule_options :: no_nested_component_definitions :: NoNestedComponentDefinitionsOptions >> , # [doc = "Forbid the use of Node.js builtin modules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nodejs_modules : Option < RuleConfiguration < biome_rule_options :: no_nodejs_modules :: NoNodejsModulesOptions >> , # [doc = "Disallow \\8 and \\9 escape sequences in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nonoctal_decimal_escape : Option < RuleFixConfiguration < biome_rule_options :: no_nonoctal_decimal_escape :: NoNonoctalDecimalEscapeOptions >> , # [doc = "Disallow literal numbers that lose precision"] # [serde (skip_serializing_if = "Option::is_none")] pub no_precision_loss : Option < RuleConfiguration < biome_rule_options :: no_precision_loss :: NoPrecisionLossOptions >> , # [doc = "Restrict imports of private exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_private_imports : Option < RuleConfiguration < biome_rule_options :: no_private_imports :: NoPrivateImportsOptions >> , # [doc = "Disallow the use of process global."] # [serde (skip_serializing_if = "Option::is_none")] pub no_process_global : Option < RuleFixConfiguration < biome_rule_options :: no_process_global :: NoProcessGlobalOptions >> , # [doc = "Disallow assigning to React component props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_react_prop_assignments : Option < RuleConfiguration < biome_rule_options :: no_react_prop_assignments :: NoReactPropAssignmentsOptions >> , # [doc = "Prevent the usage of the return value of React.render."] # [serde (skip_serializing_if = "Option::is_none")] pub no_render_return_value : Option < RuleConfiguration < biome_rule_options :: no_render_return_value :: NoRenderReturnValueOptions >> , # [doc = "Disallow the use of configured elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_elements : Option < RuleConfiguration < biome_rule_options :: no_restricted_elements :: NoRestrictedElementsOptions >> , # [doc = "Disallow assignments where both sides are exactly the same."] # [serde (skip_serializing_if = "Option::is_none")] pub no_self_assign : Option < RuleConfiguration < biome_rule_options :: no_self_assign :: NoSelfAssignOptions >> , # [doc = "Disallow returning a value from a setter"] # [serde (skip_serializing_if = "Option::is_none")] pub no_setter_return : Option < RuleConfiguration < biome_rule_options :: no_setter_return :: NoSetterReturnOptions >> , # [doc = "Disallow destructuring props inside JSX components in Solid projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_solid_destructured_props : Option < RuleConfiguration < biome_rule_options :: no_solid_destructured_props :: NoSolidDestructuredPropsOptions >> , # [doc = "Disallow comparison of expressions modifying the string case with non-compliant value."] # [serde (skip_serializing_if = "Option::is_none")] pub no_string_case_mismatch : Option < RuleFixConfiguration < biome_rule_options :: no_string_case_mismatch :: NoStringCaseMismatchOptions >> , # [doc = "Disallow lexical declarations in switch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_switch_declarations : Option < RuleFixConfiguration < biome_rule_options :: no_switch_declarations :: NoSwitchDeclarationsOptions >> , # [doc = "Disallow the use of dependencies that aren't specified in the package.json."] # [serde (skip_serializing_if = "Option::is_none")] pub no_undeclared_dependencies : Option < RuleConfiguration < biome_rule_options :: no_undeclared_dependencies :: NoUndeclaredDependenciesOptions >> , # [doc = "Prevents the usage of variables that haven't been declared inside the document."] # [serde (skip_serializing_if = "Option::is_none")] pub no_undeclared_variables : Option < RuleConfiguration < biome_rule_options :: no_undeclared_variables :: NoUndeclaredVariablesOptions >> , # [doc = "Disallow unknown CSS value functions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_function : Option < RuleConfiguration < biome_rule_options :: no_unknown_function :: NoUnknownFunctionOptions >> , # [doc = "Disallow unknown media feature names."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_media_feature_name : Option < RuleConfiguration < biome_rule_options :: no_unknown_media_feature_name :: NoUnknownMediaFeatureNameOptions >> , # [doc = "Disallow unknown properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_property : Option < RuleConfiguration < biome_rule_options :: no_unknown_property :: NoUnknownPropertyOptions >> , # [doc = "Disallow unknown pseudo-class selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_pseudo_class : Option < RuleConfiguration < biome_rule_options :: no_unknown_pseudo_class :: NoUnknownPseudoClassOptions >> , # [doc = "Disallow unknown pseudo-element selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_pseudo_element : Option < RuleConfiguration < biome_rule_options :: no_unknown_pseudo_element :: NoUnknownPseudoElementOptions >> , # [doc = "Disallow unknown type selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_type_selector : Option < RuleConfiguration < biome_rule_options :: no_unknown_type_selector :: NoUnknownTypeSelectorOptions >> , # [doc = "Disallow unknown CSS units."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_unit : Option < RuleConfiguration < biome_rule_options :: no_unknown_unit :: NoUnknownUnitOptions >> , # [doc = "Disallow unmatchable An+B selectors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unmatchable_anb_selector : Option < RuleConfiguration < biome_rule_options :: no_unmatchable_anb_selector :: NoUnmatchableAnbSelectorOptions >> , # [doc = "Disallow unreachable code"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unreachable : Option < RuleConfiguration < biome_rule_options :: no_unreachable :: NoUnreachableOptions >> , # [doc = "Ensures the super() constructor is called exactly once on every code path in a class constructor before this is accessed if the class has a superclass"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unreachable_super : Option < RuleConfiguration < biome_rule_options :: no_unreachable_super :: NoUnreachableSuperOptions >> , # [doc = "Disallow control flow statements in finally blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_finally : Option < RuleConfiguration < biome_rule_options :: no_unsafe_finally :: NoUnsafeFinallyOptions >> , # [doc = "Disallow the use of optional chaining in contexts where the undefined value is not allowed."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_optional_chaining : Option < RuleConfiguration < biome_rule_options :: no_unsafe_optional_chaining :: NoUnsafeOptionalChainingOptions >> , # [doc = "Disallow unused function parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_function_parameters : Option < RuleFixConfiguration < biome_rule_options :: no_unused_function_parameters :: NoUnusedFunctionParametersOptions >> , # [doc = "Disallow unused imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_imports : Option < RuleFixConfiguration < biome_rule_options :: no_unused_imports :: NoUnusedImportsOptions >> , # [doc = "Disallow unused labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_labels : Option < RuleFixConfiguration < biome_rule_options :: no_unused_labels :: NoUnusedLabelsOptions >> , # [doc = "Disallow unused private class members"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_private_class_members : Option < RuleFixConfiguration < biome_rule_options :: no_unused_private_class_members :: NoUnusedPrivateClassMembersOptions >> , # [doc = "Disallow unused variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_variables : Option < RuleFixConfiguration < biome_rule_options :: no_unused_variables :: NoUnusedVariablesOptions >> , # [doc = "This rules prevents void elements (AKA self-closing elements) from having children."] # [serde (skip_serializing_if = "Option::is_none")] pub no_void_elements_with_children : Option < RuleFixConfiguration < biome_rule_options :: no_void_elements_with_children :: NoVoidElementsWithChildrenOptions >> , # [doc = "Disallow returning a value from a function with the return type 'void'"] # [serde (skip_serializing_if = "Option::is_none")] pub no_void_type_return : Option < RuleConfiguration < biome_rule_options :: no_void_type_return :: NoVoidTypeReturnOptions >> , # [doc = "Enforce all dependencies are correctly specified in a React hook."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exhaustive_dependencies : Option < RuleFixConfiguration < biome_rule_options :: use_exhaustive_dependencies :: UseExhaustiveDependenciesOptions >> , # [doc = "Enforce that all React hooks are being called from the Top Level component functions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_hook_at_top_level : Option < RuleConfiguration < biome_rule_options :: use_hook_at_top_level :: UseHookAtTopLevelOptions >> , # [doc = "Enforce file extensions for relative imports."] # [serde (skip_serializing_if = "Option::is_none")] pub use_import_extensions : Option < RuleFixConfiguration < biome_rule_options :: use_import_extensions :: UseImportExtensionsOptions >> , # [doc = "Require calls to isNaN() when checking for NaN."] # [serde (skip_serializing_if = "Option::is_none")] pub use_is_nan : Option < RuleFixConfiguration < biome_rule_options :: use_is_nan :: UseIsNanOptions >> , # [doc = "Enforces the use of with { type: \"json\" } for JSON module imports."] # [serde (skip_serializing_if = "Option::is_none")] pub use_json_import_attributes : Option < RuleFixConfiguration < biome_rule_options :: use_json_import_attributes :: UseJsonImportAttributesOptions >> , # [doc = "Disallow missing key props in iterators/collection literals."] # [serde (skip_serializing_if = "Option::is_none")] pub use_jsx_key_in_iterable : Option < RuleConfiguration < biome_rule_options :: use_jsx_key_in_iterable :: UseJsxKeyInIterableOptions >> , # [doc = "Enforce specifying the name of GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub use_named_graphql_operations : Option < RuleFixConfiguration < biome_rule_options :: use_named_graphql_operations :: UseNamedGraphqlOperationsOptions >> , # [doc = "Enforce the consistent use of the radix argument when using parseInt()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_parse_int_radix : Option < RuleFixConfiguration < biome_rule_options :: use_parse_int_radix :: UseParseIntRadixOptions >> , # [doc = "Enforce JSDoc comment lines to start with a single asterisk, except for the first one."] # [serde (skip_serializing_if = "Option::is_none")] pub use_single_js_doc_asterisk : Option < RuleFixConfiguration < biome_rule_options :: use_single_js_doc_asterisk :: UseSingleJsDocAsteriskOptions >> , # [doc = "Prevent the usage of static string literal id attribute on elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_unique_element_ids : Option < RuleConfiguration < biome_rule_options :: use_unique_element_ids :: UseUniqueElementIdsOptions >> , # [doc = "Enforce \"for\" loop update clause moving the counter in the right direction."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_for_direction : Option < RuleConfiguration < biome_rule_options :: use_valid_for_direction :: UseValidForDirectionOptions >> , # [doc = "This rule checks that the result of a typeof expression is compared to a valid value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_valid_typeof : Option < RuleFixConfiguration < biome_rule_options :: use_valid_typeof :: UseValidTypeofOptions >> , # [doc = "Require generator functions to contain yield."] # [serde (skip_serializing_if = "Option::is_none")] pub use_yield : Option < RuleConfiguration < biome_rule_options :: use_yield :: UseYieldOptions >> } impl Correctness { const GROUP_NAME: &'static str = "correctness"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -3286,6 +3373,7 @@ impl Correctness { "noConstructorReturn", "noEmptyCharacterClassInRegex", "noEmptyPattern", + "noGlobalDirnameFilename", "noGlobalObjectCalls", "noInnerDeclarations", "noInvalidBuiltinInstantiation", @@ -3295,13 +3383,18 @@ impl Correctness { "noInvalidPositionAtImportRule", "noInvalidUseBeforeDeclaration", "noMissingVarFunction", + "noNestedComponentDefinitions", "noNodejsModules", "noNonoctalDecimalEscape", "noPrecisionLoss", "noPrivateImports", + "noProcessGlobal", + "noReactPropAssignments", "noRenderReturnValue", + "noRestrictedElements", "noSelfAssign", "noSetterReturn", + "noSolidDestructuredProps", "noStringCaseMismatch", "noSwitchDeclarations", "noUndeclaredDependencies", @@ -3329,7 +3422,12 @@ impl Correctness { "useHookAtTopLevel", "useImportExtensions", "useIsNan", + "useJsonImportAttributes", "useJsxKeyInIterable", + "useNamedGraphqlOperations", + "useParseIntRadix", + "useSingleJsDocAsterisk", + "useUniqueElementIds", "useValidForDirection", "useValidTypeof", "useYield", @@ -3342,7 +3440,6 @@ impl Correctness { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10]), @@ -3351,18 +3448,13 @@ impl Correctness { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35]), @@ -3376,10 +3468,18 @@ impl Correctness { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -3436,6 +3536,17 @@ impl Correctness { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64]), ]; } impl RuleGroupExt for Correctness { @@ -3482,273 +3593,328 @@ impl RuleGroupExt for Correctness { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_global_object_calls.as_ref() { + if let Some(rule) = self.no_global_dirname_filename.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_inner_declarations.as_ref() { + if let Some(rule) = self.no_global_object_calls.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_invalid_builtin_instantiation.as_ref() { + if let Some(rule) = self.no_inner_declarations.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_invalid_constructor_super.as_ref() { + if let Some(rule) = self.no_invalid_builtin_instantiation.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_invalid_direction_in_linear_gradient.as_ref() { + if let Some(rule) = self.no_invalid_constructor_super.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_invalid_grid_areas.as_ref() { + if let Some(rule) = self.no_invalid_direction_in_linear_gradient.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { + if let Some(rule) = self.no_invalid_grid_areas.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_invalid_use_before_declaration.as_ref() { + if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_missing_var_function.as_ref() { + if let Some(rule) = self.no_invalid_use_before_declaration.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_nodejs_modules.as_ref() { + if let Some(rule) = self.no_missing_var_function.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_nonoctal_decimal_escape.as_ref() { + if let Some(rule) = self.no_nested_component_definitions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_precision_loss.as_ref() { + if let Some(rule) = self.no_nodejs_modules.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_private_imports.as_ref() { + if let Some(rule) = self.no_nonoctal_decimal_escape.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_render_return_value.as_ref() { + if let Some(rule) = self.no_precision_loss.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_self_assign.as_ref() { + if let Some(rule) = self.no_private_imports.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_setter_return.as_ref() { + if let Some(rule) = self.no_process_global.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_string_case_mismatch.as_ref() { + if let Some(rule) = self.no_react_prop_assignments.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_switch_declarations.as_ref() { + if let Some(rule) = self.no_render_return_value.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_undeclared_dependencies.as_ref() { + if let Some(rule) = self.no_restricted_elements.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_undeclared_variables.as_ref() { + if let Some(rule) = self.no_self_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_unknown_function.as_ref() { + if let Some(rule) = self.no_setter_return.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { + if let Some(rule) = self.no_solid_destructured_props.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.no_unknown_property.as_ref() { + if let Some(rule) = self.no_string_case_mismatch.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.no_unknown_pseudo_class.as_ref() { + if let Some(rule) = self.no_switch_declarations.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.no_unknown_pseudo_element.as_ref() { + if let Some(rule) = self.no_undeclared_dependencies.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.no_unknown_type_selector.as_ref() { + if let Some(rule) = self.no_undeclared_variables.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.no_unknown_unit.as_ref() { + if let Some(rule) = self.no_unknown_function.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { + if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.no_unreachable.as_ref() { + if let Some(rule) = self.no_unknown_property.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.no_unreachable_super.as_ref() { + if let Some(rule) = self.no_unknown_pseudo_class.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.no_unsafe_finally.as_ref() { + if let Some(rule) = self.no_unknown_pseudo_element.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.no_unsafe_optional_chaining.as_ref() { + if let Some(rule) = self.no_unknown_type_selector.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } - if let Some(rule) = self.no_unused_function_parameters.as_ref() { + if let Some(rule) = self.no_unknown_unit.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } - if let Some(rule) = self.no_unused_imports.as_ref() { + if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } - if let Some(rule) = self.no_unused_labels.as_ref() { + if let Some(rule) = self.no_unreachable.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } - if let Some(rule) = self.no_unused_private_class_members.as_ref() { + if let Some(rule) = self.no_unreachable_super.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } } - if let Some(rule) = self.no_unused_variables.as_ref() { + if let Some(rule) = self.no_unsafe_finally.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); } } - if let Some(rule) = self.no_void_elements_with_children.as_ref() { + if let Some(rule) = self.no_unsafe_optional_chaining.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); } } - if let Some(rule) = self.no_void_type_return.as_ref() { + if let Some(rule) = self.no_unused_function_parameters.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); } } - if let Some(rule) = self.use_exhaustive_dependencies.as_ref() { + if let Some(rule) = self.no_unused_imports.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); } } - if let Some(rule) = self.use_hook_at_top_level.as_ref() { + if let Some(rule) = self.no_unused_labels.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); } } - if let Some(rule) = self.use_import_extensions.as_ref() { + if let Some(rule) = self.no_unused_private_class_members.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); } } - if let Some(rule) = self.use_is_nan.as_ref() { + if let Some(rule) = self.no_unused_variables.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); } } - if let Some(rule) = self.use_jsx_key_in_iterable.as_ref() { + if let Some(rule) = self.no_void_elements_with_children.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); } } - if let Some(rule) = self.use_valid_for_direction.as_ref() { + if let Some(rule) = self.no_void_type_return.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); } } - if let Some(rule) = self.use_valid_typeof.as_ref() { + if let Some(rule) = self.use_exhaustive_dependencies.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); } } - if let Some(rule) = self.use_yield.as_ref() { + if let Some(rule) = self.use_hook_at_top_level.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); } } - index_set - } - fn get_disabled_rules(&self) -> FxHashSet> { - let mut index_set = FxHashSet::default(); - if let Some(rule) = self.no_children_prop.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0])); - } - } - if let Some(rule) = self.no_const_assign.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[1])); + if let Some(rule) = self.use_import_extensions.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); } } - if let Some(rule) = self.no_constant_condition.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2])); + if let Some(rule) = self.use_is_nan.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); } } - if let Some(rule) = self.no_constant_math_min_max_clamp.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); + if let Some(rule) = self.use_json_import_attributes.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); } } - if let Some(rule) = self.no_constructor_return.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); + if let Some(rule) = self.use_jsx_key_in_iterable.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); } } - if let Some(rule) = self.no_empty_character_class_in_regex.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); + if let Some(rule) = self.use_named_graphql_operations.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); + } + } + if let Some(rule) = self.use_parse_int_radix.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); + } + } + if let Some(rule) = self.use_single_js_doc_asterisk.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); + } + } + if let Some(rule) = self.use_unique_element_ids.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); + } + } + if let Some(rule) = self.use_valid_for_direction.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); + } + } + if let Some(rule) = self.use_valid_typeof.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); + } + } + if let Some(rule) = self.use_yield.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); + } + } + index_set + } + fn get_disabled_rules(&self) -> FxHashSet> { + let mut index_set = FxHashSet::default(); + if let Some(rule) = self.no_children_prop.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0])); + } + } + if let Some(rule) = self.no_const_assign.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[1])); + } + } + if let Some(rule) = self.no_constant_condition.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2])); + } + } + if let Some(rule) = self.no_constant_math_min_max_clamp.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); + } + } + if let Some(rule) = self.no_constructor_return.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); + } + } + if let Some(rule) = self.no_empty_character_class_in_regex.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } if let Some(rule) = self.no_empty_pattern.as_ref() { @@ -3756,241 +3922,296 @@ impl RuleGroupExt for Correctness { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_global_object_calls.as_ref() { + if let Some(rule) = self.no_global_dirname_filename.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_inner_declarations.as_ref() { + if let Some(rule) = self.no_global_object_calls.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_invalid_builtin_instantiation.as_ref() { + if let Some(rule) = self.no_inner_declarations.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_invalid_constructor_super.as_ref() { + if let Some(rule) = self.no_invalid_builtin_instantiation.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_invalid_direction_in_linear_gradient.as_ref() { + if let Some(rule) = self.no_invalid_constructor_super.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_invalid_grid_areas.as_ref() { + if let Some(rule) = self.no_invalid_direction_in_linear_gradient.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { + if let Some(rule) = self.no_invalid_grid_areas.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_invalid_use_before_declaration.as_ref() { + if let Some(rule) = self.no_invalid_position_at_import_rule.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_missing_var_function.as_ref() { + if let Some(rule) = self.no_invalid_use_before_declaration.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_nodejs_modules.as_ref() { + if let Some(rule) = self.no_missing_var_function.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_nonoctal_decimal_escape.as_ref() { + if let Some(rule) = self.no_nested_component_definitions.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_precision_loss.as_ref() { + if let Some(rule) = self.no_nodejs_modules.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_private_imports.as_ref() { + if let Some(rule) = self.no_nonoctal_decimal_escape.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_render_return_value.as_ref() { + if let Some(rule) = self.no_precision_loss.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_self_assign.as_ref() { + if let Some(rule) = self.no_private_imports.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_setter_return.as_ref() { + if let Some(rule) = self.no_process_global.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_string_case_mismatch.as_ref() { + if let Some(rule) = self.no_react_prop_assignments.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_switch_declarations.as_ref() { + if let Some(rule) = self.no_render_return_value.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_undeclared_dependencies.as_ref() { + if let Some(rule) = self.no_restricted_elements.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_undeclared_variables.as_ref() { + if let Some(rule) = self.no_self_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_unknown_function.as_ref() { + if let Some(rule) = self.no_setter_return.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { + if let Some(rule) = self.no_solid_destructured_props.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.no_unknown_property.as_ref() { + if let Some(rule) = self.no_string_case_mismatch.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.no_unknown_pseudo_class.as_ref() { + if let Some(rule) = self.no_switch_declarations.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.no_unknown_pseudo_element.as_ref() { + if let Some(rule) = self.no_undeclared_dependencies.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.no_unknown_type_selector.as_ref() { + if let Some(rule) = self.no_undeclared_variables.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.no_unknown_unit.as_ref() { + if let Some(rule) = self.no_unknown_function.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { + if let Some(rule) = self.no_unknown_media_feature_name.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.no_unreachable.as_ref() { + if let Some(rule) = self.no_unknown_property.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.no_unreachable_super.as_ref() { + if let Some(rule) = self.no_unknown_pseudo_class.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.no_unsafe_finally.as_ref() { + if let Some(rule) = self.no_unknown_pseudo_element.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.no_unsafe_optional_chaining.as_ref() { + if let Some(rule) = self.no_unknown_type_selector.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } - if let Some(rule) = self.no_unused_function_parameters.as_ref() { + if let Some(rule) = self.no_unknown_unit.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } - if let Some(rule) = self.no_unused_imports.as_ref() { + if let Some(rule) = self.no_unmatchable_anb_selector.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } - if let Some(rule) = self.no_unused_labels.as_ref() { + if let Some(rule) = self.no_unreachable.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } - if let Some(rule) = self.no_unused_private_class_members.as_ref() { + if let Some(rule) = self.no_unreachable_super.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } } - if let Some(rule) = self.no_unused_variables.as_ref() { + if let Some(rule) = self.no_unsafe_finally.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); } } - if let Some(rule) = self.no_void_elements_with_children.as_ref() { + if let Some(rule) = self.no_unsafe_optional_chaining.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); } } - if let Some(rule) = self.no_void_type_return.as_ref() { + if let Some(rule) = self.no_unused_function_parameters.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); } } - if let Some(rule) = self.use_exhaustive_dependencies.as_ref() { + if let Some(rule) = self.no_unused_imports.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); } } - if let Some(rule) = self.use_hook_at_top_level.as_ref() { + if let Some(rule) = self.no_unused_labels.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); } } - if let Some(rule) = self.use_import_extensions.as_ref() { + if let Some(rule) = self.no_unused_private_class_members.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); } } - if let Some(rule) = self.use_is_nan.as_ref() { + if let Some(rule) = self.no_unused_variables.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); } } - if let Some(rule) = self.use_jsx_key_in_iterable.as_ref() { + if let Some(rule) = self.no_void_elements_with_children.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); } } - if let Some(rule) = self.use_valid_for_direction.as_ref() { + if let Some(rule) = self.no_void_type_return.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); } } - if let Some(rule) = self.use_valid_typeof.as_ref() { + if let Some(rule) = self.use_exhaustive_dependencies.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); } } - if let Some(rule) = self.use_yield.as_ref() { + if let Some(rule) = self.use_hook_at_top_level.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); } } + if let Some(rule) = self.use_import_extensions.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); + } + } + if let Some(rule) = self.use_is_nan.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); + } + } + if let Some(rule) = self.use_json_import_attributes.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); + } + } + if let Some(rule) = self.use_jsx_key_in_iterable.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); + } + } + if let Some(rule) = self.use_named_graphql_operations.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); + } + } + if let Some(rule) = self.use_parse_int_radix.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); + } + } + if let Some(rule) = self.use_single_js_doc_asterisk.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); + } + } + if let Some(rule) = self.use_unique_element_ids.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); + } + } + if let Some(rule) = self.use_valid_for_direction.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); + } + } + if let Some(rule) = self.use_valid_typeof.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); + } + } + if let Some(rule) = self.use_yield.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); + } + } index_set } #[doc = r" Checks if, given a rule name, matches one of the rules contained in this category"] @@ -4049,6 +4270,10 @@ impl RuleGroupExt for Correctness { .no_empty_pattern .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noGlobalDirnameFilename" => self + .no_global_dirname_filename + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noGlobalObjectCalls" => self .no_global_object_calls .as_ref() @@ -4085,6 +4310,10 @@ impl RuleGroupExt for Correctness { .no_missing_var_function .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noNestedComponentDefinitions" => self + .no_nested_component_definitions + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noNodejsModules" => self .no_nodejs_modules .as_ref() @@ -4101,10 +4330,22 @@ impl RuleGroupExt for Correctness { .no_private_imports .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noProcessGlobal" => self + .no_process_global + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "noReactPropAssignments" => self + .no_react_prop_assignments + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noRenderReturnValue" => self .no_render_return_value .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noRestrictedElements" => self + .no_restricted_elements + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noSelfAssign" => self .no_self_assign .as_ref() @@ -4113,6 +4354,10 @@ impl RuleGroupExt for Correctness { .no_setter_return .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noSolidDestructuredProps" => self + .no_solid_destructured_props + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noStringCaseMismatch" => self .no_string_case_mismatch .as_ref() @@ -4221,10 +4466,30 @@ impl RuleGroupExt for Correctness { .use_is_nan .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useJsonImportAttributes" => self + .use_json_import_attributes + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useJsxKeyInIterable" => self .use_jsx_key_in_iterable .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useNamedGraphqlOperations" => self + .use_named_graphql_operations + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "useParseIntRadix" => self + .use_parse_int_radix + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "useSingleJsDocAsterisk" => self + .use_single_js_doc_asterisk + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "useUniqueElementIds" => self + .use_unique_element_ids + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useValidForDirection" => self .use_valid_for_direction .as_ref() @@ -4252,6 +4517,7 @@ impl From for Correctness { no_constructor_return: Some(value.into()), no_empty_character_class_in_regex: Some(value.into()), no_empty_pattern: Some(value.into()), + no_global_dirname_filename: Some(value.into()), no_global_object_calls: Some(value.into()), no_inner_declarations: Some(value.into()), no_invalid_builtin_instantiation: Some(value.into()), @@ -4261,13 +4527,18 @@ impl From for Correctness { no_invalid_position_at_import_rule: Some(value.into()), no_invalid_use_before_declaration: Some(value.into()), no_missing_var_function: Some(value.into()), + no_nested_component_definitions: Some(value.into()), no_nodejs_modules: Some(value.into()), no_nonoctal_decimal_escape: Some(value.into()), no_precision_loss: Some(value.into()), no_private_imports: Some(value.into()), + no_process_global: Some(value.into()), + no_react_prop_assignments: Some(value.into()), no_render_return_value: Some(value.into()), + no_restricted_elements: Some(value.into()), no_self_assign: Some(value.into()), no_setter_return: Some(value.into()), + no_solid_destructured_props: Some(value.into()), no_string_case_mismatch: Some(value.into()), no_switch_declarations: Some(value.into()), no_undeclared_dependencies: Some(value.into()), @@ -4295,7 +4566,12 @@ impl From for Correctness { use_hook_at_top_level: Some(value.into()), use_import_extensions: Some(value.into()), use_is_nan: Some(value.into()), + use_json_import_attributes: Some(value.into()), use_jsx_key_in_iterable: Some(value.into()), + use_named_graphql_operations: Some(value.into()), + use_parse_int_radix: Some(value.into()), + use_single_js_doc_asterisk: Some(value.into()), + use_unique_element_ids: Some(value.into()), use_valid_for_direction: Some(value.into()), use_valid_typeof: Some(value.into()), use_yield: Some(value.into()), @@ -4306,86 +4582,38 @@ impl From for Correctness { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Nursery { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow await inside loops."] # [serde (skip_serializing_if = "Option::is_none")] pub no_await_in_loop : Option < RuleConfiguration < biome_rule_options :: no_await_in_loop :: NoAwaitInLoopOptions >> , # [doc = "Disallow bitwise operators."] # [serde (skip_serializing_if = "Option::is_none")] pub no_bitwise_operators : Option < RuleConfiguration < biome_rule_options :: no_bitwise_operators :: NoBitwiseOperatorsOptions >> , # [doc = "Disallow expressions where the operation doesn't affect the value"] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_binary_expression : Option < RuleConfiguration < biome_rule_options :: no_constant_binary_expression :: NoConstantBinaryExpressionOptions >> , # [doc = "Disallow destructuring props inside JSX components in Solid projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_destructured_props : Option < RuleConfiguration < biome_rule_options :: no_destructured_props :: NoDestructuredPropsOptions >> , # [doc = "Restrict the number of lines of code in a function."] # [serde (skip_serializing_if = "Option::is_none")] pub no_excessive_lines_per_function : Option < RuleConfiguration < biome_rule_options :: no_excessive_lines_per_function :: NoExcessiveLinesPerFunctionOptions >> , # [doc = "Require Promise-like statements to be handled appropriately."] # [serde (skip_serializing_if = "Option::is_none")] pub no_floating_promises : Option < RuleFixConfiguration < biome_rule_options :: no_floating_promises :: NoFloatingPromisesOptions >> , # [doc = "Disallow the use of __dirname and __filename in the global scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_dirname_filename : Option < RuleFixConfiguration < biome_rule_options :: no_global_dirname_filename :: NoGlobalDirnameFilenameOptions >> , # [doc = "Disallow shorthand type conversions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_coercion : Option < RuleFixConfiguration < biome_rule_options :: no_implicit_coercion :: NoImplicitCoercionOptions >> , # [doc = "Prevent import cycles."] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_cycles : Option < RuleConfiguration < biome_rule_options :: no_import_cycles :: NoImportCyclesOptions >> , # [doc = "Disallow the use of the !important style."] # [serde (skip_serializing_if = "Option::is_none")] pub no_important_styles : Option < RuleFixConfiguration < biome_rule_options :: no_important_styles :: NoImportantStylesOptions >> , # [doc = "Reports usage of \"magic numbers\" — numbers used directly instead of being assigned to named constants."] # [serde (skip_serializing_if = "Option::is_none")] pub no_magic_numbers : Option < RuleConfiguration < biome_rule_options :: no_magic_numbers :: NoMagicNumbersOptions >> , # [doc = "Disallow Promises to be used in places where they are almost certainly a mistake."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misused_promises : Option < RuleFixConfiguration < biome_rule_options :: no_misused_promises :: NoMisusedPromisesOptions >> , # [doc = "Disallows defining React components inside other components."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nested_component_definitions : Option < RuleConfiguration < biome_rule_options :: no_nested_component_definitions :: NoNestedComponentDefinitionsOptions >> , # [doc = "Prevent client components from being async functions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_next_async_client_component : Option < RuleConfiguration < biome_rule_options :: no_next_async_client_component :: NoNextAsyncClientComponentOptions >> , # [doc = "Disallow non-null assertions after optional chaining expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_asserted_optional_chain : Option < RuleConfiguration < biome_rule_options :: no_non_null_asserted_optional_chain :: NoNonNullAssertedOptionalChainOptions >> , # [doc = "Disallow use event handlers on non-interactive elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_noninteractive_element_interactions : Option < RuleConfiguration < biome_rule_options :: no_noninteractive_element_interactions :: NoNoninteractiveElementInteractionsOptions >> , # [doc = "Disallow the use of process global."] # [serde (skip_serializing_if = "Option::is_none")] pub no_process_global : Option < RuleFixConfiguration < biome_rule_options :: no_process_global :: NoProcessGlobalOptions >> , # [doc = "Disallow the use if quickfix.biome inside editor settings file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_quickfix_biome : Option < RuleFixConfiguration < biome_rule_options :: no_quickfix_biome :: NoQuickfixBiomeOptions >> , # [doc = "Disallow useVisibleTask$() functions in Qwik components."] # [serde (skip_serializing_if = "Option::is_none")] pub no_qwik_use_visible_task : Option < RuleConfiguration < biome_rule_options :: no_qwik_use_visible_task :: NoQwikUseVisibleTaskOptions >> , # [doc = "Disallow assigning to React component props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_react_prop_assign : Option < RuleConfiguration < biome_rule_options :: no_react_prop_assign :: NoReactPropAssignOptions >> , # [doc = "Disallow the use of configured elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_elements : Option < RuleConfiguration < biome_rule_options :: no_restricted_elements :: NoRestrictedElementsOptions >> , # [doc = "Disallow usage of sensitive data such as API keys and tokens."] # [serde (skip_serializing_if = "Option::is_none")] pub no_secrets : Option < RuleConfiguration < biome_rule_options :: no_secrets :: NoSecretsOptions >> , # [doc = "Disallow variable declarations from shadowing variables declared in the outer scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow : Option < RuleConfiguration < biome_rule_options :: no_shadow :: NoShadowOptions >> , # [doc = "Prevents the use of the TypeScript directive @ts-ignore."] # [serde (skip_serializing_if = "Option::is_none")] pub no_ts_ignore : Option < RuleFixConfiguration < biome_rule_options :: no_ts_ignore :: NoTsIgnoreOptions >> , # [doc = "Disallow let or var variables that are read but never assigned."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unassigned_variables : Option < RuleConfiguration < biome_rule_options :: no_unassigned_variables :: NoUnassignedVariablesOptions >> , # [doc = "Disallow unknown at-rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_at_rule : Option < RuleConfiguration < biome_rule_options :: no_unknown_at_rule :: NoUnknownAtRuleOptions >> , # [doc = "Disallow unnecessary type-based conditions that can be statically determined as redundant."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unnecessary_conditions : Option < RuleConfiguration < biome_rule_options :: no_unnecessary_conditions :: NoUnnecessaryConditionsOptions >> , # [doc = "Warn when importing non-existing exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unresolved_imports : Option < RuleConfiguration < biome_rule_options :: no_unresolved_imports :: NoUnresolvedImportsOptions >> , # [doc = "Prevent duplicate polyfills from Polyfill.io."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unwanted_polyfillio : Option < RuleConfiguration < biome_rule_options :: no_unwanted_polyfillio :: NoUnwantedPolyfillioOptions >> , # [doc = "Disallow useless backreferences in regular expression literals that always match an empty string."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_backref_in_regex : Option < RuleConfiguration < biome_rule_options :: no_useless_backref_in_regex :: NoUselessBackrefInRegexOptions >> , # [doc = "Disallow unnecessary escapes in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_escape_in_string : Option < RuleFixConfiguration < biome_rule_options :: no_useless_escape_in_string :: NoUselessEscapeInStringOptions >> , # [doc = "Disallow the use of useless undefined."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_undefined : Option < RuleFixConfiguration < biome_rule_options :: no_useless_undefined :: NoUselessUndefinedOptions >> , # [doc = "Enforce that Vue component data options are declared as functions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_data_object_declaration : Option < RuleFixConfiguration < biome_rule_options :: no_vue_data_object_declaration :: NoVueDataObjectDeclarationOptions >> , # [doc = "Disallow reserved keys in Vue component data and computed properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_keys : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_keys :: NoVueReservedKeysOptions >> , # [doc = "Disallow reserved names to be used as props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_props : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_props :: NoVueReservedPropsOptions >> , # [doc = "Enforce that getters and setters for the same property are adjacent in class and object definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_adjacent_getter_setter : Option < RuleConfiguration < biome_rule_options :: use_adjacent_getter_setter :: UseAdjacentGetterSetterOptions >> , # [doc = "Enforces href attribute for \\ elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_anchor_href : Option < RuleConfiguration < biome_rule_options :: use_anchor_href :: UseAnchorHrefOptions >> , # [doc = "Require the consistent declaration of object literals. Defaults to explicit definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_object_definition : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_object_definition :: UseConsistentObjectDefinitionOptions >> , # [doc = "Use static Response methods instead of new Response() constructor when possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_response : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_response :: UseConsistentResponseOptions >> , # [doc = "Enforce type definitions to consistently use either interface or type."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_type_definitions : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_type_definitions :: UseConsistentTypeDefinitionsOptions >> , # [doc = "Require switch-case statements to be exhaustive."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exhaustive_switch_cases : Option < RuleFixConfiguration < biome_rule_options :: use_exhaustive_switch_cases :: UseExhaustiveSwitchCasesOptions >> , # [doc = "Enforce types in functions, methods, variables, and parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_type : Option < RuleConfiguration < biome_rule_options :: use_explicit_type :: UseExplicitTypeOptions >> , # [doc = "Require that all exports are declared after all non-export statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exports_last : Option < RuleConfiguration < biome_rule_options :: use_exports_last :: UseExportsLastOptions >> , # [doc = "Enforce using Solid's \\ component for mapping an array to JSX elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_for_component : Option < RuleConfiguration < biome_rule_options :: use_for_component :: UseForComponentOptions >> , # [doc = "Ensure the preconnect attribute is used when using Google Fonts."] # [serde (skip_serializing_if = "Option::is_none")] pub use_google_font_preconnect : Option < RuleFixConfiguration < biome_rule_options :: use_google_font_preconnect :: UseGoogleFontPreconnectOptions >> , # [doc = "Enforces that \\ elements have both width and height attributes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_image_size : Option < RuleConfiguration < biome_rule_options :: use_image_size :: UseImageSizeOptions >> , # [doc = "Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item."] # [serde (skip_serializing_if = "Option::is_none")] pub use_index_of : Option < RuleFixConfiguration < biome_rule_options :: use_index_of :: UseIndexOfOptions >> , # [doc = "Enforce consistent return values in iterable callbacks."] # [serde (skip_serializing_if = "Option::is_none")] pub use_iterable_callback_return : Option < RuleConfiguration < biome_rule_options :: use_iterable_callback_return :: UseIterableCallbackReturnOptions >> , # [doc = "Enforces the use of with { type: \"json\" } for JSON module imports."] # [serde (skip_serializing_if = "Option::is_none")] pub use_json_import_attribute : Option < RuleFixConfiguration < biome_rule_options :: use_json_import_attribute :: UseJsonImportAttributeOptions >> , # [doc = "Enforce a maximum number of parameters in function definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_max_params : Option < RuleConfiguration < biome_rule_options :: use_max_params :: UseMaxParamsOptions >> , # [doc = "Enforce specifying the name of GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub use_named_operation : Option < RuleFixConfiguration < biome_rule_options :: use_named_operation :: UseNamedOperationOptions >> , # [doc = "Validates that all enum values are capitalized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_naming_convention : Option < RuleConfiguration < biome_rule_options :: use_naming_convention :: UseNamingConventionOptions >> , # [doc = "Enforce the use of numeric separators in numeric literals."] # [serde (skip_serializing_if = "Option::is_none")] pub use_numeric_separators : Option < RuleFixConfiguration < biome_rule_options :: use_numeric_separators :: UseNumericSeparatorsOptions >> , # [doc = "Prefer object spread over Object.assign() when constructing new objects."] # [serde (skip_serializing_if = "Option::is_none")] pub use_object_spread : Option < RuleFixConfiguration < biome_rule_options :: use_object_spread :: UseObjectSpreadOptions >> , # [doc = "Enforce the consistent use of the radix argument when using parseInt()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_parse_int_radix : Option < RuleFixConfiguration < biome_rule_options :: use_parse_int_radix :: UseParseIntRadixOptions >> , # [doc = "Prefer using the class prop as a classlist over the classnames helper."] # [serde (skip_serializing_if = "Option::is_none")] pub use_qwik_classlist : Option < RuleConfiguration < biome_rule_options :: use_qwik_classlist :: UseQwikClasslistOptions >> , # [doc = "Enforce that components are defined as functions and never as classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_react_function_components : Option < RuleConfiguration < biome_rule_options :: use_react_function_components :: UseReactFunctionComponentsOptions >> , # [doc = "Enforce marking members as readonly if they are never modified outside the constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub use_readonly_class_properties : Option < RuleFixConfiguration < biome_rule_options :: use_readonly_class_properties :: UseReadonlyClassPropertiesOptions >> , # [doc = "Enforce JSDoc comment lines to start with a single asterisk, except for the first one."] # [serde (skip_serializing_if = "Option::is_none")] pub use_single_js_doc_asterisk : Option < RuleFixConfiguration < biome_rule_options :: use_single_js_doc_asterisk :: UseSingleJsDocAsteriskOptions >> , # [doc = "Enforce the sorting of CSS utility classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_sorted_classes : Option < RuleFixConfiguration < biome_rule_options :: use_sorted_classes :: UseSortedClassesOptions >> , # [doc = "Require a description parameter for the Symbol()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_symbol_description : Option < RuleConfiguration < biome_rule_options :: use_symbol_description :: UseSymbolDescriptionOptions >> , # [doc = "Disallow overload signatures that can be unified into a single signature."] # [serde (skip_serializing_if = "Option::is_none")] pub use_unified_type_signature : Option < RuleFixConfiguration < biome_rule_options :: use_unified_type_signature :: UseUnifiedTypeSignatureOptions >> , # [doc = "Prevent the usage of static string literal id attribute on elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_unique_element_ids : Option < RuleConfiguration < biome_rule_options :: use_unique_element_ids :: UseUniqueElementIdsOptions >> } +pub struct Nursery { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Require Promise-like statements to be handled appropriately."] # [serde (skip_serializing_if = "Option::is_none")] pub no_floating_promises : Option < RuleFixConfiguration < biome_rule_options :: no_floating_promises :: NoFloatingPromisesOptions >> , # [doc = "Prevent import cycles."] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_cycles : Option < RuleConfiguration < biome_rule_options :: no_import_cycles :: NoImportCyclesOptions >> , # [doc = "Disallow Promises to be used in places where they are almost certainly a mistake."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misused_promises : Option < RuleFixConfiguration < biome_rule_options :: no_misused_promises :: NoMisusedPromisesOptions >> , # [doc = "Disallow non-null assertions after optional chaining expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_asserted_optional_chain : Option < RuleConfiguration < biome_rule_options :: no_non_null_asserted_optional_chain :: NoNonNullAssertedOptionalChainOptions >> , # [doc = "Disallow the use if quickfix.biome inside editor settings file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_quickfix_biome : Option < RuleFixConfiguration < biome_rule_options :: no_quickfix_biome :: NoQuickfixBiomeOptions >> , # [doc = "Disallow useVisibleTask$() functions in Qwik components."] # [serde (skip_serializing_if = "Option::is_none")] pub no_qwik_use_visible_task : Option < RuleConfiguration < biome_rule_options :: no_qwik_use_visible_task :: NoQwikUseVisibleTaskOptions >> , # [doc = "Disallow usage of sensitive data such as API keys and tokens."] # [serde (skip_serializing_if = "Option::is_none")] pub no_secrets : Option < RuleConfiguration < biome_rule_options :: no_secrets :: NoSecretsOptions >> , # [doc = "Disallow variable declarations from shadowing variables declared in the outer scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow : Option < RuleConfiguration < biome_rule_options :: no_shadow :: NoShadowOptions >> , # [doc = "Disallow unnecessary type-based conditions that can be statically determined as redundant."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unnecessary_conditions : Option < RuleConfiguration < biome_rule_options :: no_unnecessary_conditions :: NoUnnecessaryConditionsOptions >> , # [doc = "Warn when importing non-existing exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unresolved_imports : Option < RuleConfiguration < biome_rule_options :: no_unresolved_imports :: NoUnresolvedImportsOptions >> , # [doc = "Disallow unnecessary escapes in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_escape_in_string : Option < RuleFixConfiguration < biome_rule_options :: no_useless_escape_in_string :: NoUselessEscapeInStringOptions >> , # [doc = "Disallow reserved keys in Vue component data and computed properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_keys : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_keys :: NoVueReservedKeysOptions >> , # [doc = "Disallow reserved names to be used as props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_props : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_props :: NoVueReservedPropsOptions >> , # [doc = "Enforces href attribute for \\ elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_anchor_href : Option < RuleConfiguration < biome_rule_options :: use_anchor_href :: UseAnchorHrefOptions >> , # [doc = "Enforce type definitions to consistently use either interface or type."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_type_definitions : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_type_definitions :: UseConsistentTypeDefinitionsOptions >> , # [doc = "Require switch-case statements to be exhaustive."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exhaustive_switch_cases : Option < RuleFixConfiguration < biome_rule_options :: use_exhaustive_switch_cases :: UseExhaustiveSwitchCasesOptions >> , # [doc = "Enforce types in functions, methods, variables, and parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_type : Option < RuleConfiguration < biome_rule_options :: use_explicit_type :: UseExplicitTypeOptions >> , # [doc = "Enforces that \\ elements have both width and height attributes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_image_size : Option < RuleConfiguration < biome_rule_options :: use_image_size :: UseImageSizeOptions >> , # [doc = "Enforce specifying the name of GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub use_named_operation : Option < RuleFixConfiguration < biome_rule_options :: use_named_operation :: UseNamedOperationOptions >> , # [doc = "Prefer using the class prop as a classlist over the classnames helper."] # [serde (skip_serializing_if = "Option::is_none")] pub use_qwik_classlist : Option < RuleConfiguration < biome_rule_options :: use_qwik_classlist :: UseQwikClasslistOptions >> , # [doc = "Enforce that components are defined as functions and never as classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_react_function_components : Option < RuleConfiguration < biome_rule_options :: use_react_function_components :: UseReactFunctionComponentsOptions >> , # [doc = "Enforce the sorting of CSS utility classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_sorted_classes : Option < RuleFixConfiguration < biome_rule_options :: use_sorted_classes :: UseSortedClassesOptions >> } impl Nursery { const GROUP_NAME: &'static str = "nursery"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ - "noAwaitInLoop", - "noBitwiseOperators", - "noConstantBinaryExpression", - "noDestructuredProps", - "noExcessiveLinesPerFunction", "noFloatingPromises", - "noGlobalDirnameFilename", - "noImplicitCoercion", "noImportCycles", - "noImportantStyles", - "noMagicNumbers", "noMisusedPromises", - "noNestedComponentDefinitions", - "noNextAsyncClientComponent", "noNonNullAssertedOptionalChain", - "noNoninteractiveElementInteractions", - "noProcessGlobal", "noQuickfixBiome", "noQwikUseVisibleTask", - "noReactPropAssign", - "noRestrictedElements", "noSecrets", "noShadow", - "noTsIgnore", - "noUnassignedVariables", - "noUnknownAtRule", "noUnnecessaryConditions", "noUnresolvedImports", - "noUnwantedPolyfillio", - "noUselessBackrefInRegex", "noUselessEscapeInString", - "noUselessUndefined", - "noVueDataObjectDeclaration", "noVueReservedKeys", "noVueReservedProps", - "useAdjacentGetterSetter", "useAnchorHref", - "useConsistentObjectDefinition", - "useConsistentResponse", "useConsistentTypeDefinitions", "useExhaustiveSwitchCases", "useExplicitType", - "useExportsLast", - "useForComponent", - "useGoogleFontPreconnect", "useImageSize", - "useIndexOf", - "useIterableCallbackReturn", - "useJsonImportAttribute", - "useMaxParams", "useNamedOperation", - "useNamingConvention", - "useNumericSeparators", - "useObjectSpread", - "useParseIntRadix", "useQwikClasslist", "useReactFunctionComponents", - "useReadonlyClassProperties", - "useSingleJsDocAsterisk", "useSortedClasses", - "useSymbolDescription", - "useUnifiedTypeSignature", - "useUniqueElementIds", ]; const RECOMMENDED_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -4410,47 +4638,6 @@ impl Nursery { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62]), ]; } impl RuleGroupExt for Nursery { @@ -4462,638 +4649,228 @@ impl RuleGroupExt for Nursery { } fn get_enabled_rules(&self) -> FxHashSet> { let mut index_set = FxHashSet::default(); - if let Some(rule) = self.no_await_in_loop.as_ref() { + if let Some(rule) = self.no_floating_promises.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0])); } } - if let Some(rule) = self.no_bitwise_operators.as_ref() { + if let Some(rule) = self.no_import_cycles.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[1])); } } - if let Some(rule) = self.no_constant_binary_expression.as_ref() { + if let Some(rule) = self.no_misused_promises.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2])); } } - if let Some(rule) = self.no_destructured_props.as_ref() { + if let Some(rule) = self.no_non_null_asserted_optional_chain.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); } } - if let Some(rule) = self.no_excessive_lines_per_function.as_ref() { + if let Some(rule) = self.no_quickfix_biome.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } - if let Some(rule) = self.no_floating_promises.as_ref() { + if let Some(rule) = self.no_qwik_use_visible_task.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_global_dirname_filename.as_ref() { + if let Some(rule) = self.no_secrets.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_implicit_coercion.as_ref() { + if let Some(rule) = self.no_shadow.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_import_cycles.as_ref() { + if let Some(rule) = self.no_unnecessary_conditions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_important_styles.as_ref() { + if let Some(rule) = self.no_unresolved_imports.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_magic_numbers.as_ref() { + if let Some(rule) = self.no_useless_escape_in_string.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_misused_promises.as_ref() { + if let Some(rule) = self.no_vue_reserved_keys.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_nested_component_definitions.as_ref() { + if let Some(rule) = self.no_vue_reserved_props.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_next_async_client_component.as_ref() { + if let Some(rule) = self.use_anchor_href.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_non_null_asserted_optional_chain.as_ref() { + if let Some(rule) = self.use_consistent_type_definitions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_noninteractive_element_interactions.as_ref() { + if let Some(rule) = self.use_exhaustive_switch_cases.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_process_global.as_ref() { + if let Some(rule) = self.use_explicit_type.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_quickfix_biome.as_ref() { + if let Some(rule) = self.use_image_size.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_qwik_use_visible_task.as_ref() { + if let Some(rule) = self.use_named_operation.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_react_prop_assign.as_ref() { + if let Some(rule) = self.use_qwik_classlist.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_restricted_elements.as_ref() { + if let Some(rule) = self.use_react_function_components.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_secrets.as_ref() { + if let Some(rule) = self.use_sorted_classes.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_shadow.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); + index_set + } + fn get_disabled_rules(&self) -> FxHashSet> { + let mut index_set = FxHashSet::default(); + if let Some(rule) = self.no_floating_promises.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0])); } } - if let Some(rule) = self.no_ts_ignore.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); + if let Some(rule) = self.no_import_cycles.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[1])); } } - if let Some(rule) = self.no_unassigned_variables.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); + if let Some(rule) = self.no_misused_promises.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2])); } } - if let Some(rule) = self.no_unknown_at_rule.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); + if let Some(rule) = self.no_non_null_asserted_optional_chain.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); } } - if let Some(rule) = self.no_unnecessary_conditions.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); + if let Some(rule) = self.no_quickfix_biome.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } - if let Some(rule) = self.no_unresolved_imports.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); + if let Some(rule) = self.no_qwik_use_visible_task.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_unwanted_polyfillio.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); + if let Some(rule) = self.no_secrets.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_useless_backref_in_regex.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); + if let Some(rule) = self.no_shadow.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_useless_escape_in_string.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); + if let Some(rule) = self.no_unnecessary_conditions.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_useless_undefined.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); + if let Some(rule) = self.no_unresolved_imports.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_vue_data_object_declaration.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); + if let Some(rule) = self.no_useless_escape_in_string.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } if let Some(rule) = self.no_vue_reserved_keys.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } if let Some(rule) = self.no_vue_reserved_props.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); - } - } - if let Some(rule) = self.use_adjacent_getter_setter.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } if let Some(rule) = self.use_anchor_href.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); - } - } - if let Some(rule) = self.use_consistent_object_definition.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); - } - } - if let Some(rule) = self.use_consistent_response.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } if let Some(rule) = self.use_consistent_type_definitions.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } if let Some(rule) = self.use_exhaustive_switch_cases.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } if let Some(rule) = self.use_explicit_type.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); - } - } - if let Some(rule) = self.use_exports_last.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); - } - } - if let Some(rule) = self.use_for_component.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.use_google_font_preconnect.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); + if let Some(rule) = self.use_image_size.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.use_image_size.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); + if let Some(rule) = self.use_named_operation.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.use_index_of.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); + if let Some(rule) = self.use_qwik_classlist.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.use_iterable_callback_return.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); + if let Some(rule) = self.use_react_function_components.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.use_json_import_attribute.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); - } - } - if let Some(rule) = self.use_max_params.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); - } - } - if let Some(rule) = self.use_named_operation.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); - } - } - if let Some(rule) = self.use_naming_convention.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); - } - } - if let Some(rule) = self.use_numeric_separators.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); - } - } - if let Some(rule) = self.use_object_spread.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); - } - } - if let Some(rule) = self.use_parse_int_radix.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); - } - } - if let Some(rule) = self.use_qwik_classlist.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); - } - } - if let Some(rule) = self.use_react_function_components.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); - } - } - if let Some(rule) = self.use_readonly_class_properties.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); - } - } - if let Some(rule) = self.use_single_js_doc_asterisk.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); - } - } - if let Some(rule) = self.use_sorted_classes.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); - } - } - if let Some(rule) = self.use_symbol_description.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); - } - } - if let Some(rule) = self.use_unified_type_signature.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); - } - } - if let Some(rule) = self.use_unique_element_ids.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); - } - } - index_set - } - fn get_disabled_rules(&self) -> FxHashSet> { - let mut index_set = FxHashSet::default(); - if let Some(rule) = self.no_await_in_loop.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0])); - } - } - if let Some(rule) = self.no_bitwise_operators.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[1])); - } - } - if let Some(rule) = self.no_constant_binary_expression.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2])); - } - } - if let Some(rule) = self.no_destructured_props.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); - } - } - if let Some(rule) = self.no_excessive_lines_per_function.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); - } - } - if let Some(rule) = self.no_floating_promises.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); - } - } - if let Some(rule) = self.no_global_dirname_filename.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); - } - } - if let Some(rule) = self.no_implicit_coercion.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); - } - } - if let Some(rule) = self.no_import_cycles.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); - } - } - if let Some(rule) = self.no_important_styles.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); - } - } - if let Some(rule) = self.no_magic_numbers.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); - } - } - if let Some(rule) = self.no_misused_promises.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); - } - } - if let Some(rule) = self.no_nested_component_definitions.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); - } - } - if let Some(rule) = self.no_next_async_client_component.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); - } - } - if let Some(rule) = self.no_non_null_asserted_optional_chain.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); - } - } - if let Some(rule) = self.no_noninteractive_element_interactions.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); - } - } - if let Some(rule) = self.no_process_global.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); - } - } - if let Some(rule) = self.no_quickfix_biome.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); - } - } - if let Some(rule) = self.no_qwik_use_visible_task.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); - } - } - if let Some(rule) = self.no_react_prop_assign.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); - } - } - if let Some(rule) = self.no_restricted_elements.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); - } - } - if let Some(rule) = self.no_secrets.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); - } - } - if let Some(rule) = self.no_shadow.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); - } - } - if let Some(rule) = self.no_ts_ignore.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); - } - } - if let Some(rule) = self.no_unassigned_variables.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); - } - } - if let Some(rule) = self.no_unknown_at_rule.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); - } - } - if let Some(rule) = self.no_unnecessary_conditions.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); - } - } - if let Some(rule) = self.no_unresolved_imports.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); - } - } - if let Some(rule) = self.no_unwanted_polyfillio.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); - } - } - if let Some(rule) = self.no_useless_backref_in_regex.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); - } - } - if let Some(rule) = self.no_useless_escape_in_string.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); - } - } - if let Some(rule) = self.no_useless_undefined.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); - } - } - if let Some(rule) = self.no_vue_data_object_declaration.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); - } - } - if let Some(rule) = self.no_vue_reserved_keys.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); - } - } - if let Some(rule) = self.no_vue_reserved_props.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); - } - } - if let Some(rule) = self.use_adjacent_getter_setter.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); - } - } - if let Some(rule) = self.use_anchor_href.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); - } - } - if let Some(rule) = self.use_consistent_object_definition.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); - } - } - if let Some(rule) = self.use_consistent_response.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); - } - } - if let Some(rule) = self.use_consistent_type_definitions.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); - } - } - if let Some(rule) = self.use_exhaustive_switch_cases.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); - } - } - if let Some(rule) = self.use_explicit_type.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); - } - } - if let Some(rule) = self.use_exports_last.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); - } - } - if let Some(rule) = self.use_for_component.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); - } - } - if let Some(rule) = self.use_google_font_preconnect.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); - } - } - if let Some(rule) = self.use_image_size.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); - } - } - if let Some(rule) = self.use_index_of.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); - } - } - if let Some(rule) = self.use_iterable_callback_return.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); - } - } - if let Some(rule) = self.use_json_import_attribute.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); - } - } - if let Some(rule) = self.use_max_params.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); - } - } - if let Some(rule) = self.use_named_operation.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); - } - } - if let Some(rule) = self.use_naming_convention.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); - } - } - if let Some(rule) = self.use_numeric_separators.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); - } - } - if let Some(rule) = self.use_object_spread.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); - } - } - if let Some(rule) = self.use_parse_int_radix.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); - } - } - if let Some(rule) = self.use_qwik_classlist.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); - } - } - if let Some(rule) = self.use_react_function_components.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); - } - } - if let Some(rule) = self.use_readonly_class_properties.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); - } - } - if let Some(rule) = self.use_single_js_doc_asterisk.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); - } - } - if let Some(rule) = self.use_sorted_classes.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); - } - } - if let Some(rule) = self.use_symbol_description.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); - } - } - if let Some(rule) = self.use_unified_type_signature.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); - } - } - if let Some(rule) = self.use_unique_element_ids.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); + if let Some(rule) = self.use_sorted_classes.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } index_set @@ -5126,72 +4903,20 @@ impl RuleGroupExt for Nursery { rule_name: &str, ) -> Option<(RulePlainConfiguration, Option)> { match rule_name { - "noAwaitInLoop" => self - .no_await_in_loop - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noBitwiseOperators" => self - .no_bitwise_operators - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noConstantBinaryExpression" => self - .no_constant_binary_expression - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noDestructuredProps" => self - .no_destructured_props - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noExcessiveLinesPerFunction" => self - .no_excessive_lines_per_function - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noFloatingPromises" => self .no_floating_promises .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noGlobalDirnameFilename" => self - .no_global_dirname_filename - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noImplicitCoercion" => self - .no_implicit_coercion - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noImportCycles" => self .no_import_cycles .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noImportantStyles" => self - .no_important_styles - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noMagicNumbers" => self - .no_magic_numbers - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noMisusedPromises" => self .no_misused_promises .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noNestedComponentDefinitions" => self - .no_nested_component_definitions - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noNextAsyncClientComponent" => self - .no_next_async_client_component - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noNonNullAssertedOptionalChain" => self - .no_non_null_asserted_optional_chain - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noNoninteractiveElementInteractions" => self - .no_noninteractive_element_interactions - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noProcessGlobal" => self - .no_process_global + "noNonNullAssertedOptionalChain" => self + .no_non_null_asserted_optional_chain .as_ref() .map(|conf| (conf.level(), conf.get_options())), "noQuickfixBiome" => self @@ -5202,14 +4927,6 @@ impl RuleGroupExt for Nursery { .no_qwik_use_visible_task .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noReactPropAssign" => self - .no_react_prop_assign - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noRestrictedElements" => self - .no_restricted_elements - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noSecrets" => self .no_secrets .as_ref() @@ -5218,18 +4935,6 @@ impl RuleGroupExt for Nursery { .no_shadow .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noTsIgnore" => self - .no_ts_ignore - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noUnassignedVariables" => self - .no_unassigned_variables - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noUnknownAtRule" => self - .no_unknown_at_rule - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noUnnecessaryConditions" => self .no_unnecessary_conditions .as_ref() @@ -5238,26 +4943,10 @@ impl RuleGroupExt for Nursery { .no_unresolved_imports .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noUnwantedPolyfillio" => self - .no_unwanted_polyfillio - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noUselessBackrefInRegex" => self - .no_useless_backref_in_regex - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noUselessEscapeInString" => self .no_useless_escape_in_string .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noUselessUndefined" => self - .no_useless_undefined - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "noVueDataObjectDeclaration" => self - .no_vue_data_object_declaration - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noVueReservedKeys" => self .no_vue_reserved_keys .as_ref() @@ -5266,22 +4955,10 @@ impl RuleGroupExt for Nursery { .no_vue_reserved_props .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useAdjacentGetterSetter" => self - .use_adjacent_getter_setter - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "useAnchorHref" => self .use_anchor_href .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useConsistentObjectDefinition" => self - .use_consistent_object_definition - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useConsistentResponse" => self - .use_consistent_response - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "useConsistentTypeDefinitions" => self .use_consistent_type_definitions .as_ref() @@ -5294,58 +4971,14 @@ impl RuleGroupExt for Nursery { .use_explicit_type .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useExportsLast" => self - .use_exports_last - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useForComponent" => self - .use_for_component - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useGoogleFontPreconnect" => self - .use_google_font_preconnect - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "useImageSize" => self .use_image_size .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useIndexOf" => self - .use_index_of - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useIterableCallbackReturn" => self - .use_iterable_callback_return - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useJsonImportAttribute" => self - .use_json_import_attribute - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useMaxParams" => self - .use_max_params - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "useNamedOperation" => self .use_named_operation .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useNamingConvention" => self - .use_naming_convention - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useNumericSeparators" => self - .use_numeric_separators - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useObjectSpread" => self - .use_object_spread - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useParseIntRadix" => self - .use_parse_int_radix - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "useQwikClasslist" => self .use_qwik_classlist .as_ref() @@ -5354,30 +4987,10 @@ impl RuleGroupExt for Nursery { .use_react_function_components .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useReadonlyClassProperties" => self - .use_readonly_class_properties - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useSingleJsDocAsterisk" => self - .use_single_js_doc_asterisk - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "useSortedClasses" => self .use_sorted_classes .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "useSymbolDescription" => self - .use_symbol_description - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useUnifiedTypeSignature" => self - .use_unified_type_signature - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), - "useUniqueElementIds" => self - .use_unique_element_ids - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), _ => None, } } @@ -5386,69 +4999,28 @@ impl From for Nursery { fn from(value: GroupPlainConfiguration) -> Self { Self { recommended: None, - no_await_in_loop: Some(value.into()), - no_bitwise_operators: Some(value.into()), - no_constant_binary_expression: Some(value.into()), - no_destructured_props: Some(value.into()), - no_excessive_lines_per_function: Some(value.into()), no_floating_promises: Some(value.into()), - no_global_dirname_filename: Some(value.into()), - no_implicit_coercion: Some(value.into()), no_import_cycles: Some(value.into()), - no_important_styles: Some(value.into()), - no_magic_numbers: Some(value.into()), no_misused_promises: Some(value.into()), - no_nested_component_definitions: Some(value.into()), - no_next_async_client_component: Some(value.into()), no_non_null_asserted_optional_chain: Some(value.into()), - no_noninteractive_element_interactions: Some(value.into()), - no_process_global: Some(value.into()), no_quickfix_biome: Some(value.into()), no_qwik_use_visible_task: Some(value.into()), - no_react_prop_assign: Some(value.into()), - no_restricted_elements: Some(value.into()), no_secrets: Some(value.into()), no_shadow: Some(value.into()), - no_ts_ignore: Some(value.into()), - no_unassigned_variables: Some(value.into()), - no_unknown_at_rule: Some(value.into()), no_unnecessary_conditions: Some(value.into()), no_unresolved_imports: Some(value.into()), - no_unwanted_polyfillio: Some(value.into()), - no_useless_backref_in_regex: Some(value.into()), no_useless_escape_in_string: Some(value.into()), - no_useless_undefined: Some(value.into()), - no_vue_data_object_declaration: Some(value.into()), no_vue_reserved_keys: Some(value.into()), no_vue_reserved_props: Some(value.into()), - use_adjacent_getter_setter: Some(value.into()), use_anchor_href: Some(value.into()), - use_consistent_object_definition: Some(value.into()), - use_consistent_response: Some(value.into()), use_consistent_type_definitions: Some(value.into()), use_exhaustive_switch_cases: Some(value.into()), use_explicit_type: Some(value.into()), - use_exports_last: Some(value.into()), - use_for_component: Some(value.into()), - use_google_font_preconnect: Some(value.into()), use_image_size: Some(value.into()), - use_index_of: Some(value.into()), - use_iterable_callback_return: Some(value.into()), - use_json_import_attribute: Some(value.into()), - use_max_params: Some(value.into()), use_named_operation: Some(value.into()), - use_naming_convention: Some(value.into()), - use_numeric_separators: Some(value.into()), - use_object_spread: Some(value.into()), - use_parse_int_radix: Some(value.into()), use_qwik_classlist: Some(value.into()), use_react_function_components: Some(value.into()), - use_readonly_class_properties: Some(value.into()), - use_single_js_doc_asterisk: Some(value.into()), use_sorted_classes: Some(value.into()), - use_symbol_description: Some(value.into()), - use_unified_type_signature: Some(value.into()), - use_unique_element_ids: Some(value.into()), } } } @@ -5456,22 +5028,26 @@ impl From for Nursery { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Performance { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow the use of spread (...) syntax on accumulators."] # [serde (skip_serializing_if = "Option::is_none")] pub no_accumulating_spread : Option < RuleConfiguration < biome_rule_options :: no_accumulating_spread :: NoAccumulatingSpreadOptions >> , # [doc = "Disallow the use of barrel file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_barrel_file : Option < RuleConfiguration < biome_rule_options :: no_barrel_file :: NoBarrelFileOptions >> , # [doc = "Disallow the use of the delete operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_delete : Option < RuleFixConfiguration < biome_rule_options :: no_delete :: NoDeleteOptions >> , # [doc = "Disallow accessing namespace imports dynamically."] # [serde (skip_serializing_if = "Option::is_none")] pub no_dynamic_namespace_import_access : Option < RuleConfiguration < biome_rule_options :: no_dynamic_namespace_import_access :: NoDynamicNamespaceImportAccessOptions >> , # [doc = "Prevent usage of \\ element in a Next.js project."] # [serde (skip_serializing_if = "Option::is_none")] pub no_img_element : Option < RuleConfiguration < biome_rule_options :: no_img_element :: NoImgElementOptions >> , # [doc = "Disallow the use of namespace imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_namespace_import : Option < RuleConfiguration < biome_rule_options :: no_namespace_import :: NoNamespaceImportOptions >> , # [doc = "Avoid re-export all."] # [serde (skip_serializing_if = "Option::is_none")] pub no_re_export_all : Option < RuleConfiguration < biome_rule_options :: no_re_export_all :: NoReExportAllOptions >> , # [doc = "Require regex literals to be declared at the top level."] # [serde (skip_serializing_if = "Option::is_none")] pub use_top_level_regex : Option < RuleConfiguration < biome_rule_options :: use_top_level_regex :: UseTopLevelRegexOptions >> } +pub struct Performance { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow the use of spread (...) syntax on accumulators."] # [serde (skip_serializing_if = "Option::is_none")] pub no_accumulating_spread : Option < RuleConfiguration < biome_rule_options :: no_accumulating_spread :: NoAccumulatingSpreadOptions >> , # [doc = "Disallow await inside loops."] # [serde (skip_serializing_if = "Option::is_none")] pub no_await_in_loops : Option < RuleConfiguration < biome_rule_options :: no_await_in_loops :: NoAwaitInLoopsOptions >> , # [doc = "Disallow the use of barrel file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_barrel_file : Option < RuleConfiguration < biome_rule_options :: no_barrel_file :: NoBarrelFileOptions >> , # [doc = "Disallow the use of the delete operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_delete : Option < RuleFixConfiguration < biome_rule_options :: no_delete :: NoDeleteOptions >> , # [doc = "Disallow accessing namespace imports dynamically."] # [serde (skip_serializing_if = "Option::is_none")] pub no_dynamic_namespace_import_access : Option < RuleConfiguration < biome_rule_options :: no_dynamic_namespace_import_access :: NoDynamicNamespaceImportAccessOptions >> , # [doc = "Prevent usage of \\ element in a Next.js project."] # [serde (skip_serializing_if = "Option::is_none")] pub no_img_element : Option < RuleConfiguration < biome_rule_options :: no_img_element :: NoImgElementOptions >> , # [doc = "Disallow the use of namespace imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_namespace_import : Option < RuleConfiguration < biome_rule_options :: no_namespace_import :: NoNamespaceImportOptions >> , # [doc = "Avoid re-export all."] # [serde (skip_serializing_if = "Option::is_none")] pub no_re_export_all : Option < RuleConfiguration < biome_rule_options :: no_re_export_all :: NoReExportAllOptions >> , # [doc = "Prevent duplicate polyfills from Polyfill.io."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unwanted_polyfillio : Option < RuleConfiguration < biome_rule_options :: no_unwanted_polyfillio :: NoUnwantedPolyfillioOptions >> , # [doc = "Ensure the preconnect attribute is used when using Google Fonts."] # [serde (skip_serializing_if = "Option::is_none")] pub use_google_font_preconnect : Option < RuleFixConfiguration < biome_rule_options :: use_google_font_preconnect :: UseGoogleFontPreconnectOptions >> , # [doc = "Enforce using Solid's \\ component for mapping an array to JSX elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_solid_for_component : Option < RuleConfiguration < biome_rule_options :: use_solid_for_component :: UseSolidForComponentOptions >> , # [doc = "Require regex literals to be declared at the top level."] # [serde (skip_serializing_if = "Option::is_none")] pub use_top_level_regex : Option < RuleConfiguration < biome_rule_options :: use_top_level_regex :: UseTopLevelRegexOptions >> } impl Performance { const GROUP_NAME: &'static str = "performance"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ "noAccumulatingSpread", + "noAwaitInLoops", "noBarrelFile", "noDelete", "noDynamicNamespaceImportAccess", "noImgElement", "noNamespaceImport", "noReExportAll", + "noUnwantedPolyfillio", + "useGoogleFontPreconnect", + "useSolidForComponent", "useTopLevelRegex", ]; const RECOMMENDED_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -5482,6 +5058,10 @@ impl Performance { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11]), ]; } impl RuleGroupExt for Performance { @@ -5498,41 +5078,61 @@ impl RuleGroupExt for Performance { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0])); } } - if let Some(rule) = self.no_barrel_file.as_ref() { + if let Some(rule) = self.no_await_in_loops.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[1])); } } - if let Some(rule) = self.no_delete.as_ref() { + if let Some(rule) = self.no_barrel_file.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2])); } } - if let Some(rule) = self.no_dynamic_namespace_import_access.as_ref() { + if let Some(rule) = self.no_delete.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); } } - if let Some(rule) = self.no_img_element.as_ref() { + if let Some(rule) = self.no_dynamic_namespace_import_access.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } - if let Some(rule) = self.no_namespace_import.as_ref() { + if let Some(rule) = self.no_img_element.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_re_export_all.as_ref() { + if let Some(rule) = self.no_namespace_import.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.use_top_level_regex.as_ref() { + if let Some(rule) = self.no_re_export_all.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } + if let Some(rule) = self.no_unwanted_polyfillio.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); + } + } + if let Some(rule) = self.use_google_font_preconnect.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); + } + } + if let Some(rule) = self.use_solid_for_component.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); + } + } + if let Some(rule) = self.use_top_level_regex.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); + } + } index_set } fn get_disabled_rules(&self) -> FxHashSet> { @@ -5542,41 +5142,61 @@ impl RuleGroupExt for Performance { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0])); } } - if let Some(rule) = self.no_barrel_file.as_ref() { + if let Some(rule) = self.no_await_in_loops.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[1])); } } - if let Some(rule) = self.no_delete.as_ref() { + if let Some(rule) = self.no_barrel_file.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2])); } } - if let Some(rule) = self.no_dynamic_namespace_import_access.as_ref() { + if let Some(rule) = self.no_delete.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); } } - if let Some(rule) = self.no_img_element.as_ref() { + if let Some(rule) = self.no_dynamic_namespace_import_access.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } - if let Some(rule) = self.no_namespace_import.as_ref() { + if let Some(rule) = self.no_img_element.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_re_export_all.as_ref() { + if let Some(rule) = self.no_namespace_import.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.use_top_level_regex.as_ref() { + if let Some(rule) = self.no_re_export_all.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } + if let Some(rule) = self.no_unwanted_polyfillio.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); + } + } + if let Some(rule) = self.use_google_font_preconnect.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); + } + } + if let Some(rule) = self.use_solid_for_component.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); + } + } + if let Some(rule) = self.use_top_level_regex.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); + } + } index_set } #[doc = r" Checks if, given a rule name, matches one of the rules contained in this category"] @@ -5611,6 +5231,10 @@ impl RuleGroupExt for Performance { .no_accumulating_spread .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noAwaitInLoops" => self + .no_await_in_loops + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noBarrelFile" => self .no_barrel_file .as_ref() @@ -5635,6 +5259,18 @@ impl RuleGroupExt for Performance { .no_re_export_all .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noUnwantedPolyfillio" => self + .no_unwanted_polyfillio + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "useGoogleFontPreconnect" => self + .use_google_font_preconnect + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "useSolidForComponent" => self + .use_solid_for_component + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useTopLevelRegex" => self .use_top_level_regex .as_ref() @@ -5648,12 +5284,16 @@ impl From for Performance { Self { recommended: None, no_accumulating_spread: Some(value.into()), + no_await_in_loops: Some(value.into()), no_barrel_file: Some(value.into()), no_delete: Some(value.into()), no_dynamic_namespace_import_access: Some(value.into()), no_img_element: Some(value.into()), no_namespace_import: Some(value.into()), no_re_export_all: Some(value.into()), + no_unwanted_polyfillio: Some(value.into()), + use_google_font_preconnect: Some(value.into()), + use_solid_for_component: Some(value.into()), use_top_level_regex: Some(value.into()), } } @@ -5802,7 +5442,7 @@ impl From for Security { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Style { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow use of CommonJs module system in favor of ESM style imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_common_js : Option < RuleConfiguration < biome_rule_options :: no_common_js :: NoCommonJsOptions >> , # [doc = "Disallow default exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_default_export : Option < RuleConfiguration < biome_rule_options :: no_default_export :: NoDefaultExportOptions >> , # [doc = "Disallow a lower specificity selector from coming after a higher specificity selector."] # [serde (skip_serializing_if = "Option::is_none")] pub no_descending_specificity : Option < RuleConfiguration < biome_rule_options :: no_descending_specificity :: NoDescendingSpecificityOptions >> , # [doc = "Disallow using a callback in asynchronous tests and hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_done_callback : Option < RuleConfiguration < biome_rule_options :: no_done_callback :: NoDoneCallbackOptions >> , # [doc = "Disallow TypeScript enum."] # [serde (skip_serializing_if = "Option::is_none")] pub no_enum : Option < RuleConfiguration < biome_rule_options :: no_enum :: NoEnumOptions >> , # [doc = "Disallow exporting an imported variable."] # [serde (skip_serializing_if = "Option::is_none")] pub no_exported_imports : Option < RuleConfiguration < biome_rule_options :: no_exported_imports :: NoExportedImportsOptions >> , # [doc = "Prevent usage of \\ element in a Next.js project."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_element : Option < RuleConfiguration < biome_rule_options :: no_head_element :: NoHeadElementOptions >> , # [doc = "Disallow implicit true values on JSX boolean attributes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_boolean : Option < RuleFixConfiguration < biome_rule_options :: no_implicit_boolean :: NoImplicitBooleanOptions >> , # [doc = "Disallow type annotations for variables, parameters, and class properties initialized with a literal expression."] # [serde (skip_serializing_if = "Option::is_none")] pub no_inferrable_types : Option < RuleFixConfiguration < biome_rule_options :: no_inferrable_types :: NoInferrableTypesOptions >> , # [doc = "Disallow the use of TypeScript's namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_namespace : Option < RuleConfiguration < biome_rule_options :: no_namespace :: NoNamespaceOptions >> , # [doc = "Disallow negation in the condition of an if statement if it has an else clause."] # [serde (skip_serializing_if = "Option::is_none")] pub no_negation_else : Option < RuleFixConfiguration < biome_rule_options :: no_negation_else :: NoNegationElseOptions >> , # [doc = "Disallow nested ternary expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nested_ternary : Option < RuleConfiguration < biome_rule_options :: no_nested_ternary :: NoNestedTernaryOptions >> , # [doc = "Disallow non-null assertions using the ! postfix operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_non_null_assertion :: NoNonNullAssertionOptions >> , # [doc = "Disallow reassigning function parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_assign : Option < RuleConfiguration < biome_rule_options :: no_parameter_assign :: NoParameterAssignOptions >> , # [doc = "Disallow the use of parameter properties in class constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_properties : Option < RuleConfiguration < biome_rule_options :: no_parameter_properties :: NoParameterPropertiesOptions >> , # [doc = "Disallow the use of process.env."] # [serde (skip_serializing_if = "Option::is_none")] pub no_process_env : Option < RuleConfiguration < biome_rule_options :: no_process_env :: NoProcessEnvOptions >> , # [doc = "This rule allows you to specify global variable names that you don’t want to use in your application."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_globals : Option < RuleConfiguration < biome_rule_options :: no_restricted_globals :: NoRestrictedGlobalsOptions >> , # [doc = "Disallow specified modules when loaded by import or require."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_imports : Option < RuleConfiguration < biome_rule_options :: no_restricted_imports :: NoRestrictedImportsOptions >> , # [doc = "Disallow user defined types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_types : Option < RuleFixConfiguration < biome_rule_options :: no_restricted_types :: NoRestrictedTypesOptions >> , # [doc = "Disallow the use of constants which its value is the upper-case version of its name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shouty_constants : Option < RuleFixConfiguration < biome_rule_options :: no_shouty_constants :: NoShoutyConstantsOptions >> , # [doc = "Enforce the use of String.slice() over String.substr() and String.substring()."] # [serde (skip_serializing_if = "Option::is_none")] pub no_substr : Option < RuleFixConfiguration < biome_rule_options :: no_substr :: NoSubstrOptions >> , # [doc = "Disallow template literals if interpolation and special-character handling are not needed"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_template_literal : Option < RuleFixConfiguration < biome_rule_options :: no_unused_template_literal :: NoUnusedTemplateLiteralOptions >> , # [doc = "Disallow else block when the if block breaks early."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_else : Option < RuleFixConfiguration < biome_rule_options :: no_useless_else :: NoUselessElseOptions >> , # [doc = "Disallow use of @value rule in css modules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_value_at_rule : Option < RuleConfiguration < biome_rule_options :: no_value_at_rule :: NoValueAtRuleOptions >> , # [doc = "Disallow the use of yoda expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_yoda_expression : Option < RuleFixConfiguration < biome_rule_options :: no_yoda_expression :: NoYodaExpressionOptions >> , # [doc = "Disallow Array constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub use_array_literals : Option < RuleFixConfiguration < biome_rule_options :: use_array_literals :: UseArrayLiteralsOptions >> , # [doc = "Enforce the use of as const over literal type and type annotation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_as_const_assertion : Option < RuleFixConfiguration < biome_rule_options :: use_as_const_assertion :: UseAsConstAssertionOptions >> , # [doc = "Use at() instead of integer index access."] # [serde (skip_serializing_if = "Option::is_none")] pub use_at_index : Option < RuleFixConfiguration < biome_rule_options :: use_at_index :: UseAtIndexOptions >> , # [doc = "Requires following curly brace conventions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_block_statements : Option < RuleFixConfiguration < biome_rule_options :: use_block_statements :: UseBlockStatementsOptions >> , # [doc = "Enforce using else if instead of nested if in else clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_else_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_else_if :: UseCollapsedElseIfOptions >> , # [doc = "Enforce using single if instead of nested if clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_if :: UseCollapsedIfOptions >> , # [doc = "Enforce declaring components only within modules that export React Components exclusively."] # [serde (skip_serializing_if = "Option::is_none")] pub use_component_export_only_modules : Option < RuleConfiguration < biome_rule_options :: use_component_export_only_modules :: UseComponentExportOnlyModulesOptions >> , # [doc = "Require consistently using either T\\[] or Array\\"] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_array_type : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_array_type :: UseConsistentArrayTypeOptions >> , # [doc = "Enforce the use of new for all builtins, except String, Number and Boolean."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_builtin_instantiation : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_builtin_instantiation :: UseConsistentBuiltinInstantiationOptions >> , # [doc = "This rule enforces consistent use of curly braces inside JSX attributes and JSX children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_curly_braces : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_curly_braces :: UseConsistentCurlyBracesOptions >> , # [doc = "Require consistent accessibility modifiers on class properties and methods."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_member_accessibility : Option < RuleConfiguration < biome_rule_options :: use_consistent_member_accessibility :: UseConsistentMemberAccessibilityOptions >> , # [doc = "Require const declarations for variables that are only assigned once."] # [serde (skip_serializing_if = "Option::is_none")] pub use_const : Option < RuleFixConfiguration < biome_rule_options :: use_const :: UseConstOptions >> , # [doc = "Enforce default function parameters and optional function parameters to be last."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_parameter_last : Option < RuleFixConfiguration < biome_rule_options :: use_default_parameter_last :: UseDefaultParameterLastOptions >> , # [doc = "Require the default clause in switch statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause :: UseDefaultSwitchClauseOptions >> , # [doc = "Require specifying the reason argument when using @deprecated directive"] # [serde (skip_serializing_if = "Option::is_none")] pub use_deprecated_reason : Option < RuleConfiguration < biome_rule_options :: use_deprecated_reason :: UseDeprecatedReasonOptions >> , # [doc = "Require that each enum member value be explicitly initialized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_enum_initializers : Option < RuleFixConfiguration < biome_rule_options :: use_enum_initializers :: UseEnumInitializersOptions >> , # [doc = "Enforce explicitly comparing the length, size, byteLength or byteOffset property of a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_length_check : Option < RuleFixConfiguration < biome_rule_options :: use_explicit_length_check :: UseExplicitLengthCheckOptions >> , # [doc = "Disallow the use of Math.pow in favor of the ** operator."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exponentiation_operator : Option < RuleFixConfiguration < biome_rule_options :: use_exponentiation_operator :: UseExponentiationOperatorOptions >> , # [doc = "Promotes the use of export type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_export_type : Option < RuleFixConfiguration < biome_rule_options :: use_export_type :: UseExportTypeOptions >> , # [doc = "Enforce naming conventions for JavaScript and TypeScript filenames."] # [serde (skip_serializing_if = "Option::is_none")] pub use_filenaming_convention : Option < RuleConfiguration < biome_rule_options :: use_filenaming_convention :: UseFilenamingConventionOptions >> , # [doc = "This rule recommends a for-of loop when in a for loop, the index used to extract an item from the iterated array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_for_of : Option < RuleConfiguration < biome_rule_options :: use_for_of :: UseForOfOptions >> , # [doc = "This rule enforces the use of \\<>...\\ over \\...\\."] # [serde (skip_serializing_if = "Option::is_none")] pub use_fragment_syntax : Option < RuleFixConfiguration < biome_rule_options :: use_fragment_syntax :: UseFragmentSyntaxOptions >> , # [doc = "Promotes the use of import type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_import_type : Option < RuleFixConfiguration < biome_rule_options :: use_import_type :: UseImportTypeOptions >> , # [doc = "Require all enum members to be literal values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_literal_enum_members : Option < RuleConfiguration < biome_rule_options :: use_literal_enum_members :: UseLiteralEnumMembersOptions >> , # [doc = "Enforce naming conventions for everything across a codebase."] # [serde (skip_serializing_if = "Option::is_none")] pub use_naming_convention : Option < RuleFixConfiguration < biome_rule_options :: use_naming_convention :: UseNamingConventionOptions >> , # [doc = "Promotes the usage of node:assert/strict over node:assert."] # [serde (skip_serializing_if = "Option::is_none")] pub use_node_assert_strict : Option < RuleFixConfiguration < biome_rule_options :: use_node_assert_strict :: UseNodeAssertStrictOptions >> , # [doc = "Enforces using the node: protocol for Node.js builtin modules."] # [serde (skip_serializing_if = "Option::is_none")] pub use_nodejs_import_protocol : Option < RuleFixConfiguration < biome_rule_options :: use_nodejs_import_protocol :: UseNodejsImportProtocolOptions >> , # [doc = "Use the Number properties instead of global ones."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_namespace : Option < RuleFixConfiguration < biome_rule_options :: use_number_namespace :: UseNumberNamespaceOptions >> , # [doc = "Prevent extra closing tags for components without children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_self_closing_elements : Option < RuleFixConfiguration < biome_rule_options :: use_self_closing_elements :: UseSelfClosingElementsOptions >> , # [doc = "Require assignment operator shorthand where possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_assign :: UseShorthandAssignOptions >> , # [doc = "Enforce using function types instead of object type with call signatures."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_function_type : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_function_type :: UseShorthandFunctionTypeOptions >> , # [doc = "Disallow multiple variable declarations in the same variable statement"] # [serde (skip_serializing_if = "Option::is_none")] pub use_single_var_declarator : Option < RuleFixConfiguration < biome_rule_options :: use_single_var_declarator :: UseSingleVarDeclaratorOptions >> , # [doc = "Prefer template literals over string concatenation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_template : Option < RuleFixConfiguration < biome_rule_options :: use_template :: UseTemplateOptions >> , # [doc = "Require new when throwing an error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_new_error : Option < RuleFixConfiguration < biome_rule_options :: use_throw_new_error :: UseThrowNewErrorOptions >> , # [doc = "Disallow throwing non-Error values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_only_error : Option < RuleConfiguration < biome_rule_options :: use_throw_only_error :: UseThrowOnlyErrorOptions >> , # [doc = "Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_trim_start_end : Option < RuleFixConfiguration < biome_rule_options :: use_trim_start_end :: UseTrimStartEndOptions >> } +pub struct Style { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow use of CommonJs module system in favor of ESM style imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_common_js : Option < RuleConfiguration < biome_rule_options :: no_common_js :: NoCommonJsOptions >> , # [doc = "Disallow default exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_default_export : Option < RuleConfiguration < biome_rule_options :: no_default_export :: NoDefaultExportOptions >> , # [doc = "Disallow a lower specificity selector from coming after a higher specificity selector."] # [serde (skip_serializing_if = "Option::is_none")] pub no_descending_specificity : Option < RuleConfiguration < biome_rule_options :: no_descending_specificity :: NoDescendingSpecificityOptions >> , # [doc = "Disallow using a callback in asynchronous tests and hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_done_callback : Option < RuleConfiguration < biome_rule_options :: no_done_callback :: NoDoneCallbackOptions >> , # [doc = "Disallow TypeScript enum."] # [serde (skip_serializing_if = "Option::is_none")] pub no_enum : Option < RuleConfiguration < biome_rule_options :: no_enum :: NoEnumOptions >> , # [doc = "Disallow exporting an imported variable."] # [serde (skip_serializing_if = "Option::is_none")] pub no_exported_imports : Option < RuleConfiguration < biome_rule_options :: no_exported_imports :: NoExportedImportsOptions >> , # [doc = "Prevent usage of \\ element in a Next.js project."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_element : Option < RuleConfiguration < biome_rule_options :: no_head_element :: NoHeadElementOptions >> , # [doc = "Disallow implicit true values on JSX boolean attributes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_boolean : Option < RuleFixConfiguration < biome_rule_options :: no_implicit_boolean :: NoImplicitBooleanOptions >> , # [doc = "Disallow type annotations for variables, parameters, and class properties initialized with a literal expression."] # [serde (skip_serializing_if = "Option::is_none")] pub no_inferrable_types : Option < RuleFixConfiguration < biome_rule_options :: no_inferrable_types :: NoInferrableTypesOptions >> , # [doc = "Reports usage of \"magic numbers\" — numbers used directly instead of being assigned to named constants."] # [serde (skip_serializing_if = "Option::is_none")] pub no_magic_numbers : Option < RuleConfiguration < biome_rule_options :: no_magic_numbers :: NoMagicNumbersOptions >> , # [doc = "Disallow the use of TypeScript's namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_namespace : Option < RuleConfiguration < biome_rule_options :: no_namespace :: NoNamespaceOptions >> , # [doc = "Disallow negation in the condition of an if statement if it has an else clause."] # [serde (skip_serializing_if = "Option::is_none")] pub no_negation_else : Option < RuleFixConfiguration < biome_rule_options :: no_negation_else :: NoNegationElseOptions >> , # [doc = "Disallow nested ternary expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nested_ternary : Option < RuleConfiguration < biome_rule_options :: no_nested_ternary :: NoNestedTernaryOptions >> , # [doc = "Disallow non-null assertions using the ! postfix operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_non_null_assertion :: NoNonNullAssertionOptions >> , # [doc = "Disallow reassigning function parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_assign : Option < RuleConfiguration < biome_rule_options :: no_parameter_assign :: NoParameterAssignOptions >> , # [doc = "Disallow the use of parameter properties in class constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_properties : Option < RuleConfiguration < biome_rule_options :: no_parameter_properties :: NoParameterPropertiesOptions >> , # [doc = "Disallow the use of process.env."] # [serde (skip_serializing_if = "Option::is_none")] pub no_process_env : Option < RuleConfiguration < biome_rule_options :: no_process_env :: NoProcessEnvOptions >> , # [doc = "This rule allows you to specify global variable names that you don’t want to use in your application."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_globals : Option < RuleConfiguration < biome_rule_options :: no_restricted_globals :: NoRestrictedGlobalsOptions >> , # [doc = "Disallow specified modules when loaded by import or require."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_imports : Option < RuleConfiguration < biome_rule_options :: no_restricted_imports :: NoRestrictedImportsOptions >> , # [doc = "Disallow user defined types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_types : Option < RuleFixConfiguration < biome_rule_options :: no_restricted_types :: NoRestrictedTypesOptions >> , # [doc = "Disallow the use of constants which its value is the upper-case version of its name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shouty_constants : Option < RuleFixConfiguration < biome_rule_options :: no_shouty_constants :: NoShoutyConstantsOptions >> , # [doc = "Enforce the use of String.slice() over String.substr() and String.substring()."] # [serde (skip_serializing_if = "Option::is_none")] pub no_substr : Option < RuleFixConfiguration < biome_rule_options :: no_substr :: NoSubstrOptions >> , # [doc = "Disallow template literals if interpolation and special-character handling are not needed"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_template_literal : Option < RuleFixConfiguration < biome_rule_options :: no_unused_template_literal :: NoUnusedTemplateLiteralOptions >> , # [doc = "Disallow else block when the if block breaks early."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_else : Option < RuleFixConfiguration < biome_rule_options :: no_useless_else :: NoUselessElseOptions >> , # [doc = "Disallow the use of useless undefined."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_undefined : Option < RuleFixConfiguration < biome_rule_options :: no_useless_undefined :: NoUselessUndefinedOptions >> , # [doc = "Disallow use of @value rule in css modules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_value_at_rule : Option < RuleConfiguration < biome_rule_options :: no_value_at_rule :: NoValueAtRuleOptions >> , # [doc = "Disallow the use of yoda expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_yoda_expression : Option < RuleFixConfiguration < biome_rule_options :: no_yoda_expression :: NoYodaExpressionOptions >> , # [doc = "Disallow Array constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub use_array_literals : Option < RuleFixConfiguration < biome_rule_options :: use_array_literals :: UseArrayLiteralsOptions >> , # [doc = "Enforce the use of as const over literal type and type annotation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_as_const_assertion : Option < RuleFixConfiguration < biome_rule_options :: use_as_const_assertion :: UseAsConstAssertionOptions >> , # [doc = "Use at() instead of integer index access."] # [serde (skip_serializing_if = "Option::is_none")] pub use_at_index : Option < RuleFixConfiguration < biome_rule_options :: use_at_index :: UseAtIndexOptions >> , # [doc = "Requires following curly brace conventions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_block_statements : Option < RuleFixConfiguration < biome_rule_options :: use_block_statements :: UseBlockStatementsOptions >> , # [doc = "Enforce using else if instead of nested if in else clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_else_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_else_if :: UseCollapsedElseIfOptions >> , # [doc = "Enforce using single if instead of nested if clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_if :: UseCollapsedIfOptions >> , # [doc = "Enforce declaring components only within modules that export React Components exclusively."] # [serde (skip_serializing_if = "Option::is_none")] pub use_component_export_only_modules : Option < RuleConfiguration < biome_rule_options :: use_component_export_only_modules :: UseComponentExportOnlyModulesOptions >> , # [doc = "Require consistently using either T\\[] or Array\\"] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_array_type : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_array_type :: UseConsistentArrayTypeOptions >> , # [doc = "Enforce the use of new for all builtins, except String, Number and Boolean."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_builtin_instantiation : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_builtin_instantiation :: UseConsistentBuiltinInstantiationOptions >> , # [doc = "This rule enforces consistent use of curly braces inside JSX attributes and JSX children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_curly_braces : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_curly_braces :: UseConsistentCurlyBracesOptions >> , # [doc = "Require consistent accessibility modifiers on class properties and methods."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_member_accessibility : Option < RuleConfiguration < biome_rule_options :: use_consistent_member_accessibility :: UseConsistentMemberAccessibilityOptions >> , # [doc = "Require the consistent declaration of object literals. Defaults to explicit definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_object_definitions : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_object_definitions :: UseConsistentObjectDefinitionsOptions >> , # [doc = "Require const declarations for variables that are only assigned once."] # [serde (skip_serializing_if = "Option::is_none")] pub use_const : Option < RuleFixConfiguration < biome_rule_options :: use_const :: UseConstOptions >> , # [doc = "Enforce default function parameters and optional function parameters to be last."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_parameter_last : Option < RuleFixConfiguration < biome_rule_options :: use_default_parameter_last :: UseDefaultParameterLastOptions >> , # [doc = "Require the default clause in switch statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause :: UseDefaultSwitchClauseOptions >> , # [doc = "Require specifying the reason argument when using @deprecated directive"] # [serde (skip_serializing_if = "Option::is_none")] pub use_deprecated_reason : Option < RuleConfiguration < biome_rule_options :: use_deprecated_reason :: UseDeprecatedReasonOptions >> , # [doc = "Require that each enum member value be explicitly initialized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_enum_initializers : Option < RuleFixConfiguration < biome_rule_options :: use_enum_initializers :: UseEnumInitializersOptions >> , # [doc = "Enforce explicitly comparing the length, size, byteLength or byteOffset property of a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_length_check : Option < RuleFixConfiguration < biome_rule_options :: use_explicit_length_check :: UseExplicitLengthCheckOptions >> , # [doc = "Disallow the use of Math.pow in favor of the ** operator."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exponentiation_operator : Option < RuleFixConfiguration < biome_rule_options :: use_exponentiation_operator :: UseExponentiationOperatorOptions >> , # [doc = "Promotes the use of export type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_export_type : Option < RuleFixConfiguration < biome_rule_options :: use_export_type :: UseExportTypeOptions >> , # [doc = "Require that all exports are declared after all non-export statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exports_last : Option < RuleConfiguration < biome_rule_options :: use_exports_last :: UseExportsLastOptions >> , # [doc = "Enforce naming conventions for JavaScript and TypeScript filenames."] # [serde (skip_serializing_if = "Option::is_none")] pub use_filenaming_convention : Option < RuleConfiguration < biome_rule_options :: use_filenaming_convention :: UseFilenamingConventionOptions >> , # [doc = "This rule recommends a for-of loop when in a for loop, the index used to extract an item from the iterated array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_for_of : Option < RuleConfiguration < biome_rule_options :: use_for_of :: UseForOfOptions >> , # [doc = "This rule enforces the use of \\<>...\\ over \\...\\."] # [serde (skip_serializing_if = "Option::is_none")] pub use_fragment_syntax : Option < RuleFixConfiguration < biome_rule_options :: use_fragment_syntax :: UseFragmentSyntaxOptions >> , # [doc = "Enforce that getters and setters for the same property are adjacent in class and object definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_grouped_accessor_pairs : Option < RuleConfiguration < biome_rule_options :: use_grouped_accessor_pairs :: UseGroupedAccessorPairsOptions >> , # [doc = "Promotes the use of import type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_import_type : Option < RuleFixConfiguration < biome_rule_options :: use_import_type :: UseImportTypeOptions >> , # [doc = "Require all enum members to be literal values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_literal_enum_members : Option < RuleConfiguration < biome_rule_options :: use_literal_enum_members :: UseLiteralEnumMembersOptions >> , # [doc = "Validates that all enum values are capitalized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_naming_convention : Option < RuleConfiguration < biome_rule_options :: use_naming_convention :: UseNamingConventionOptions >> , # [doc = "Promotes the usage of node:assert/strict over node:assert."] # [serde (skip_serializing_if = "Option::is_none")] pub use_node_assert_strict : Option < RuleFixConfiguration < biome_rule_options :: use_node_assert_strict :: UseNodeAssertStrictOptions >> , # [doc = "Enforces using the node: protocol for Node.js builtin modules."] # [serde (skip_serializing_if = "Option::is_none")] pub use_nodejs_import_protocol : Option < RuleFixConfiguration < biome_rule_options :: use_nodejs_import_protocol :: UseNodejsImportProtocolOptions >> , # [doc = "Use the Number properties instead of global ones."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_namespace : Option < RuleFixConfiguration < biome_rule_options :: use_number_namespace :: UseNumberNamespaceOptions >> , # [doc = "Enforce the use of numeric separators in numeric literals."] # [serde (skip_serializing_if = "Option::is_none")] pub use_numeric_separators : Option < RuleFixConfiguration < biome_rule_options :: use_numeric_separators :: UseNumericSeparatorsOptions >> , # [doc = "Prefer object spread over Object.assign() when constructing new objects."] # [serde (skip_serializing_if = "Option::is_none")] pub use_object_spread : Option < RuleFixConfiguration < biome_rule_options :: use_object_spread :: UseObjectSpreadOptions >> , # [doc = "Enforce marking members as readonly if they are never modified outside the constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub use_readonly_class_properties : Option < RuleFixConfiguration < biome_rule_options :: use_readonly_class_properties :: UseReadonlyClassPropertiesOptions >> , # [doc = "Prevent extra closing tags for components without children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_self_closing_elements : Option < RuleFixConfiguration < biome_rule_options :: use_self_closing_elements :: UseSelfClosingElementsOptions >> , # [doc = "Require assignment operator shorthand where possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_assign :: UseShorthandAssignOptions >> , # [doc = "Enforce using function types instead of object type with call signatures."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_function_type : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_function_type :: UseShorthandFunctionTypeOptions >> , # [doc = "Disallow multiple variable declarations in the same variable statement"] # [serde (skip_serializing_if = "Option::is_none")] pub use_single_var_declarator : Option < RuleFixConfiguration < biome_rule_options :: use_single_var_declarator :: UseSingleVarDeclaratorOptions >> , # [doc = "Require a description parameter for the Symbol()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_symbol_description : Option < RuleConfiguration < biome_rule_options :: use_symbol_description :: UseSymbolDescriptionOptions >> , # [doc = "Prefer template literals over string concatenation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_template : Option < RuleFixConfiguration < biome_rule_options :: use_template :: UseTemplateOptions >> , # [doc = "Require new when throwing an error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_new_error : Option < RuleFixConfiguration < biome_rule_options :: use_throw_new_error :: UseThrowNewErrorOptions >> , # [doc = "Disallow throwing non-Error values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_only_error : Option < RuleConfiguration < biome_rule_options :: use_throw_only_error :: UseThrowOnlyErrorOptions >> , # [doc = "Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_trim_start_end : Option < RuleFixConfiguration < biome_rule_options :: use_trim_start_end :: UseTrimStartEndOptions >> , # [doc = "Disallow overload signatures that can be unified into a single signature."] # [serde (skip_serializing_if = "Option::is_none")] pub use_unified_type_signatures : Option < RuleFixConfiguration < biome_rule_options :: use_unified_type_signatures :: UseUnifiedTypeSignaturesOptions >> } impl Style { const GROUP_NAME: &'static str = "style"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -5815,6 +5455,7 @@ impl Style { "noHeadElement", "noImplicitBoolean", "noInferrableTypes", + "noMagicNumbers", "noNamespace", "noNegationElse", "noNestedTernary", @@ -5829,6 +5470,7 @@ impl Style { "noSubstr", "noUnusedTemplateLiteral", "noUselessElse", + "noUselessUndefined", "noValueAtRule", "noYodaExpression", "useArrayLiterals", @@ -5842,6 +5484,7 @@ impl Style { "useConsistentBuiltinInstantiation", "useConsistentCurlyBraces", "useConsistentMemberAccessibility", + "useConsistentObjectDefinitions", "useConst", "useDefaultParameterLast", "useDefaultSwitchClause", @@ -5850,37 +5493,44 @@ impl Style { "useExplicitLengthCheck", "useExponentiationOperator", "useExportType", + "useExportsLast", "useFilenamingConvention", "useForOf", "useFragmentSyntax", + "useGroupedAccessorPairs", "useImportType", "useLiteralEnumMembers", "useNamingConvention", "useNodeAssertStrict", "useNodejsImportProtocol", "useNumberNamespace", + "useNumericSeparators", + "useObjectSpread", + "useReadonlyClassProperties", "useSelfClosingElements", "useShorthandAssign", "useShorthandFunctionType", "useSingleVarDeclarator", + "useSymbolDescription", "useTemplate", "useThrowNewError", "useThrowOnlyError", "useTrimStartEnd", + "useUnifiedTypeSignatures", ]; const RECOMMENDED_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -5944,6 +5594,16 @@ impl Style { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70]), ]; } impl RuleGroupExt for Style { @@ -6000,264 +5660,314 @@ impl RuleGroupExt for Style { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_namespace.as_ref() { + if let Some(rule) = self.no_magic_numbers.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_negation_else.as_ref() { + if let Some(rule) = self.no_namespace.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_nested_ternary.as_ref() { + if let Some(rule) = self.no_negation_else.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_non_null_assertion.as_ref() { + if let Some(rule) = self.no_nested_ternary.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_parameter_assign.as_ref() { + if let Some(rule) = self.no_non_null_assertion.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_parameter_properties.as_ref() { + if let Some(rule) = self.no_parameter_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } + if let Some(rule) = self.no_parameter_properties.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); + } + } if let Some(rule) = self.no_process_env.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } if let Some(rule) = self.no_restricted_globals.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } if let Some(rule) = self.no_restricted_imports.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } if let Some(rule) = self.no_restricted_types.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } if let Some(rule) = self.no_shouty_constants.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } if let Some(rule) = self.no_substr.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } if let Some(rule) = self.no_unused_template_literal.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } if let Some(rule) = self.no_useless_else.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); + } + } + if let Some(rule) = self.no_useless_undefined.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } if let Some(rule) = self.no_value_at_rule.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } if let Some(rule) = self.no_yoda_expression.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } if let Some(rule) = self.use_array_literals.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } if let Some(rule) = self.use_as_const_assertion.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } if let Some(rule) = self.use_at_index.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } if let Some(rule) = self.use_block_statements.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } if let Some(rule) = self.use_collapsed_else_if.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } if let Some(rule) = self.use_collapsed_if.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } if let Some(rule) = self.use_component_export_only_modules.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } if let Some(rule) = self.use_consistent_array_type.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } if let Some(rule) = self.use_consistent_builtin_instantiation.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } if let Some(rule) = self.use_consistent_curly_braces.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } if let Some(rule) = self.use_consistent_member_accessibility.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); + } + } + if let Some(rule) = self.use_consistent_object_definitions.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } if let Some(rule) = self.use_const.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } if let Some(rule) = self.use_default_parameter_last.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } if let Some(rule) = self.use_default_switch_clause.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } if let Some(rule) = self.use_deprecated_reason.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } } if let Some(rule) = self.use_enum_initializers.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); } } if let Some(rule) = self.use_explicit_length_check.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); } } if let Some(rule) = self.use_exponentiation_operator.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); } } if let Some(rule) = self.use_export_type.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); + } + } + if let Some(rule) = self.use_exports_last.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); } } if let Some(rule) = self.use_filenaming_convention.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); } } if let Some(rule) = self.use_for_of.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); } } if let Some(rule) = self.use_fragment_syntax.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); + } + } + if let Some(rule) = self.use_grouped_accessor_pairs.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); } } if let Some(rule) = self.use_import_type.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); } } if let Some(rule) = self.use_literal_enum_members.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); } } if let Some(rule) = self.use_naming_convention.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); } } if let Some(rule) = self.use_node_assert_strict.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); } } if let Some(rule) = self.use_nodejs_import_protocol.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); } } if let Some(rule) = self.use_number_namespace.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); + } + } + if let Some(rule) = self.use_numeric_separators.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); + } + } + if let Some(rule) = self.use_object_spread.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); + } + } + if let Some(rule) = self.use_readonly_class_properties.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } if let Some(rule) = self.use_self_closing_elements.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } if let Some(rule) = self.use_shorthand_assign.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } if let Some(rule) = self.use_shorthand_function_type.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } if let Some(rule) = self.use_single_var_declarator.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); + } + } + if let Some(rule) = self.use_symbol_description.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); } } if let Some(rule) = self.use_template.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); } } if let Some(rule) = self.use_throw_new_error.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); } } if let Some(rule) = self.use_throw_only_error.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); } } if let Some(rule) = self.use_trim_start_end.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); + } + } + if let Some(rule) = self.use_unified_type_signatures.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); } } index_set @@ -6309,264 +6019,314 @@ impl RuleGroupExt for Style { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_namespace.as_ref() { + if let Some(rule) = self.no_magic_numbers.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_negation_else.as_ref() { + if let Some(rule) = self.no_namespace.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_nested_ternary.as_ref() { + if let Some(rule) = self.no_negation_else.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_non_null_assertion.as_ref() { + if let Some(rule) = self.no_nested_ternary.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_parameter_assign.as_ref() { + if let Some(rule) = self.no_non_null_assertion.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_parameter_properties.as_ref() { + if let Some(rule) = self.no_parameter_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_process_env.as_ref() { + if let Some(rule) = self.no_parameter_properties.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_restricted_globals.as_ref() { + if let Some(rule) = self.no_process_env.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_restricted_imports.as_ref() { + if let Some(rule) = self.no_restricted_globals.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_restricted_types.as_ref() { + if let Some(rule) = self.no_restricted_imports.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_shouty_constants.as_ref() { + if let Some(rule) = self.no_restricted_types.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_substr.as_ref() { + if let Some(rule) = self.no_shouty_constants.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_unused_template_literal.as_ref() { + if let Some(rule) = self.no_substr.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_useless_else.as_ref() { + if let Some(rule) = self.no_unused_template_literal.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_value_at_rule.as_ref() { + if let Some(rule) = self.no_useless_else.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_yoda_expression.as_ref() { + if let Some(rule) = self.no_useless_undefined.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.use_array_literals.as_ref() { + if let Some(rule) = self.no_value_at_rule.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.use_as_const_assertion.as_ref() { + if let Some(rule) = self.no_yoda_expression.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.use_at_index.as_ref() { + if let Some(rule) = self.use_array_literals.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.use_block_statements.as_ref() { + if let Some(rule) = self.use_as_const_assertion.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.use_collapsed_else_if.as_ref() { + if let Some(rule) = self.use_at_index.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.use_collapsed_if.as_ref() { + if let Some(rule) = self.use_block_statements.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.use_component_export_only_modules.as_ref() { + if let Some(rule) = self.use_collapsed_else_if.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.use_consistent_array_type.as_ref() { + if let Some(rule) = self.use_collapsed_if.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.use_consistent_builtin_instantiation.as_ref() { + if let Some(rule) = self.use_component_export_only_modules.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.use_consistent_curly_braces.as_ref() { + if let Some(rule) = self.use_consistent_array_type.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.use_consistent_member_accessibility.as_ref() { + if let Some(rule) = self.use_consistent_builtin_instantiation.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.use_const.as_ref() { + if let Some(rule) = self.use_consistent_curly_braces.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.use_default_parameter_last.as_ref() { + if let Some(rule) = self.use_consistent_member_accessibility.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.use_default_switch_clause.as_ref() { + if let Some(rule) = self.use_consistent_object_definitions.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } - if let Some(rule) = self.use_deprecated_reason.as_ref() { + if let Some(rule) = self.use_const.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } - if let Some(rule) = self.use_enum_initializers.as_ref() { + if let Some(rule) = self.use_default_parameter_last.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } - if let Some(rule) = self.use_explicit_length_check.as_ref() { + if let Some(rule) = self.use_default_switch_clause.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } - if let Some(rule) = self.use_exponentiation_operator.as_ref() { + if let Some(rule) = self.use_deprecated_reason.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } } - if let Some(rule) = self.use_export_type.as_ref() { + if let Some(rule) = self.use_enum_initializers.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); } } - if let Some(rule) = self.use_filenaming_convention.as_ref() { + if let Some(rule) = self.use_explicit_length_check.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); } } - if let Some(rule) = self.use_for_of.as_ref() { + if let Some(rule) = self.use_exponentiation_operator.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); } } - if let Some(rule) = self.use_fragment_syntax.as_ref() { + if let Some(rule) = self.use_export_type.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); } } - if let Some(rule) = self.use_import_type.as_ref() { + if let Some(rule) = self.use_exports_last.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); } } - if let Some(rule) = self.use_literal_enum_members.as_ref() { + if let Some(rule) = self.use_filenaming_convention.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); } } - if let Some(rule) = self.use_naming_convention.as_ref() { + if let Some(rule) = self.use_for_of.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); } } - if let Some(rule) = self.use_node_assert_strict.as_ref() { + if let Some(rule) = self.use_fragment_syntax.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); } } + if let Some(rule) = self.use_grouped_accessor_pairs.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); + } + } + if let Some(rule) = self.use_import_type.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); + } + } + if let Some(rule) = self.use_literal_enum_members.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); + } + } + if let Some(rule) = self.use_naming_convention.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); + } + } + if let Some(rule) = self.use_node_assert_strict.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); + } + } if let Some(rule) = self.use_nodejs_import_protocol.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); + } + } + if let Some(rule) = self.use_number_namespace.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); + } + } + if let Some(rule) = self.use_numeric_separators.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); + } + } + if let Some(rule) = self.use_object_spread.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); } } - if let Some(rule) = self.use_number_namespace.as_ref() { + if let Some(rule) = self.use_readonly_class_properties.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } if let Some(rule) = self.use_self_closing_elements.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } if let Some(rule) = self.use_shorthand_assign.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } if let Some(rule) = self.use_shorthand_function_type.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } if let Some(rule) = self.use_single_var_declarator.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); + } + } + if let Some(rule) = self.use_symbol_description.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); } } if let Some(rule) = self.use_template.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); } } if let Some(rule) = self.use_throw_new_error.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); } } if let Some(rule) = self.use_throw_only_error.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); } } if let Some(rule) = self.use_trim_start_end.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); + } + } + if let Some(rule) = self.use_unified_type_signatures.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); } } index_set @@ -6635,6 +6395,10 @@ impl RuleGroupExt for Style { .no_inferrable_types .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noMagicNumbers" => self + .no_magic_numbers + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noNamespace" => self .no_namespace .as_ref() @@ -6691,6 +6455,10 @@ impl RuleGroupExt for Style { .no_useless_else .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noUselessUndefined" => self + .no_useless_undefined + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noValueAtRule" => self .no_value_at_rule .as_ref() @@ -6743,6 +6511,10 @@ impl RuleGroupExt for Style { .use_consistent_member_accessibility .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useConsistentObjectDefinitions" => self + .use_consistent_object_definitions + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useConst" => self .use_const .as_ref() @@ -6775,6 +6547,10 @@ impl RuleGroupExt for Style { .use_export_type .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useExportsLast" => self + .use_exports_last + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useFilenamingConvention" => self .use_filenaming_convention .as_ref() @@ -6787,6 +6563,10 @@ impl RuleGroupExt for Style { .use_fragment_syntax .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useGroupedAccessorPairs" => self + .use_grouped_accessor_pairs + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useImportType" => self .use_import_type .as_ref() @@ -6811,6 +6591,18 @@ impl RuleGroupExt for Style { .use_number_namespace .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useNumericSeparators" => self + .use_numeric_separators + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "useObjectSpread" => self + .use_object_spread + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "useReadonlyClassProperties" => self + .use_readonly_class_properties + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useSelfClosingElements" => self .use_self_closing_elements .as_ref() @@ -6827,6 +6619,10 @@ impl RuleGroupExt for Style { .use_single_var_declarator .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useSymbolDescription" => self + .use_symbol_description + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useTemplate" => self .use_template .as_ref() @@ -6843,6 +6639,10 @@ impl RuleGroupExt for Style { .use_trim_start_end .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useUnifiedTypeSignatures" => self + .use_unified_type_signatures + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), _ => None, } } @@ -6860,6 +6660,7 @@ impl From for Style { no_head_element: Some(value.into()), no_implicit_boolean: Some(value.into()), no_inferrable_types: Some(value.into()), + no_magic_numbers: Some(value.into()), no_namespace: Some(value.into()), no_negation_else: Some(value.into()), no_nested_ternary: Some(value.into()), @@ -6874,6 +6675,7 @@ impl From for Style { no_substr: Some(value.into()), no_unused_template_literal: Some(value.into()), no_useless_else: Some(value.into()), + no_useless_undefined: Some(value.into()), no_value_at_rule: Some(value.into()), no_yoda_expression: Some(value.into()), use_array_literals: Some(value.into()), @@ -6887,6 +6689,7 @@ impl From for Style { use_consistent_builtin_instantiation: Some(value.into()), use_consistent_curly_braces: Some(value.into()), use_consistent_member_accessibility: Some(value.into()), + use_consistent_object_definitions: Some(value.into()), use_const: Some(value.into()), use_default_parameter_last: Some(value.into()), use_default_switch_clause: Some(value.into()), @@ -6895,23 +6698,30 @@ impl From for Style { use_explicit_length_check: Some(value.into()), use_exponentiation_operator: Some(value.into()), use_export_type: Some(value.into()), + use_exports_last: Some(value.into()), use_filenaming_convention: Some(value.into()), use_for_of: Some(value.into()), use_fragment_syntax: Some(value.into()), + use_grouped_accessor_pairs: Some(value.into()), use_import_type: Some(value.into()), use_literal_enum_members: Some(value.into()), use_naming_convention: Some(value.into()), use_node_assert_strict: Some(value.into()), use_nodejs_import_protocol: Some(value.into()), use_number_namespace: Some(value.into()), + use_numeric_separators: Some(value.into()), + use_object_spread: Some(value.into()), + use_readonly_class_properties: Some(value.into()), use_self_closing_elements: Some(value.into()), use_shorthand_assign: Some(value.into()), use_shorthand_function_type: Some(value.into()), use_single_var_declarator: Some(value.into()), + use_symbol_description: Some(value.into()), use_template: Some(value.into()), use_throw_new_error: Some(value.into()), use_throw_only_error: Some(value.into()), use_trim_start_end: Some(value.into()), + use_unified_type_signatures: Some(value.into()), } } } @@ -6919,7 +6729,7 @@ impl From for Style { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Suspicious { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow the use of alert, confirm, and prompt."] # [serde (skip_serializing_if = "Option::is_none")] pub no_alert : Option < RuleConfiguration < biome_rule_options :: no_alert :: NoAlertOptions >> , # [doc = "Use standard constants instead of approximated literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_approximative_numeric_constant : Option < RuleFixConfiguration < biome_rule_options :: no_approximative_numeric_constant :: NoApproximativeNumericConstantOptions >> , # [doc = "Discourage the usage of Array index in keys."] # [serde (skip_serializing_if = "Option::is_none")] pub no_array_index_key : Option < RuleConfiguration < biome_rule_options :: no_array_index_key :: NoArrayIndexKeyOptions >> , # [doc = "Disallow assignments in expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_assign_in_expressions : Option < RuleConfiguration < biome_rule_options :: no_assign_in_expressions :: NoAssignInExpressionsOptions >> , # [doc = "Disallows using an async function as a Promise executor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_async_promise_executor : Option < RuleConfiguration < biome_rule_options :: no_async_promise_executor :: NoAsyncPromiseExecutorOptions >> , # [doc = "Disallow reassigning exceptions in catch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_catch_assign : Option < RuleConfiguration < biome_rule_options :: no_catch_assign :: NoCatchAssignOptions >> , # [doc = "Disallow reassigning class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_class_assign : Option < RuleConfiguration < biome_rule_options :: no_class_assign :: NoClassAssignOptions >> , # [doc = "Prevent comments from being inserted as text nodes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_comment_text : Option < RuleFixConfiguration < biome_rule_options :: no_comment_text :: NoCommentTextOptions >> , # [doc = "Disallow comparing against -0"] # [serde (skip_serializing_if = "Option::is_none")] pub no_compare_neg_zero : Option < RuleFixConfiguration < biome_rule_options :: no_compare_neg_zero :: NoCompareNegZeroOptions >> , # [doc = "Disallow labeled statements that are not loops."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_labels : Option < RuleConfiguration < biome_rule_options :: no_confusing_labels :: NoConfusingLabelsOptions >> , # [doc = "Disallow void type outside of generic or return types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_void_type : Option < RuleFixConfiguration < biome_rule_options :: no_confusing_void_type :: NoConfusingVoidTypeOptions >> , # [doc = "Disallow the use of console."] # [serde (skip_serializing_if = "Option::is_none")] pub no_console : Option < RuleFixConfiguration < biome_rule_options :: no_console :: NoConsoleOptions >> , # [doc = "Disallow TypeScript const enum"] # [serde (skip_serializing_if = "Option::is_none")] pub no_const_enum : Option < RuleFixConfiguration < biome_rule_options :: no_const_enum :: NoConstEnumOptions >> , # [doc = "Prevents from having control characters and some escape sequences that match control characters in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_control_characters_in_regex : Option < RuleConfiguration < biome_rule_options :: no_control_characters_in_regex :: NoControlCharactersInRegexOptions >> , # [doc = "Disallow the use of debugger"] # [serde (skip_serializing_if = "Option::is_none")] pub no_debugger : Option < RuleFixConfiguration < biome_rule_options :: no_debugger :: NoDebuggerOptions >> , # [doc = "Disallow direct assignments to document.cookie."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_cookie : Option < RuleConfiguration < biome_rule_options :: no_document_cookie :: NoDocumentCookieOptions >> , # [doc = "Prevents importing next/document outside of pages/_document.jsx in Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_import_in_page : Option < RuleConfiguration < biome_rule_options :: no_document_import_in_page :: NoDocumentImportInPageOptions >> , # [doc = "Require the use of === and !==."] # [serde (skip_serializing_if = "Option::is_none")] pub no_double_equals : Option < RuleFixConfiguration < biome_rule_options :: no_double_equals :: NoDoubleEqualsOptions >> , # [doc = "Disallow duplicate @import rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_at_import_rules : Option < RuleConfiguration < biome_rule_options :: no_duplicate_at_import_rules :: NoDuplicateAtImportRulesOptions >> , # [doc = "Disallow duplicate case labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_case : Option < RuleConfiguration < biome_rule_options :: no_duplicate_case :: NoDuplicateCaseOptions >> , # [doc = "Disallow duplicate class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_class_members : Option < RuleConfiguration < biome_rule_options :: no_duplicate_class_members :: NoDuplicateClassMembersOptions >> , # [doc = "Disallow duplicate custom properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_custom_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_custom_properties :: NoDuplicateCustomPropertiesOptions >> , # [doc = "Disallow duplicate conditions in if-else-if chains"] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_else_if : Option < RuleConfiguration < biome_rule_options :: no_duplicate_else_if :: NoDuplicateElseIfOptions >> , # [doc = "No duplicated fields in GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_fields : Option < RuleConfiguration < biome_rule_options :: no_duplicate_fields :: NoDuplicateFieldsOptions >> , # [doc = "Disallow duplicate names within font families."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_font_names : Option < RuleConfiguration < biome_rule_options :: no_duplicate_font_names :: NoDuplicateFontNamesOptions >> , # [doc = "Prevents JSX properties to be assigned multiple times."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_jsx_props : Option < RuleConfiguration < biome_rule_options :: no_duplicate_jsx_props :: NoDuplicateJsxPropsOptions >> , # [doc = "Disallow two keys with the same name inside objects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_object_keys : Option < RuleConfiguration < biome_rule_options :: no_duplicate_object_keys :: NoDuplicateObjectKeysOptions >> , # [doc = "Disallow duplicate function parameter name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_parameters : Option < RuleConfiguration < biome_rule_options :: no_duplicate_parameters :: NoDuplicateParametersOptions >> , # [doc = "Disallow duplicate properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_properties :: NoDuplicatePropertiesOptions >> , # [doc = "Disallow duplicate selectors within keyframe blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_selectors_keyframe_block : Option < RuleConfiguration < biome_rule_options :: no_duplicate_selectors_keyframe_block :: NoDuplicateSelectorsKeyframeBlockOptions >> , # [doc = "A describe block should not contain duplicate hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_test_hooks : Option < RuleConfiguration < biome_rule_options :: no_duplicate_test_hooks :: NoDuplicateTestHooksOptions >> , # [doc = "Disallow CSS empty blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block : Option < RuleConfiguration < biome_rule_options :: no_empty_block :: NoEmptyBlockOptions >> , # [doc = "Disallow empty block statements and static blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block_statements : Option < RuleConfiguration < biome_rule_options :: no_empty_block_statements :: NoEmptyBlockStatementsOptions >> , # [doc = "Disallow the declaration of empty interfaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_interface : Option < RuleFixConfiguration < biome_rule_options :: no_empty_interface :: NoEmptyInterfaceOptions >> , # [doc = "Disallow variables from evolving into any type through reassignments."] # [serde (skip_serializing_if = "Option::is_none")] pub no_evolving_types : Option < RuleConfiguration < biome_rule_options :: no_evolving_types :: NoEvolvingTypesOptions >> , # [doc = "Disallow the any type usage."] # [serde (skip_serializing_if = "Option::is_none")] pub no_explicit_any : Option < RuleConfiguration < biome_rule_options :: no_explicit_any :: NoExplicitAnyOptions >> , # [doc = "Disallow using export or module.exports in files containing tests"] # [serde (skip_serializing_if = "Option::is_none")] pub no_exports_in_test : Option < RuleConfiguration < biome_rule_options :: no_exports_in_test :: NoExportsInTestOptions >> , # [doc = "Prevents the wrong usage of the non-null assertion operator (!) in TypeScript files."] # [serde (skip_serializing_if = "Option::is_none")] pub no_extra_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_extra_non_null_assertion :: NoExtraNonNullAssertionOptions >> , # [doc = "Disallow fallthrough of switch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_fallthrough_switch_clause : Option < RuleConfiguration < biome_rule_options :: no_fallthrough_switch_clause :: NoFallthroughSwitchClauseOptions >> , # [doc = "Disallow focused tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_focused_tests : Option < RuleFixConfiguration < biome_rule_options :: no_focused_tests :: NoFocusedTestsOptions >> , # [doc = "Disallow reassigning function declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_function_assign : Option < RuleConfiguration < biome_rule_options :: no_function_assign :: NoFunctionAssignOptions >> , # [doc = "Disallow assignments to native objects and read-only global variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_assign : Option < RuleConfiguration < biome_rule_options :: no_global_assign :: NoGlobalAssignOptions >> , # [doc = "Use Number.isFinite instead of global isFinite."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_finite : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_finite :: NoGlobalIsFiniteOptions >> , # [doc = "Use Number.isNaN instead of global isNaN."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_nan : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_nan :: NoGlobalIsNanOptions >> , # [doc = "Prevent using the next/head module in pages/_document.js on Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_import_in_document : Option < RuleConfiguration < biome_rule_options :: no_head_import_in_document :: NoHeadImportInDocumentOptions >> , # [doc = "Disallow use of implicit any type on variable declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_any_let : Option < RuleConfiguration < biome_rule_options :: no_implicit_any_let :: NoImplicitAnyLetOptions >> , # [doc = "Disallow assigning to imported bindings"] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_assign : Option < RuleConfiguration < biome_rule_options :: no_import_assign :: NoImportAssignOptions >> , # [doc = "Disallow invalid !important within keyframe declarations"] # [serde (skip_serializing_if = "Option::is_none")] pub no_important_in_keyframe : Option < RuleConfiguration < biome_rule_options :: no_important_in_keyframe :: NoImportantInKeyframeOptions >> , # [doc = "Disallows the use of irregular whitespace characters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_irregular_whitespace : Option < RuleConfiguration < biome_rule_options :: no_irregular_whitespace :: NoIrregularWhitespaceOptions >> , # [doc = "Disallow labels that share a name with a variable"] # [serde (skip_serializing_if = "Option::is_none")] pub no_label_var : Option < RuleConfiguration < biome_rule_options :: no_label_var :: NoLabelVarOptions >> , # [doc = "Disallow characters made with multiple code points in character class syntax."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_character_class : Option < RuleFixConfiguration < biome_rule_options :: no_misleading_character_class :: NoMisleadingCharacterClassOptions >> , # [doc = "Enforce proper usage of new and constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_instantiator : Option < RuleConfiguration < biome_rule_options :: no_misleading_instantiator :: NoMisleadingInstantiatorOptions >> , # [doc = "Checks that the assertion function, for example expect, is placed inside an it() function call."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misplaced_assertion : Option < RuleConfiguration < biome_rule_options :: no_misplaced_assertion :: NoMisplacedAssertionOptions >> , # [doc = "Disallow shorthand assign when variable appears on both sides."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misrefactored_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: no_misrefactored_shorthand_assign :: NoMisrefactoredShorthandAssignOptions >> , # [doc = "Disallow octal escape sequences in string literals"] # [serde (skip_serializing_if = "Option::is_none")] pub no_octal_escape : Option < RuleFixConfiguration < biome_rule_options :: no_octal_escape :: NoOctalEscapeOptions >> , # [doc = "Disallow direct use of Object.prototype builtins."] # [serde (skip_serializing_if = "Option::is_none")] pub no_prototype_builtins : Option < RuleFixConfiguration < biome_rule_options :: no_prototype_builtins :: NoPrototypeBuiltinsOptions >> , # [doc = "Prevents React-specific JSX properties from being used."] # [serde (skip_serializing_if = "Option::is_none")] pub no_react_specific_props : Option < RuleFixConfiguration < biome_rule_options :: no_react_specific_props :: NoReactSpecificPropsOptions >> , # [doc = "Disallow variable, function, class, and type redeclarations in the same scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redeclare : Option < RuleConfiguration < biome_rule_options :: no_redeclare :: NoRedeclareOptions >> , # [doc = "Prevents from having redundant \"use strict\"."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_use_strict : Option < RuleFixConfiguration < biome_rule_options :: no_redundant_use_strict :: NoRedundantUseStrictOptions >> , # [doc = "Disallow comparisons where both sides are exactly the same."] # [serde (skip_serializing_if = "Option::is_none")] pub no_self_compare : Option < RuleConfiguration < biome_rule_options :: no_self_compare :: NoSelfCompareOptions >> , # [doc = "Disallow identifiers from shadowing restricted names."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow_restricted_names : Option < RuleConfiguration < biome_rule_options :: no_shadow_restricted_names :: NoShadowRestrictedNamesOptions >> , # [doc = "Disallow shorthand properties that override related longhand properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shorthand_property_overrides : Option < RuleConfiguration < biome_rule_options :: no_shorthand_property_overrides :: NoShorthandPropertyOverridesOptions >> , # [doc = "Disallow disabled tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_skipped_tests : Option < RuleFixConfiguration < biome_rule_options :: no_skipped_tests :: NoSkippedTestsOptions >> , # [doc = "Prevents the use of sparse arrays (arrays with holes)."] # [serde (skip_serializing_if = "Option::is_none")] pub no_sparse_array : Option < RuleFixConfiguration < biome_rule_options :: no_sparse_array :: NoSparseArrayOptions >> , # [doc = "It detects possible \"wrong\" semicolons inside JSX elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_suspicious_semicolon_in_jsx : Option < RuleConfiguration < biome_rule_options :: no_suspicious_semicolon_in_jsx :: NoSuspiciousSemicolonInJsxOptions >> , # [doc = "Disallow template literal placeholder syntax in regular strings."] # [serde (skip_serializing_if = "Option::is_none")] pub no_template_curly_in_string : Option < RuleConfiguration < biome_rule_options :: no_template_curly_in_string :: NoTemplateCurlyInStringOptions >> , # [doc = "Disallow then property."] # [serde (skip_serializing_if = "Option::is_none")] pub no_then_property : Option < RuleConfiguration < biome_rule_options :: no_then_property :: NoThenPropertyOptions >> , # [doc = "Disallow unsafe declaration merging between interfaces and classes."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_declaration_merging : Option < RuleConfiguration < biome_rule_options :: no_unsafe_declaration_merging :: NoUnsafeDeclarationMergingOptions >> , # [doc = "Disallow using unsafe negation."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_negation : Option < RuleFixConfiguration < biome_rule_options :: no_unsafe_negation :: NoUnsafeNegationOptions >> , # [doc = "Disallow the use of var"] # [serde (skip_serializing_if = "Option::is_none")] pub no_var : Option < RuleFixConfiguration < biome_rule_options :: no_var :: NoVarOptions >> , # [doc = "Disallow with statements in non-strict contexts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_with : Option < RuleConfiguration < biome_rule_options :: no_with :: NoWithOptions >> , # [doc = "Disallow the use of overload signatures that are not next to each other."] # [serde (skip_serializing_if = "Option::is_none")] pub use_adjacent_overload_signatures : Option < RuleConfiguration < biome_rule_options :: use_adjacent_overload_signatures :: UseAdjacentOverloadSignaturesOptions >> , # [doc = "Ensure async functions utilize await."] # [serde (skip_serializing_if = "Option::is_none")] pub use_await : Option < RuleConfiguration < biome_rule_options :: use_await :: UseAwaitOptions >> , # [doc = "Enforce default clauses in switch statements to be last"] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause_last : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause_last :: UseDefaultSwitchClauseLastOptions >> , # [doc = "Enforce passing a message value when creating a built-in error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_error_message : Option < RuleConfiguration < biome_rule_options :: use_error_message :: UseErrorMessageOptions >> , # [doc = "Enforce get methods to always return a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_getter_return : Option < RuleConfiguration < biome_rule_options :: use_getter_return :: UseGetterReturnOptions >> , # [doc = "Enforces the use of a recommended display strategy with Google Fonts."] # [serde (skip_serializing_if = "Option::is_none")] pub use_google_font_display : Option < RuleConfiguration < biome_rule_options :: use_google_font_display :: UseGoogleFontDisplayOptions >> , # [doc = "Require for-in loops to include an if statement."] # [serde (skip_serializing_if = "Option::is_none")] pub use_guard_for_in : Option < RuleConfiguration < biome_rule_options :: use_guard_for_in :: UseGuardForInOptions >> , # [doc = "Use Array.isArray() instead of instanceof Array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_is_array : Option < RuleFixConfiguration < biome_rule_options :: use_is_array :: UseIsArrayOptions >> , # [doc = "Require using the namespace keyword over the module keyword to declare TypeScript namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub use_namespace_keyword : Option < RuleFixConfiguration < biome_rule_options :: use_namespace_keyword :: UseNamespaceKeywordOptions >> , # [doc = "Enforce using the digits argument with Number#toFixed()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_to_fixed_digits_argument : Option < RuleFixConfiguration < biome_rule_options :: use_number_to_fixed_digits_argument :: UseNumberToFixedDigitsArgumentOptions >> , # [doc = "Enforce the use of the directive \"use strict\" in script files."] # [serde (skip_serializing_if = "Option::is_none")] pub use_strict_mode : Option < RuleFixConfiguration < biome_rule_options :: use_strict_mode :: UseStrictModeOptions >> } +pub struct Suspicious { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow the use of alert, confirm, and prompt."] # [serde (skip_serializing_if = "Option::is_none")] pub no_alert : Option < RuleConfiguration < biome_rule_options :: no_alert :: NoAlertOptions >> , # [doc = "Use standard constants instead of approximated literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_approximative_numeric_constant : Option < RuleFixConfiguration < biome_rule_options :: no_approximative_numeric_constant :: NoApproximativeNumericConstantOptions >> , # [doc = "Discourage the usage of Array index in keys."] # [serde (skip_serializing_if = "Option::is_none")] pub no_array_index_key : Option < RuleConfiguration < biome_rule_options :: no_array_index_key :: NoArrayIndexKeyOptions >> , # [doc = "Disallow assignments in expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_assign_in_expressions : Option < RuleConfiguration < biome_rule_options :: no_assign_in_expressions :: NoAssignInExpressionsOptions >> , # [doc = "Disallows using an async function as a Promise executor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_async_promise_executor : Option < RuleConfiguration < biome_rule_options :: no_async_promise_executor :: NoAsyncPromiseExecutorOptions >> , # [doc = "Disallow bitwise operators."] # [serde (skip_serializing_if = "Option::is_none")] pub no_bitwise_operators : Option < RuleConfiguration < biome_rule_options :: no_bitwise_operators :: NoBitwiseOperatorsOptions >> , # [doc = "Disallow reassigning exceptions in catch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_catch_assign : Option < RuleConfiguration < biome_rule_options :: no_catch_assign :: NoCatchAssignOptions >> , # [doc = "Disallow reassigning class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_class_assign : Option < RuleConfiguration < biome_rule_options :: no_class_assign :: NoClassAssignOptions >> , # [doc = "Prevent comments from being inserted as text nodes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_comment_text : Option < RuleFixConfiguration < biome_rule_options :: no_comment_text :: NoCommentTextOptions >> , # [doc = "Disallow comparing against -0"] # [serde (skip_serializing_if = "Option::is_none")] pub no_compare_neg_zero : Option < RuleFixConfiguration < biome_rule_options :: no_compare_neg_zero :: NoCompareNegZeroOptions >> , # [doc = "Disallow labeled statements that are not loops."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_labels : Option < RuleConfiguration < biome_rule_options :: no_confusing_labels :: NoConfusingLabelsOptions >> , # [doc = "Disallow void type outside of generic or return types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_void_type : Option < RuleFixConfiguration < biome_rule_options :: no_confusing_void_type :: NoConfusingVoidTypeOptions >> , # [doc = "Disallow the use of console."] # [serde (skip_serializing_if = "Option::is_none")] pub no_console : Option < RuleFixConfiguration < biome_rule_options :: no_console :: NoConsoleOptions >> , # [doc = "Disallow TypeScript const enum"] # [serde (skip_serializing_if = "Option::is_none")] pub no_const_enum : Option < RuleFixConfiguration < biome_rule_options :: no_const_enum :: NoConstEnumOptions >> , # [doc = "Disallow expressions where the operation doesn't affect the value"] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_binary_expressions : Option < RuleConfiguration < biome_rule_options :: no_constant_binary_expressions :: NoConstantBinaryExpressionsOptions >> , # [doc = "Prevents from having control characters and some escape sequences that match control characters in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_control_characters_in_regex : Option < RuleConfiguration < biome_rule_options :: no_control_characters_in_regex :: NoControlCharactersInRegexOptions >> , # [doc = "Disallow the use of debugger"] # [serde (skip_serializing_if = "Option::is_none")] pub no_debugger : Option < RuleFixConfiguration < biome_rule_options :: no_debugger :: NoDebuggerOptions >> , # [doc = "Disallow direct assignments to document.cookie."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_cookie : Option < RuleConfiguration < biome_rule_options :: no_document_cookie :: NoDocumentCookieOptions >> , # [doc = "Prevents importing next/document outside of pages/_document.jsx in Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_import_in_page : Option < RuleConfiguration < biome_rule_options :: no_document_import_in_page :: NoDocumentImportInPageOptions >> , # [doc = "Require the use of === and !==."] # [serde (skip_serializing_if = "Option::is_none")] pub no_double_equals : Option < RuleFixConfiguration < biome_rule_options :: no_double_equals :: NoDoubleEqualsOptions >> , # [doc = "Disallow duplicate @import rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_at_import_rules : Option < RuleConfiguration < biome_rule_options :: no_duplicate_at_import_rules :: NoDuplicateAtImportRulesOptions >> , # [doc = "Disallow duplicate case labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_case : Option < RuleConfiguration < biome_rule_options :: no_duplicate_case :: NoDuplicateCaseOptions >> , # [doc = "Disallow duplicate class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_class_members : Option < RuleConfiguration < biome_rule_options :: no_duplicate_class_members :: NoDuplicateClassMembersOptions >> , # [doc = "Disallow duplicate custom properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_custom_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_custom_properties :: NoDuplicateCustomPropertiesOptions >> , # [doc = "Disallow duplicate conditions in if-else-if chains"] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_else_if : Option < RuleConfiguration < biome_rule_options :: no_duplicate_else_if :: NoDuplicateElseIfOptions >> , # [doc = "No duplicated fields in GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_fields : Option < RuleConfiguration < biome_rule_options :: no_duplicate_fields :: NoDuplicateFieldsOptions >> , # [doc = "Disallow duplicate names within font families."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_font_names : Option < RuleConfiguration < biome_rule_options :: no_duplicate_font_names :: NoDuplicateFontNamesOptions >> , # [doc = "Prevents JSX properties to be assigned multiple times."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_jsx_props : Option < RuleConfiguration < biome_rule_options :: no_duplicate_jsx_props :: NoDuplicateJsxPropsOptions >> , # [doc = "Disallow two keys with the same name inside objects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_object_keys : Option < RuleConfiguration < biome_rule_options :: no_duplicate_object_keys :: NoDuplicateObjectKeysOptions >> , # [doc = "Disallow duplicate function parameter name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_parameters : Option < RuleConfiguration < biome_rule_options :: no_duplicate_parameters :: NoDuplicateParametersOptions >> , # [doc = "Disallow duplicate properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_properties :: NoDuplicatePropertiesOptions >> , # [doc = "Disallow duplicate selectors within keyframe blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_selectors_keyframe_block : Option < RuleConfiguration < biome_rule_options :: no_duplicate_selectors_keyframe_block :: NoDuplicateSelectorsKeyframeBlockOptions >> , # [doc = "A describe block should not contain duplicate hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_test_hooks : Option < RuleConfiguration < biome_rule_options :: no_duplicate_test_hooks :: NoDuplicateTestHooksOptions >> , # [doc = "Disallow CSS empty blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block : Option < RuleConfiguration < biome_rule_options :: no_empty_block :: NoEmptyBlockOptions >> , # [doc = "Disallow empty block statements and static blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block_statements : Option < RuleConfiguration < biome_rule_options :: no_empty_block_statements :: NoEmptyBlockStatementsOptions >> , # [doc = "Disallow the declaration of empty interfaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_interface : Option < RuleFixConfiguration < biome_rule_options :: no_empty_interface :: NoEmptyInterfaceOptions >> , # [doc = "Disallow variables from evolving into any type through reassignments."] # [serde (skip_serializing_if = "Option::is_none")] pub no_evolving_types : Option < RuleConfiguration < biome_rule_options :: no_evolving_types :: NoEvolvingTypesOptions >> , # [doc = "Disallow the any type usage."] # [serde (skip_serializing_if = "Option::is_none")] pub no_explicit_any : Option < RuleConfiguration < biome_rule_options :: no_explicit_any :: NoExplicitAnyOptions >> , # [doc = "Disallow using export or module.exports in files containing tests"] # [serde (skip_serializing_if = "Option::is_none")] pub no_exports_in_test : Option < RuleConfiguration < biome_rule_options :: no_exports_in_test :: NoExportsInTestOptions >> , # [doc = "Prevents the wrong usage of the non-null assertion operator (!) in TypeScript files."] # [serde (skip_serializing_if = "Option::is_none")] pub no_extra_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_extra_non_null_assertion :: NoExtraNonNullAssertionOptions >> , # [doc = "Disallow fallthrough of switch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_fallthrough_switch_clause : Option < RuleConfiguration < biome_rule_options :: no_fallthrough_switch_clause :: NoFallthroughSwitchClauseOptions >> , # [doc = "Disallow focused tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_focused_tests : Option < RuleFixConfiguration < biome_rule_options :: no_focused_tests :: NoFocusedTestsOptions >> , # [doc = "Disallow reassigning function declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_function_assign : Option < RuleConfiguration < biome_rule_options :: no_function_assign :: NoFunctionAssignOptions >> , # [doc = "Disallow assignments to native objects and read-only global variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_assign : Option < RuleConfiguration < biome_rule_options :: no_global_assign :: NoGlobalAssignOptions >> , # [doc = "Use Number.isFinite instead of global isFinite."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_finite : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_finite :: NoGlobalIsFiniteOptions >> , # [doc = "Use Number.isNaN instead of global isNaN."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_nan : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_nan :: NoGlobalIsNanOptions >> , # [doc = "Prevent using the next/head module in pages/_document.js on Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_import_in_document : Option < RuleConfiguration < biome_rule_options :: no_head_import_in_document :: NoHeadImportInDocumentOptions >> , # [doc = "Disallow use of implicit any type on variable declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_any_let : Option < RuleConfiguration < biome_rule_options :: no_implicit_any_let :: NoImplicitAnyLetOptions >> , # [doc = "Disallow assigning to imported bindings"] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_assign : Option < RuleConfiguration < biome_rule_options :: no_import_assign :: NoImportAssignOptions >> , # [doc = "Disallow invalid !important within keyframe declarations"] # [serde (skip_serializing_if = "Option::is_none")] pub no_important_in_keyframe : Option < RuleConfiguration < biome_rule_options :: no_important_in_keyframe :: NoImportantInKeyframeOptions >> , # [doc = "Disallows the use of irregular whitespace characters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_irregular_whitespace : Option < RuleConfiguration < biome_rule_options :: no_irregular_whitespace :: NoIrregularWhitespaceOptions >> , # [doc = "Disallow labels that share a name with a variable"] # [serde (skip_serializing_if = "Option::is_none")] pub no_label_var : Option < RuleConfiguration < biome_rule_options :: no_label_var :: NoLabelVarOptions >> , # [doc = "Disallow characters made with multiple code points in character class syntax."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_character_class : Option < RuleFixConfiguration < biome_rule_options :: no_misleading_character_class :: NoMisleadingCharacterClassOptions >> , # [doc = "Enforce proper usage of new and constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_instantiator : Option < RuleConfiguration < biome_rule_options :: no_misleading_instantiator :: NoMisleadingInstantiatorOptions >> , # [doc = "Checks that the assertion function, for example expect, is placed inside an it() function call."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misplaced_assertion : Option < RuleConfiguration < biome_rule_options :: no_misplaced_assertion :: NoMisplacedAssertionOptions >> , # [doc = "Disallow shorthand assign when variable appears on both sides."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misrefactored_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: no_misrefactored_shorthand_assign :: NoMisrefactoredShorthandAssignOptions >> , # [doc = "Disallow octal escape sequences in string literals"] # [serde (skip_serializing_if = "Option::is_none")] pub no_octal_escape : Option < RuleFixConfiguration < biome_rule_options :: no_octal_escape :: NoOctalEscapeOptions >> , # [doc = "Disallow direct use of Object.prototype builtins."] # [serde (skip_serializing_if = "Option::is_none")] pub no_prototype_builtins : Option < RuleFixConfiguration < biome_rule_options :: no_prototype_builtins :: NoPrototypeBuiltinsOptions >> , # [doc = "Prevents React-specific JSX properties from being used."] # [serde (skip_serializing_if = "Option::is_none")] pub no_react_specific_props : Option < RuleFixConfiguration < biome_rule_options :: no_react_specific_props :: NoReactSpecificPropsOptions >> , # [doc = "Disallow variable, function, class, and type redeclarations in the same scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redeclare : Option < RuleConfiguration < biome_rule_options :: no_redeclare :: NoRedeclareOptions >> , # [doc = "Prevents from having redundant \"use strict\"."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_use_strict : Option < RuleFixConfiguration < biome_rule_options :: no_redundant_use_strict :: NoRedundantUseStrictOptions >> , # [doc = "Disallow comparisons where both sides are exactly the same."] # [serde (skip_serializing_if = "Option::is_none")] pub no_self_compare : Option < RuleConfiguration < biome_rule_options :: no_self_compare :: NoSelfCompareOptions >> , # [doc = "Disallow identifiers from shadowing restricted names."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow_restricted_names : Option < RuleConfiguration < biome_rule_options :: no_shadow_restricted_names :: NoShadowRestrictedNamesOptions >> , # [doc = "Disallow shorthand properties that override related longhand properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shorthand_property_overrides : Option < RuleConfiguration < biome_rule_options :: no_shorthand_property_overrides :: NoShorthandPropertyOverridesOptions >> , # [doc = "Disallow disabled tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_skipped_tests : Option < RuleFixConfiguration < biome_rule_options :: no_skipped_tests :: NoSkippedTestsOptions >> , # [doc = "Prevents the use of sparse arrays (arrays with holes)."] # [serde (skip_serializing_if = "Option::is_none")] pub no_sparse_array : Option < RuleFixConfiguration < biome_rule_options :: no_sparse_array :: NoSparseArrayOptions >> , # [doc = "It detects possible \"wrong\" semicolons inside JSX elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_suspicious_semicolon_in_jsx : Option < RuleConfiguration < biome_rule_options :: no_suspicious_semicolon_in_jsx :: NoSuspiciousSemicolonInJsxOptions >> , # [doc = "Disallow template literal placeholder syntax in regular strings."] # [serde (skip_serializing_if = "Option::is_none")] pub no_template_curly_in_string : Option < RuleConfiguration < biome_rule_options :: no_template_curly_in_string :: NoTemplateCurlyInStringOptions >> , # [doc = "Disallow then property."] # [serde (skip_serializing_if = "Option::is_none")] pub no_then_property : Option < RuleConfiguration < biome_rule_options :: no_then_property :: NoThenPropertyOptions >> , # [doc = "Prevents the use of the TypeScript directive @ts-ignore."] # [serde (skip_serializing_if = "Option::is_none")] pub no_ts_ignore : Option < RuleFixConfiguration < biome_rule_options :: no_ts_ignore :: NoTsIgnoreOptions >> , # [doc = "Disallow let or var variables that are read but never assigned."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unassigned_variables : Option < RuleConfiguration < biome_rule_options :: no_unassigned_variables :: NoUnassignedVariablesOptions >> , # [doc = "Disallow unknown at-rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_at_rule : Option < RuleConfiguration < biome_rule_options :: no_unknown_at_rule :: NoUnknownAtRuleOptions >> , # [doc = "Disallow unsafe declaration merging between interfaces and classes."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_declaration_merging : Option < RuleConfiguration < biome_rule_options :: no_unsafe_declaration_merging :: NoUnsafeDeclarationMergingOptions >> , # [doc = "Disallow using unsafe negation."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_negation : Option < RuleFixConfiguration < biome_rule_options :: no_unsafe_negation :: NoUnsafeNegationOptions >> , # [doc = "Disallow useless backreferences in regular expression literals that always match an empty string."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_regex_backrefs : Option < RuleConfiguration < biome_rule_options :: no_useless_regex_backrefs :: NoUselessRegexBackrefsOptions >> , # [doc = "Disallow unnecessary escapes in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_string_escapes : Option < RuleFixConfiguration < biome_rule_options :: no_useless_string_escapes :: NoUselessStringEscapesOptions >> , # [doc = "Disallow the use of var"] # [serde (skip_serializing_if = "Option::is_none")] pub no_var : Option < RuleFixConfiguration < biome_rule_options :: no_var :: NoVarOptions >> , # [doc = "Disallow with statements in non-strict contexts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_with : Option < RuleConfiguration < biome_rule_options :: no_with :: NoWithOptions >> , # [doc = "Disallow the use of overload signatures that are not next to each other."] # [serde (skip_serializing_if = "Option::is_none")] pub use_adjacent_overload_signatures : Option < RuleConfiguration < biome_rule_options :: use_adjacent_overload_signatures :: UseAdjacentOverloadSignaturesOptions >> , # [doc = "Ensure async functions utilize await."] # [serde (skip_serializing_if = "Option::is_none")] pub use_await : Option < RuleConfiguration < biome_rule_options :: use_await :: UseAwaitOptions >> , # [doc = "Enforce consistent return values in iterable callbacks."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_iterable_callback_return_values : Option < RuleConfiguration < biome_rule_options :: use_consistent_iterable_callback_return_values :: UseConsistentIterableCallbackReturnValuesOptions >> , # [doc = "Enforce default clauses in switch statements to be last"] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause_last : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause_last :: UseDefaultSwitchClauseLastOptions >> , # [doc = "Enforce passing a message value when creating a built-in error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_error_message : Option < RuleConfiguration < biome_rule_options :: use_error_message :: UseErrorMessageOptions >> , # [doc = "Enforce get methods to always return a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_getter_return : Option < RuleConfiguration < biome_rule_options :: use_getter_return :: UseGetterReturnOptions >> , # [doc = "Enforces the use of a recommended display strategy with Google Fonts."] # [serde (skip_serializing_if = "Option::is_none")] pub use_google_font_display : Option < RuleConfiguration < biome_rule_options :: use_google_font_display :: UseGoogleFontDisplayOptions >> , # [doc = "Require for-in loops to include an if statement."] # [serde (skip_serializing_if = "Option::is_none")] pub use_guard_for_in : Option < RuleConfiguration < biome_rule_options :: use_guard_for_in :: UseGuardForInOptions >> , # [doc = "Use Array.isArray() instead of instanceof Array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_is_array : Option < RuleFixConfiguration < biome_rule_options :: use_is_array :: UseIsArrayOptions >> , # [doc = "Require using the namespace keyword over the module keyword to declare TypeScript namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub use_namespace_keyword : Option < RuleFixConfiguration < biome_rule_options :: use_namespace_keyword :: UseNamespaceKeywordOptions >> , # [doc = "Enforce using the digits argument with Number#toFixed()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_to_fixed_digits_argument : Option < RuleFixConfiguration < biome_rule_options :: use_number_to_fixed_digits_argument :: UseNumberToFixedDigitsArgumentOptions >> , # [doc = "Use static Response methods instead of new Response() constructor when possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_static_response_methods : Option < RuleFixConfiguration < biome_rule_options :: use_static_response_methods :: UseStaticResponseMethodsOptions >> , # [doc = "Enforce the use of the directive \"use strict\" in script files."] # [serde (skip_serializing_if = "Option::is_none")] pub use_strict_mode : Option < RuleFixConfiguration < biome_rule_options :: use_strict_mode :: UseStrictModeOptions >> } impl Suspicious { const GROUP_NAME: &'static str = "suspicious"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -6928,6 +6738,7 @@ impl Suspicious { "noArrayIndexKey", "noAssignInExpressions", "noAsyncPromiseExecutor", + "noBitwiseOperators", "noCatchAssign", "noClassAssign", "noCommentText", @@ -6936,6 +6747,7 @@ impl Suspicious { "noConfusingVoidType", "noConsole", "noConstEnum", + "noConstantBinaryExpressions", "noControlCharactersInRegex", "noDebugger", "noDocumentCookie", @@ -6990,12 +6802,18 @@ impl Suspicious { "noSuspiciousSemicolonInJsx", "noTemplateCurlyInString", "noThenProperty", + "noTsIgnore", + "noUnassignedVariables", + "noUnknownAtRule", "noUnsafeDeclarationMerging", "noUnsafeNegation", + "noUselessRegexBackrefs", + "noUselessStringEscapes", "noVar", "noWith", "useAdjacentOverloadSignatures", "useAwait", + "useConsistentIterableCallbackReturnValues", "useDefaultSwitchClauseLast", "useErrorMessage", "useGetterReturn", @@ -7004,6 +6822,7 @@ impl Suspicious { "useIsArray", "useNamespaceKeyword", "useNumberToFixedDigitsArgument", + "useStaticResponseMethods", "useStrictMode", ]; const RECOMMENDED_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ @@ -7011,18 +6830,16 @@ impl Suspicious { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[2]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21]), @@ -7034,43 +6851,50 @@ impl Suspicious { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[72]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[73]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[74]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[75]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[76]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[77]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[78]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[83]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[84]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[86]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[87]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -7155,6 +6979,15 @@ impl Suspicious { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[82]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[83]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[84]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[85]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[86]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[87]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[88]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[89]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[90]), ]; } impl RuleGroupExt for Suspicious { @@ -7191,389 +7024,434 @@ impl RuleGroupExt for Suspicious { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } - if let Some(rule) = self.no_catch_assign.as_ref() { + if let Some(rule) = self.no_bitwise_operators.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_class_assign.as_ref() { + if let Some(rule) = self.no_catch_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_comment_text.as_ref() { + if let Some(rule) = self.no_class_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_compare_neg_zero.as_ref() { + if let Some(rule) = self.no_comment_text.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_confusing_labels.as_ref() { + if let Some(rule) = self.no_compare_neg_zero.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_confusing_void_type.as_ref() { + if let Some(rule) = self.no_confusing_labels.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_console.as_ref() { + if let Some(rule) = self.no_confusing_void_type.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_const_enum.as_ref() { + if let Some(rule) = self.no_console.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_control_characters_in_regex.as_ref() { + if let Some(rule) = self.no_const_enum.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_debugger.as_ref() { + if let Some(rule) = self.no_constant_binary_expressions.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_document_cookie.as_ref() { + if let Some(rule) = self.no_control_characters_in_regex.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_document_import_in_page.as_ref() { + if let Some(rule) = self.no_debugger.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_double_equals.as_ref() { + if let Some(rule) = self.no_document_cookie.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_duplicate_at_import_rules.as_ref() { + if let Some(rule) = self.no_document_import_in_page.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_duplicate_case.as_ref() { + if let Some(rule) = self.no_double_equals.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_duplicate_class_members.as_ref() { + if let Some(rule) = self.no_duplicate_at_import_rules.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_duplicate_custom_properties.as_ref() { + if let Some(rule) = self.no_duplicate_case.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_duplicate_else_if.as_ref() { + if let Some(rule) = self.no_duplicate_class_members.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_duplicate_fields.as_ref() { + if let Some(rule) = self.no_duplicate_custom_properties.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_duplicate_font_names.as_ref() { + if let Some(rule) = self.no_duplicate_else_if.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_duplicate_jsx_props.as_ref() { + if let Some(rule) = self.no_duplicate_fields.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_duplicate_object_keys.as_ref() { + if let Some(rule) = self.no_duplicate_font_names.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_duplicate_parameters.as_ref() { + if let Some(rule) = self.no_duplicate_jsx_props.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_duplicate_properties.as_ref() { + if let Some(rule) = self.no_duplicate_object_keys.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.no_duplicate_selectors_keyframe_block.as_ref() { + if let Some(rule) = self.no_duplicate_parameters.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.no_duplicate_test_hooks.as_ref() { + if let Some(rule) = self.no_duplicate_properties.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.no_empty_block.as_ref() { + if let Some(rule) = self.no_duplicate_selectors_keyframe_block.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.no_empty_block_statements.as_ref() { + if let Some(rule) = self.no_duplicate_test_hooks.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.no_empty_interface.as_ref() { + if let Some(rule) = self.no_empty_block.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.no_evolving_types.as_ref() { + if let Some(rule) = self.no_empty_block_statements.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.no_explicit_any.as_ref() { + if let Some(rule) = self.no_empty_interface.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.no_exports_in_test.as_ref() { + if let Some(rule) = self.no_evolving_types.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.no_extra_non_null_assertion.as_ref() { + if let Some(rule) = self.no_explicit_any.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.no_fallthrough_switch_clause.as_ref() { + if let Some(rule) = self.no_exports_in_test.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } - if let Some(rule) = self.no_focused_tests.as_ref() { + if let Some(rule) = self.no_extra_non_null_assertion.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } - if let Some(rule) = self.no_function_assign.as_ref() { + if let Some(rule) = self.no_fallthrough_switch_clause.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } - if let Some(rule) = self.no_global_assign.as_ref() { + if let Some(rule) = self.no_focused_tests.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } - if let Some(rule) = self.no_global_is_finite.as_ref() { + if let Some(rule) = self.no_function_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } } - if let Some(rule) = self.no_global_is_nan.as_ref() { + if let Some(rule) = self.no_global_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); } } - if let Some(rule) = self.no_head_import_in_document.as_ref() { + if let Some(rule) = self.no_global_is_finite.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); } } - if let Some(rule) = self.no_implicit_any_let.as_ref() { + if let Some(rule) = self.no_global_is_nan.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); } } - if let Some(rule) = self.no_import_assign.as_ref() { + if let Some(rule) = self.no_head_import_in_document.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); } } - if let Some(rule) = self.no_important_in_keyframe.as_ref() { + if let Some(rule) = self.no_implicit_any_let.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); } } - if let Some(rule) = self.no_irregular_whitespace.as_ref() { + if let Some(rule) = self.no_import_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); } } - if let Some(rule) = self.no_label_var.as_ref() { + if let Some(rule) = self.no_important_in_keyframe.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); } } - if let Some(rule) = self.no_misleading_character_class.as_ref() { + if let Some(rule) = self.no_irregular_whitespace.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); } } - if let Some(rule) = self.no_misleading_instantiator.as_ref() { + if let Some(rule) = self.no_label_var.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); } } - if let Some(rule) = self.no_misplaced_assertion.as_ref() { + if let Some(rule) = self.no_misleading_character_class.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); } } - if let Some(rule) = self.no_misrefactored_shorthand_assign.as_ref() { + if let Some(rule) = self.no_misleading_instantiator.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); } } - if let Some(rule) = self.no_octal_escape.as_ref() { + if let Some(rule) = self.no_misplaced_assertion.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); } } - if let Some(rule) = self.no_prototype_builtins.as_ref() { + if let Some(rule) = self.no_misrefactored_shorthand_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); } } - if let Some(rule) = self.no_react_specific_props.as_ref() { + if let Some(rule) = self.no_octal_escape.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); } } - if let Some(rule) = self.no_redeclare.as_ref() { + if let Some(rule) = self.no_prototype_builtins.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); } } - if let Some(rule) = self.no_redundant_use_strict.as_ref() { + if let Some(rule) = self.no_react_specific_props.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); } } - if let Some(rule) = self.no_self_compare.as_ref() { + if let Some(rule) = self.no_redeclare.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); } } - if let Some(rule) = self.no_shadow_restricted_names.as_ref() { + if let Some(rule) = self.no_redundant_use_strict.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } - if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { + if let Some(rule) = self.no_self_compare.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } - if let Some(rule) = self.no_skipped_tests.as_ref() { + if let Some(rule) = self.no_shadow_restricted_names.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } - if let Some(rule) = self.no_sparse_array.as_ref() { + if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } + if let Some(rule) = self.no_skipped_tests.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); + } + } + if let Some(rule) = self.no_sparse_array.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); + } + } if let Some(rule) = self.no_suspicious_semicolon_in_jsx.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); + } + } + if let Some(rule) = self.no_template_curly_in_string.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); + } + } + if let Some(rule) = self.no_then_property.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); + } + } + if let Some(rule) = self.no_ts_ignore.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); + } + } + if let Some(rule) = self.no_unassigned_variables.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); + } + } + if let Some(rule) = self.no_unknown_at_rule.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71])); } } - if let Some(rule) = self.no_template_curly_in_string.as_ref() { + if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[72])); } } - if let Some(rule) = self.no_then_property.as_ref() { + if let Some(rule) = self.no_unsafe_negation.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[73])); } } - if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { + if let Some(rule) = self.no_useless_regex_backrefs.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[74])); } } - if let Some(rule) = self.no_unsafe_negation.as_ref() { + if let Some(rule) = self.no_useless_string_escapes.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[75])); } } if let Some(rule) = self.no_var.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[76])); } } if let Some(rule) = self.no_with.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[77])); } } if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[78])); } } if let Some(rule) = self.use_await.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[72])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79])); + } + } + if let Some(rule) = self.use_consistent_iterable_callback_return_values.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80])); } } if let Some(rule) = self.use_default_switch_clause_last.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[73])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81])); } } if let Some(rule) = self.use_error_message.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[74])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[82])); } } if let Some(rule) = self.use_getter_return.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[75])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[83])); } } if let Some(rule) = self.use_google_font_display.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[76])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[84])); } } if let Some(rule) = self.use_guard_for_in.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[77])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[85])); } } if let Some(rule) = self.use_is_array.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[78])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[86])); } } if let Some(rule) = self.use_namespace_keyword.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[87])); } } if let Some(rule) = self.use_number_to_fixed_digits_argument.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[88])); + } + } + if let Some(rule) = self.use_static_response_methods.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[89])); } } if let Some(rule) = self.use_strict_mode.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[90])); } } index_set @@ -7605,391 +7483,436 @@ impl RuleGroupExt for Suspicious { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } - if let Some(rule) = self.no_catch_assign.as_ref() { + if let Some(rule) = self.no_bitwise_operators.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } - if let Some(rule) = self.no_class_assign.as_ref() { + if let Some(rule) = self.no_catch_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } - if let Some(rule) = self.no_comment_text.as_ref() { + if let Some(rule) = self.no_class_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } - if let Some(rule) = self.no_compare_neg_zero.as_ref() { + if let Some(rule) = self.no_comment_text.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } - if let Some(rule) = self.no_confusing_labels.as_ref() { + if let Some(rule) = self.no_compare_neg_zero.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } - if let Some(rule) = self.no_confusing_void_type.as_ref() { + if let Some(rule) = self.no_confusing_labels.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } - if let Some(rule) = self.no_console.as_ref() { + if let Some(rule) = self.no_confusing_void_type.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } - if let Some(rule) = self.no_const_enum.as_ref() { + if let Some(rule) = self.no_console.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } - if let Some(rule) = self.no_control_characters_in_regex.as_ref() { + if let Some(rule) = self.no_const_enum.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } - if let Some(rule) = self.no_debugger.as_ref() { + if let Some(rule) = self.no_constant_binary_expressions.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } - if let Some(rule) = self.no_document_cookie.as_ref() { + if let Some(rule) = self.no_control_characters_in_regex.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } - if let Some(rule) = self.no_document_import_in_page.as_ref() { + if let Some(rule) = self.no_debugger.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } - if let Some(rule) = self.no_double_equals.as_ref() { + if let Some(rule) = self.no_document_cookie.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } - if let Some(rule) = self.no_duplicate_at_import_rules.as_ref() { + if let Some(rule) = self.no_document_import_in_page.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } - if let Some(rule) = self.no_duplicate_case.as_ref() { + if let Some(rule) = self.no_double_equals.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } - if let Some(rule) = self.no_duplicate_class_members.as_ref() { + if let Some(rule) = self.no_duplicate_at_import_rules.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } - if let Some(rule) = self.no_duplicate_custom_properties.as_ref() { + if let Some(rule) = self.no_duplicate_case.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); } } - if let Some(rule) = self.no_duplicate_else_if.as_ref() { + if let Some(rule) = self.no_duplicate_class_members.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[22])); } } - if let Some(rule) = self.no_duplicate_fields.as_ref() { + if let Some(rule) = self.no_duplicate_custom_properties.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[23])); } } - if let Some(rule) = self.no_duplicate_font_names.as_ref() { + if let Some(rule) = self.no_duplicate_else_if.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[24])); } } - if let Some(rule) = self.no_duplicate_jsx_props.as_ref() { + if let Some(rule) = self.no_duplicate_fields.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[25])); } } - if let Some(rule) = self.no_duplicate_object_keys.as_ref() { + if let Some(rule) = self.no_duplicate_font_names.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[26])); } } - if let Some(rule) = self.no_duplicate_parameters.as_ref() { + if let Some(rule) = self.no_duplicate_jsx_props.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[27])); } } - if let Some(rule) = self.no_duplicate_properties.as_ref() { + if let Some(rule) = self.no_duplicate_object_keys.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[28])); } } - if let Some(rule) = self.no_duplicate_selectors_keyframe_block.as_ref() { + if let Some(rule) = self.no_duplicate_parameters.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[29])); } } - if let Some(rule) = self.no_duplicate_test_hooks.as_ref() { + if let Some(rule) = self.no_duplicate_properties.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[30])); } } - if let Some(rule) = self.no_empty_block.as_ref() { + if let Some(rule) = self.no_duplicate_selectors_keyframe_block.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[31])); } } - if let Some(rule) = self.no_empty_block_statements.as_ref() { + if let Some(rule) = self.no_duplicate_test_hooks.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[32])); } } - if let Some(rule) = self.no_empty_interface.as_ref() { + if let Some(rule) = self.no_empty_block.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[33])); } } - if let Some(rule) = self.no_evolving_types.as_ref() { + if let Some(rule) = self.no_empty_block_statements.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[34])); } } - if let Some(rule) = self.no_explicit_any.as_ref() { + if let Some(rule) = self.no_empty_interface.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[35])); } } - if let Some(rule) = self.no_exports_in_test.as_ref() { + if let Some(rule) = self.no_evolving_types.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[36])); } } - if let Some(rule) = self.no_extra_non_null_assertion.as_ref() { + if let Some(rule) = self.no_explicit_any.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[37])); } } - if let Some(rule) = self.no_fallthrough_switch_clause.as_ref() { + if let Some(rule) = self.no_exports_in_test.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[38])); } } - if let Some(rule) = self.no_focused_tests.as_ref() { + if let Some(rule) = self.no_extra_non_null_assertion.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[39])); } } - if let Some(rule) = self.no_function_assign.as_ref() { + if let Some(rule) = self.no_fallthrough_switch_clause.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[40])); } } - if let Some(rule) = self.no_global_assign.as_ref() { + if let Some(rule) = self.no_focused_tests.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[41])); } } - if let Some(rule) = self.no_global_is_finite.as_ref() { + if let Some(rule) = self.no_function_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42])); } } - if let Some(rule) = self.no_global_is_nan.as_ref() { + if let Some(rule) = self.no_global_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[43])); } } - if let Some(rule) = self.no_head_import_in_document.as_ref() { + if let Some(rule) = self.no_global_is_finite.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[44])); } } - if let Some(rule) = self.no_implicit_any_let.as_ref() { + if let Some(rule) = self.no_global_is_nan.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45])); } } - if let Some(rule) = self.no_import_assign.as_ref() { + if let Some(rule) = self.no_head_import_in_document.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46])); } } - if let Some(rule) = self.no_important_in_keyframe.as_ref() { + if let Some(rule) = self.no_implicit_any_let.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[47])); } } - if let Some(rule) = self.no_irregular_whitespace.as_ref() { + if let Some(rule) = self.no_import_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[48])); } } - if let Some(rule) = self.no_label_var.as_ref() { + if let Some(rule) = self.no_important_in_keyframe.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[49])); } } - if let Some(rule) = self.no_misleading_character_class.as_ref() { + if let Some(rule) = self.no_irregular_whitespace.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); } } - if let Some(rule) = self.no_misleading_instantiator.as_ref() { + if let Some(rule) = self.no_label_var.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); } } - if let Some(rule) = self.no_misplaced_assertion.as_ref() { + if let Some(rule) = self.no_misleading_character_class.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); } } - if let Some(rule) = self.no_misrefactored_shorthand_assign.as_ref() { + if let Some(rule) = self.no_misleading_instantiator.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); } } - if let Some(rule) = self.no_octal_escape.as_ref() { + if let Some(rule) = self.no_misplaced_assertion.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); } } - if let Some(rule) = self.no_prototype_builtins.as_ref() { + if let Some(rule) = self.no_misrefactored_shorthand_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); } } - if let Some(rule) = self.no_react_specific_props.as_ref() { + if let Some(rule) = self.no_octal_escape.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); } } - if let Some(rule) = self.no_redeclare.as_ref() { + if let Some(rule) = self.no_prototype_builtins.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); } } - if let Some(rule) = self.no_redundant_use_strict.as_ref() { + if let Some(rule) = self.no_react_specific_props.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); } } - if let Some(rule) = self.no_self_compare.as_ref() { + if let Some(rule) = self.no_redeclare.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); } } - if let Some(rule) = self.no_shadow_restricted_names.as_ref() { + if let Some(rule) = self.no_redundant_use_strict.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } - if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { + if let Some(rule) = self.no_self_compare.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } - if let Some(rule) = self.no_skipped_tests.as_ref() { + if let Some(rule) = self.no_shadow_restricted_names.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } - if let Some(rule) = self.no_sparse_array.as_ref() { + if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } - if let Some(rule) = self.no_suspicious_semicolon_in_jsx.as_ref() { + if let Some(rule) = self.no_skipped_tests.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); } } - if let Some(rule) = self.no_template_curly_in_string.as_ref() { + if let Some(rule) = self.no_sparse_array.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); } } - if let Some(rule) = self.no_then_property.as_ref() { + if let Some(rule) = self.no_suspicious_semicolon_in_jsx.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); } } - if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { + if let Some(rule) = self.no_template_curly_in_string.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); } } - if let Some(rule) = self.no_unsafe_negation.as_ref() { + if let Some(rule) = self.no_then_property.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); } } - if let Some(rule) = self.no_var.as_ref() { + if let Some(rule) = self.no_ts_ignore.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); } } - if let Some(rule) = self.no_with.as_ref() { + if let Some(rule) = self.no_unassigned_variables.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); } } - if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { + if let Some(rule) = self.no_unknown_at_rule.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71])); } } - if let Some(rule) = self.use_await.as_ref() { + if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[72])); } } - if let Some(rule) = self.use_default_switch_clause_last.as_ref() { + if let Some(rule) = self.no_unsafe_negation.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[73])); } } - if let Some(rule) = self.use_error_message.as_ref() { + if let Some(rule) = self.no_useless_regex_backrefs.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[74])); } } - if let Some(rule) = self.use_getter_return.as_ref() { + if let Some(rule) = self.no_useless_string_escapes.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[75])); } } - if let Some(rule) = self.use_google_font_display.as_ref() { + if let Some(rule) = self.no_var.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[76])); } } - if let Some(rule) = self.use_guard_for_in.as_ref() { + if let Some(rule) = self.no_with.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[77])); } } - if let Some(rule) = self.use_is_array.as_ref() { + if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[78])); } } - if let Some(rule) = self.use_namespace_keyword.as_ref() { + if let Some(rule) = self.use_await.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79])); } } - if let Some(rule) = self.use_number_to_fixed_digits_argument.as_ref() { + if let Some(rule) = self.use_consistent_iterable_callback_return_values.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80])); } } - if let Some(rule) = self.use_strict_mode.as_ref() { + if let Some(rule) = self.use_default_switch_clause_last.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81])); } } + if let Some(rule) = self.use_error_message.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[82])); + } + } + if let Some(rule) = self.use_getter_return.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[83])); + } + } + if let Some(rule) = self.use_google_font_display.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[84])); + } + } + if let Some(rule) = self.use_guard_for_in.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[85])); + } + } + if let Some(rule) = self.use_is_array.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[86])); + } + } + if let Some(rule) = self.use_namespace_keyword.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[87])); + } + } + if let Some(rule) = self.use_number_to_fixed_digits_argument.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[88])); + } + } + if let Some(rule) = self.use_static_response_methods.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[89])); + } + } + if let Some(rule) = self.use_strict_mode.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[90])); + } + } index_set } #[doc = r" Checks if, given a rule name, matches one of the rules contained in this category"] @@ -8040,6 +7963,10 @@ impl RuleGroupExt for Suspicious { .no_async_promise_executor .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noBitwiseOperators" => self + .no_bitwise_operators + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noCatchAssign" => self .no_catch_assign .as_ref() @@ -8072,6 +7999,10 @@ impl RuleGroupExt for Suspicious { .no_const_enum .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noConstantBinaryExpressions" => self + .no_constant_binary_expressions + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noControlCharactersInRegex" => self .no_control_characters_in_regex .as_ref() @@ -8288,6 +8219,18 @@ impl RuleGroupExt for Suspicious { .no_then_property .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noTsIgnore" => self + .no_ts_ignore + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "noUnassignedVariables" => self + .no_unassigned_variables + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "noUnknownAtRule" => self + .no_unknown_at_rule + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noUnsafeDeclarationMerging" => self .no_unsafe_declaration_merging .as_ref() @@ -8296,6 +8239,14 @@ impl RuleGroupExt for Suspicious { .no_unsafe_negation .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noUselessRegexBackrefs" => self + .no_useless_regex_backrefs + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), + "noUselessStringEscapes" => self + .no_useless_string_escapes + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noVar" => self .no_var .as_ref() @@ -8312,6 +8263,10 @@ impl RuleGroupExt for Suspicious { .use_await .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useConsistentIterableCallbackReturnValues" => self + .use_consistent_iterable_callback_return_values + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useDefaultSwitchClauseLast" => self .use_default_switch_clause_last .as_ref() @@ -8344,6 +8299,10 @@ impl RuleGroupExt for Suspicious { .use_number_to_fixed_digits_argument .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useStaticResponseMethods" => self + .use_static_response_methods + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useStrictMode" => self .use_strict_mode .as_ref() @@ -8361,6 +8320,7 @@ impl From for Suspicious { no_array_index_key: Some(value.into()), no_assign_in_expressions: Some(value.into()), no_async_promise_executor: Some(value.into()), + no_bitwise_operators: Some(value.into()), no_catch_assign: Some(value.into()), no_class_assign: Some(value.into()), no_comment_text: Some(value.into()), @@ -8369,6 +8329,7 @@ impl From for Suspicious { no_confusing_void_type: Some(value.into()), no_console: Some(value.into()), no_const_enum: Some(value.into()), + no_constant_binary_expressions: Some(value.into()), no_control_characters_in_regex: Some(value.into()), no_debugger: Some(value.into()), no_document_cookie: Some(value.into()), @@ -8423,12 +8384,18 @@ impl From for Suspicious { no_suspicious_semicolon_in_jsx: Some(value.into()), no_template_curly_in_string: Some(value.into()), no_then_property: Some(value.into()), + no_ts_ignore: Some(value.into()), + no_unassigned_variables: Some(value.into()), + no_unknown_at_rule: Some(value.into()), no_unsafe_declaration_merging: Some(value.into()), no_unsafe_negation: Some(value.into()), + no_useless_regex_backrefs: Some(value.into()), + no_useless_string_escapes: Some(value.into()), no_var: Some(value.into()), no_with: Some(value.into()), use_adjacent_overload_signatures: Some(value.into()), use_await: Some(value.into()), + use_consistent_iterable_callback_return_values: Some(value.into()), use_default_switch_clause_last: Some(value.into()), use_error_message: Some(value.into()), use_getter_return: Some(value.into()), @@ -8437,6 +8404,7 @@ impl From for Suspicious { use_is_array: Some(value.into()), use_namespace_keyword: Some(value.into()), use_number_to_fixed_digits_argument: Some(value.into()), + use_static_response_methods: Some(value.into()), use_strict_mode: Some(value.into()), } } diff --git a/crates/biome_css_analyze/src/lint.rs b/crates/biome_css_analyze/src/lint.rs index ca5d740dd607..45b032101c60 100644 --- a/crates/biome_css_analyze/src/lint.rs +++ b/crates/biome_css_analyze/src/lint.rs @@ -3,8 +3,9 @@ //! Generated file, do not edit by hand, see `xtask/codegen` pub mod a11y; +pub mod complexity; pub mod correctness; pub mod nursery; pub mod style; pub mod suspicious; -::biome_analyze::declare_category! { pub Lint { kind : Lint , groups : [self :: a11y :: A11y , self :: correctness :: Correctness , self :: nursery :: Nursery , self :: style :: Style , self :: suspicious :: Suspicious ,] } } +::biome_analyze::declare_category! { pub Lint { kind : Lint , groups : [self :: a11y :: A11y , self :: complexity :: Complexity , self :: correctness :: Correctness , self :: nursery :: Nursery , self :: style :: Style , self :: suspicious :: Suspicious ,] } } diff --git a/crates/biome_css_analyze/src/lint/complexity.rs b/crates/biome_css_analyze/src/lint/complexity.rs new file mode 100644 index 000000000000..65ce5d16b939 --- /dev/null +++ b/crates/biome_css_analyze/src/lint/complexity.rs @@ -0,0 +1,7 @@ +//! Generated file, do not edit by hand, see `xtask/codegen` + +//! Generated file, do not edit by hand, see `xtask/codegen` + +use biome_analyze::declare_lint_group; +pub mod no_important_styles; +declare_lint_group! { pub Complexity { name : "complexity" , rules : [self :: no_important_styles :: NoImportantStyles ,] } } diff --git a/crates/biome_css_analyze/src/lint/nursery/no_important_styles.rs b/crates/biome_css_analyze/src/lint/complexity/no_important_styles.rs similarity index 100% rename from crates/biome_css_analyze/src/lint/nursery/no_important_styles.rs rename to crates/biome_css_analyze/src/lint/complexity/no_important_styles.rs diff --git a/crates/biome_css_analyze/src/lint/nursery.rs b/crates/biome_css_analyze/src/lint/nursery.rs index 4cd2fa4aeec8..d988f85d2a68 100644 --- a/crates/biome_css_analyze/src/lint/nursery.rs +++ b/crates/biome_css_analyze/src/lint/nursery.rs @@ -3,7 +3,5 @@ //! Generated file, do not edit by hand, see `xtask/codegen` use biome_analyze::declare_lint_group; -pub mod no_important_styles; -pub mod no_unknown_at_rule; pub mod no_useless_escape_in_string; -declare_lint_group! { pub Nursery { name : "nursery" , rules : [self :: no_important_styles :: NoImportantStyles , self :: no_unknown_at_rule :: NoUnknownAtRule , self :: no_useless_escape_in_string :: NoUselessEscapeInString ,] } } +declare_lint_group! { pub Nursery { name : "nursery" , rules : [self :: no_useless_escape_in_string :: NoUselessEscapeInString ,] } } diff --git a/crates/biome_css_analyze/src/lint/nursery/no_useless_escape_in_string.rs b/crates/biome_css_analyze/src/lint/nursery/no_useless_escape_in_string.rs index f4db2d953cce..065b85e386a0 100644 --- a/crates/biome_css_analyze/src/lint/nursery/no_useless_escape_in_string.rs +++ b/crates/biome_css_analyze/src/lint/nursery/no_useless_escape_in_string.rs @@ -3,7 +3,7 @@ use biome_console::markup; use biome_css_syntax::{CssString, CssSyntaxToken}; use biome_diagnostics::Severity; use biome_rowan::{BatchMutationExt, TextRange}; -use biome_rule_options::no_useless_escape_in_string::NoUselessEscapeInStringOptions; +use biome_rule_options::no_useless_string_escapes::NoUselessStringEscapesOptions; use crate::CssRuleAction; @@ -57,7 +57,7 @@ impl Rule for NoUselessEscapeInString { type Query = Ast; type State = (CssSyntaxToken, usize); type Signals = Option; - type Options = NoUselessEscapeInStringOptions; + type Options = NoUselessStringEscapesOptions; fn run(ctx: &RuleContext) -> Option { let node = ctx.query(); diff --git a/crates/biome_css_analyze/src/lint/suspicious.rs b/crates/biome_css_analyze/src/lint/suspicious.rs index 5696ff87bce5..d1ba18a86356 100644 --- a/crates/biome_css_analyze/src/lint/suspicious.rs +++ b/crates/biome_css_analyze/src/lint/suspicious.rs @@ -12,4 +12,5 @@ pub mod no_empty_block; pub mod no_important_in_keyframe; pub mod no_irregular_whitespace; pub mod no_shorthand_property_overrides; -declare_lint_group! { pub Suspicious { name : "suspicious" , rules : [self :: no_duplicate_at_import_rules :: NoDuplicateAtImportRules , self :: no_duplicate_custom_properties :: NoDuplicateCustomProperties , self :: no_duplicate_font_names :: NoDuplicateFontNames , self :: no_duplicate_properties :: NoDuplicateProperties , self :: no_duplicate_selectors_keyframe_block :: NoDuplicateSelectorsKeyframeBlock , self :: no_empty_block :: NoEmptyBlock , self :: no_important_in_keyframe :: NoImportantInKeyframe , self :: no_irregular_whitespace :: NoIrregularWhitespace , self :: no_shorthand_property_overrides :: NoShorthandPropertyOverrides ,] } } +pub mod no_unknown_at_rule; +declare_lint_group! { pub Suspicious { name : "suspicious" , rules : [self :: no_duplicate_at_import_rules :: NoDuplicateAtImportRules , self :: no_duplicate_custom_properties :: NoDuplicateCustomProperties , self :: no_duplicate_font_names :: NoDuplicateFontNames , self :: no_duplicate_properties :: NoDuplicateProperties , self :: no_duplicate_selectors_keyframe_block :: NoDuplicateSelectorsKeyframeBlock , self :: no_empty_block :: NoEmptyBlock , self :: no_important_in_keyframe :: NoImportantInKeyframe , self :: no_irregular_whitespace :: NoIrregularWhitespace , self :: no_shorthand_property_overrides :: NoShorthandPropertyOverrides , self :: no_unknown_at_rule :: NoUnknownAtRule ,] } } diff --git a/crates/biome_css_analyze/src/lint/nursery/no_unknown_at_rule.rs b/crates/biome_css_analyze/src/lint/suspicious/no_unknown_at_rule.rs similarity index 100% rename from crates/biome_css_analyze/src/lint/nursery/no_unknown_at_rule.rs rename to crates/biome_css_analyze/src/lint/suspicious/no_unknown_at_rule.rs diff --git a/crates/biome_css_analyze/tests/specs/nursery/noImportantStyles/invalid.css b/crates/biome_css_analyze/tests/specs/complexity/noImportantStyles/invalid.css similarity index 100% rename from crates/biome_css_analyze/tests/specs/nursery/noImportantStyles/invalid.css rename to crates/biome_css_analyze/tests/specs/complexity/noImportantStyles/invalid.css diff --git a/crates/biome_css_analyze/tests/specs/nursery/noImportantStyles/invalid.css.snap b/crates/biome_css_analyze/tests/specs/complexity/noImportantStyles/invalid.css.snap similarity index 83% rename from crates/biome_css_analyze/tests/specs/nursery/noImportantStyles/invalid.css.snap rename to crates/biome_css_analyze/tests/specs/complexity/noImportantStyles/invalid.css.snap index 9d6aa820f08b..fdd868a05ac2 100644 --- a/crates/biome_css_analyze/tests/specs/nursery/noImportantStyles/invalid.css.snap +++ b/crates/biome_css_analyze/tests/specs/complexity/noImportantStyles/invalid.css.snap @@ -1,7 +1,6 @@ --- source: crates/biome_css_analyze/tests/spec_tests.rs expression: invalid.css -snapshot_kind: text --- # Input ```css @@ -21,7 +20,7 @@ snapshot_kind: text # Diagnostics ``` -invalid.css:2:13 lint/nursery/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:2:13 lint/complexity/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Avoid the use of the !important style. @@ -41,7 +40,7 @@ invalid.css:2:13 lint/nursery/noImportantStyles FIXABLE ━━━━━━━ ``` ``` -invalid.css:6:13 lint/nursery/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:6:13 lint/complexity/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Avoid the use of the !important style. @@ -61,7 +60,7 @@ invalid.css:6:13 lint/nursery/noImportantStyles FIXABLE ━━━━━━━ ``` ``` -invalid.css:10:12 lint/nursery/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:10:12 lint/complexity/noImportantStyles FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Avoid the use of the !important style. diff --git a/crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/invalid.css b/crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/invalid.css similarity index 100% rename from crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/invalid.css rename to crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/invalid.css diff --git a/crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/invalid.css.snap b/crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/invalid.css.snap similarity index 88% rename from crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/invalid.css.snap rename to crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/invalid.css.snap index 5a7f3198e8c9..33c08053fc79 100644 --- a/crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/invalid.css.snap +++ b/crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/invalid.css.snap @@ -15,7 +15,7 @@ expression: invalid.css # Diagnostics ``` -invalid.css:1:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:1:2 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: unknown-rule @@ -34,7 +34,7 @@ invalid.css:1:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━ ``` ``` -invalid.css:2:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:2:2 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: uNkNoWn @@ -54,7 +54,7 @@ invalid.css:2:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━ ``` ``` -invalid.css:3:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:3:2 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: UNKNOWN @@ -75,7 +75,7 @@ invalid.css:3:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━ ``` ``` -invalid.css:4:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:4:2 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: unknown-at-rule @@ -96,7 +96,7 @@ invalid.css:4:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━ ``` ``` -invalid.css:5:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:5:2 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: unknown @@ -117,7 +117,7 @@ invalid.css:5:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━ ``` ``` -invalid.css:5:13 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:5:13 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: unknown-at-rule @@ -138,7 +138,7 @@ invalid.css:5:13 lint/nursery/noUnknownAtRule ━━━━━━━━━━━ ``` ``` -invalid.css:6:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:6:2 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: MY-other-at-rule @@ -158,7 +158,7 @@ invalid.css:6:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━ ``` ``` -invalid.css:7:2 lint/nursery/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.css:7:2 lint/suspicious/noUnknownAtRule ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Unexpected unknown at-rule: not-my-at-rule diff --git a/crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/valid.css b/crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/valid.css similarity index 100% rename from crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/valid.css rename to crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/valid.css diff --git a/crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/valid.css.snap b/crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/valid.css.snap similarity index 100% rename from crates/biome_css_analyze/tests/specs/nursery/noUnknownAtRule/valid.css.snap rename to crates/biome_css_analyze/tests/specs/suspicious/noUnknownAtRule/valid.css.snap diff --git a/crates/biome_diagnostics_categories/src/categories.rs b/crates/biome_diagnostics_categories/src/categories.rs index 58a26cb301a1..eefe76bc7793 100644 --- a/crates/biome_diagnostics_categories/src/categories.rs +++ b/crates/biome_diagnostics_categories/src/categories.rs @@ -21,6 +21,7 @@ define_categories! { "lint/a11y/noHeaderScope": "https://biomejs.dev/linter/rules/no-header-scope", "lint/a11y/noInteractiveElementToNoninteractiveRole": "https://biomejs.dev/linter/rules/no-interactive-element-to-noninteractive-role", "lint/a11y/noLabelWithoutControl": "https://biomejs.dev/linter/rules/no-label-without-control", + "lint/a11y/noNoninteractiveElementInteractions": "https://biomejs.dev/linter/rules/no-noninteractive-element-interactions", "lint/a11y/noNoninteractiveElementToInteractiveRole": "https://biomejs.dev/linter/rules/no-noninteractive-element-to-interactive-role", "lint/a11y/noNoninteractiveTabindex": "https://biomejs.dev/linter/rules/no-noninteractive-tabindex", "lint/a11y/noPositiveTabindex": "https://biomejs.dev/linter/rules/no-positive-tabindex", @@ -56,9 +57,12 @@ define_categories! { "lint/complexity/noEmptyTypeParameters": "https://biomejs.dev/linter/rules/no-empty-type-parameters", "lint/complexity/noExcessiveCognitiveComplexity": "https://biomejs.dev/linter/rules/no-excessive-cognitive-complexity", "lint/complexity/noExcessiveNestedTestSuites": "https://biomejs.dev/linter/rules/no-excessive-nested-test-suites", + "lint/complexity/noExcessiveLinesPerFunction": "https://biomejs.dev/linter/rules/no-excessive-lines-per-function", "lint/complexity/noExtraBooleanCast": "https://biomejs.dev/linter/rules/no-extra-boolean-cast", "lint/complexity/noFlatMapIdentity": "https://biomejs.dev/linter/rules/no-flat-map-identity", "lint/complexity/noForEach": "https://biomejs.dev/linter/rules/no-for-each", + "lint/complexity/noImplicitCoercions": "https://biomejs.dev/linter/rules/no-implicit-coercions", + "lint/complexity/noImportantStyles": "https://biomejs.dev/linter/rules/no-important-styles", "lint/complexity/noStaticOnlyClass": "https://biomejs.dev/linter/rules/no-static-only-class", "lint/complexity/noThisInStatic": "https://biomejs.dev/linter/rules/no-this-in-static", "lint/complexity/noUselessCatch": "https://biomejs.dev/linter/rules/no-useless-catch", @@ -81,6 +85,7 @@ define_categories! { "lint/complexity/useArrowFunction": "https://biomejs.dev/linter/rules/use-arrow-function", "lint/complexity/useDateNow": "https://biomejs.dev/linter/rules/use-date-now", "lint/complexity/useFlatMap": "https://biomejs.dev/linter/rules/use-flat-map", + "lint/complexity/useIndexOf": "https://biomejs.dev/linter/rules/use-index-of", "lint/complexity/useLiteralKeys": "https://biomejs.dev/linter/rules/use-literal-keys", "lint/complexity/useNumericLiterals": "https://biomejs.dev/linter/rules/use-numeric-literals", "lint/complexity/useOptionalChain": "https://biomejs.dev/linter/rules/use-optional-chain", @@ -95,6 +100,7 @@ define_categories! { "lint/correctness/noConstructorReturn": "https://biomejs.dev/linter/rules/no-constructor-return", "lint/correctness/noEmptyCharacterClassInRegex": "https://biomejs.dev/linter/rules/no-empty-character-class-in-regex", "lint/correctness/noEmptyPattern": "https://biomejs.dev/linter/rules/no-empty-pattern", + "lint/correctness/noGlobalDirnameFilename": "https://biomejs.dev/linter/rules/no-global-dirname-filename", "lint/correctness/noGlobalObjectCalls": "https://biomejs.dev/linter/rules/no-global-object-calls", "lint/correctness/noInnerDeclarations": "https://biomejs.dev/linter/rules/no-inner-declarations", "lint/correctness/noInvalidBuiltinInstantiation": "https://biomejs.dev/linter/rules/no-invalid-builtin-instantiation", @@ -105,14 +111,19 @@ define_categories! { "lint/correctness/noInvalidPositionAtImportRule": "https://biomejs.dev/linter/rules/no-invalid-position-at-import-rule", "lint/correctness/noInvalidUseBeforeDeclaration": "https://biomejs.dev/linter/rules/no-invalid-use-before-declaration", "lint/correctness/noMissingVarFunction": "https://biomejs.dev/linter/rules/no-missing-var-function", + "lint/correctness/noNestedComponentDefinitions": "https://biomejs.dev/linter/rules/no-nested-component-definitions", "lint/correctness/noNewSymbol": "https://biomejs.dev/linter/rules/no-new-symbol", "lint/correctness/noNodejsModules": "https://biomejs.dev/linter/rules/no-nodejs-modules", "lint/correctness/noNonoctalDecimalEscape": "https://biomejs.dev/linter/rules/no-nonoctal-decimal-escape", "lint/correctness/noPrecisionLoss": "https://biomejs.dev/linter/rules/no-precision-loss", "lint/correctness/noPrivateImports": "https://biomejs.dev/linter/rules/no-private-imports", + "lint/correctness/noProcessGlobal": "https://biomejs.dev/linter/rules/no-process-global", + "lint/correctness/noReactPropAssignments": "https://biomejs.dev/linter/rules/no-react-prop-assignments", "lint/correctness/noRenderReturnValue": "https://biomejs.dev/linter/rules/no-render-return-value", + "lint/correctness/noRestrictedElements": "https://biomejs.dev/linter/rules/no-restricted-elements", "lint/correctness/noSelfAssign": "https://biomejs.dev/linter/rules/no-self-assign", "lint/correctness/noSetterReturn": "https://biomejs.dev/linter/rules/no-setter-return", + "lint/correctness/noSolidDestructuredProps": "https://biomejs.dev/linter/rules/no-solid-destructured-props", "lint/correctness/noStringCaseMismatch": "https://biomejs.dev/linter/rules/no-string-case-mismatch", "lint/correctness/noSwitchDeclarations": "https://biomejs.dev/linter/rules/no-switch-declarations", "lint/correctness/noUndeclaredDependencies": "https://biomejs.dev/linter/rules/no-undeclared-dependencies", @@ -141,7 +152,12 @@ define_categories! { "lint/correctness/useHookAtTopLevel": "https://biomejs.dev/linter/rules/use-hook-at-top-level", "lint/correctness/useImportExtensions": "https://biomejs.dev/linter/rules/use-import-extensions", "lint/correctness/useIsNan": "https://biomejs.dev/linter/rules/use-is-nan", + "lint/correctness/useJsonImportAttributes": "https://biomejs.dev/linter/rules/use-json-import-attributes", "lint/correctness/useJsxKeyInIterable": "https://biomejs.dev/linter/rules/use-jsx-key-in-iterable", + "lint/correctness/useNamedGraphqlOperations": "https://biomejs.dev/linter/rules/use-named-graphql-operations", + "lint/correctness/useParseIntRadix": "https://biomejs.dev/linter/rules/use-parse-int-radix", + "lint/correctness/useSingleJsDocAsterisk": "https://biomejs.dev/linter/rules/use-single-js-doc-asterisk", + "lint/correctness/useUniqueElementIds": "https://biomejs.dev/linter/rules/use-unique-element-ids", "lint/correctness/useValidForDirection": "https://biomejs.dev/linter/rules/use-valid-for-direction", "lint/correctness/useValidTypeof": "https://biomejs.dev/linter/rules/use-valid-typeof", "lint/correctness/useYield": "https://biomejs.dev/linter/rules/use-yield", @@ -183,7 +199,6 @@ define_categories! { "lint/nursery/noTsIgnore": "https://biomejs.dev/linter/rules/no-ts-ignore", "lint/nursery/noUnassignedVariables": "https://biomejs.dev/linter/rules/no-unassigned-variables", "lint/nursery/noUndeclaredDependencies": "https://biomejs.dev/linter/rules/no-undeclared-dependencies", - "lint/nursery/noUnknownAtRule": "https://biomejs.dev/linter/rules/no-unknown-at-rule", "lint/nursery/noUnknownFunction": "https://biomejs.dev/linter/rules/no-unknown-function", "lint/nursery/noUnknownMediaFeatureName": "https://biomejs.dev/linter/rules/no-unknown-media-feature-name", "lint/nursery/noUnknownProperty": "https://biomejs.dev/linter/rules/no-unknown-property", @@ -234,12 +249,16 @@ define_categories! { "lint/nursery/useUnifiedTypeSignature": "https://biomejs.dev/linter/rules/use-unified-type-signature", "lint/nursery/useUniqueElementIds": "https://biomejs.dev/linter/rules/use-unique-element-ids", "lint/performance/noAccumulatingSpread": "https://biomejs.dev/linter/rules/no-accumulating-spread", + "lint/performance/noAwaitInLoops": "https://biomejs.dev/linter/rules/no-await-in-loops", "lint/performance/noBarrelFile": "https://biomejs.dev/linter/rules/no-barrel-file", "lint/performance/noDelete": "https://biomejs.dev/linter/rules/no-delete", "lint/performance/noDynamicNamespaceImportAccess": "https://biomejs.dev/linter/rules/no-dynamic-namespace-import-access", "lint/performance/noImgElement": "https://biomejs.dev/linter/rules/no-img-element", "lint/performance/noNamespaceImport": "https://biomejs.dev/linter/rules/no-namespace-import", "lint/performance/noReExportAll": "https://biomejs.dev/linter/rules/no-re-export-all", + "lint/performance/noUnwantedPolyfillio": "https://biomejs.dev/linter/rules/no-unwanted-polyfillio", + "lint/performance/useGoogleFontPreconnect": "https://biomejs.dev/linter/rules/use-google-font-preconnect", + "lint/performance/useSolidForComponent": "https://biomejs.dev/linter/rules/use-solid-for-component", "lint/performance/useTopLevelRegex": "https://biomejs.dev/linter/rules/use-top-level-regex", "lint/security/noBlankTarget": "https://biomejs.dev/linter/rules/no-blank-target", "lint/security/noDangerouslySetInnerHtml": "https://biomejs.dev/linter/rules/no-dangerously-set-inner-html", @@ -250,6 +269,7 @@ define_categories! { "lint/style/noDescendingSpecificity": "https://biomejs.dev/linter/rules/no-descending-specificity", "lint/style/noDoneCallback": "https://biomejs.dev/linter/rules/no-done-callback", "lint/style/noEnum": "https://biomejs.dev/linter/rules/no-enum", + "lint/style/noMagicNumbers": "https://biomejs.dev/linter/rules/no-magic-numbers", "lint/style/noExportedImports": "https://biomejs.dev/linter/rules/no-exported-imports", "lint/style/noHeadElement": "https://biomejs.dev/linter/rules/no-head-element", "lint/style/noImplicitBoolean": "https://biomejs.dev/linter/rules/no-implicit-boolean", @@ -268,6 +288,7 @@ define_categories! { "lint/style/noSubstr": "https://biomejs.dev/linter/rules/no-substr", "lint/style/noUnusedTemplateLiteral": "https://biomejs.dev/linter/rules/no-unused-template-literal", "lint/style/noUselessElse": "https://biomejs.dev/linter/rules/no-useless-else", + "lint/style/noUselessUndefined": "https://biomejs.dev/linter/rules/no-useless-undefined", "lint/style/noValueAtRule": "https://biomejs.dev/linter/rules/no-value-at-rule", "lint/style/noYodaExpression": "https://biomejs.dev/linter/rules/no-yoda-expression", "lint/style/useArrayLiterals": "https://biomejs.dev/linter/rules/use-array-literals", @@ -288,14 +309,22 @@ define_categories! { "lint/style/useEnumInitializers": "https://biomejs.dev/linter/rules/use-enum-initializers", "lint/style/useExplicitLengthCheck": "https://biomejs.dev/linter/rules/use-explicit-length-check", "lint/style/useExponentiationOperator": "https://biomejs.dev/linter/rules/use-exponentiation-operator", + "lint/style/useConsistentObjectDefinitions": "https://biomejs.dev/linter/rules/use-consistent-object-definitions", "lint/style/useExportType": "https://biomejs.dev/linter/rules/use-export-type", + "lint/style/useExportsLast": "https://biomejs.dev/linter/rules/use-exports-last", "lint/style/useFilenamingConvention": "https://biomejs.dev/linter/rules/use-filenaming-convention", "lint/style/useForOf": "https://biomejs.dev/linter/rules/use-for-of", "lint/style/useFragmentSyntax": "https://biomejs.dev/linter/rules/use-fragment-syntax", + "lint/style/useGroupedAccessorPairs": "https://biomejs.dev/linter/rules/use-grouped-accessor-pairs", "lint/style/useImportType": "https://biomejs.dev/linter/rules/use-import-type", "lint/style/useLiteralEnumMembers": "https://biomejs.dev/linter/rules/use-literal-enum-members", "lint/style/useNamingConvention": "https://biomejs.dev/linter/rules/use-naming-convention", "lint/style/useNodeAssertStrict": "https://biomejs.dev/linter/rules/use-node-assert-strict", + "lint/style/useNumericSeparators": "https://biomejs.dev/linter/rules/use-numeric-separators", + "lint/style/useObjectSpread": "https://biomejs.dev/linter/rules/use-object-spread", + "lint/style/useReadonlyClassProperties": "https://biomejs.dev/linter/rules/use-readonly-class-properties", + "lint/style/useSymbolDescription": "https://biomejs.dev/linter/rules/use-symbol-description", + "lint/style/useUnifiedTypeSignatures": "https://biomejs.dev/linter/rules/use-unified-type-signatures", "lint/style/useNodejsImportProtocol": "https://biomejs.dev/linter/rules/use-nodejs-import-protocol", "lint/style/useNumberNamespace": "https://biomejs.dev/linter/rules/use-number-namespace", "lint/style/useSelfClosingElements": "https://biomejs.dev/linter/rules/use-self-closing-elements", @@ -313,10 +342,12 @@ define_categories! { "lint/suspicious/noArrayIndexKey": "https://biomejs.dev/linter/rules/no-array-index-key", "lint/suspicious/noAssignInExpressions": "https://biomejs.dev/linter/rules/no-assign-in-expressions", "lint/suspicious/noAsyncPromiseExecutor": "https://biomejs.dev/linter/rules/no-async-promise-executor", + "lint/suspicious/noBitwiseOperators": "https://biomejs.dev/linter/rules/no-bitwise-operators", "lint/suspicious/noCatchAssign": "https://biomejs.dev/linter/rules/no-catch-assign", "lint/suspicious/noClassAssign": "https://biomejs.dev/linter/rules/no-class-assign", "lint/suspicious/noCommentText": "https://biomejs.dev/linter/rules/no-comment-text", "lint/suspicious/noCompareNegZero": "https://biomejs.dev/linter/rules/no-compare-neg-zero", + "lint/suspicious/noConstantBinaryExpressions": "https://biomejs.dev/linter/rules/no-constant-binary-expressions", "lint/suspicious/noConfusingLabels": "https://biomejs.dev/linter/rules/no-confusing-labels", "lint/suspicious/noConfusingVoidType": "https://biomejs.dev/linter/rules/no-confusing-void-type", "lint/suspicious/noConsole": "https://biomejs.dev/linter/rules/no-console", @@ -369,18 +400,24 @@ define_categories! { "lint/suspicious/noRedundantUseStrict": "https://biomejs.dev/linter/rules/no-redundant-use-strict", "lint/suspicious/noSelfCompare": "https://biomejs.dev/linter/rules/no-self-compare", "lint/suspicious/noShadowRestrictedNames": "https://biomejs.dev/linter/rules/no-shadow-restricted-names", + "lint/suspicious/noTsIgnore": "https://biomejs.dev/linter/rules/no-ts-ignore", + "lint/suspicious/noUnassignedVariables": "https://biomejs.dev/linter/rules/no-unassigned-variables", + "lint/suspicious/noUselessRegexBackrefs": "https://biomejs.dev/linter/rules/no-useless-regex-backrefs", + "lint/suspicious/noUselessStringEscapes": "https://biomejs.dev/linter/rules/no-useless-string-escapes", "lint/suspicious/noShorthandPropertyOverrides": "https://biomejs.dev/linter/rules/no-shorthand-property-overrides", "lint/suspicious/noSkippedTests": "https://biomejs.dev/linter/rules/no-skipped-tests", "lint/suspicious/noSparseArray": "https://biomejs.dev/linter/rules/no-sparse-array", "lint/suspicious/noSuspiciousSemicolonInJsx": "https://biomejs.dev/linter/rules/no-suspicious-semicolon-in-jsx", "lint/suspicious/noTemplateCurlyInString": "https://biomejs.dev/linter/rules/no-template-curly-in-string", "lint/suspicious/noThenProperty": "https://biomejs.dev/linter/rules/no-then-property", + "lint/suspicious/noUnknownAtRule": "https://biomejs.dev/linter/rules/no-unknown-at-rule", "lint/suspicious/noUnsafeDeclarationMerging": "https://biomejs.dev/linter/rules/no-unsafe-declaration-merging", "lint/suspicious/noUnsafeNegation": "https://biomejs.dev/linter/rules/no-unsafe-negation", "lint/suspicious/noVar": "https://biomejs.dev/linter/rules/no-var", "lint/suspicious/noWith": "https://biomejs.dev/linter/rules/no-with", "lint/suspicious/useAdjacentOverloadSignatures": "https://biomejs.dev/linter/rules/use-adjacent-overload-signatures", "lint/suspicious/useAwait": "https://biomejs.dev/linter/rules/use-await", + "lint/suspicious/useConsistentIterableCallbackReturnValues": "https://biomejs.dev/linter/rules/use-consistent-iterable-callback-return-values", "lint/suspicious/useDefaultSwitchClauseLast": "https://biomejs.dev/linter/rules/use-default-switch-clause-last", "lint/suspicious/useErrorMessage": "https://biomejs.dev/linter/rules/use-error-message", "lint/suspicious/useGetterReturn": "https://biomejs.dev/linter/rules/use-getter-return", @@ -389,6 +426,7 @@ define_categories! { "lint/suspicious/useIsArray": "https://biomejs.dev/linter/rules/use-is-array", "lint/suspicious/useNamespaceKeyword": "https://biomejs.dev/linter/rules/use-namespace-keyword", "lint/suspicious/useNumberToFixedDigitsArgument": "https://biomejs.dev/linter/rules/use-number-to-fixed-digits-argument", + "lint/suspicious/useStaticResponseMethods": "https://biomejs.dev/linter/rules/use-static-response-methods", "lint/suspicious/useStrictMode": "https://biomejs.dev/linter/rules/use-strict-mode", // end lint rules // start assist actions diff --git a/crates/biome_graphql_analyze/src/lint.rs b/crates/biome_graphql_analyze/src/lint.rs index 8d9ecdd32b2a..a158f72057e0 100644 --- a/crates/biome_graphql_analyze/src/lint.rs +++ b/crates/biome_graphql_analyze/src/lint.rs @@ -2,7 +2,8 @@ //! Generated file, do not edit by hand, see `xtask/codegen` +pub mod correctness; pub mod nursery; pub mod style; pub mod suspicious; -::biome_analyze::declare_category! { pub Lint { kind : Lint , groups : [self :: nursery :: Nursery , self :: style :: Style , self :: suspicious :: Suspicious ,] } } +::biome_analyze::declare_category! { pub Lint { kind : Lint , groups : [self :: correctness :: Correctness , self :: nursery :: Nursery , self :: style :: Style , self :: suspicious :: Suspicious ,] } } diff --git a/crates/biome_graphql_analyze/src/lint/correctness.rs b/crates/biome_graphql_analyze/src/lint/correctness.rs new file mode 100644 index 000000000000..b67b4c145708 --- /dev/null +++ b/crates/biome_graphql_analyze/src/lint/correctness.rs @@ -0,0 +1,7 @@ +//! Generated file, do not edit by hand, see `xtask/codegen` + +//! Generated file, do not edit by hand, see `xtask/codegen` + +use biome_analyze::declare_lint_group; +pub mod use_named_graphql_operations; +declare_lint_group! { pub Correctness { name : "correctness" , rules : [self :: use_named_graphql_operations :: UseNamedGraphqlOperations ,] } } diff --git a/crates/biome_graphql_analyze/src/lint/correctness/use_named_graphql_operations.rs b/crates/biome_graphql_analyze/src/lint/correctness/use_named_graphql_operations.rs new file mode 100644 index 000000000000..cc06f90f7e5b --- /dev/null +++ b/crates/biome_graphql_analyze/src/lint/correctness/use_named_graphql_operations.rs @@ -0,0 +1,118 @@ +use biome_analyze::{ + Ast, FixKind, Rule, RuleDiagnostic, RuleSource, context::RuleContext, declare_lint_rule, +}; +use biome_console::markup; +use biome_diagnostics::Severity; +use biome_graphql_factory::make; +use biome_graphql_syntax::{GraphqlOperationDefinition, GraphqlOperationType}; +use biome_rowan::{AstNode, BatchMutationExt}; +use biome_rule_options::use_named_graphql_operations::UseNamedGraphqlOperationsOptions; +use biome_string_case::Case; + +use crate::GraphqlRuleAction; + +declare_lint_rule! { + /// Enforce specifying the name of GraphQL operations. + /// + /// This is useful because most GraphQL client libraries use the operation name for caching purposes. + /// + /// ## Examples + /// + /// ### Invalid + /// + /// ```graphql,expect_diagnostic + /// query {} + /// ``` + /// + /// ### Valid + /// + /// ```graphql + /// query Human { + /// name + /// } + /// ``` + /// + pub UseNamedGraphqlOperations { + version: "2.0.0", + name: "useNamedGraphqlOperations", + language: "graphql", + sources: &[RuleSource::EslintGraphql("no-anonymous-operations").same()], + recommended: true, + severity: Severity::Error, + fix_kind: FixKind::Unsafe, + } +} + +impl Rule for UseNamedGraphqlOperations { + type Query = Ast; + type State = GraphqlOperationType; + type Signals = Option; + type Options = UseNamedGraphqlOperationsOptions; + + fn run(ctx: &RuleContext) -> Option { + let node = ctx.query(); + let operation_type = node.ty().ok()?; + if node.name().is_some() { + None + } else { + Some(operation_type) + } + } + + fn diagnostic( + _ctx: &RuleContext, + operation_type: &Self::State, + ) -> Option { + Some( + RuleDiagnostic::new( + rule_category!(), + operation_type.range(), + markup! { + "Anonymous GraphQL operations are forbidden. Make sure to name your " {operation_type.to_trimmed_string()}"." + }, + ) + .note(markup! { + "Most GraphQL client libraries use the operation name for caching purposes." + }), + ) + } + + fn action(ctx: &RuleContext, operation_type: &Self::State) -> Option { + let mut mutation = ctx.root().begin(); + let node = ctx.query().clone(); + let operation_type = operation_type.to_trimmed_string(); + let suggested_name = get_suggested_name(&node, operation_type.clone()); + let new_name = make::graphql_name_binding(make::ident(&suggested_name)); + let new_node = node.clone().with_name(Some(new_name)); + mutation.replace_node(node, new_node); + + Some(GraphqlRuleAction::new( + ctx.metadata().action_category(ctx.category(), ctx.group()), + ctx.metadata().applicability(), + markup! { + "Rename this "{operation_type}" to "{suggested_name}"." + }, + mutation, + )) + } +} + +fn get_suggested_name(operation: &GraphqlOperationDefinition, operation_type: String) -> String { + let suggested_name = operation + .selection_set() + .ok() + .and_then(|selection_set| { + selection_set + .selections() + .into_iter() + .find_map(|selection| selection.as_graphql_field().cloned()) + }) + .and_then(|first_field| { + first_field + .alias() + .map(|alias| alias.to_trimmed_string()) + .or(first_field.name().ok().map(|name| name.to_trimmed_string())) + }) + .unwrap_or(operation_type); + Case::Pascal.convert(&suggested_name) +} diff --git a/crates/biome_graphql_analyze/src/lint/nursery.rs b/crates/biome_graphql_analyze/src/lint/nursery.rs index 8359e86c3a05..43d56dbe497d 100644 --- a/crates/biome_graphql_analyze/src/lint/nursery.rs +++ b/crates/biome_graphql_analyze/src/lint/nursery.rs @@ -4,5 +4,4 @@ use biome_analyze::declare_lint_group; pub mod use_named_operation; -pub mod use_naming_convention; -declare_lint_group! { pub Nursery { name : "nursery" , rules : [self :: use_named_operation :: UseNamedOperation , self :: use_naming_convention :: UseNamingConvention ,] } } +declare_lint_group! { pub Nursery { name : "nursery" , rules : [self :: use_named_operation :: UseNamedOperation ,] } } diff --git a/crates/biome_graphql_analyze/src/lint/nursery/use_named_operation.rs b/crates/biome_graphql_analyze/src/lint/nursery/use_named_operation.rs index b7e3037a7015..54524d44c253 100644 --- a/crates/biome_graphql_analyze/src/lint/nursery/use_named_operation.rs +++ b/crates/biome_graphql_analyze/src/lint/nursery/use_named_operation.rs @@ -6,7 +6,7 @@ use biome_diagnostics::Severity; use biome_graphql_factory::make; use biome_graphql_syntax::{GraphqlOperationDefinition, GraphqlOperationType}; use biome_rowan::{AstNode, BatchMutationExt}; -use biome_rule_options::use_named_operation::UseNamedOperationOptions; +use biome_rule_options::use_named_graphql_operations::UseNamedGraphqlOperationsOptions; use biome_string_case::Case; use crate::GraphqlRuleAction; @@ -47,7 +47,7 @@ impl Rule for UseNamedOperation { type Query = Ast; type State = GraphqlOperationType; type Signals = Option; - type Options = UseNamedOperationOptions; + type Options = UseNamedGraphqlOperationsOptions; fn run(ctx: &RuleContext) -> Option { let node = ctx.query(); diff --git a/crates/biome_graphql_analyze/src/lint/style.rs b/crates/biome_graphql_analyze/src/lint/style.rs index 62c5e045a8fc..bebbd8876f2d 100644 --- a/crates/biome_graphql_analyze/src/lint/style.rs +++ b/crates/biome_graphql_analyze/src/lint/style.rs @@ -4,4 +4,5 @@ use biome_analyze::declare_lint_group; pub mod use_deprecated_reason; -declare_lint_group! { pub Style { name : "style" , rules : [self :: use_deprecated_reason :: UseDeprecatedReason ,] } } +pub mod use_naming_convention; +declare_lint_group! { pub Style { name : "style" , rules : [self :: use_deprecated_reason :: UseDeprecatedReason , self :: use_naming_convention :: UseNamingConvention ,] } } diff --git a/crates/biome_graphql_analyze/src/lint/nursery/use_naming_convention.rs b/crates/biome_graphql_analyze/src/lint/style/use_naming_convention.rs similarity index 100% rename from crates/biome_graphql_analyze/src/lint/nursery/use_naming_convention.rs rename to crates/biome_graphql_analyze/src/lint/style/use_naming_convention.rs diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/invalid.graphql b/crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/invalid.graphql similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/invalid.graphql rename to crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/invalid.graphql diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/invalid.graphql.snap b/crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/invalid.graphql.snap similarity index 72% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/invalid.graphql.snap rename to crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/invalid.graphql.snap index 227c403e0a88..a0a41e8abb56 100644 --- a/crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/invalid.graphql.snap +++ b/crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/invalid.graphql.snap @@ -12,7 +12,7 @@ subscription {} # Diagnostics ``` -invalid.graphql:1:1 lint/nursery/useNamedOperation FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.graphql:1:1 lint/correctness/useNamedGraphqlOperations FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Anonymous GraphQL operations are forbidden. Make sure to name your query. @@ -31,7 +31,7 @@ invalid.graphql:1:1 lint/nursery/useNamedOperation FIXABLE ━━━━━━ ``` ``` -invalid.graphql:2:1 lint/nursery/useNamedOperation FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.graphql:2:1 lint/correctness/useNamedGraphqlOperations FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Anonymous GraphQL operations are forbidden. Make sure to name your mutation. @@ -51,7 +51,7 @@ invalid.graphql:2:1 lint/nursery/useNamedOperation FIXABLE ━━━━━━ ``` ``` -invalid.graphql:3:1 lint/nursery/useNamedOperation FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.graphql:3:1 lint/correctness/useNamedGraphqlOperations FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Anonymous GraphQL operations are forbidden. Make sure to name your subscription. diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/valid.graphql b/crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/valid.graphql similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/valid.graphql rename to crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/valid.graphql diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/valid.graphql.snap b/crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/valid.graphql.snap similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamedOperation/valid.graphql.snap rename to crates/biome_graphql_analyze/tests/specs/correctness/useNamedGraphqlOperations/valid.graphql.snap diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/invalid.graphql b/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/invalid.graphql rename to crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/invalid.graphql.snap b/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql.snap similarity index 72% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/invalid.graphql.snap rename to crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql.snap index 09f336ba6e4d..d38304c3b97b 100644 --- a/crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/invalid.graphql.snap +++ b/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql.snap @@ -1,7 +1,6 @@ --- source: crates/biome_graphql_analyze/tests/spec_tests.rs expression: invalid.graphql -snapshot_kind: text --- # Input ```graphql @@ -13,7 +12,7 @@ enum Status { # Diagnostics ``` -invalid.graphql:2:2 lint/nursery/useNamingConvention ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.graphql:2:2 lint/style/useNamingConvention ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Enum values should be in all caps. diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/valid.graphql b/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/valid.graphql rename to crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql diff --git a/crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/valid.graphql.snap b/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql.snap similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/nursery/useNamingConvention/valid.graphql.snap rename to crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql.snap diff --git a/crates/biome_js_analyze/src/lint/a11y.rs b/crates/biome_js_analyze/src/lint/a11y.rs index 0bc0772c79d8..b109c3f10e76 100644 --- a/crates/biome_js_analyze/src/lint/a11y.rs +++ b/crates/biome_js_analyze/src/lint/a11y.rs @@ -11,6 +11,7 @@ pub mod no_distracting_elements; pub mod no_header_scope; pub mod no_interactive_element_to_noninteractive_role; pub mod no_label_without_control; +pub mod no_noninteractive_element_interactions; pub mod no_noninteractive_element_to_interactive_role; pub mod no_noninteractive_tabindex; pub mod no_positive_tabindex; @@ -38,4 +39,4 @@ pub mod use_valid_aria_role; pub mod use_valid_aria_values; pub mod use_valid_autocomplete; pub mod use_valid_lang; -declare_lint_group! { pub A11y { name : "a11y" , rules : [self :: no_access_key :: NoAccessKey , self :: no_aria_hidden_on_focusable :: NoAriaHiddenOnFocusable , self :: no_aria_unsupported_elements :: NoAriaUnsupportedElements , self :: no_autofocus :: NoAutofocus , self :: no_distracting_elements :: NoDistractingElements , self :: no_header_scope :: NoHeaderScope , self :: no_interactive_element_to_noninteractive_role :: NoInteractiveElementToNoninteractiveRole , self :: no_label_without_control :: NoLabelWithoutControl , self :: no_noninteractive_element_to_interactive_role :: NoNoninteractiveElementToInteractiveRole , self :: no_noninteractive_tabindex :: NoNoninteractiveTabindex , self :: no_positive_tabindex :: NoPositiveTabindex , self :: no_redundant_alt :: NoRedundantAlt , self :: no_redundant_roles :: NoRedundantRoles , self :: no_static_element_interactions :: NoStaticElementInteractions , self :: no_svg_without_title :: NoSvgWithoutTitle , self :: use_alt_text :: UseAltText , self :: use_anchor_content :: UseAnchorContent , self :: use_aria_activedescendant_with_tabindex :: UseAriaActivedescendantWithTabindex , self :: use_aria_props_for_role :: UseAriaPropsForRole , self :: use_aria_props_supported_by_role :: UseAriaPropsSupportedByRole , self :: use_button_type :: UseButtonType , self :: use_focusable_interactive :: UseFocusableInteractive , self :: use_heading_content :: UseHeadingContent , self :: use_html_lang :: UseHtmlLang , self :: use_iframe_title :: UseIframeTitle , self :: use_key_with_click_events :: UseKeyWithClickEvents , self :: use_key_with_mouse_events :: UseKeyWithMouseEvents , self :: use_media_caption :: UseMediaCaption , self :: use_semantic_elements :: UseSemanticElements , self :: use_valid_anchor :: UseValidAnchor , self :: use_valid_aria_props :: UseValidAriaProps , self :: use_valid_aria_role :: UseValidAriaRole , self :: use_valid_aria_values :: UseValidAriaValues , self :: use_valid_autocomplete :: UseValidAutocomplete , self :: use_valid_lang :: UseValidLang ,] } } +declare_lint_group! { pub A11y { name : "a11y" , rules : [self :: no_access_key :: NoAccessKey , self :: no_aria_hidden_on_focusable :: NoAriaHiddenOnFocusable , self :: no_aria_unsupported_elements :: NoAriaUnsupportedElements , self :: no_autofocus :: NoAutofocus , self :: no_distracting_elements :: NoDistractingElements , self :: no_header_scope :: NoHeaderScope , self :: no_interactive_element_to_noninteractive_role :: NoInteractiveElementToNoninteractiveRole , self :: no_label_without_control :: NoLabelWithoutControl , self :: no_noninteractive_element_interactions :: NoNoninteractiveElementInteractions , self :: no_noninteractive_element_to_interactive_role :: NoNoninteractiveElementToInteractiveRole , self :: no_noninteractive_tabindex :: NoNoninteractiveTabindex , self :: no_positive_tabindex :: NoPositiveTabindex , self :: no_redundant_alt :: NoRedundantAlt , self :: no_redundant_roles :: NoRedundantRoles , self :: no_static_element_interactions :: NoStaticElementInteractions , self :: no_svg_without_title :: NoSvgWithoutTitle , self :: use_alt_text :: UseAltText , self :: use_anchor_content :: UseAnchorContent , self :: use_aria_activedescendant_with_tabindex :: UseAriaActivedescendantWithTabindex , self :: use_aria_props_for_role :: UseAriaPropsForRole , self :: use_aria_props_supported_by_role :: UseAriaPropsSupportedByRole , self :: use_button_type :: UseButtonType , self :: use_focusable_interactive :: UseFocusableInteractive , self :: use_heading_content :: UseHeadingContent , self :: use_html_lang :: UseHtmlLang , self :: use_iframe_title :: UseIframeTitle , self :: use_key_with_click_events :: UseKeyWithClickEvents , self :: use_key_with_mouse_events :: UseKeyWithMouseEvents , self :: use_media_caption :: UseMediaCaption , self :: use_semantic_elements :: UseSemanticElements , self :: use_valid_anchor :: UseValidAnchor , self :: use_valid_aria_props :: UseValidAriaProps , self :: use_valid_aria_role :: UseValidAriaRole , self :: use_valid_aria_values :: UseValidAriaValues , self :: use_valid_autocomplete :: UseValidAutocomplete , self :: use_valid_lang :: UseValidLang ,] } } diff --git a/crates/biome_js_analyze/src/lint/nursery/no_noninteractive_element_interactions.rs b/crates/biome_js_analyze/src/lint/a11y/no_noninteractive_element_interactions.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_noninteractive_element_interactions.rs rename to crates/biome_js_analyze/src/lint/a11y/no_noninteractive_element_interactions.rs diff --git a/crates/biome_js_analyze/src/lint/complexity.rs b/crates/biome_js_analyze/src/lint/complexity.rs index 15109ce9485c..31b94296abd4 100644 --- a/crates/biome_js_analyze/src/lint/complexity.rs +++ b/crates/biome_js_analyze/src/lint/complexity.rs @@ -9,10 +9,12 @@ pub mod no_banned_types; pub mod no_comma_operator; pub mod no_empty_type_parameters; pub mod no_excessive_cognitive_complexity; +pub mod no_excessive_lines_per_function; pub mod no_excessive_nested_test_suites; pub mod no_extra_boolean_cast; pub mod no_flat_map_identity; pub mod no_for_each; +pub mod no_implicit_coercions; pub mod no_static_only_class; pub mod no_this_in_static; pub mod no_useless_catch; @@ -35,6 +37,7 @@ pub mod no_void; pub mod use_arrow_function; pub mod use_date_now; pub mod use_flat_map; +pub mod use_index_of; pub mod use_literal_keys; pub mod use_numeric_literals; pub mod use_optional_chain; @@ -42,4 +45,4 @@ pub mod use_regex_literals; pub mod use_simple_number_keys; pub mod use_simplified_logic_expression; pub mod use_while; -declare_lint_group! { pub Complexity { name : "complexity" , rules : [self :: no_adjacent_spaces_in_regex :: NoAdjacentSpacesInRegex , self :: no_arguments :: NoArguments , self :: no_banned_types :: NoBannedTypes , self :: no_comma_operator :: NoCommaOperator , self :: no_empty_type_parameters :: NoEmptyTypeParameters , self :: no_excessive_cognitive_complexity :: NoExcessiveCognitiveComplexity , self :: no_excessive_nested_test_suites :: NoExcessiveNestedTestSuites , self :: no_extra_boolean_cast :: NoExtraBooleanCast , self :: no_flat_map_identity :: NoFlatMapIdentity , self :: no_for_each :: NoForEach , self :: no_static_only_class :: NoStaticOnlyClass , self :: no_this_in_static :: NoThisInStatic , self :: no_useless_catch :: NoUselessCatch , self :: no_useless_constructor :: NoUselessConstructor , self :: no_useless_continue :: NoUselessContinue , self :: no_useless_empty_export :: NoUselessEmptyExport , self :: no_useless_escape_in_regex :: NoUselessEscapeInRegex , self :: no_useless_fragments :: NoUselessFragments , self :: no_useless_label :: NoUselessLabel , self :: no_useless_lone_block_statements :: NoUselessLoneBlockStatements , self :: no_useless_rename :: NoUselessRename , self :: no_useless_string_concat :: NoUselessStringConcat , self :: no_useless_string_raw :: NoUselessStringRaw , self :: no_useless_switch_case :: NoUselessSwitchCase , self :: no_useless_ternary :: NoUselessTernary , self :: no_useless_this_alias :: NoUselessThisAlias , self :: no_useless_type_constraint :: NoUselessTypeConstraint , self :: no_useless_undefined_initialization :: NoUselessUndefinedInitialization , self :: no_void :: NoVoid , self :: use_arrow_function :: UseArrowFunction , self :: use_date_now :: UseDateNow , self :: use_flat_map :: UseFlatMap , self :: use_literal_keys :: UseLiteralKeys , self :: use_numeric_literals :: UseNumericLiterals , self :: use_optional_chain :: UseOptionalChain , self :: use_regex_literals :: UseRegexLiterals , self :: use_simple_number_keys :: UseSimpleNumberKeys , self :: use_simplified_logic_expression :: UseSimplifiedLogicExpression , self :: use_while :: UseWhile ,] } } +declare_lint_group! { pub Complexity { name : "complexity" , rules : [self :: no_adjacent_spaces_in_regex :: NoAdjacentSpacesInRegex , self :: no_arguments :: NoArguments , self :: no_banned_types :: NoBannedTypes , self :: no_comma_operator :: NoCommaOperator , self :: no_empty_type_parameters :: NoEmptyTypeParameters , self :: no_excessive_cognitive_complexity :: NoExcessiveCognitiveComplexity , self :: no_excessive_lines_per_function :: NoExcessiveLinesPerFunction , self :: no_excessive_nested_test_suites :: NoExcessiveNestedTestSuites , self :: no_extra_boolean_cast :: NoExtraBooleanCast , self :: no_flat_map_identity :: NoFlatMapIdentity , self :: no_for_each :: NoForEach , self :: no_implicit_coercions :: NoImplicitCoercions , self :: no_static_only_class :: NoStaticOnlyClass , self :: no_this_in_static :: NoThisInStatic , self :: no_useless_catch :: NoUselessCatch , self :: no_useless_constructor :: NoUselessConstructor , self :: no_useless_continue :: NoUselessContinue , self :: no_useless_empty_export :: NoUselessEmptyExport , self :: no_useless_escape_in_regex :: NoUselessEscapeInRegex , self :: no_useless_fragments :: NoUselessFragments , self :: no_useless_label :: NoUselessLabel , self :: no_useless_lone_block_statements :: NoUselessLoneBlockStatements , self :: no_useless_rename :: NoUselessRename , self :: no_useless_string_concat :: NoUselessStringConcat , self :: no_useless_string_raw :: NoUselessStringRaw , self :: no_useless_switch_case :: NoUselessSwitchCase , self :: no_useless_ternary :: NoUselessTernary , self :: no_useless_this_alias :: NoUselessThisAlias , self :: no_useless_type_constraint :: NoUselessTypeConstraint , self :: no_useless_undefined_initialization :: NoUselessUndefinedInitialization , self :: no_void :: NoVoid , self :: use_arrow_function :: UseArrowFunction , self :: use_date_now :: UseDateNow , self :: use_flat_map :: UseFlatMap , self :: use_index_of :: UseIndexOf , self :: use_literal_keys :: UseLiteralKeys , self :: use_numeric_literals :: UseNumericLiterals , self :: use_optional_chain :: UseOptionalChain , self :: use_regex_literals :: UseRegexLiterals , self :: use_simple_number_keys :: UseSimpleNumberKeys , self :: use_simplified_logic_expression :: UseSimplifiedLogicExpression , self :: use_while :: UseWhile ,] } } diff --git a/crates/biome_js_analyze/src/lint/nursery/no_excessive_lines_per_function.rs b/crates/biome_js_analyze/src/lint/complexity/no_excessive_lines_per_function.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_excessive_lines_per_function.rs rename to crates/biome_js_analyze/src/lint/complexity/no_excessive_lines_per_function.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_implicit_coercion.rs b/crates/biome_js_analyze/src/lint/complexity/no_implicit_coercions.rs similarity index 99% rename from crates/biome_js_analyze/src/lint/nursery/no_implicit_coercion.rs rename to crates/biome_js_analyze/src/lint/complexity/no_implicit_coercions.rs index 272cf3c7876b..49d58b55f448 100644 --- a/crates/biome_js_analyze/src/lint/nursery/no_implicit_coercion.rs +++ b/crates/biome_js_analyze/src/lint/complexity/no_implicit_coercions.rs @@ -11,7 +11,7 @@ use biome_js_syntax::{ JsBinaryOperator, JsLanguage, JsUnaryExpression, JsUnaryOperator, T, }; use biome_rowan::{AstNode, AstNodeList, BatchMutationExt, TriviaPieceKind, declare_node_union}; -use biome_rule_options::no_implicit_coercion::NoImplicitCoercionOptions; +use biome_rule_options::no_implicit_coercions::NoImplicitCoercionsOptions; declare_lint_rule! { /// Disallow shorthand type conversions. @@ -103,9 +103,9 @@ declare_lint_rule! { /// foo + 'bar'; /// ``` /// - pub NoImplicitCoercion { + pub NoImplicitCoercions { version: "2.1.0", - name: "noImplicitCoercion", + name: "noImplicitCoercions", language: "js", recommended: false, sources: &[ @@ -115,11 +115,11 @@ declare_lint_rule! { } } -impl Rule for NoImplicitCoercion { +impl Rule for NoImplicitCoercions { type Query = Ast; type State = RuleState; type Signals = Option; - type Options = NoImplicitCoercionOptions; + type Options = NoImplicitCoercionsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/use_index_of.rs b/crates/biome_js_analyze/src/lint/complexity/use_index_of.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_index_of.rs rename to crates/biome_js_analyze/src/lint/complexity/use_index_of.rs diff --git a/crates/biome_js_analyze/src/lint/correctness.rs b/crates/biome_js_analyze/src/lint/correctness.rs index 485d94d1721f..bdf6e99f5738 100644 --- a/crates/biome_js_analyze/src/lint/correctness.rs +++ b/crates/biome_js_analyze/src/lint/correctness.rs @@ -10,18 +10,24 @@ pub mod no_constant_math_min_max_clamp; pub mod no_constructor_return; pub mod no_empty_character_class_in_regex; pub mod no_empty_pattern; +pub mod no_global_dirname_filename; pub mod no_global_object_calls; pub mod no_inner_declarations; pub mod no_invalid_builtin_instantiation; pub mod no_invalid_constructor_super; pub mod no_invalid_use_before_declaration; +pub mod no_nested_component_definitions; pub mod no_nodejs_modules; pub mod no_nonoctal_decimal_escape; pub mod no_precision_loss; pub mod no_private_imports; +pub mod no_process_global; +pub mod no_react_prop_assignments; pub mod no_render_return_value; +pub mod no_restricted_elements; pub mod no_self_assign; pub mod no_setter_return; +pub mod no_solid_destructured_props; pub mod no_string_case_mismatch; pub mod no_switch_declarations; pub mod no_undeclared_dependencies; @@ -41,8 +47,12 @@ pub mod use_exhaustive_dependencies; pub mod use_hook_at_top_level; pub mod use_import_extensions; pub mod use_is_nan; +pub mod use_json_import_attributes; pub mod use_jsx_key_in_iterable; +pub mod use_parse_int_radix; +pub mod use_single_js_doc_asterisk; +pub mod use_unique_element_ids; pub mod use_valid_for_direction; pub mod use_valid_typeof; pub mod use_yield; -declare_lint_group! { pub Correctness { name : "correctness" , rules : [self :: no_children_prop :: NoChildrenProp , self :: no_const_assign :: NoConstAssign , self :: no_constant_condition :: NoConstantCondition , self :: no_constant_math_min_max_clamp :: NoConstantMathMinMaxClamp , self :: no_constructor_return :: NoConstructorReturn , self :: no_empty_character_class_in_regex :: NoEmptyCharacterClassInRegex , self :: no_empty_pattern :: NoEmptyPattern , self :: no_global_object_calls :: NoGlobalObjectCalls , self :: no_inner_declarations :: NoInnerDeclarations , self :: no_invalid_builtin_instantiation :: NoInvalidBuiltinInstantiation , self :: no_invalid_constructor_super :: NoInvalidConstructorSuper , self :: no_invalid_use_before_declaration :: NoInvalidUseBeforeDeclaration , self :: no_nodejs_modules :: NoNodejsModules , self :: no_nonoctal_decimal_escape :: NoNonoctalDecimalEscape , self :: no_precision_loss :: NoPrecisionLoss , self :: no_private_imports :: NoPrivateImports , self :: no_render_return_value :: NoRenderReturnValue , self :: no_self_assign :: NoSelfAssign , self :: no_setter_return :: NoSetterReturn , self :: no_string_case_mismatch :: NoStringCaseMismatch , self :: no_switch_declarations :: NoSwitchDeclarations , self :: no_undeclared_dependencies :: NoUndeclaredDependencies , self :: no_undeclared_variables :: NoUndeclaredVariables , self :: no_unreachable :: NoUnreachable , self :: no_unreachable_super :: NoUnreachableSuper , self :: no_unsafe_finally :: NoUnsafeFinally , self :: no_unsafe_optional_chaining :: NoUnsafeOptionalChaining , self :: no_unused_function_parameters :: NoUnusedFunctionParameters , self :: no_unused_imports :: NoUnusedImports , self :: no_unused_labels :: NoUnusedLabels , self :: no_unused_private_class_members :: NoUnusedPrivateClassMembers , self :: no_unused_variables :: NoUnusedVariables , self :: no_void_elements_with_children :: NoVoidElementsWithChildren , self :: no_void_type_return :: NoVoidTypeReturn , self :: use_exhaustive_dependencies :: UseExhaustiveDependencies , self :: use_hook_at_top_level :: UseHookAtTopLevel , self :: use_import_extensions :: UseImportExtensions , self :: use_is_nan :: UseIsNan , self :: use_jsx_key_in_iterable :: UseJsxKeyInIterable , self :: use_valid_for_direction :: UseValidForDirection , self :: use_valid_typeof :: UseValidTypeof , self :: use_yield :: UseYield ,] } } +declare_lint_group! { pub Correctness { name : "correctness" , rules : [self :: no_children_prop :: NoChildrenProp , self :: no_const_assign :: NoConstAssign , self :: no_constant_condition :: NoConstantCondition , self :: no_constant_math_min_max_clamp :: NoConstantMathMinMaxClamp , self :: no_constructor_return :: NoConstructorReturn , self :: no_empty_character_class_in_regex :: NoEmptyCharacterClassInRegex , self :: no_empty_pattern :: NoEmptyPattern , self :: no_global_dirname_filename :: NoGlobalDirnameFilename , self :: no_global_object_calls :: NoGlobalObjectCalls , self :: no_inner_declarations :: NoInnerDeclarations , self :: no_invalid_builtin_instantiation :: NoInvalidBuiltinInstantiation , self :: no_invalid_constructor_super :: NoInvalidConstructorSuper , self :: no_invalid_use_before_declaration :: NoInvalidUseBeforeDeclaration , self :: no_nested_component_definitions :: NoNestedComponentDefinitions , self :: no_nodejs_modules :: NoNodejsModules , self :: no_nonoctal_decimal_escape :: NoNonoctalDecimalEscape , self :: no_precision_loss :: NoPrecisionLoss , self :: no_private_imports :: NoPrivateImports , self :: no_process_global :: NoProcessGlobal , self :: no_react_prop_assignments :: NoReactPropAssignments , self :: no_render_return_value :: NoRenderReturnValue , self :: no_restricted_elements :: NoRestrictedElements , self :: no_self_assign :: NoSelfAssign , self :: no_setter_return :: NoSetterReturn , self :: no_solid_destructured_props :: NoSolidDestructuredProps , self :: no_string_case_mismatch :: NoStringCaseMismatch , self :: no_switch_declarations :: NoSwitchDeclarations , self :: no_undeclared_dependencies :: NoUndeclaredDependencies , self :: no_undeclared_variables :: NoUndeclaredVariables , self :: no_unreachable :: NoUnreachable , self :: no_unreachable_super :: NoUnreachableSuper , self :: no_unsafe_finally :: NoUnsafeFinally , self :: no_unsafe_optional_chaining :: NoUnsafeOptionalChaining , self :: no_unused_function_parameters :: NoUnusedFunctionParameters , self :: no_unused_imports :: NoUnusedImports , self :: no_unused_labels :: NoUnusedLabels , self :: no_unused_private_class_members :: NoUnusedPrivateClassMembers , self :: no_unused_variables :: NoUnusedVariables , self :: no_void_elements_with_children :: NoVoidElementsWithChildren , self :: no_void_type_return :: NoVoidTypeReturn , self :: use_exhaustive_dependencies :: UseExhaustiveDependencies , self :: use_hook_at_top_level :: UseHookAtTopLevel , self :: use_import_extensions :: UseImportExtensions , self :: use_is_nan :: UseIsNan , self :: use_json_import_attributes :: UseJsonImportAttributes , self :: use_jsx_key_in_iterable :: UseJsxKeyInIterable , self :: use_parse_int_radix :: UseParseIntRadix , self :: use_single_js_doc_asterisk :: UseSingleJsDocAsterisk , self :: use_unique_element_ids :: UseUniqueElementIds , self :: use_valid_for_direction :: UseValidForDirection , self :: use_valid_typeof :: UseValidTypeof , self :: use_yield :: UseYield ,] } } diff --git a/crates/biome_js_analyze/src/lint/nursery/no_global_dirname_filename.rs b/crates/biome_js_analyze/src/lint/correctness/no_global_dirname_filename.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_global_dirname_filename.rs rename to crates/biome_js_analyze/src/lint/correctness/no_global_dirname_filename.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_nested_component_definitions.rs b/crates/biome_js_analyze/src/lint/correctness/no_nested_component_definitions.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_nested_component_definitions.rs rename to crates/biome_js_analyze/src/lint/correctness/no_nested_component_definitions.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_process_global.rs b/crates/biome_js_analyze/src/lint/correctness/no_process_global.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_process_global.rs rename to crates/biome_js_analyze/src/lint/correctness/no_process_global.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_react_prop_assign.rs b/crates/biome_js_analyze/src/lint/correctness/no_react_prop_assignments.rs similarity index 96% rename from crates/biome_js_analyze/src/lint/nursery/no_react_prop_assign.rs rename to crates/biome_js_analyze/src/lint/correctness/no_react_prop_assignments.rs index 5378bd9049de..4a7fce375283 100644 --- a/crates/biome_js_analyze/src/lint/nursery/no_react_prop_assign.rs +++ b/crates/biome_js_analyze/src/lint/correctness/no_react_prop_assignments.rs @@ -7,7 +7,7 @@ use biome_console::markup; use biome_js_semantic::SemanticModel; use biome_js_syntax::{AnyJsExpression, AnyJsStatement, JsParameterList}; use biome_rowan::{AstNode, AstSeparatedList}; -use biome_rule_options::no_react_prop_assign::NoReactPropAssignOptions; +use biome_rule_options::no_react_prop_assignments::NoReactPropAssignmentsOptions; declare_lint_rule! { /// Disallow assigning to React component props. @@ -37,20 +37,20 @@ declare_lint_rule! { /// } /// ``` /// - pub NoReactPropAssign { + pub NoReactPropAssignments { version: "2.0.0", - name: "noReactPropAssign", + name: "noReactPropAssignments", language: "jsx", sources: &[RuleSource::EslintReactHooks("react-compiler").same()], recommended: false, } } -impl Rule for NoReactPropAssign { +impl Rule for NoReactPropAssignments { type Query = Semantic; type State = AnyJsExpression; type Signals = Option; - type Options = NoReactPropAssignOptions; + type Options = NoReactPropAssignmentsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let expression = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/no_restricted_elements.rs b/crates/biome_js_analyze/src/lint/correctness/no_restricted_elements.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_restricted_elements.rs rename to crates/biome_js_analyze/src/lint/correctness/no_restricted_elements.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_destructured_props.rs b/crates/biome_js_analyze/src/lint/correctness/no_solid_destructured_props.rs similarity index 97% rename from crates/biome_js_analyze/src/lint/nursery/no_destructured_props.rs rename to crates/biome_js_analyze/src/lint/correctness/no_solid_destructured_props.rs index 523f5ef630ac..98e6693a416d 100644 --- a/crates/biome_js_analyze/src/lint/nursery/no_destructured_props.rs +++ b/crates/biome_js_analyze/src/lint/correctness/no_solid_destructured_props.rs @@ -10,7 +10,7 @@ use biome_js_syntax::{ JsParameters, JsVariableDeclarator, JsxExpressionAttributeValue, }; use biome_rowan::{AstNode, AstSeparatedList, AstSeparatedListNodesIterator, TextRange}; -use biome_rule_options::no_destructured_props::NoDestructuredPropsOptions; +use biome_rule_options::no_solid_destructured_props::NoSolidDestructuredPropsOptions; use biome_string_case::Case; use std::collections::VecDeque; use std::iter::FusedIterator; @@ -46,9 +46,9 @@ declare_lint_rule! { /// let Component = (props) =>
; /// ``` /// - pub NoDestructuredProps { + pub NoSolidDestructuredProps { version: "2.0.0", - name: "noDestructuredProps", + name: "noSolidDestructuredProps", language: "js", domains: &[RuleDomain::Solid], recommended: false, @@ -77,11 +77,11 @@ impl Violation { } } -impl Rule for NoDestructuredProps { +impl Rule for NoSolidDestructuredProps { type Query = Semantic; type State = Violation; type Signals = Vec; - type Options = NoDestructuredPropsOptions; + type Options = NoSolidDestructuredPropsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let binding_pattern = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/use_json_import_attribute.rs b/crates/biome_js_analyze/src/lint/correctness/use_json_import_attributes.rs similarity index 97% rename from crates/biome_js_analyze/src/lint/nursery/use_json_import_attribute.rs rename to crates/biome_js_analyze/src/lint/correctness/use_json_import_attributes.rs index b0d8bf0ea307..362df43c9496 100644 --- a/crates/biome_js_analyze/src/lint/nursery/use_json_import_attribute.rs +++ b/crates/biome_js_analyze/src/lint/correctness/use_json_import_attributes.rs @@ -7,7 +7,7 @@ use biome_js_syntax::{AnyJsImportAssertionEntry, JsImport, JsImportDefaultClause use biome_rowan::{ AstNode, AstSeparatedElement, AstSeparatedList, BatchMutationExt, TriviaPieceKind, }; -use biome_rule_options::use_json_import_attribute::UseJsonImportAttributeOptions; +use biome_rule_options::use_json_import_attributes::UseJsonImportAttributesOptions; use crate::{JsRuleAction, services::module_graph::ResolvedImports}; @@ -51,9 +51,9 @@ declare_lint_rule! { /// import code from './script.js'; // Not a JSON import /// ``` /// - pub UseJsonImportAttribute { + pub UseJsonImportAttributes { version: "2.0.0", - name: "useJsonImportAttribute", + name: "useJsonImportAttributes", language: "js", recommended: false, fix_kind: FixKind::Safe, @@ -61,11 +61,11 @@ declare_lint_rule! { } } -impl Rule for UseJsonImportAttribute { +impl Rule for UseJsonImportAttributes { type Query = ResolvedImports; type State = UseJsonImportAttributeState; type Signals = Option; - type Options = UseJsonImportAttributeOptions; + type Options = UseJsonImportAttributesOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/use_parse_int_radix.rs b/crates/biome_js_analyze/src/lint/correctness/use_parse_int_radix.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_parse_int_radix.rs rename to crates/biome_js_analyze/src/lint/correctness/use_parse_int_radix.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_single_js_doc_asterisk.rs b/crates/biome_js_analyze/src/lint/correctness/use_single_js_doc_asterisk.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_single_js_doc_asterisk.rs rename to crates/biome_js_analyze/src/lint/correctness/use_single_js_doc_asterisk.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_unique_element_ids.rs b/crates/biome_js_analyze/src/lint/correctness/use_unique_element_ids.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_unique_element_ids.rs rename to crates/biome_js_analyze/src/lint/correctness/use_unique_element_ids.rs diff --git a/crates/biome_js_analyze/src/lint/nursery.rs b/crates/biome_js_analyze/src/lint/nursery.rs index ff1323652ec9..0ebb59204673 100644 --- a/crates/biome_js_analyze/src/lint/nursery.rs +++ b/crates/biome_js_analyze/src/lint/nursery.rs @@ -3,62 +3,23 @@ //! Generated file, do not edit by hand, see `xtask/codegen` use biome_analyze::declare_lint_group; -pub mod no_await_in_loop; -pub mod no_bitwise_operators; -pub mod no_constant_binary_expression; -pub mod no_destructured_props; -pub mod no_excessive_lines_per_function; pub mod no_floating_promises; -pub mod no_global_dirname_filename; -pub mod no_implicit_coercion; pub mod no_import_cycles; -pub mod no_magic_numbers; pub mod no_misused_promises; -pub mod no_nested_component_definitions; -pub mod no_next_async_client_component; pub mod no_non_null_asserted_optional_chain; -pub mod no_noninteractive_element_interactions; -pub mod no_process_global; pub mod no_qwik_use_visible_task; -pub mod no_react_prop_assign; -pub mod no_restricted_elements; pub mod no_secrets; pub mod no_shadow; -pub mod no_ts_ignore; -pub mod no_unassigned_variables; pub mod no_unnecessary_conditions; pub mod no_unresolved_imports; -pub mod no_unwanted_polyfillio; -pub mod no_useless_backref_in_regex; -pub mod no_useless_escape_in_string; -pub mod no_useless_undefined; -pub mod no_vue_data_object_declaration; pub mod no_vue_reserved_keys; pub mod no_vue_reserved_props; -pub mod use_adjacent_getter_setter; pub mod use_anchor_href; -pub mod use_consistent_object_definition; -pub mod use_consistent_response; pub mod use_consistent_type_definitions; pub mod use_exhaustive_switch_cases; pub mod use_explicit_type; -pub mod use_exports_last; -pub mod use_for_component; -pub mod use_google_font_preconnect; pub mod use_image_size; -pub mod use_index_of; -pub mod use_iterable_callback_return; -pub mod use_json_import_attribute; -pub mod use_max_params; -pub mod use_numeric_separators; -pub mod use_object_spread; -pub mod use_parse_int_radix; pub mod use_qwik_classlist; pub mod use_react_function_components; -pub mod use_readonly_class_properties; -pub mod use_single_js_doc_asterisk; pub mod use_sorted_classes; -pub mod use_symbol_description; -pub mod use_unified_type_signature; -pub mod use_unique_element_ids; -declare_lint_group! { pub Nursery { name : "nursery" , rules : [self :: no_await_in_loop :: NoAwaitInLoop , self :: no_bitwise_operators :: NoBitwiseOperators , self :: no_constant_binary_expression :: NoConstantBinaryExpression , self :: no_destructured_props :: NoDestructuredProps , self :: no_excessive_lines_per_function :: NoExcessiveLinesPerFunction , self :: no_floating_promises :: NoFloatingPromises , self :: no_global_dirname_filename :: NoGlobalDirnameFilename , self :: no_implicit_coercion :: NoImplicitCoercion , self :: no_import_cycles :: NoImportCycles , self :: no_magic_numbers :: NoMagicNumbers , self :: no_misused_promises :: NoMisusedPromises , self :: no_nested_component_definitions :: NoNestedComponentDefinitions , self :: no_next_async_client_component :: NoNextAsyncClientComponent , self :: no_non_null_asserted_optional_chain :: NoNonNullAssertedOptionalChain , self :: no_noninteractive_element_interactions :: NoNoninteractiveElementInteractions , self :: no_process_global :: NoProcessGlobal , self :: no_qwik_use_visible_task :: NoQwikUseVisibleTask , self :: no_react_prop_assign :: NoReactPropAssign , self :: no_restricted_elements :: NoRestrictedElements , self :: no_secrets :: NoSecrets , self :: no_shadow :: NoShadow , self :: no_ts_ignore :: NoTsIgnore , self :: no_unassigned_variables :: NoUnassignedVariables , self :: no_unnecessary_conditions :: NoUnnecessaryConditions , self :: no_unresolved_imports :: NoUnresolvedImports , self :: no_unwanted_polyfillio :: NoUnwantedPolyfillio , self :: no_useless_backref_in_regex :: NoUselessBackrefInRegex , self :: no_useless_escape_in_string :: NoUselessEscapeInString , self :: no_useless_undefined :: NoUselessUndefined , self :: no_vue_data_object_declaration :: NoVueDataObjectDeclaration , self :: no_vue_reserved_keys :: NoVueReservedKeys , self :: no_vue_reserved_props :: NoVueReservedProps , self :: use_adjacent_getter_setter :: UseAdjacentGetterSetter , self :: use_anchor_href :: UseAnchorHref , self :: use_consistent_object_definition :: UseConsistentObjectDefinition , self :: use_consistent_response :: UseConsistentResponse , self :: use_consistent_type_definitions :: UseConsistentTypeDefinitions , self :: use_exhaustive_switch_cases :: UseExhaustiveSwitchCases , self :: use_explicit_type :: UseExplicitType , self :: use_exports_last :: UseExportsLast , self :: use_for_component :: UseForComponent , self :: use_google_font_preconnect :: UseGoogleFontPreconnect , self :: use_image_size :: UseImageSize , self :: use_index_of :: UseIndexOf , self :: use_iterable_callback_return :: UseIterableCallbackReturn , self :: use_json_import_attribute :: UseJsonImportAttribute , self :: use_max_params :: UseMaxParams , self :: use_numeric_separators :: UseNumericSeparators , self :: use_object_spread :: UseObjectSpread , self :: use_parse_int_radix :: UseParseIntRadix , self :: use_qwik_classlist :: UseQwikClasslist , self :: use_react_function_components :: UseReactFunctionComponents , self :: use_readonly_class_properties :: UseReadonlyClassProperties , self :: use_single_js_doc_asterisk :: UseSingleJsDocAsterisk , self :: use_sorted_classes :: UseSortedClasses , self :: use_symbol_description :: UseSymbolDescription , self :: use_unified_type_signature :: UseUnifiedTypeSignature , self :: use_unique_element_ids :: UseUniqueElementIds ,] } } +declare_lint_group! { pub Nursery { name : "nursery" , rules : [self :: no_floating_promises :: NoFloatingPromises , self :: no_import_cycles :: NoImportCycles , self :: no_misused_promises :: NoMisusedPromises , self :: no_non_null_asserted_optional_chain :: NoNonNullAssertedOptionalChain , self :: no_qwik_use_visible_task :: NoQwikUseVisibleTask , self :: no_secrets :: NoSecrets , self :: no_shadow :: NoShadow , self :: no_unnecessary_conditions :: NoUnnecessaryConditions , self :: no_unresolved_imports :: NoUnresolvedImports , self :: no_vue_reserved_keys :: NoVueReservedKeys , self :: no_vue_reserved_props :: NoVueReservedProps , self :: use_anchor_href :: UseAnchorHref , self :: use_consistent_type_definitions :: UseConsistentTypeDefinitions , self :: use_exhaustive_switch_cases :: UseExhaustiveSwitchCases , self :: use_explicit_type :: UseExplicitType , self :: use_image_size :: UseImageSize , self :: use_qwik_classlist :: UseQwikClasslist , self :: use_react_function_components :: UseReactFunctionComponents , self :: use_sorted_classes :: UseSortedClasses ,] } } diff --git a/crates/biome_js_analyze/src/lint/performance.rs b/crates/biome_js_analyze/src/lint/performance.rs index 359c03548ecd..8ed5d02f5f9d 100644 --- a/crates/biome_js_analyze/src/lint/performance.rs +++ b/crates/biome_js_analyze/src/lint/performance.rs @@ -4,11 +4,15 @@ use biome_analyze::declare_lint_group; pub mod no_accumulating_spread; +pub mod no_await_in_loops; pub mod no_barrel_file; pub mod no_delete; pub mod no_dynamic_namespace_import_access; pub mod no_img_element; pub mod no_namespace_import; pub mod no_re_export_all; +pub mod no_unwanted_polyfillio; +pub mod use_google_font_preconnect; +pub mod use_solid_for_component; pub mod use_top_level_regex; -declare_lint_group! { pub Performance { name : "performance" , rules : [self :: no_accumulating_spread :: NoAccumulatingSpread , self :: no_barrel_file :: NoBarrelFile , self :: no_delete :: NoDelete , self :: no_dynamic_namespace_import_access :: NoDynamicNamespaceImportAccess , self :: no_img_element :: NoImgElement , self :: no_namespace_import :: NoNamespaceImport , self :: no_re_export_all :: NoReExportAll , self :: use_top_level_regex :: UseTopLevelRegex ,] } } +declare_lint_group! { pub Performance { name : "performance" , rules : [self :: no_accumulating_spread :: NoAccumulatingSpread , self :: no_await_in_loops :: NoAwaitInLoops , self :: no_barrel_file :: NoBarrelFile , self :: no_delete :: NoDelete , self :: no_dynamic_namespace_import_access :: NoDynamicNamespaceImportAccess , self :: no_img_element :: NoImgElement , self :: no_namespace_import :: NoNamespaceImport , self :: no_re_export_all :: NoReExportAll , self :: no_unwanted_polyfillio :: NoUnwantedPolyfillio , self :: use_google_font_preconnect :: UseGoogleFontPreconnect , self :: use_solid_for_component :: UseSolidForComponent , self :: use_top_level_regex :: UseTopLevelRegex ,] } } diff --git a/crates/biome_js_analyze/src/lint/nursery/no_await_in_loop.rs b/crates/biome_js_analyze/src/lint/performance/no_await_in_loops.rs similarity index 96% rename from crates/biome_js_analyze/src/lint/nursery/no_await_in_loop.rs rename to crates/biome_js_analyze/src/lint/performance/no_await_in_loops.rs index 63b3236f4fd2..26e2c1712e62 100644 --- a/crates/biome_js_analyze/src/lint/nursery/no_await_in_loop.rs +++ b/crates/biome_js_analyze/src/lint/performance/no_await_in_loops.rs @@ -8,7 +8,7 @@ use biome_js_syntax::{ JsWithStatement, }; use biome_rowan::{AstNode, WalkEvent, declare_node_union}; -use biome_rule_options::no_await_in_loop::NoAwaitInLoopOptions; +use biome_rule_options::no_await_in_loops::NoAwaitInLoopsOptions; declare_lint_rule! { /// Disallow `await` inside loops. @@ -35,9 +35,9 @@ declare_lint_rule! { /// } /// ``` /// - pub NoAwaitInLoop { + pub NoAwaitInLoops { version: "2.0.0", - name: "noAwaitInLoop", + name: "noAwaitInLoops", language: "js", sources: &[RuleSource::Eslint("no-await-in-loop").same()], recommended: false, @@ -48,11 +48,11 @@ declare_node_union! { pub AnyLoopNode = JsForStatement | JsForInStatement | JsForOfStatement | JsWhileStatement | JsDoWhileStatement | JsWithStatement } -impl Rule for NoAwaitInLoop { +impl Rule for NoAwaitInLoops { type Query = Ast; type State = JsSyntaxNode; type Signals = Option; - type Options = NoAwaitInLoopOptions; + type Options = NoAwaitInLoopsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let loop_node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/no_unwanted_polyfillio.rs b/crates/biome_js_analyze/src/lint/performance/no_unwanted_polyfillio.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_unwanted_polyfillio.rs rename to crates/biome_js_analyze/src/lint/performance/no_unwanted_polyfillio.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_google_font_preconnect.rs b/crates/biome_js_analyze/src/lint/performance/use_google_font_preconnect.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_google_font_preconnect.rs rename to crates/biome_js_analyze/src/lint/performance/use_google_font_preconnect.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_for_component.rs b/crates/biome_js_analyze/src/lint/performance/use_solid_for_component.rs similarity index 93% rename from crates/biome_js_analyze/src/lint/nursery/use_for_component.rs rename to crates/biome_js_analyze/src/lint/performance/use_solid_for_component.rs index b21a6b4787c1..806d9bc3fd08 100644 --- a/crates/biome_js_analyze/src/lint/nursery/use_for_component.rs +++ b/crates/biome_js_analyze/src/lint/performance/use_solid_for_component.rs @@ -4,7 +4,7 @@ use biome_analyze::{ use biome_console::markup; use biome_js_syntax::{AnyJsMemberExpression, JsCallExpression, JsSyntaxKind, JsxExpressionChild}; use biome_rowan::{AstNode, AstSeparatedList, SyntaxNodeOptionExt}; -use biome_rule_options::use_for_component::UseForComponentOptions; +use biome_rule_options::use_solid_for_component::UseSolidForComponentOptions; declare_lint_rule! { /// Enforce using Solid's `` component for mapping an array to JSX elements. @@ -52,9 +52,9 @@ declare_lint_rule! { /// } /// ``` /// - pub UseForComponent { + pub UseSolidForComponent { version: "2.0.0", - name: "useForComponent", + name: "useSolidForComponent", language: "js", domains: &[RuleDomain::Solid], recommended: false, @@ -62,11 +62,11 @@ declare_lint_rule! { } } -impl Rule for UseForComponent { +impl Rule for UseSolidForComponent { type Query = Ast; type State = (); type Signals = Option; - type Options = UseForComponentOptions; + type Options = UseSolidForComponentOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/style.rs b/crates/biome_js_analyze/src/lint/style.rs index baf7a02bb903..ee9b4ae7a1d7 100644 --- a/crates/biome_js_analyze/src/lint/style.rs +++ b/crates/biome_js_analyze/src/lint/style.rs @@ -11,6 +11,7 @@ pub mod no_exported_imports; pub mod no_head_element; pub mod no_implicit_boolean; pub mod no_inferrable_types; +pub mod no_magic_numbers; pub mod no_namespace; pub mod no_negation_else; pub mod no_nested_ternary; @@ -25,6 +26,7 @@ pub mod no_shouty_constants; pub mod no_substr; pub mod no_unused_template_literal; pub mod no_useless_else; +pub mod no_useless_undefined; pub mod no_yoda_expression; pub mod use_array_literals; pub mod use_as_const_assertion; @@ -37,6 +39,7 @@ pub mod use_consistent_array_type; pub mod use_consistent_builtin_instantiation; pub mod use_consistent_curly_braces; pub mod use_consistent_member_accessibility; +pub mod use_consistent_object_definitions; pub mod use_const; pub mod use_default_parameter_last; pub mod use_default_switch_clause; @@ -44,21 +47,28 @@ pub mod use_enum_initializers; pub mod use_explicit_length_check; pub mod use_exponentiation_operator; pub mod use_export_type; +pub mod use_exports_last; pub mod use_filenaming_convention; pub mod use_for_of; pub mod use_fragment_syntax; +pub mod use_grouped_accessor_pairs; pub mod use_import_type; pub mod use_literal_enum_members; pub mod use_naming_convention; pub mod use_node_assert_strict; pub mod use_nodejs_import_protocol; pub mod use_number_namespace; +pub mod use_numeric_separators; +pub mod use_object_spread; +pub mod use_readonly_class_properties; pub mod use_self_closing_elements; pub mod use_shorthand_assign; pub mod use_shorthand_function_type; pub mod use_single_var_declarator; +pub mod use_symbol_description; pub mod use_template; pub mod use_throw_new_error; pub mod use_throw_only_error; pub mod use_trim_start_end; -declare_lint_group! { pub Style { name : "style" , rules : [self :: no_common_js :: NoCommonJs , self :: no_default_export :: NoDefaultExport , self :: no_done_callback :: NoDoneCallback , self :: no_enum :: NoEnum , self :: no_exported_imports :: NoExportedImports , self :: no_head_element :: NoHeadElement , self :: no_implicit_boolean :: NoImplicitBoolean , self :: no_inferrable_types :: NoInferrableTypes , self :: no_namespace :: NoNamespace , self :: no_negation_else :: NoNegationElse , self :: no_nested_ternary :: NoNestedTernary , self :: no_non_null_assertion :: NoNonNullAssertion , self :: no_parameter_assign :: NoParameterAssign , self :: no_parameter_properties :: NoParameterProperties , self :: no_process_env :: NoProcessEnv , self :: no_restricted_globals :: NoRestrictedGlobals , self :: no_restricted_imports :: NoRestrictedImports , self :: no_restricted_types :: NoRestrictedTypes , self :: no_shouty_constants :: NoShoutyConstants , self :: no_substr :: NoSubstr , self :: no_unused_template_literal :: NoUnusedTemplateLiteral , self :: no_useless_else :: NoUselessElse , self :: no_yoda_expression :: NoYodaExpression , self :: use_array_literals :: UseArrayLiterals , self :: use_as_const_assertion :: UseAsConstAssertion , self :: use_at_index :: UseAtIndex , self :: use_block_statements :: UseBlockStatements , self :: use_collapsed_else_if :: UseCollapsedElseIf , self :: use_collapsed_if :: UseCollapsedIf , self :: use_component_export_only_modules :: UseComponentExportOnlyModules , self :: use_consistent_array_type :: UseConsistentArrayType , self :: use_consistent_builtin_instantiation :: UseConsistentBuiltinInstantiation , self :: use_consistent_curly_braces :: UseConsistentCurlyBraces , self :: use_consistent_member_accessibility :: UseConsistentMemberAccessibility , self :: use_const :: UseConst , self :: use_default_parameter_last :: UseDefaultParameterLast , self :: use_default_switch_clause :: UseDefaultSwitchClause , self :: use_enum_initializers :: UseEnumInitializers , self :: use_explicit_length_check :: UseExplicitLengthCheck , self :: use_exponentiation_operator :: UseExponentiationOperator , self :: use_export_type :: UseExportType , self :: use_filenaming_convention :: UseFilenamingConvention , self :: use_for_of :: UseForOf , self :: use_fragment_syntax :: UseFragmentSyntax , self :: use_import_type :: UseImportType , self :: use_literal_enum_members :: UseLiteralEnumMembers , self :: use_naming_convention :: UseNamingConvention , self :: use_node_assert_strict :: UseNodeAssertStrict , self :: use_nodejs_import_protocol :: UseNodejsImportProtocol , self :: use_number_namespace :: UseNumberNamespace , self :: use_self_closing_elements :: UseSelfClosingElements , self :: use_shorthand_assign :: UseShorthandAssign , self :: use_shorthand_function_type :: UseShorthandFunctionType , self :: use_single_var_declarator :: UseSingleVarDeclarator , self :: use_template :: UseTemplate , self :: use_throw_new_error :: UseThrowNewError , self :: use_throw_only_error :: UseThrowOnlyError , self :: use_trim_start_end :: UseTrimStartEnd ,] } } +pub mod use_unified_type_signatures; +declare_lint_group! { pub Style { name : "style" , rules : [self :: no_common_js :: NoCommonJs , self :: no_default_export :: NoDefaultExport , self :: no_done_callback :: NoDoneCallback , self :: no_enum :: NoEnum , self :: no_exported_imports :: NoExportedImports , self :: no_head_element :: NoHeadElement , self :: no_implicit_boolean :: NoImplicitBoolean , self :: no_inferrable_types :: NoInferrableTypes , self :: no_magic_numbers :: NoMagicNumbers , self :: no_namespace :: NoNamespace , self :: no_negation_else :: NoNegationElse , self :: no_nested_ternary :: NoNestedTernary , self :: no_non_null_assertion :: NoNonNullAssertion , self :: no_parameter_assign :: NoParameterAssign , self :: no_parameter_properties :: NoParameterProperties , self :: no_process_env :: NoProcessEnv , self :: no_restricted_globals :: NoRestrictedGlobals , self :: no_restricted_imports :: NoRestrictedImports , self :: no_restricted_types :: NoRestrictedTypes , self :: no_shouty_constants :: NoShoutyConstants , self :: no_substr :: NoSubstr , self :: no_unused_template_literal :: NoUnusedTemplateLiteral , self :: no_useless_else :: NoUselessElse , self :: no_useless_undefined :: NoUselessUndefined , self :: no_yoda_expression :: NoYodaExpression , self :: use_array_literals :: UseArrayLiterals , self :: use_as_const_assertion :: UseAsConstAssertion , self :: use_at_index :: UseAtIndex , self :: use_block_statements :: UseBlockStatements , self :: use_collapsed_else_if :: UseCollapsedElseIf , self :: use_collapsed_if :: UseCollapsedIf , self :: use_component_export_only_modules :: UseComponentExportOnlyModules , self :: use_consistent_array_type :: UseConsistentArrayType , self :: use_consistent_builtin_instantiation :: UseConsistentBuiltinInstantiation , self :: use_consistent_curly_braces :: UseConsistentCurlyBraces , self :: use_consistent_member_accessibility :: UseConsistentMemberAccessibility , self :: use_consistent_object_definitions :: UseConsistentObjectDefinitions , self :: use_const :: UseConst , self :: use_default_parameter_last :: UseDefaultParameterLast , self :: use_default_switch_clause :: UseDefaultSwitchClause , self :: use_enum_initializers :: UseEnumInitializers , self :: use_explicit_length_check :: UseExplicitLengthCheck , self :: use_exponentiation_operator :: UseExponentiationOperator , self :: use_export_type :: UseExportType , self :: use_exports_last :: UseExportsLast , self :: use_filenaming_convention :: UseFilenamingConvention , self :: use_for_of :: UseForOf , self :: use_fragment_syntax :: UseFragmentSyntax , self :: use_grouped_accessor_pairs :: UseGroupedAccessorPairs , self :: use_import_type :: UseImportType , self :: use_literal_enum_members :: UseLiteralEnumMembers , self :: use_naming_convention :: UseNamingConvention , self :: use_node_assert_strict :: UseNodeAssertStrict , self :: use_nodejs_import_protocol :: UseNodejsImportProtocol , self :: use_number_namespace :: UseNumberNamespace , self :: use_numeric_separators :: UseNumericSeparators , self :: use_object_spread :: UseObjectSpread , self :: use_readonly_class_properties :: UseReadonlyClassProperties , self :: use_self_closing_elements :: UseSelfClosingElements , self :: use_shorthand_assign :: UseShorthandAssign , self :: use_shorthand_function_type :: UseShorthandFunctionType , self :: use_single_var_declarator :: UseSingleVarDeclarator , self :: use_symbol_description :: UseSymbolDescription , self :: use_template :: UseTemplate , self :: use_throw_new_error :: UseThrowNewError , self :: use_throw_only_error :: UseThrowOnlyError , self :: use_trim_start_end :: UseTrimStartEnd , self :: use_unified_type_signatures :: UseUnifiedTypeSignatures ,] } } diff --git a/crates/biome_js_analyze/src/lint/nursery/no_magic_numbers.rs b/crates/biome_js_analyze/src/lint/style/no_magic_numbers.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_magic_numbers.rs rename to crates/biome_js_analyze/src/lint/style/no_magic_numbers.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_useless_undefined.rs b/crates/biome_js_analyze/src/lint/style/no_useless_undefined.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_useless_undefined.rs rename to crates/biome_js_analyze/src/lint/style/no_useless_undefined.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_consistent_object_definition.rs b/crates/biome_js_analyze/src/lint/style/use_consistent_object_definitions.rs similarity index 97% rename from crates/biome_js_analyze/src/lint/nursery/use_consistent_object_definition.rs rename to crates/biome_js_analyze/src/lint/style/use_consistent_object_definitions.rs index fc3aa34a55fa..0d6af2151bd8 100644 --- a/crates/biome_js_analyze/src/lint/nursery/use_consistent_object_definition.rs +++ b/crates/biome_js_analyze/src/lint/style/use_consistent_object_definitions.rs @@ -10,8 +10,8 @@ use biome_js_syntax::{ AnyJsExpression, AnyJsObjectMember, AnyJsObjectMemberName, JsLanguage, T, inner_string_text, }; use biome_rowan::{AstNode, BatchMutationExt, TriviaPieceKind}; -use biome_rule_options::use_consistent_object_definition::{ - ObjectPropertySyntax, UseConsistentObjectDefinitionOptions, +use biome_rule_options::use_consistent_object_definitions::{ + ObjectPropertySyntax, UseConsistentObjectDefinitionsOptions, }; declare_lint_rule! { @@ -109,9 +109,9 @@ declare_lint_rule! { /// /// **Default:** `shorthand` /// - pub UseConsistentObjectDefinition { + pub UseConsistentObjectDefinitions { version: "2.0.0", - name: "useConsistentObjectDefinition", + name: "useConsistentObjectDefinitions", language: "js", recommended: false, fix_kind: FixKind::Safe, @@ -120,11 +120,11 @@ declare_lint_rule! { } } -impl Rule for UseConsistentObjectDefinition { +impl Rule for UseConsistentObjectDefinitions { type Query = Ast; type State = (); type Signals = Option; - type Options = UseConsistentObjectDefinitionOptions; + type Options = UseConsistentObjectDefinitionsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let binding = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/use_exports_last.rs b/crates/biome_js_analyze/src/lint/style/use_exports_last.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_exports_last.rs rename to crates/biome_js_analyze/src/lint/style/use_exports_last.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_adjacent_getter_setter.rs b/crates/biome_js_analyze/src/lint/style/use_grouped_accessor_pairs.rs similarity index 98% rename from crates/biome_js_analyze/src/lint/nursery/use_adjacent_getter_setter.rs rename to crates/biome_js_analyze/src/lint/style/use_grouped_accessor_pairs.rs index 60984e390501..c0db17549729 100644 --- a/crates/biome_js_analyze/src/lint/nursery/use_adjacent_getter_setter.rs +++ b/crates/biome_js_analyze/src/lint/style/use_grouped_accessor_pairs.rs @@ -12,7 +12,7 @@ use biome_js_syntax::{ TsSetterSignatureTypeMember, TsTypeMemberList, }; use biome_rowan::{AstNode, AstNodeList, AstSeparatedList, SyntaxResult, declare_node_union}; -use biome_rule_options::use_adjacent_getter_setter::UseAdjacentGetterSetterOptions; +use biome_rule_options::use_grouped_accessor_pairs::UseGroupedAccessorPairsOptions; declare_lint_rule! { /// Enforce that getters and setters for the same property are adjacent in class and object definitions. @@ -58,20 +58,20 @@ declare_lint_rule! { /// This rule does not enforce the existence of both getter and setter for a property. /// Single getters without setters and setters without getters are ignored. /// - pub UseAdjacentGetterSetter { + pub UseGroupedAccessorPairs { version: "2.0.0", - name: "useAdjacentGetterSetter", + name: "useGroupedAccessorPairs", language: "js", recommended: false, sources: &[RuleSource::Eslint("grouped-accessor-pairs").same()], } } -impl Rule for UseAdjacentGetterSetter { +impl Rule for UseGroupedAccessorPairs { type Query = Ast; type State = MatchingPropertyAccessors; type Signals = Option; - type Options = UseAdjacentGetterSetterOptions; + type Options = UseGroupedAccessorPairsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/use_numeric_separators.rs b/crates/biome_js_analyze/src/lint/style/use_numeric_separators.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_numeric_separators.rs rename to crates/biome_js_analyze/src/lint/style/use_numeric_separators.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_object_spread.rs b/crates/biome_js_analyze/src/lint/style/use_object_spread.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_object_spread.rs rename to crates/biome_js_analyze/src/lint/style/use_object_spread.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_readonly_class_properties.rs b/crates/biome_js_analyze/src/lint/style/use_readonly_class_properties.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_readonly_class_properties.rs rename to crates/biome_js_analyze/src/lint/style/use_readonly_class_properties.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_symbol_description.rs b/crates/biome_js_analyze/src/lint/style/use_symbol_description.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/use_symbol_description.rs rename to crates/biome_js_analyze/src/lint/style/use_symbol_description.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/use_unified_type_signature.rs b/crates/biome_js_analyze/src/lint/style/use_unified_type_signatures.rs similarity index 99% rename from crates/biome_js_analyze/src/lint/nursery/use_unified_type_signature.rs rename to crates/biome_js_analyze/src/lint/style/use_unified_type_signatures.rs index 0049b79dc35f..7aebe3701a51 100644 --- a/crates/biome_js_analyze/src/lint/nursery/use_unified_type_signature.rs +++ b/crates/biome_js_analyze/src/lint/style/use_unified_type_signatures.rs @@ -21,7 +21,7 @@ use biome_rowan::{ AstNode, AstSeparatedList, BatchMutation, BatchMutationExt, SyntaxResult, TextRange, TriviaPieceKind, chain_trivia_pieces, declare_node_union, }; -use biome_rule_options::use_unified_type_signature::UseUnifiedTypeSignatureOptions; +use biome_rule_options::use_unified_type_signatures::UseUnifiedTypeSignaturesOptions; declare_lint_rule! { /// Disallow overload signatures that can be unified into a single signature. @@ -73,9 +73,9 @@ declare_lint_rule! { /// function f(x: unknown): void {} /// ``` /// - pub UseUnifiedTypeSignature { + pub UseUnifiedTypeSignatures { version: "2.1.0", - name: "useUnifiedTypeSignature", + name: "useUnifiedTypeSignatures", language: "ts", recommended: false, sources: &[RuleSource::EslintTypeScript("unified-signatures").same()], @@ -83,11 +83,11 @@ declare_lint_rule! { } } -impl Rule for UseUnifiedTypeSignature { +impl Rule for UseUnifiedTypeSignatures { type Query = Ast; type State = MergeOverloadSignaturesInfo; type Signals = Option; - type Options = UseUnifiedTypeSignatureOptions; + type Options = UseUnifiedTypeSignaturesOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/suspicious.rs b/crates/biome_js_analyze/src/lint/suspicious.rs index c93ba6cf0fd7..c0df83d119c9 100644 --- a/crates/biome_js_analyze/src/lint/suspicious.rs +++ b/crates/biome_js_analyze/src/lint/suspicious.rs @@ -8,6 +8,7 @@ pub mod no_approximative_numeric_constant; pub mod no_array_index_key; pub mod no_assign_in_expressions; pub mod no_async_promise_executor; +pub mod no_bitwise_operators; pub mod no_catch_assign; pub mod no_class_assign; pub mod no_comment_text; @@ -16,6 +17,7 @@ pub mod no_confusing_labels; pub mod no_confusing_void_type; pub mod no_console; pub mod no_const_enum; +pub mod no_constant_binary_expressions; pub mod no_control_characters_in_regex; pub mod no_debugger; pub mod no_document_cookie; @@ -61,12 +63,17 @@ pub mod no_sparse_array; pub mod no_suspicious_semicolon_in_jsx; pub mod no_template_curly_in_string; pub mod no_then_property; +pub mod no_ts_ignore; +pub mod no_unassigned_variables; pub mod no_unsafe_declaration_merging; pub mod no_unsafe_negation; +pub mod no_useless_regex_backrefs; +pub mod no_useless_string_escapes; pub mod no_var; pub mod no_with; pub mod use_adjacent_overload_signatures; pub mod use_await; +pub mod use_consistent_iterable_callback_return_values; pub mod use_default_switch_clause_last; pub mod use_error_message; pub mod use_getter_return; @@ -75,5 +82,6 @@ pub mod use_guard_for_in; pub mod use_is_array; pub mod use_namespace_keyword; pub mod use_number_to_fixed_digits_argument; +pub mod use_static_response_methods; pub mod use_strict_mode; -declare_lint_group! { pub Suspicious { name : "suspicious" , rules : [self :: no_alert :: NoAlert , self :: no_approximative_numeric_constant :: NoApproximativeNumericConstant , self :: no_array_index_key :: NoArrayIndexKey , self :: no_assign_in_expressions :: NoAssignInExpressions , self :: no_async_promise_executor :: NoAsyncPromiseExecutor , self :: no_catch_assign :: NoCatchAssign , self :: no_class_assign :: NoClassAssign , self :: no_comment_text :: NoCommentText , self :: no_compare_neg_zero :: NoCompareNegZero , self :: no_confusing_labels :: NoConfusingLabels , self :: no_confusing_void_type :: NoConfusingVoidType , self :: no_console :: NoConsole , self :: no_const_enum :: NoConstEnum , self :: no_control_characters_in_regex :: NoControlCharactersInRegex , self :: no_debugger :: NoDebugger , self :: no_document_cookie :: NoDocumentCookie , self :: no_document_import_in_page :: NoDocumentImportInPage , self :: no_double_equals :: NoDoubleEquals , self :: no_duplicate_case :: NoDuplicateCase , self :: no_duplicate_class_members :: NoDuplicateClassMembers , self :: no_duplicate_else_if :: NoDuplicateElseIf , self :: no_duplicate_jsx_props :: NoDuplicateJsxProps , self :: no_duplicate_object_keys :: NoDuplicateObjectKeys , self :: no_duplicate_parameters :: NoDuplicateParameters , self :: no_duplicate_test_hooks :: NoDuplicateTestHooks , self :: no_empty_block_statements :: NoEmptyBlockStatements , self :: no_empty_interface :: NoEmptyInterface , self :: no_evolving_types :: NoEvolvingTypes , self :: no_explicit_any :: NoExplicitAny , self :: no_exports_in_test :: NoExportsInTest , self :: no_extra_non_null_assertion :: NoExtraNonNullAssertion , self :: no_fallthrough_switch_clause :: NoFallthroughSwitchClause , self :: no_focused_tests :: NoFocusedTests , self :: no_function_assign :: NoFunctionAssign , self :: no_global_assign :: NoGlobalAssign , self :: no_global_is_finite :: NoGlobalIsFinite , self :: no_global_is_nan :: NoGlobalIsNan , self :: no_head_import_in_document :: NoHeadImportInDocument , self :: no_implicit_any_let :: NoImplicitAnyLet , self :: no_import_assign :: NoImportAssign , self :: no_irregular_whitespace :: NoIrregularWhitespace , self :: no_label_var :: NoLabelVar , self :: no_misleading_character_class :: NoMisleadingCharacterClass , self :: no_misleading_instantiator :: NoMisleadingInstantiator , self :: no_misplaced_assertion :: NoMisplacedAssertion , self :: no_misrefactored_shorthand_assign :: NoMisrefactoredShorthandAssign , self :: no_octal_escape :: NoOctalEscape , self :: no_prototype_builtins :: NoPrototypeBuiltins , self :: no_react_specific_props :: NoReactSpecificProps , self :: no_redeclare :: NoRedeclare , self :: no_redundant_use_strict :: NoRedundantUseStrict , self :: no_self_compare :: NoSelfCompare , self :: no_shadow_restricted_names :: NoShadowRestrictedNames , self :: no_skipped_tests :: NoSkippedTests , self :: no_sparse_array :: NoSparseArray , self :: no_suspicious_semicolon_in_jsx :: NoSuspiciousSemicolonInJsx , self :: no_template_curly_in_string :: NoTemplateCurlyInString , self :: no_then_property :: NoThenProperty , self :: no_unsafe_declaration_merging :: NoUnsafeDeclarationMerging , self :: no_unsafe_negation :: NoUnsafeNegation , self :: no_var :: NoVar , self :: no_with :: NoWith , self :: use_adjacent_overload_signatures :: UseAdjacentOverloadSignatures , self :: use_await :: UseAwait , self :: use_default_switch_clause_last :: UseDefaultSwitchClauseLast , self :: use_error_message :: UseErrorMessage , self :: use_getter_return :: UseGetterReturn , self :: use_google_font_display :: UseGoogleFontDisplay , self :: use_guard_for_in :: UseGuardForIn , self :: use_is_array :: UseIsArray , self :: use_namespace_keyword :: UseNamespaceKeyword , self :: use_number_to_fixed_digits_argument :: UseNumberToFixedDigitsArgument , self :: use_strict_mode :: UseStrictMode ,] } } +declare_lint_group! { pub Suspicious { name : "suspicious" , rules : [self :: no_alert :: NoAlert , self :: no_approximative_numeric_constant :: NoApproximativeNumericConstant , self :: no_array_index_key :: NoArrayIndexKey , self :: no_assign_in_expressions :: NoAssignInExpressions , self :: no_async_promise_executor :: NoAsyncPromiseExecutor , self :: no_bitwise_operators :: NoBitwiseOperators , self :: no_catch_assign :: NoCatchAssign , self :: no_class_assign :: NoClassAssign , self :: no_comment_text :: NoCommentText , self :: no_compare_neg_zero :: NoCompareNegZero , self :: no_confusing_labels :: NoConfusingLabels , self :: no_confusing_void_type :: NoConfusingVoidType , self :: no_console :: NoConsole , self :: no_const_enum :: NoConstEnum , self :: no_constant_binary_expressions :: NoConstantBinaryExpressions , self :: no_control_characters_in_regex :: NoControlCharactersInRegex , self :: no_debugger :: NoDebugger , self :: no_document_cookie :: NoDocumentCookie , self :: no_document_import_in_page :: NoDocumentImportInPage , self :: no_double_equals :: NoDoubleEquals , self :: no_duplicate_case :: NoDuplicateCase , self :: no_duplicate_class_members :: NoDuplicateClassMembers , self :: no_duplicate_else_if :: NoDuplicateElseIf , self :: no_duplicate_jsx_props :: NoDuplicateJsxProps , self :: no_duplicate_object_keys :: NoDuplicateObjectKeys , self :: no_duplicate_parameters :: NoDuplicateParameters , self :: no_duplicate_test_hooks :: NoDuplicateTestHooks , self :: no_empty_block_statements :: NoEmptyBlockStatements , self :: no_empty_interface :: NoEmptyInterface , self :: no_evolving_types :: NoEvolvingTypes , self :: no_explicit_any :: NoExplicitAny , self :: no_exports_in_test :: NoExportsInTest , self :: no_extra_non_null_assertion :: NoExtraNonNullAssertion , self :: no_fallthrough_switch_clause :: NoFallthroughSwitchClause , self :: no_focused_tests :: NoFocusedTests , self :: no_function_assign :: NoFunctionAssign , self :: no_global_assign :: NoGlobalAssign , self :: no_global_is_finite :: NoGlobalIsFinite , self :: no_global_is_nan :: NoGlobalIsNan , self :: no_head_import_in_document :: NoHeadImportInDocument , self :: no_implicit_any_let :: NoImplicitAnyLet , self :: no_import_assign :: NoImportAssign , self :: no_irregular_whitespace :: NoIrregularWhitespace , self :: no_label_var :: NoLabelVar , self :: no_misleading_character_class :: NoMisleadingCharacterClass , self :: no_misleading_instantiator :: NoMisleadingInstantiator , self :: no_misplaced_assertion :: NoMisplacedAssertion , self :: no_misrefactored_shorthand_assign :: NoMisrefactoredShorthandAssign , self :: no_octal_escape :: NoOctalEscape , self :: no_prototype_builtins :: NoPrototypeBuiltins , self :: no_react_specific_props :: NoReactSpecificProps , self :: no_redeclare :: NoRedeclare , self :: no_redundant_use_strict :: NoRedundantUseStrict , self :: no_self_compare :: NoSelfCompare , self :: no_shadow_restricted_names :: NoShadowRestrictedNames , self :: no_skipped_tests :: NoSkippedTests , self :: no_sparse_array :: NoSparseArray , self :: no_suspicious_semicolon_in_jsx :: NoSuspiciousSemicolonInJsx , self :: no_template_curly_in_string :: NoTemplateCurlyInString , self :: no_then_property :: NoThenProperty , self :: no_ts_ignore :: NoTsIgnore , self :: no_unassigned_variables :: NoUnassignedVariables , self :: no_unsafe_declaration_merging :: NoUnsafeDeclarationMerging , self :: no_unsafe_negation :: NoUnsafeNegation , self :: no_useless_regex_backrefs :: NoUselessRegexBackrefs , self :: no_useless_string_escapes :: NoUselessStringEscapes , self :: no_var :: NoVar , self :: no_with :: NoWith , self :: use_adjacent_overload_signatures :: UseAdjacentOverloadSignatures , self :: use_await :: UseAwait , self :: use_consistent_iterable_callback_return_values :: UseConsistentIterableCallbackReturnValues , self :: use_default_switch_clause_last :: UseDefaultSwitchClauseLast , self :: use_error_message :: UseErrorMessage , self :: use_getter_return :: UseGetterReturn , self :: use_google_font_display :: UseGoogleFontDisplay , self :: use_guard_for_in :: UseGuardForIn , self :: use_is_array :: UseIsArray , self :: use_namespace_keyword :: UseNamespaceKeyword , self :: use_number_to_fixed_digits_argument :: UseNumberToFixedDigitsArgument , self :: use_static_response_methods :: UseStaticResponseMethods , self :: use_strict_mode :: UseStrictMode ,] } } diff --git a/crates/biome_js_analyze/src/lint/nursery/no_bitwise_operators.rs b/crates/biome_js_analyze/src/lint/suspicious/no_bitwise_operators.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_bitwise_operators.rs rename to crates/biome_js_analyze/src/lint/suspicious/no_bitwise_operators.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_constant_binary_expression.rs b/crates/biome_js_analyze/src/lint/suspicious/no_constant_binary_expressions.rs similarity index 98% rename from crates/biome_js_analyze/src/lint/nursery/no_constant_binary_expression.rs rename to crates/biome_js_analyze/src/lint/suspicious/no_constant_binary_expressions.rs index 6c7eda95fe04..2f030e0b2fae 100644 --- a/crates/biome_js_analyze/src/lint/nursery/no_constant_binary_expression.rs +++ b/crates/biome_js_analyze/src/lint/suspicious/no_constant_binary_expressions.rs @@ -9,7 +9,7 @@ use biome_js_syntax::{ JsReferenceIdentifier, JsUnaryOperator, }; use biome_rowan::{AstNode, AstNodeList, AstSeparatedList, SyntaxResult, declare_node_union}; -use biome_rule_options::no_constant_binary_expression::NoConstantBinaryExpressionOptions; +use biome_rule_options::no_constant_binary_expressions::NoConstantBinaryExpressionsOptions; use crate::ast_utils::is_constant_condition; use crate::globals::is_js_language_global; @@ -88,9 +88,9 @@ declare_lint_rule! { /// const arrIsEmpty = someArr.length === 0; /// ``` /// - pub NoConstantBinaryExpression { + pub NoConstantBinaryExpressions { version: "2.0.0", - name: "noConstantBinaryExpression", + name: "noConstantBinaryExpressions", language: "js", recommended: false, sources: &[RuleSource::Eslint("no-constant-binary-expression").same()], @@ -150,11 +150,11 @@ pub enum Issue { BothAlwaysNew, } -impl Rule for NoConstantBinaryExpression { +impl Rule for NoConstantBinaryExpressions { type Query = Semantic; type State = Issue; type Signals = Option; - type Options = NoConstantBinaryExpressionOptions; + type Options = NoConstantBinaryExpressionsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let model = ctx.model(); diff --git a/crates/biome_js_analyze/src/lint/nursery/no_ts_ignore.rs b/crates/biome_js_analyze/src/lint/suspicious/no_ts_ignore.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_ts_ignore.rs rename to crates/biome_js_analyze/src/lint/suspicious/no_ts_ignore.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_unassigned_variables.rs b/crates/biome_js_analyze/src/lint/suspicious/no_unassigned_variables.rs similarity index 100% rename from crates/biome_js_analyze/src/lint/nursery/no_unassigned_variables.rs rename to crates/biome_js_analyze/src/lint/suspicious/no_unassigned_variables.rs diff --git a/crates/biome_js_analyze/src/lint/nursery/no_useless_backref_in_regex.rs b/crates/biome_js_analyze/src/lint/suspicious/no_useless_regex_backrefs.rs similarity index 99% rename from crates/biome_js_analyze/src/lint/nursery/no_useless_backref_in_regex.rs rename to crates/biome_js_analyze/src/lint/suspicious/no_useless_regex_backrefs.rs index d5e2964f89bd..cde127ae8ea2 100644 --- a/crates/biome_js_analyze/src/lint/nursery/no_useless_backref_in_regex.rs +++ b/crates/biome_js_analyze/src/lint/suspicious/no_useless_regex_backrefs.rs @@ -6,7 +6,7 @@ use biome_analyze::{ use biome_diagnostics::Severity; use biome_js_syntax::JsRegexLiteralExpression; use biome_rowan::{AstNode, TextRange}; -use biome_rule_options::no_useless_backref_in_regex::NoUselessBackrefInRegexOptions; +use biome_rule_options::no_useless_regex_backrefs::NoUselessRegexBackrefsOptions; declare_lint_rule! { /// Disallow useless backreferences in regular expression literals that always match an empty string. @@ -81,9 +81,9 @@ declare_lint_rule! { /// /a(?!(b|c)\1)./; /// ``` /// - pub NoUselessBackrefInRegex { + pub NoUselessRegexBackrefs { version: "2.0.0", - name: "noUselessBackrefInRegex", + name: "noUselessRegexBackrefs", language: "js", sources: &[ RuleSource::Eslint("no-useless-backreference").same(), @@ -94,11 +94,11 @@ declare_lint_rule! { } } -impl Rule for NoUselessBackrefInRegex { +impl Rule for NoUselessRegexBackrefs { type Query = Ast; type State = BackRefIssue; type Signals = Option; - type Options = NoUselessBackrefInRegexOptions; + type Options = NoUselessRegexBackrefsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/no_useless_escape_in_string.rs b/crates/biome_js_analyze/src/lint/suspicious/no_useless_string_escapes.rs similarity index 96% rename from crates/biome_js_analyze/src/lint/nursery/no_useless_escape_in_string.rs rename to crates/biome_js_analyze/src/lint/suspicious/no_useless_string_escapes.rs index e4ed8451c649..1f633b75b319 100644 --- a/crates/biome_js_analyze/src/lint/nursery/no_useless_escape_in_string.rs +++ b/crates/biome_js_analyze/src/lint/suspicious/no_useless_string_escapes.rs @@ -6,7 +6,7 @@ use biome_js_syntax::{ JsSyntaxToken, JsTemplateExpression, }; use biome_rowan::{BatchMutationExt, TextRange, declare_node_union}; -use biome_rule_options::no_useless_escape_in_string::NoUselessEscapeInStringOptions; +use biome_rule_options::no_useless_string_escapes::NoUselessStringEscapesOptions; use crate::JsRuleAction; @@ -52,9 +52,9 @@ declare_lint_rule! { ///
; /// ``` /// - pub NoUselessEscapeInString { + pub NoUselessStringEscapes { version: "2.0.0", - name: "noUselessEscapeInString", + name: "noUselessStringEscapes", language: "js", recommended: true, severity: Severity::Warning, @@ -62,11 +62,11 @@ declare_lint_rule! { } } -impl Rule for NoUselessEscapeInString { +impl Rule for NoUselessStringEscapes { type Query = Ast; type State = (JsSyntaxToken, usize); type Signals = Option; - type Options = NoUselessEscapeInStringOptions; + type Options = NoUselessStringEscapesOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/use_iterable_callback_return.rs b/crates/biome_js_analyze/src/lint/suspicious/use_consistent_iterable_callback_return_values.rs similarity index 97% rename from crates/biome_js_analyze/src/lint/nursery/use_iterable_callback_return.rs rename to crates/biome_js_analyze/src/lint/suspicious/use_consistent_iterable_callback_return_values.rs index 28ab72f14765..00a355b5574c 100644 --- a/crates/biome_js_analyze/src/lint/nursery/use_iterable_callback_return.rs +++ b/crates/biome_js_analyze/src/lint/suspicious/use_consistent_iterable_callback_return_values.rs @@ -11,7 +11,7 @@ use biome_js_syntax::{ JsCallExpression, JsFunctionExpression, JsReturnStatement, global_identifier, }; use biome_rowan::{AstNode, AstSeparatedList, NodeOrToken, TextRange}; -use biome_rule_options::use_iterable_callback_return::UseIterableCallbackReturnOptions; +use biome_rule_options::use_consistent_iterable_callback_return_values::UseConsistentIterableCallbackReturnValuesOptions; use roaring::RoaringBitmap; use rustc_hash::FxHashMap; use std::io; @@ -76,9 +76,9 @@ declare_lint_rule! { /// // No return value, which is correct /// }); /// ``` - pub UseIterableCallbackReturn { + pub UseConsistentIterableCallbackReturnValues { version: "2.0.0", - name: "useIterableCallbackReturn", + name: "useConsistentIterableCallbackReturnValues", language: "js", sources: &[RuleSource::Eslint("array-callback-return").same()], severity: Severity::Error, @@ -86,11 +86,11 @@ declare_lint_rule! { } } -impl Rule for UseIterableCallbackReturn { +impl Rule for UseConsistentIterableCallbackReturnValues { type Query = ControlFlowGraph; type State = RuleState; type Signals = Option; - type Options = UseIterableCallbackReturnOptions; + type Options = UseConsistentIterableCallbackReturnValuesOptions; fn run(ctx: &RuleContext) -> Self::Signals { let cfg = ctx.query(); diff --git a/crates/biome_js_analyze/src/lint/nursery/use_consistent_response.rs b/crates/biome_js_analyze/src/lint/suspicious/use_static_response_methods.rs similarity index 97% rename from crates/biome_js_analyze/src/lint/nursery/use_consistent_response.rs rename to crates/biome_js_analyze/src/lint/suspicious/use_static_response_methods.rs index cd141c8fd570..a5efcccc6ce5 100644 --- a/crates/biome_js_analyze/src/lint/nursery/use_consistent_response.rs +++ b/crates/biome_js_analyze/src/lint/suspicious/use_static_response_methods.rs @@ -7,7 +7,7 @@ use biome_js_syntax::{ JsNewExpression, JsPropertyObjectMember, T, global_identifier, }; use biome_rowan::{AstNode, AstSeparatedList, BatchMutationExt, TokenText, TriviaPieceKind}; -use biome_rule_options::use_consistent_response::UseConsistentResponseOptions; +use biome_rule_options::use_static_response_methods::UseStaticResponseMethodsOptions; use biome_string_case::StrLikeExtension; use crate::{JsRuleAction, services::semantic::Semantic}; @@ -74,20 +74,20 @@ declare_lint_rule! { /// }) /// ``` /// - pub UseConsistentResponse { + pub UseStaticResponseMethods { version: "2.0.0", - name: "useConsistentResponse", + name: "useStaticResponseMethods", language: "js", fix_kind: FixKind::Unsafe, recommended: false, } } -impl Rule for UseConsistentResponse { +impl Rule for UseStaticResponseMethods { type Query = Semantic; type State = ResponseSimplification; type Signals = Option; - type Options = UseConsistentResponseOptions; + type Options = UseStaticResponseMethodsOptions; fn run(ctx: &RuleContext) -> Self::Signals { let node = ctx.query(); diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/invalid.jsx b/crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/invalid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/invalid.jsx rename to crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/invalid.jsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/invalid.jsx.snap b/crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/invalid.jsx.snap similarity index 74% rename from crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/invalid.jsx.snap rename to crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/invalid.jsx.snap index bc33b75eac52..d3acf8c5556f 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/invalid.jsx.snap +++ b/crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/invalid.jsx.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.jsx -snapshot_kind: text --- # Input ```jsx @@ -100,7 +99,7 @@ snapshot_kind: text # Diagnostics ``` -invalid.jsx:2:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:2:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -116,7 +115,7 @@ invalid.jsx:2:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:3:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:3:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -133,7 +132,7 @@ invalid.jsx:3:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:4:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:4:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -150,7 +149,7 @@ invalid.jsx:4:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:5:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:5:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -167,7 +166,7 @@ invalid.jsx:5:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:6:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:6:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -184,7 +183,7 @@ invalid.jsx:6:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:7:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:7:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -201,7 +200,7 @@ invalid.jsx:7:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:8:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:8:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -218,7 +217,7 @@ invalid.jsx:8:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:9:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:9:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -235,7 +234,7 @@ invalid.jsx:9:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━ ``` ``` -invalid.jsx:10:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:10:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -252,7 +251,7 @@ invalid.jsx:10:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:11:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:11:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -269,7 +268,7 @@ invalid.jsx:11:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:12:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:12:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -286,7 +285,7 @@ invalid.jsx:12:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:14:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:14:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -303,7 +302,7 @@ invalid.jsx:14:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:15:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:15:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -320,7 +319,7 @@ invalid.jsx:15:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:16:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:16:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -337,7 +336,7 @@ invalid.jsx:16:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:17:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:17:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -354,7 +353,7 @@ invalid.jsx:17:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:18:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:18:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -371,7 +370,7 @@ invalid.jsx:18:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:19:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:19:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -388,7 +387,7 @@ invalid.jsx:19:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:20:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:20:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -405,7 +404,7 @@ invalid.jsx:20:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:21:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:21:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -422,7 +421,7 @@ invalid.jsx:21:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:22:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:22:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -439,7 +438,7 @@ invalid.jsx:22:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:23:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:23:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -456,7 +455,7 @@ invalid.jsx:23:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:24:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:24:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -473,7 +472,7 @@ invalid.jsx:24:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:25:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:25:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -490,7 +489,7 @@ invalid.jsx:25:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:26:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:26:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -507,7 +506,7 @@ invalid.jsx:26:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:27:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:27:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -524,7 +523,7 @@ invalid.jsx:27:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:28:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:28:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -541,7 +540,7 @@ invalid.jsx:28:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:29:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:29:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -558,7 +557,7 @@ invalid.jsx:29:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:30:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:30:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -575,7 +574,7 @@ invalid.jsx:30:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:31:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:31:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -592,7 +591,7 @@ invalid.jsx:31:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:32:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:32:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -609,7 +608,7 @@ invalid.jsx:32:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:33:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:33:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -626,7 +625,7 @@ invalid.jsx:33:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:34:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:34:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -643,7 +642,7 @@ invalid.jsx:34:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:35:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:35:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -660,7 +659,7 @@ invalid.jsx:35:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:36:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:36:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -677,7 +676,7 @@ invalid.jsx:36:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:37:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:37:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -694,7 +693,7 @@ invalid.jsx:37:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:38:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:38:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -711,7 +710,7 @@ invalid.jsx:38:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:39:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:39:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -728,7 +727,7 @@ invalid.jsx:39:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:40:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:40:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -745,7 +744,7 @@ invalid.jsx:40:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:41:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:41:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -762,7 +761,7 @@ invalid.jsx:41:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:42:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:42:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -779,7 +778,7 @@ invalid.jsx:42:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:43:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:43:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -796,7 +795,7 @@ invalid.jsx:43:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:44:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:44:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -813,7 +812,7 @@ invalid.jsx:44:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:45:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:45:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -830,7 +829,7 @@ invalid.jsx:45:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:46:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:46:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -847,7 +846,7 @@ invalid.jsx:46:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:47:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:47:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -864,7 +863,7 @@ invalid.jsx:47:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:48:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:48:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -881,7 +880,7 @@ invalid.jsx:48:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:49:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:49:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -898,7 +897,7 @@ invalid.jsx:49:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:50:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:50:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -915,7 +914,7 @@ invalid.jsx:50:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:51:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:51:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -932,7 +931,7 @@ invalid.jsx:51:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:52:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:52:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -949,7 +948,7 @@ invalid.jsx:52:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:53:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:53:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -966,7 +965,7 @@ invalid.jsx:53:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:54:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:54:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -983,7 +982,7 @@ invalid.jsx:54:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:55:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:55:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1000,7 +999,7 @@ invalid.jsx:55:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:56:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:56:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1017,7 +1016,7 @@ invalid.jsx:56:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:57:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:57:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1034,7 +1033,7 @@ invalid.jsx:57:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:58:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:58:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1051,7 +1050,7 @@ invalid.jsx:58:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:59:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:59:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1068,7 +1067,7 @@ invalid.jsx:59:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:60:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:60:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1085,7 +1084,7 @@ invalid.jsx:60:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:61:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:61:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1102,7 +1101,7 @@ invalid.jsx:61:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:62:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:62:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1119,7 +1118,7 @@ invalid.jsx:62:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:63:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:63:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1136,7 +1135,7 @@ invalid.jsx:63:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:64:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:64:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1153,7 +1152,7 @@ invalid.jsx:64:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:65:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:65:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1170,7 +1169,7 @@ invalid.jsx:65:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:66:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:66:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1187,7 +1186,7 @@ invalid.jsx:66:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:67:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:67:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1204,7 +1203,7 @@ invalid.jsx:67:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:68:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:68:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1221,7 +1220,7 @@ invalid.jsx:68:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:69:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:69:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1238,7 +1237,7 @@ invalid.jsx:69:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:70:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:70:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1255,7 +1254,7 @@ invalid.jsx:70:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:71:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:71:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1272,7 +1271,7 @@ invalid.jsx:71:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:72:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:72:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1289,7 +1288,7 @@ invalid.jsx:72:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:73:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:73:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1306,7 +1305,7 @@ invalid.jsx:73:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:74:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:74:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1323,7 +1322,7 @@ invalid.jsx:74:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:75:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:75:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1340,7 +1339,7 @@ invalid.jsx:75:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:76:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:76:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1357,7 +1356,7 @@ invalid.jsx:76:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:77:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:77:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1374,7 +1373,7 @@ invalid.jsx:77:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:78:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:78:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1391,7 +1390,7 @@ invalid.jsx:78:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:79:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:79:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1408,7 +1407,7 @@ invalid.jsx:79:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:80:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:80:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1425,7 +1424,7 @@ invalid.jsx:80:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:81:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:81:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1442,7 +1441,7 @@ invalid.jsx:81:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:82:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:82:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1459,7 +1458,7 @@ invalid.jsx:82:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:83:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:83:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1476,7 +1475,7 @@ invalid.jsx:83:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:84:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:84:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1493,7 +1492,7 @@ invalid.jsx:84:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:85:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:85:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1510,7 +1509,7 @@ invalid.jsx:85:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:86:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:86:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1527,7 +1526,7 @@ invalid.jsx:86:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:87:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:87:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1544,7 +1543,7 @@ invalid.jsx:87:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:88:5 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:88:5 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. @@ -1561,7 +1560,7 @@ invalid.jsx:88:5 lint/nursery/noNoninteractiveElementInteractions ━━━━ ``` ``` -invalid.jsx:89:4 lint/nursery/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:89:4 lint/a11y/noNoninteractiveElementInteractions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Non-interactive element should not have event handler. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/valid.jsx b/crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/valid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/valid.jsx rename to crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/valid.jsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/valid.jsx.snap b/crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/valid.jsx.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noNoninteractiveElementInteractions/valid.jsx.snap rename to crates/biome_js_analyze/tests/specs/a11y/noNoninteractiveElementInteractions/valid.jsx.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalid.js b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalid.js rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap new file mode 100644 index 000000000000..b03a5d796670 --- /dev/null +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap @@ -0,0 +1,114 @@ +--- +source: crates/biome_js_analyze/tests/spec_tests.rs +expression: invalid.js +--- +# Input +```js +const foo = () => { + const x = 2; + const y = 1; + return x + y; +}; + +function bar() { + const x = 2; + const y = 1; + return x + y; +} + +function name() { + var x = 5; + + var x = 2; +} + +function foo( + aaa = 1, + bbb = 2, + ccc = 3 +) { + const x = 4; + const y = 5; + return aaa + bbb + ccc + x + y; +} + +function parent() { + var x = 0; + function nested() { + var y = 0; + x = 2; + var z = x + y; + } +}; + +class foo { + method() { + let y = 10; + let x = 20; + return y + x; + } + constructor() { + let y = 10; + let x = 20; + return y + x; + } +} + +(function () { + let x = 0; + let y = 0; + let z = x + y; + let foo = {}; + return bar; +})(); + +(() => { + let x = 0; + let y = 0; + let z = x + y; + let foo = {}; + return bar; +})(); +``` + +# Diagnostics +``` +invalid.options:6:9 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Found an unknown key `noExcessiveLinesPerFunction`. + + 4 │ "rules": { + 5 │ "nursery": { + > 6 │ "noExcessiveLinesPerFunction": { + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 7 │ "level": "error", + 8 │ "options": { + + i Known keys: + + - recommended + - noFloatingPromises + - noImportCycles + - noMisusedPromises + - noNonNullAssertedOptionalChain + - noQuickfixBiome + - noQwikUseVisibleTask + - noSecrets + - noShadow + - noUnnecessaryConditions + - noUnresolvedImports + - noUselessEscapeInString + - noVueReservedKeys + - noVueReservedProps + - useAnchorHref + - useConsistentTypeDefinitions + - useExhaustiveSwitchCases + - useExplicitType + - useImageSize + - useNamedOperation + - useQwikClasslist + - useReactFunctionComponents + - useSortedClasses + + +``` diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalid.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalid.options.json rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalidSkipBlankLines.js b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalidSkipBlankLines.js rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap new file mode 100644 index 000000000000..f92a690ce51f --- /dev/null +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap @@ -0,0 +1,57 @@ +--- +source: crates/biome_js_analyze/tests/spec_tests.rs +expression: invalidSkipBlankLines.js +--- +# Input +```js +function name() { + var x = 5; + + + var x = 2; + var y = 3; +} + +``` + +# Diagnostics +``` +invalidSkipBlankLines.options:6:9 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Found an unknown key `noExcessiveLinesPerFunction`. + + 4 │ "rules": { + 5 │ "nursery": { + > 6 │ "noExcessiveLinesPerFunction": { + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 7 │ "level": "error", + 8 │ "options": { + + i Known keys: + + - recommended + - noFloatingPromises + - noImportCycles + - noMisusedPromises + - noNonNullAssertedOptionalChain + - noQuickfixBiome + - noQwikUseVisibleTask + - noSecrets + - noShadow + - noUnnecessaryConditions + - noUnresolvedImports + - noUselessEscapeInString + - noVueReservedKeys + - noVueReservedProps + - useAnchorHref + - useConsistentTypeDefinitions + - useExhaustiveSwitchCases + - useExplicitType + - useImageSize + - useNamedOperation + - useQwikClasslist + - useReactFunctionComponents + - useSortedClasses + + +``` diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/valid.js b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/valid.js rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/valid.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/valid.js.snap rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/valid.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/valid.options.json rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipBlankLines.js b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipBlankLines.js rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipBlankLines.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipBlankLines.js.snap rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipBlankLines.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipBlankLines.options.json rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipIiefs.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIiefs.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipIiefs.options.json rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIiefs.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipIifes.js b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIifes.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipIifes.js rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIifes.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipIifes.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIifes.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noExcessiveLinesPerFunction/validSkipIifes.js.snap rename to crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIifes.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/invalid.js b/crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/invalid.js rename to crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/invalid.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/invalid.js.snap similarity index 75% rename from crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/invalid.js.snap index 97b152f71d81..7fc2df5c105c 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/invalid.js.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalid.js --- # Input @@ -42,7 +41,7 @@ a * 1 / (b * 1); # Diagnostics ``` -invalid.js:1:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -62,7 +61,7 @@ invalid.js:1:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:2:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -84,7 +83,7 @@ invalid.js:2:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:3:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -108,7 +107,7 @@ invalid.js:3:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:4:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Using binary operations instead of comparisons is harder to read and understand. @@ -132,7 +131,7 @@ invalid.js:4:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:5:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Using binary operations instead of comparisons is harder to read and understand. @@ -156,7 +155,7 @@ invalid.js:5:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:6:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -180,7 +179,7 @@ invalid.js:6:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:7:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -204,7 +203,7 @@ invalid.js:7:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:8:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:8:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -228,7 +227,7 @@ invalid.js:8:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:9:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -252,7 +251,7 @@ invalid.js:9:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:10:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:10:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -276,7 +275,7 @@ invalid.js:10:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:11:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -300,7 +299,7 @@ invalid.js:11:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:12:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -324,7 +323,7 @@ invalid.js:12:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:13:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -348,7 +347,7 @@ invalid.js:13:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:14:5 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:5 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -372,7 +371,7 @@ invalid.js:14:5 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:15:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -396,7 +395,7 @@ invalid.js:15:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:16:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:16:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -420,7 +419,7 @@ invalid.js:16:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:17:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:17:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -444,7 +443,7 @@ invalid.js:17:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:18:5 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:5 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -468,7 +467,7 @@ invalid.js:18:5 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:19:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:19:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -492,7 +491,7 @@ invalid.js:19:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:20:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:20:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -516,7 +515,7 @@ invalid.js:20:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:21:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:21:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -540,7 +539,7 @@ invalid.js:21:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:22:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:22:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -564,7 +563,7 @@ invalid.js:22:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:23:7 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:23:7 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -588,7 +587,7 @@ invalid.js:23:7 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:24:8 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:24:8 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -612,7 +611,7 @@ invalid.js:24:8 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:25:8 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:25:8 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -636,7 +635,7 @@ invalid.js:25:8 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:26:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:26:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Using binary operations instead of comparisons is harder to read and understand. @@ -660,7 +659,7 @@ invalid.js:26:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:27:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:27:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Using binary operations instead of comparisons is harder to read and understand. @@ -684,7 +683,7 @@ invalid.js:27:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:28:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:28:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -708,7 +707,7 @@ invalid.js:28:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:29:2 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:29:2 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -732,7 +731,7 @@ invalid.js:29:2 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:30:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:30:1 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -756,7 +755,7 @@ invalid.js:30:1 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:30:10 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:30:10 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -780,7 +779,7 @@ invalid.js:30:10 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:31:12 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:31:12 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. @@ -804,7 +803,7 @@ invalid.js:31:12 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━ ``` ``` -invalid.js:32:12 lint/nursery/noImplicitCoercion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:32:12 lint/complexity/noImplicitCoercions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Implicit type conversion is hard to read and understand. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/valid.js b/crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/valid.js rename to crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/valid.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noImplicitCoercion/valid.js.snap rename to crates/biome_js_analyze/tests/specs/complexity/noImplicitCoercions/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIndexOf/invalid.js b/crates/biome_js_analyze/tests/specs/complexity/useIndexOf/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useIndexOf/invalid.js rename to crates/biome_js_analyze/tests/specs/complexity/useIndexOf/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIndexOf/invalid.js.snap b/crates/biome_js_analyze/tests/specs/complexity/useIndexOf/invalid.js.snap similarity index 93% rename from crates/biome_js_analyze/tests/specs/nursery/useIndexOf/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/complexity/useIndexOf/invalid.js.snap index 8b0a9999a791..cd76a6206fcd 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useIndexOf/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/complexity/useIndexOf/invalid.js.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalid.js --- # Input @@ -28,7 +27,7 @@ list.findLastIndex(x => x === undefined); # Diagnostics ``` -invalid.js:2:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findIndex() over Array#indexOf() when looking for the index of an item.` @@ -52,7 +51,7 @@ invalid.js:2:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:3:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findIndex() over Array#indexOf() when looking for the index of an item.` @@ -78,7 +77,7 @@ invalid.js:3:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:4:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findIndex() over Array#indexOf() when looking for the index of an item.` @@ -104,7 +103,7 @@ invalid.js:4:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:5:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findIndex() over Array#indexOf() when looking for the index of an item.` @@ -135,7 +134,7 @@ invalid.js:5:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:9:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findIndex() over Array#indexOf() when looking for the index of an item.` @@ -161,7 +160,7 @@ invalid.js:9:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:11:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findLastIndex() over Array#lastIndexOf() when looking for the index of an item.` @@ -187,7 +186,7 @@ invalid.js:11:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:12:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findLastIndex() over Array#lastIndexOf() when looking for the index of an item.` @@ -212,7 +211,7 @@ invalid.js:12:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:13:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findLastIndex() over Array#lastIndexOf() when looking for the index of an item.` @@ -238,7 +237,7 @@ invalid.js:13:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:14:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findLastIndex() over Array#lastIndexOf() when looking for the index of an item.` @@ -269,7 +268,7 @@ invalid.js:14:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━ ``` ``` -invalid.js:18:1 lint/nursery/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:1 lint/complexity/useIndexOf FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Prefer Array#findLastIndex() over Array#lastIndexOf() when looking for the index of an item.` diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIndexOf/valid.js b/crates/biome_js_analyze/tests/specs/complexity/useIndexOf/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useIndexOf/valid.js rename to crates/biome_js_analyze/tests/specs/complexity/useIndexOf/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIndexOf/valid.js.snap b/crates/biome_js_analyze/tests/specs/complexity/useIndexOf/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useIndexOf/valid.js.snap rename to crates/biome_js_analyze/tests/specs/complexity/useIndexOf/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/invalid.js b/crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/invalid.js rename to crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/invalid.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/invalid.js.snap similarity index 79% rename from crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/invalid.js.snap index 7e172998af04..09e0ff35e12f 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/invalid.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.js -snapshot_kind: text --- # Input ```js @@ -19,7 +18,7 @@ if (__filename.endsWith(".js")) {} # Diagnostics ``` -invalid.js:1:17 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:17 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __dirname. @@ -41,7 +40,7 @@ invalid.js:1:17 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━ ``` ``` -invalid.js:2:18 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:18 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __filename. @@ -65,7 +64,7 @@ invalid.js:2:18 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━ ``` ``` -invalid.js:3:20 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:20 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __dirname. @@ -86,7 +85,7 @@ invalid.js:3:20 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━ ``` ``` -invalid.js:4:21 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:21 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __filename. @@ -107,7 +106,7 @@ invalid.js:4:21 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━ ``` ``` -invalid.js:5:30 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:30 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __dirname. @@ -133,7 +132,7 @@ invalid.js:5:30 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━ ``` ``` -invalid.js:6:32 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:32 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __filename. @@ -159,7 +158,7 @@ invalid.js:6:32 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━ ``` ``` -invalid.js:8:5 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:8:5 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __dirname. @@ -185,7 +184,7 @@ invalid.js:8:5 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━ ``` ``` -invalid.js:9:5 lint/nursery/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:5 lint/correctness/noGlobalDirnameFilename FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use __filename. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.cjs b/crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.cjs similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.cjs rename to crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.cjs diff --git a/crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.cjs.snap b/crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.cjs.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.cjs.snap rename to crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.cjs.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.js b/crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.js rename to crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noGlobalDirnameFilename/valid.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noGlobalDirnameFilename/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalid.js b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalid.js rename to crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalid.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalid.js.snap similarity index 85% rename from crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalid.js.snap index 4cce9c00ca1e..17d45d3a2c68 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalid.js.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalid.js --- # Input @@ -66,7 +65,7 @@ const ComponentAsArrowFunctionExpressionReactForwardRef = React.forwardRef(funct # Diagnostics ``` -invalid.js:10:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:10:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -91,7 +90,7 @@ invalid.js:10:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:11:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -117,7 +116,7 @@ invalid.js:11:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:12:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -143,7 +142,7 @@ invalid.js:12:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:13:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -169,7 +168,7 @@ invalid.js:13:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:14:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -195,7 +194,7 @@ invalid.js:14:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:15:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -221,7 +220,7 @@ invalid.js:15:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:16:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:16:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -247,7 +246,7 @@ invalid.js:16:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:17:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:17:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -273,7 +272,7 @@ invalid.js:17:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:18:5 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:5 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -299,7 +298,7 @@ invalid.js:18:5 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:19:5 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:19:5 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -325,7 +324,7 @@ invalid.js:19:5 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:20:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:20:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -351,7 +350,7 @@ invalid.js:20:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:21:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:21:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -377,7 +376,7 @@ invalid.js:21:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:22:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:22:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -403,7 +402,7 @@ invalid.js:22:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:23:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:23:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -429,7 +428,7 @@ invalid.js:23:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:24:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:24:11 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -455,7 +454,7 @@ invalid.js:24:11 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:28:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:28:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -480,7 +479,7 @@ invalid.js:28:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:32:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:32:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -505,7 +504,7 @@ invalid.js:32:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:36:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:36:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -530,7 +529,7 @@ invalid.js:36:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:40:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:40:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -555,7 +554,7 @@ invalid.js:40:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:44:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:44:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -580,7 +579,7 @@ invalid.js:44:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:48:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:48:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. @@ -605,7 +604,7 @@ invalid.js:48:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━ ``` ``` -invalid.js:55:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:55:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalidDefaultExpression.js b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalidDefaultExpression.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalidDefaultExpression.js rename to crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalidDefaultExpression.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalidDefaultExpression.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalidDefaultExpression.js.snap similarity index 83% rename from crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalidDefaultExpression.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalidDefaultExpression.js.snap index 8b4f00fc206c..4d97a9e0533a 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/invalidDefaultExpression.js.snap +++ b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/invalidDefaultExpression.js.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalidDefaultExpression.js --- # Input @@ -13,7 +12,7 @@ export default memo(() => { # Diagnostics ``` -invalidDefaultExpression.js:2:14 lint/nursery/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━━━━━ +invalidDefaultExpression.js:2:14 lint/correctness/noNestedComponentDefinitions ━━━━━━━━━━━━━━━━━━━━━ × Components should not be defined inside other components. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/valid.js b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/valid.js rename to crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/valid.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noNestedComponentDefinitions/valid.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noNestedComponentDefinitions/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/declare_process.js b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/declare_process.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/declare_process.js rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/declare_process.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/declare_process.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/declare_process.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/declare_process.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/declare_process.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid.js b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid.js rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid.js.snap similarity index 79% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid.js.snap index e1682f8b812f..5acfa638b49c 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.js -snapshot_kind: text --- # Input ```js @@ -26,7 +25,7 @@ function main() { # Diagnostics ``` -invalid.js:5:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:11 lint/correctness/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Usage of the `process` global is discouraged. @@ -51,7 +50,7 @@ invalid.js:5:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━ ``` ``` -invalid.js:7:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:11 lint/correctness/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Usage of the `process` global is discouraged. @@ -76,7 +75,7 @@ invalid.js:7:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━ ``` ``` -invalid.js:9:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:11 lint/correctness/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Usage of the `process` global is discouraged. @@ -101,7 +100,7 @@ invalid.js:9:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━ ``` ``` -invalid.js:12:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:11 lint/correctness/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Usage of the `process` global is discouraged. @@ -125,7 +124,7 @@ invalid.js:12:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━ ``` ``` -invalid.js:15:19 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:19 lint/correctness/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Usage of the `process` global is discouraged. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid_with_import.js b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid_with_import.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid_with_import.js rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid_with_import.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid_with_import.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid_with_import.js.snap similarity index 79% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid_with_import.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid_with_import.js.snap index 65f9d5c8f16e..80b5c4aa2820 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/invalid_with_import.js.snap +++ b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/invalid_with_import.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid_with_import.js -snapshot_kind: text --- # Input ```js @@ -13,7 +12,7 @@ const c = process.env; # Diagnostics ``` -invalid_with_import.js:4:11 lint/nursery/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid_with_import.js:4:11 lint/correctness/noProcessGlobal FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Usage of the `process` global is discouraged. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/valid.js b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/valid.js rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/valid.js.snap b/crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noProcessGlobal/valid.js.snap rename to crates/biome_js_analyze/tests/specs/correctness/noProcessGlobal/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/invalid.jsx b/crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/invalid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/invalid.jsx rename to crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/invalid.jsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/invalid.jsx.snap b/crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/invalid.jsx.snap similarity index 76% rename from crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/invalid.jsx.snap rename to crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/invalid.jsx.snap index 5f99126b0fe7..a8aeea66e38a 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/invalid.jsx.snap +++ b/crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/invalid.jsx.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalid.jsx --- # Input @@ -62,7 +61,7 @@ const Foo = (props) => { # Diagnostics ``` -invalid.jsx:2:2 lint/nursery/noReactPropAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:2:2 lint/correctness/noReactPropAssignments ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Mutating component props is not allowed. @@ -78,7 +77,7 @@ invalid.jsx:2:2 lint/nursery/noReactPropAssign ━━━━━━━━━━━ ``` ``` -invalid.jsx:8:2 lint/nursery/noReactPropAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:8:2 lint/correctness/noReactPropAssignments ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Mutating component props is not allowed. @@ -94,7 +93,7 @@ invalid.jsx:8:2 lint/nursery/noReactPropAssign ━━━━━━━━━━━ ``` ``` -invalid.jsx:14:2 lint/nursery/noReactPropAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:14:2 lint/correctness/noReactPropAssignments ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Mutating component props is not allowed. @@ -110,7 +109,7 @@ invalid.jsx:14:2 lint/nursery/noReactPropAssign ━━━━━━━━━━ ``` ``` -invalid.jsx:23:3 lint/nursery/noReactPropAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:23:3 lint/correctness/noReactPropAssignments ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Mutating component props is not allowed. @@ -126,7 +125,7 @@ invalid.jsx:23:3 lint/nursery/noReactPropAssign ━━━━━━━━━━ ``` ``` -invalid.jsx:31:2 lint/nursery/noReactPropAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:31:2 lint/correctness/noReactPropAssignments ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Mutating component props is not allowed. @@ -142,7 +141,7 @@ invalid.jsx:31:2 lint/nursery/noReactPropAssign ━━━━━━━━━━ ``` ``` -invalid.jsx:36:2 lint/nursery/noReactPropAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:36:2 lint/correctness/noReactPropAssignments ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Mutating component props is not allowed. @@ -158,7 +157,7 @@ invalid.jsx:36:2 lint/nursery/noReactPropAssign ━━━━━━━━━━ ``` ``` -invalid.jsx:44:3 lint/nursery/noReactPropAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:44:3 lint/correctness/noReactPropAssignments ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Mutating component props is not allowed. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/valid.jsx b/crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/valid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/valid.jsx rename to crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/valid.jsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/valid.jsx.snap b/crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/valid.jsx.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noReactPropAssign/valid.jsx.snap rename to crates/biome_js_analyze/tests/specs/correctness/noReactPropAssignments/valid.jsx.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noRestrictedElements/invalid.jsx b/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noRestrictedElements/invalid.jsx rename to crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx diff --git a/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap b/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap new file mode 100644 index 000000000000..816706db669a --- /dev/null +++ b/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap @@ -0,0 +1,94 @@ +--- +source: crates/biome_js_analyze/tests/spec_tests.rs +expression: invalid.jsx +--- +# Input +```jsx +(); +(
; # Diagnostics ``` -invalid.tsx:1:15 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:1:15 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -53,7 +52,7 @@ invalid.tsx:1:15 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:2:9 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:2:9 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -69,7 +68,7 @@ invalid.tsx:2:9 lint/nursery/noMagicNumbers ━━━━━━━━━━━━ ``` ``` -invalid.tsx:3:6 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:3:6 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -86,7 +85,7 @@ invalid.tsx:3:6 lint/nursery/noMagicNumbers ━━━━━━━━━━━━ ``` ``` -invalid.tsx:4:20 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:4:20 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -103,7 +102,7 @@ invalid.tsx:4:20 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:4:24 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:4:24 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -120,7 +119,7 @@ invalid.tsx:4:24 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:5:19 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:5:19 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -137,7 +136,7 @@ invalid.tsx:5:19 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:7:13 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:7:13 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -154,7 +153,7 @@ invalid.tsx:7:13 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:7:20 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:7:20 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -171,7 +170,7 @@ invalid.tsx:7:20 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:8:13 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:8:13 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -187,7 +186,7 @@ invalid.tsx:8:13 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:10:31 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:10:31 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -204,7 +203,7 @@ invalid.tsx:10:31 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:10:50 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:10:50 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -221,7 +220,7 @@ invalid.tsx:10:50 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:10:67 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:10:67 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -238,7 +237,7 @@ invalid.tsx:10:67 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:10:71 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:10:71 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -255,7 +254,7 @@ invalid.tsx:10:71 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:19:4 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:19:4 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -272,7 +271,7 @@ invalid.tsx:19:4 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:23:19 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:23:19 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. @@ -289,7 +288,7 @@ invalid.tsx:23:19 lint/nursery/noMagicNumbers ━━━━━━━━━━━ ``` ``` -invalid.tsx:26:30 lint/nursery/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.tsx:26:30 lint/style/noMagicNumbers ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Magic number detected. Extract it to a constant with a meaningful name. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noMagicNumbers/valid.tsx b/crates/biome_js_analyze/tests/specs/style/noMagicNumbers/valid.tsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noMagicNumbers/valid.tsx rename to crates/biome_js_analyze/tests/specs/style/noMagicNumbers/valid.tsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noMagicNumbers/valid.tsx.snap b/crates/biome_js_analyze/tests/specs/style/noMagicNumbers/valid.tsx.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noMagicNumbers/valid.tsx.snap rename to crates/biome_js_analyze/tests/specs/style/noMagicNumbers/valid.tsx.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/invalid.json b/crates/biome_js_analyze/tests/specs/style/noUselessUndefined/invalid.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/invalid.json rename to crates/biome_js_analyze/tests/specs/style/noUselessUndefined/invalid.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/invalid.json.snap b/crates/biome_js_analyze/tests/specs/style/noUselessUndefined/invalid.json.snap similarity index 74% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/invalid.json.snap rename to crates/biome_js_analyze/tests/specs/style/noUselessUndefined/invalid.json.snap index a3f2e1da5dfc..1436c37cf6e1 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/invalid.json.snap +++ b/crates/biome_js_analyze/tests/specs/style/noUselessUndefined/invalid.json.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.json -snapshot_kind: text --- # Input ```cjs @@ -10,7 +9,7 @@ let a = undefined; # Diagnostics ``` -invalid.json:1:9 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:9 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -33,7 +32,7 @@ let a = undefined, b = 2; # Diagnostics ``` -invalid.json:1:9 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:9 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -56,7 +55,7 @@ var a = undefined; # Diagnostics ``` -invalid.json:1:9 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:9 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -79,7 +78,7 @@ var a = undefined, b = 2; # Diagnostics ``` -invalid.json:1:9 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:9 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -102,7 +101,7 @@ function foo() {return undefined;} # Diagnostics ``` -invalid.json:1:24 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:24 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -125,7 +124,7 @@ const foo = () => undefined; # Diagnostics ``` -invalid.json:1:19 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:19 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -149,7 +148,7 @@ const foo = () => {return undefined;}; # Diagnostics ``` -invalid.json:1:27 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:27 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -172,7 +171,7 @@ function foo() {return undefined;} # Diagnostics ``` -invalid.json:1:24 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:24 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -195,7 +194,7 @@ function foo() {return /* comment */ undefined;} # Diagnostics ``` -invalid.json:1:38 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:38 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -218,7 +217,7 @@ function* foo() {yield undefined;} # Diagnostics ``` -invalid.json:1:24 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:24 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -241,7 +240,7 @@ function* foo() {yield undefined;} # Diagnostics ``` -invalid.json:1:24 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:24 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -264,7 +263,7 @@ const {foo = undefined} = {}; # Diagnostics ``` -invalid.json:1:14 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:14 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -287,7 +286,7 @@ const [foo = undefined] = []; # Diagnostics ``` -invalid.json:1:14 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:14 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -310,7 +309,7 @@ function foo(bar = undefined) {} # Diagnostics ``` -invalid.json:1:20 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:20 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -333,7 +332,7 @@ function foo({bar = undefined}) {} # Diagnostics ``` -invalid.json:1:21 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:21 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -356,7 +355,7 @@ function foo({bar = undefined} = {}) {} # Diagnostics ``` -invalid.json:1:21 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:21 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -379,7 +378,7 @@ function foo([bar = undefined]) {} # Diagnostics ``` -invalid.json:1:21 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:21 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. @@ -402,7 +401,7 @@ function foo([bar = undefined] = []) {} # Diagnostics ``` -invalid.json:1:21 lint/nursery/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.json:1:21 lint/style/noUselessUndefined FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Don't use unnecessary undefined. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/valid.json b/crates/biome_js_analyze/tests/specs/style/noUselessUndefined/valid.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/valid.json rename to crates/biome_js_analyze/tests/specs/style/noUselessUndefined/valid.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/valid.json.snap b/crates/biome_js_analyze/tests/specs/style/noUselessUndefined/valid.json.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessUndefined/valid.json.snap rename to crates/biome_js_analyze/tests/specs/style/noUselessUndefined/valid.json.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidExplicit.js b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidExplicit.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidExplicit.js rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidExplicit.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidExplicit.js.snap b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidExplicit.js.snap similarity index 79% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidExplicit.js.snap rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidExplicit.js.snap index 4a966fa8f819..049311a18a9e 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidExplicit.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidExplicit.js.snap @@ -29,7 +29,48 @@ const invalidExplicit = { # Diagnostics ``` -invalidExplicit.js:3:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.options:7:5 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Found an unknown key `useConsistentObjectDefinition`. + + 5 │ "rules": { + 6 │ "nursery": { + > 7 │ "useConsistentObjectDefinition": { + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 8 │ "level": "error", + 9 │ "options": { + + i Known keys: + + - recommended + - noFloatingPromises + - noImportCycles + - noMisusedPromises + - noNonNullAssertedOptionalChain + - noQuickfixBiome + - noQwikUseVisibleTask + - noSecrets + - noShadow + - noUnnecessaryConditions + - noUnresolvedImports + - noUselessEscapeInString + - noVueReservedKeys + - noVueReservedProps + - useAnchorHref + - useConsistentTypeDefinitions + - useExhaustiveSwitchCases + - useExplicitType + - useImageSize + - useNamedOperation + - useQwikClasslist + - useReactFunctionComponents + - useSortedClasses + + +``` + +``` +invalidExplicit.js:3:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -50,7 +91,7 @@ invalidExplicit.js:3:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:4:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:4:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -71,7 +112,7 @@ invalidExplicit.js:4:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:5:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:5:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -92,7 +133,7 @@ invalidExplicit.js:5:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:8:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:8:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -112,7 +153,7 @@ invalidExplicit.js:8:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:9:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:9:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -133,7 +174,7 @@ invalidExplicit.js:9:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:10:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:10:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -159,7 +200,7 @@ invalidExplicit.js:10:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:11:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:11:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -185,7 +226,7 @@ invalidExplicit.js:11:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:14:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:14:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -205,7 +246,7 @@ invalidExplicit.js:14:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:15:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:15:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -231,7 +272,7 @@ invalidExplicit.js:15:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:16:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:16:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -257,7 +298,7 @@ invalidExplicit.js:16:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:17:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:17:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -278,7 +319,7 @@ invalidExplicit.js:17:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:18:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:18:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. @@ -299,7 +340,7 @@ invalidExplicit.js:18:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━ ``` ``` -invalidExplicit.js:19:5 lint/nursery/useConsistentObjectDefinition FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━ +invalidExplicit.js:19:5 lint/style/useConsistentObjectDefinitions FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━ × Do not use explicit object property syntax when shorthand syntax is possible. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidExplicit.options.json b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidExplicit.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidExplicit.options.json rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidExplicit.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidShorthand.js b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidShorthand.js rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.js diff --git a/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.js.snap b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.js.snap new file mode 100644 index 000000000000..9389b3eece05 --- /dev/null +++ b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.js.snap @@ -0,0 +1,74 @@ +--- +source: crates/biome_js_analyze/tests/spec_tests.rs +expression: invalidShorthand.js +--- +# Input +```js +const invalidShorthand = { + // Basic property explicit violations + prop, + shortProp, + + // Method explicit violations + method() { return "method"; }, + async async() { return "async"; }, + *generator() { yield "gen"; }, + async *asyncGenerator() { yield "async gen"; }, + + // Computed methods + [computed]() { return "computed"; }, + async [computed]() { return "async computed"; }, + *[computed]() { yield "computed gen"; }, + ["computed-string"]() { return "computed string"; }, + ["comp" + "uted" + "-con" + "cat"]() { return "computed concat"; }, + [computed()]() { return "computed dynamic"; }, + + // String literal methods + 'quotedMethod'() { return "quoted"; }, + "doubleQuoted"() { return "double quoted"; }, + async 'asyncQuoted'() { return "async quoted"; }, +}; + +``` + +# Diagnostics +``` +invalidShorthand.options:7:5 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Found an unknown key `useConsistentObjectDefinition`. + + 5 │ "rules": { + 6 │ "nursery": { + > 7 │ "useConsistentObjectDefinition": { + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 8 │ "level": "error", + 9 │ "options": { + + i Known keys: + + - recommended + - noFloatingPromises + - noImportCycles + - noMisusedPromises + - noNonNullAssertedOptionalChain + - noQuickfixBiome + - noQwikUseVisibleTask + - noSecrets + - noShadow + - noUnnecessaryConditions + - noUnresolvedImports + - noUselessEscapeInString + - noVueReservedKeys + - noVueReservedProps + - useAnchorHref + - useConsistentTypeDefinitions + - useExhaustiveSwitchCases + - useExplicitType + - useImageSize + - useNamedOperation + - useQwikClasslist + - useReactFunctionComponents + - useSortedClasses + + +``` diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidShorthand.options.json b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/invalidShorthand.options.json rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/invalidShorthand.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validExplicit.js b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validExplicit.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validExplicit.js rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validExplicit.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validExplicit.js.snap b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validExplicit.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validExplicit.js.snap rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validExplicit.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validExplicit.options.json b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validExplicit.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validExplicit.options.json rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validExplicit.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validShorthand.js b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validShorthand.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validShorthand.js rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validShorthand.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validShorthand.js.snap b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validShorthand.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validShorthand.js.snap rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validShorthand.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validShorthand.options.json b/crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validShorthand.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentObjectDefinition/validShorthand.options.json rename to crates/biome_js_analyze/tests/specs/style/useConsistentObjectDefinitions/validShorthand.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid.js.snap similarity index 74% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid.js.snap index fcfaf7b9811c..24e698a8d539 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.js -snapshot_kind: text --- # Input ```js @@ -13,7 +12,7 @@ const b = 2; # Diagnostics ``` -invalid.js:1:1 lint/nursery/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:1 lint/style/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i All exports should be declared after all non-export statements. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiline_export.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiline_export.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiline_export.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiline_export.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiline_export.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiline_export.js.snap similarity index 74% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiline_export.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiline_export.js.snap index 9d85f3b3a4a8..b32cee66440e 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiline_export.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiline_export.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid_multiline_export.js -snapshot_kind: text --- # Input ```js @@ -15,7 +14,7 @@ const foo = 1; # Diagnostics ``` -invalid_multiline_export.js:1:1 lint/nursery/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid_multiline_export.js:1:1 lint/style/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i All exports should be declared after all non-export statements. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiple_separate_exports.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiple_separate_exports.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiple_separate_exports.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiple_separate_exports.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiple_separate_exports.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiple_separate_exports.js.snap similarity index 76% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiple_separate_exports.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiple_separate_exports.js.snap index f7b73cb9fac5..1ce362216936 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_multiple_separate_exports.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_multiple_separate_exports.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid_multiple_separate_exports.js -snapshot_kind: text --- # Input ```js @@ -19,7 +18,7 @@ const baz = 3; # Diagnostics ``` -invalid_multiple_separate_exports.js:7:1 lint/nursery/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid_multiple_separate_exports.js:7:1 lint/style/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i All exports should be declared after all non-export statements. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_named_export.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_named_export.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_named_export.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_named_export.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_named_export.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_named_export.js.snap similarity index 78% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_named_export.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_named_export.js.snap index 3aade27c35b0..423c7720c1ec 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_named_export.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_named_export.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid_named_export.js -snapshot_kind: text --- # Input ```js @@ -13,7 +12,7 @@ const bar = 2; # Diagnostics ``` -invalid_named_export.js:1:1 lint/nursery/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid_named_export.js:1:1 lint/style/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i All exports should be declared after all non-export statements. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_re-export.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_re-export.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_re-export.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_re-export.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_re-export.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_re-export.js.snap similarity index 77% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_re-export.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_re-export.js.snap index b52be0d993df..b76639b682ea 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/invalid_re-export.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useExportsLast/invalid_re-export.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid_re-export.js -snapshot_kind: text --- # Input ```js @@ -13,7 +12,7 @@ const foo = 1; # Diagnostics ``` -invalid_re-export.js:1:1 lint/nursery/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid_re-export.js:1:1 lint/style/useExportsLast ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i All exports should be declared after all non-export statements. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_empty_file.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_empty_file.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_empty_file.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_empty_file.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_empty_file.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_empty_file.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_empty_file.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_empty_file.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_group_named_export.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_group_named_export.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_group_named_export.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_group_named_export.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_group_named_export.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_group_named_export.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_group_named_export.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_group_named_export.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiline_export.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiline_export.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiline_export.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiline_export.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiline_export.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiline_export.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiline_export.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiline_export.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiple_separate_exports.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiple_separate_exports.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiple_separate_exports.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiple_separate_exports.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiple_separate_exports.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiple_separate_exports.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_multiple_separate_exports.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_multiple_separate_exports.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_named_export.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_named_export.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_named_export.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_named_export.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_named_export.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_named_export.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_named_export.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_named_export.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_no_exports.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_no_exports.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_no_exports.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_no_exports.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_no_exports.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_no_exports.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_no_exports.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_no_exports.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_only_exports.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_only_exports.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_only_exports.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_only_exports.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_only_exports.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_only_exports.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_only_exports.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_only_exports.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_re-export.js b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_re-export.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_re-export.js rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_re-export.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_re-export.js.snap b/crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_re-export.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useExportsLast/valid_re-export.js.snap rename to crates/biome_js_analyze/tests/specs/style/useExportsLast/valid_re-export.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/invalid.ts b/crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/invalid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/invalid.ts rename to crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/invalid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/invalid.ts.snap b/crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/invalid.ts.snap similarity index 87% rename from crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/invalid.ts.snap rename to crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/invalid.ts.snap index e8b519ee6528..2333962ccc2a 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/invalid.ts.snap +++ b/crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/invalid.ts.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalid.ts --- # Input @@ -54,7 +53,7 @@ declare module 'module' { # Diagnostics ``` -invalid.ts:2:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:2:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -77,7 +76,7 @@ invalid.ts:2:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:6:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:6:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -101,7 +100,7 @@ invalid.ts:6:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:13:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:13:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -124,7 +123,7 @@ invalid.ts:13:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:17:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:17:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -148,7 +147,7 @@ invalid.ts:17:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:26:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:26:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -172,7 +171,7 @@ invalid.ts:26:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:27:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:27:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -195,7 +194,7 @@ invalid.ts:27:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:33:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:33:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -219,7 +218,7 @@ invalid.ts:33:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:34:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:34:9 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -242,7 +241,7 @@ invalid.ts:34:9 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━ ``` ``` -invalid.ts:40:13 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:40:13 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. @@ -266,7 +265,7 @@ invalid.ts:40:13 lint/nursery/useAdjacentGetterSetter ━━━━━━━━ ``` ``` -invalid.ts:42:13 lint/nursery/useAdjacentGetterSetter ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:42:13 lint/style/useGroupedAccessorPairs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Getter should be defined right before the setter. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/valid.ts b/crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/valid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/valid.ts rename to crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/valid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/valid.ts.snap b/crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/valid.ts.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useAdjacentGetterSetter/valid.ts.snap rename to crates/biome_js_analyze/tests/specs/style/useGroupedAccessorPairs/valid.ts.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/invalid.js b/crates/biome_js_analyze/tests/specs/style/useNumericSeparators/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/invalid.js rename to crates/biome_js_analyze/tests/specs/style/useNumericSeparators/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/invalid.js.snap b/crates/biome_js_analyze/tests/specs/style/useNumericSeparators/invalid.js.snap similarity index 81% rename from crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useNumericSeparators/invalid.js.snap index 684eddcb84c5..4ae7b443a621 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useNumericSeparators/invalid.js.snap @@ -64,7 +64,7 @@ foo = 3.65432E12000; // 3.654_32E12_000 # Diagnostics ``` -invalid.js:6:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -89,7 +89,7 @@ invalid.js:6:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━ ``` ``` -invalid.js:7:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -115,7 +115,7 @@ invalid.js:7:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━ ``` ``` -invalid.js:8:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:8:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unnecessary grouping of digits in numeric literal. @@ -141,7 +141,7 @@ invalid.js:8:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━ ``` ``` -invalid.js:9:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -167,7 +167,7 @@ invalid.js:9:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━ ``` ``` -invalid.js:12:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -192,7 +192,7 @@ invalid.js:12:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:13:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unnecessary grouping of digits in numeric literal. @@ -218,7 +218,7 @@ invalid.js:13:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:14:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -244,7 +244,7 @@ invalid.js:14:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:15:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -270,7 +270,7 @@ invalid.js:15:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:18:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -295,7 +295,7 @@ invalid.js:18:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:19:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:19:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unnecessary grouping of digits in numeric literal. @@ -321,7 +321,7 @@ invalid.js:19:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:20:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:20:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -347,7 +347,7 @@ invalid.js:20:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:21:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:21:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -373,7 +373,7 @@ invalid.js:21:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:29:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:29:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -398,7 +398,7 @@ invalid.js:29:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:30:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:30:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unnecessary grouping of digits in numeric literal. @@ -424,7 +424,7 @@ invalid.js:30:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:31:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:31:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -450,7 +450,7 @@ invalid.js:31:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:34:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:34:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -475,7 +475,7 @@ invalid.js:34:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:35:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:35:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -501,7 +501,7 @@ invalid.js:35:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:36:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:36:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -527,7 +527,7 @@ invalid.js:36:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:37:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:37:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -553,7 +553,7 @@ invalid.js:37:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:38:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:38:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -579,7 +579,7 @@ invalid.js:38:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:39:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:39:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -605,7 +605,7 @@ invalid.js:39:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:40:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:40:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -631,7 +631,7 @@ invalid.js:40:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:41:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:41:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -657,7 +657,7 @@ invalid.js:41:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:44:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:44:8 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Inconsistent grouping of digits in numeric literal. @@ -682,7 +682,7 @@ invalid.js:44:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:47:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:47:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -707,7 +707,7 @@ invalid.js:47:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:48:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:48:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -733,7 +733,7 @@ invalid.js:48:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:49:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:49:8 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -759,7 +759,7 @@ invalid.js:49:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:50:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:50:8 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -785,7 +785,7 @@ invalid.js:50:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:51:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:51:8 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -811,7 +811,7 @@ invalid.js:51:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:52:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:52:8 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -837,7 +837,7 @@ invalid.js:52:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:53:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:53:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -863,7 +863,7 @@ invalid.js:53:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:54:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:54:8 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. @@ -889,7 +889,7 @@ invalid.js:54:8 lint/nursery/useNumericSeparators FIXABLE ━━━━━━ ``` ``` -invalid.js:55:7 lint/nursery/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:55:7 lint/style/useNumericSeparators FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Long numeric literal lacks separators. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/valid.js b/crates/biome_js_analyze/tests/specs/style/useNumericSeparators/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/valid.js rename to crates/biome_js_analyze/tests/specs/style/useNumericSeparators/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/valid.js.snap b/crates/biome_js_analyze/tests/specs/style/useNumericSeparators/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useNumericSeparators/valid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useNumericSeparators/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/invalid.js b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/invalid.js rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/invalid.js.snap b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/invalid.js.snap similarity index 89% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/invalid.js.snap index 810240a4e33e..ca7527c9db31 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/invalid.js.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalid.js --- # Input @@ -54,7 +53,7 @@ globalThis.Object.assign({}, foo); # Diagnostics ``` -invalid.js:1:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -74,7 +73,7 @@ invalid.js:1:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:2:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -96,7 +95,7 @@ invalid.js:2:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:3:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -120,7 +119,7 @@ invalid.js:3:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:4:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -144,7 +143,7 @@ invalid.js:4:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:5:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -168,7 +167,7 @@ invalid.js:5:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:6:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -192,7 +191,7 @@ invalid.js:6:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:7:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -216,7 +215,7 @@ invalid.js:7:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:8:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:8:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -240,7 +239,7 @@ invalid.js:8:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:9:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -259,7 +258,7 @@ invalid.js:9:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:10:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:10:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -283,7 +282,7 @@ invalid.js:10:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:11:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -307,7 +306,7 @@ invalid.js:11:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:12:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -331,7 +330,7 @@ invalid.js:12:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:12:31 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:31 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -355,7 +354,7 @@ invalid.js:12:31 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:13:18 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:18 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -379,7 +378,7 @@ invalid.js:13:18 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:14:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -403,7 +402,7 @@ invalid.js:14:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:14:31 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:31 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -427,7 +426,7 @@ invalid.js:14:31 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:14:61 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:61 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -451,7 +450,7 @@ invalid.js:14:61 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:15:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -475,7 +474,7 @@ invalid.js:15:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:16:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:16:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -499,7 +498,7 @@ invalid.js:16:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:17:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:17:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -523,7 +522,7 @@ invalid.js:17:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:18:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -547,7 +546,7 @@ invalid.js:18:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:19:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:19:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -576,7 +575,7 @@ invalid.js:19:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:24:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:24:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -610,7 +609,7 @@ invalid.js:24:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:33:15 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:33:15 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -638,7 +637,7 @@ invalid.js:33:15 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:37:15 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:37:15 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. @@ -669,7 +668,7 @@ invalid.js:37:15 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━ ``` ``` -invalid.js:44:1 lint/nursery/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:44:1 lint/style/useObjectSpread FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Object spread syntax is more concise, readable, and performs better than Object.assign. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/valid.js b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/valid.js rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/valid.js.snap b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/valid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validCustomObject.js b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/validCustomObject.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validCustomObject.js rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/validCustomObject.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validCustomObject.js.snap b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/validCustomObject.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validCustomObject.js.snap rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/validCustomObject.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validImportedObject.js b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/validImportedObject.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validImportedObject.js rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/validImportedObject.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validImportedObject.js.snap b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/validImportedObject.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validImportedObject.js.snap rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/validImportedObject.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validRequiredObject.js b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/validRequiredObject.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validRequiredObject.js rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/validRequiredObject.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validRequiredObject.js.snap b/crates/biome_js_analyze/tests/specs/style/useObjectSpread/validRequiredObject.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useObjectSpread/validRequiredObject.js.snap rename to crates/biome_js_analyze/tests/specs/style/useObjectSpread/validRequiredObject.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid.ts b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid.ts rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid.ts.snap b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid.ts.snap similarity index 82% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid.ts.snap rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid.ts.snap index 3b8a9d8106fc..24f471f910d8 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid.ts.snap +++ b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid.ts.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 146 expression: invalid.ts --- # Input @@ -358,7 +357,7 @@ export class Test { # Diagnostics ``` -invalid.ts:23:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:23:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiableInline' is never reassigned. @@ -379,7 +378,7 @@ invalid.ts:23:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:33:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:33:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member '#incorrectlyModifiableInline' is never reassigned. @@ -400,7 +399,7 @@ invalid.ts:33:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:43:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:43:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiableDelayed' is never reassigned. @@ -421,7 +420,7 @@ invalid.ts:43:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:51:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:51:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member '#incorrectlyModifiableDelayed' is never reassigned. @@ -442,7 +441,7 @@ invalid.ts:51:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:59:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:59:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiablePostMinus' is never reassigned. @@ -463,7 +462,7 @@ invalid.ts:59:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:67:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:67:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member '#incorrectlyModifiablePostMinus' is never reassigned. @@ -484,7 +483,7 @@ invalid.ts:67:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:75:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:75:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiablePostPlus' is never reassigned. @@ -505,7 +504,7 @@ invalid.ts:75:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:83:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:83:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member '#incorrectlyModifiablePostPlus' is never reassigned. @@ -526,7 +525,7 @@ invalid.ts:83:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:91:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:91:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiablePreMinus' is never reassigned. @@ -547,7 +546,7 @@ invalid.ts:91:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:99:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:99:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member '#incorrectlyModifiablePreMinus' is never reassigned. @@ -568,7 +567,7 @@ invalid.ts:99:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:107:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:107:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiablePrePlus' is never reassigned. @@ -589,7 +588,7 @@ invalid.ts:107:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:115:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:115:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member '#incorrectlyModifiablePrePlus' is never reassigned. @@ -610,7 +609,7 @@ invalid.ts:115:2 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:123:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:123:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'overlappingClassVariable' is never reassigned. @@ -631,7 +630,7 @@ invalid.ts:123:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:134:29 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:134:29 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiableParameter' is never reassigned. @@ -652,7 +651,7 @@ invalid.ts:134:29 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:141:11 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:141:11 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyModifiableParameter' is never reassigned. @@ -673,7 +672,7 @@ invalid.ts:141:11 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:147:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:147:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'incorrectlyInlineLambda' is never reassigned. @@ -694,7 +693,7 @@ invalid.ts:147:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:166:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:166:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'testObj' is never reassigned. @@ -715,7 +714,7 @@ invalid.ts:166:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:176:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:176:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -736,7 +735,7 @@ invalid.ts:176:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:184:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:184:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -757,7 +756,7 @@ invalid.ts:184:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:191:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:191:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -778,7 +777,7 @@ invalid.ts:191:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:200:11 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:200:11 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -799,7 +798,7 @@ invalid.ts:200:11 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:211:11 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:211:11 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -820,7 +819,7 @@ invalid.ts:211:11 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:225:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:225:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -841,7 +840,7 @@ invalid.ts:225:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:233:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:233:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -862,7 +861,7 @@ invalid.ts:233:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:238:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:238:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -883,7 +882,7 @@ invalid.ts:238:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:246:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:246:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -904,7 +903,7 @@ invalid.ts:246:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:251:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:251:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -925,7 +924,7 @@ invalid.ts:251:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:259:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:259:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member '_isValid' is never reassigned. @@ -946,7 +945,7 @@ invalid.ts:259:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:270:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:270:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -967,7 +966,7 @@ invalid.ts:270:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:275:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:275:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -988,7 +987,7 @@ invalid.ts:275:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:280:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:280:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -1009,7 +1008,7 @@ invalid.ts:280:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:288:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:288:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -1030,7 +1029,7 @@ invalid.ts:288:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:296:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:296:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -1051,7 +1050,7 @@ invalid.ts:296:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:308:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:308:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -1072,7 +1071,7 @@ invalid.ts:308:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:313:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:313:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -1093,7 +1092,7 @@ invalid.ts:313:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:321:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:321:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -1114,7 +1113,7 @@ invalid.ts:321:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:326:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:326:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'prop' is never reassigned. @@ -1135,7 +1134,7 @@ invalid.ts:326:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:331:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:331:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'childClassExpressionModifiable' is never reassigned. @@ -1156,7 +1155,7 @@ invalid.ts:331:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━ ``` ``` -invalid.ts:343:10 lint/nursery/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:343:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Member 'field' is never reassigned. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.options.json b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.options.json rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts diff --git a/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts.snap b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts.snap new file mode 100644 index 000000000000..df9f79a7e303 --- /dev/null +++ b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/invalid_checkAllPropertiesTrue.ts.snap @@ -0,0 +1,276 @@ +--- +source: crates/biome_js_analyze/tests/spec_tests.rs +expression: invalid_checkAllPropertiesTrue.ts +--- +# Input +```ts +class Example1 { + #prop0: number = 42; + private prop1: number = 42; + protected prop2: string; + public prop3: string; +} + +class Example2 { + constructor( + private prop1: number, + public prop2: string, + protected prop3: string, + ) { + } +} + +class Example3 { + #prop0: number = 42; + private prop1: number = 42; + protected prop2: number; + public prop3: number; + + constructor(prop0: number, prop1: number, prop2: number, prop3: number, private prop4: number, public prop5: number, protected prop6: number) { + this.#prop0 = prop0; + this.prop1 = prop1; + this.prop2 = prop2; + this.prop3 = prop3; + } +} + +// with some getters/ reads do not affect readonly +class Example4 { + #prop0: number = 42; + private prop1: number = 42; + protected prop2: number; + public prop3: number; + + constructor(prop0: number, prop1: number, prop2: number, prop3: number) { + this.#prop0 = prop0; + this.prop1 = prop1; + this.prop2 = prop2; + this.prop3 = prop3; + } + + getProp0(): number { + return this.#prop0; + } + + getProp1(): number { + return this.prop1; + } + + getProp2(): number { + return this.prop2; + } + + getProp3(): number { + return this.prop3; + } +} + +``` + +# Diagnostics +``` +invalid_checkAllPropertiesTrue.options:6:5 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + × Found an unknown key `useReadonlyClassProperties`. + + 4 │ "rules": { + 5 │ "nursery": { + > 6 │ "useReadonlyClassProperties": { + │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 7 │ "level": "error", + 8 │ "options": { + + i Known keys: + + - recommended + - noFloatingPromises + - noImportCycles + - noMisusedPromises + - noNonNullAssertedOptionalChain + - noQuickfixBiome + - noQwikUseVisibleTask + - noSecrets + - noShadow + - noUnnecessaryConditions + - noUnresolvedImports + - noUselessEscapeInString + - noVueReservedKeys + - noVueReservedProps + - useAnchorHref + - useConsistentTypeDefinitions + - useExhaustiveSwitchCases + - useExplicitType + - useImageSize + - useNamedOperation + - useQwikClasslist + - useReactFunctionComponents + - useSortedClasses + + +``` + +``` +invalid_checkAllPropertiesTrue.ts:2:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━━ + + i Member '#prop0' is never reassigned. + + 1 │ class Example1 { + > 2 │ #prop0: number = 42; + │ ^^^^^^ + 3 │ private prop1: number = 42; + 4 │ protected prop2: string; + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 2 │ → readonly·#prop0:·number·=·42; + │ +++++++++ + +``` + +``` +invalid_checkAllPropertiesTrue.ts:3:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━ + + i Member 'prop1' is never reassigned. + + 1 │ class Example1 { + 2 │ #prop0: number = 42; + > 3 │ private prop1: number = 42; + │ ^^^^^ + 4 │ protected prop2: string; + 5 │ public prop3: string; + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 3 │ → private·readonly·prop1:·number·=·42; + │ +++++++++ + +``` + +``` +invalid_checkAllPropertiesTrue.ts:10:11 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━ + + i Member 'prop1' is never reassigned. + + 8 │ class Example2 { + 9 │ constructor( + > 10 │ private prop1: number, + │ ^^^^^ + 11 │ public prop2: string, + 12 │ protected prop3: string, + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 10 │ → → private·readonly·prop1:·number, + │ +++++++++ + +``` + +``` +invalid_checkAllPropertiesTrue.ts:18:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━ + + i Member '#prop0' is never reassigned. + + 17 │ class Example3 { + > 18 │ #prop0: number = 42; + │ ^^^^^^ + 19 │ private prop1: number = 42; + 20 │ protected prop2: number; + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 18 │ → readonly·#prop0:·number·=·42; + │ +++++++++ + +``` + +``` +invalid_checkAllPropertiesTrue.ts:19:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━ + + i Member 'prop1' is never reassigned. + + 17 │ class Example3 { + 18 │ #prop0: number = 42; + > 19 │ private prop1: number = 42; + │ ^^^^^ + 20 │ protected prop2: number; + 21 │ public prop3: number; + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 19 │ → private·readonly·prop1:·number·=·42; + │ +++++++++ + +``` + +``` +invalid_checkAllPropertiesTrue.ts:23:82 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━ + + i Member 'prop4' is never reassigned. + + 21 │ public prop3: number; + 22 │ + > 23 │ constructor(prop0: number, prop1: number, prop2: number, prop3: number, private prop4: number, public prop5: number, protected prop6: number) { + │ ^^^^^ + 24 │ this.#prop0 = prop0; + 25 │ this.prop1 = prop1; + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 23 │ → constructor(prop0:·number,·prop1:·number,·prop2:·number,·prop3:·number,·private·readonly·prop4:·number,·public·prop5:·number,·protected·prop6:·number)·{ + │ +++++++++ + +``` + +``` +invalid_checkAllPropertiesTrue.ts:33:2 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━━ + + i Member '#prop0' is never reassigned. + + 31 │ // with some getters/ reads do not affect readonly + 32 │ class Example4 { + > 33 │ #prop0: number = 42; + │ ^^^^^^ + 34 │ private prop1: number = 42; + 35 │ protected prop2: number; + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 33 │ → readonly·#prop0:·number·=·42; + │ +++++++++ + +``` + +``` +invalid_checkAllPropertiesTrue.ts:34:10 lint/style/useReadonlyClassProperties FIXABLE ━━━━━━━━━━━━ + + i Member 'prop1' is never reassigned. + + 32 │ class Example4 { + 33 │ #prop0: number = 42; + > 34 │ private prop1: number = 42; + │ ^^^^^ + 35 │ protected prop2: number; + 36 │ public prop3: number; + + i Using readonly improves code safety, clarity, and helps prevent unintended mutations. + + i Unsafe fix: Add readonly decorator. + + 34 │ → private·readonly·prop1:·number·=·42; + │ +++++++++ + +``` diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid.ts b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid.ts rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid.ts.snap b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid.ts.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid.ts.snap rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid.ts.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid_checkAllPropertiesTrue.options.json b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid_checkAllPropertiesTrue.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid_checkAllPropertiesTrue.options.json rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid_checkAllPropertiesTrue.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts.snap b/crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts.snap rename to crates/biome_js_analyze/tests/specs/style/useReadonlyClassProperties/valid_checkAllPropertiesTrue.ts.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/invalid.js b/crates/biome_js_analyze/tests/specs/style/useSymbolDescription/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/invalid.js rename to crates/biome_js_analyze/tests/specs/style/useSymbolDescription/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/invalid.js.snap b/crates/biome_js_analyze/tests/specs/style/useSymbolDescription/invalid.js.snap similarity index 72% rename from crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useSymbolDescription/invalid.js.snap index e29ef5be1526..c7ad780e67de 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/style/useSymbolDescription/invalid.js.snap @@ -12,7 +12,7 @@ Symbol(``) # Diagnostics ``` -invalid.js:1:7 lint/nursery/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:7 lint/style/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Symbol() is missing a description parameter. @@ -27,7 +27,7 @@ invalid.js:1:7 lint/nursery/useSymbolDescription ━━━━━━━━━━ ``` ``` -invalid.js:2:7 lint/nursery/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:7 lint/style/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Symbol() is missing a description parameter. @@ -43,7 +43,7 @@ invalid.js:2:7 lint/nursery/useSymbolDescription ━━━━━━━━━━ ``` ``` -invalid.js:3:7 lint/nursery/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:7 lint/style/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Symbol() is missing a description parameter. @@ -59,7 +59,7 @@ invalid.js:3:7 lint/nursery/useSymbolDescription ━━━━━━━━━━ ``` ``` -invalid.js:4:7 lint/nursery/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:7 lint/style/useSymbolDescription ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Symbol() is missing a description parameter. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/valid.js b/crates/biome_js_analyze/tests/specs/style/useSymbolDescription/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/valid.js rename to crates/biome_js_analyze/tests/specs/style/useSymbolDescription/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/valid.js.snap b/crates/biome_js_analyze/tests/specs/style/useSymbolDescription/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useSymbolDescription/valid.js.snap rename to crates/biome_js_analyze/tests/specs/style/useSymbolDescription/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/invalid.ts b/crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/invalid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/invalid.ts rename to crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/invalid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/invalid.ts.snap b/crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/invalid.ts.snap similarity index 87% rename from crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/invalid.ts.snap rename to crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/invalid.ts.snap index bb06a33eff97..13ad0b68dee7 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/invalid.ts.snap +++ b/crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/invalid.ts.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 134 expression: invalid.ts --- # Input @@ -174,7 +173,7 @@ declare function f10(this: number): void; # Diagnostics ``` -invalid.ts:1:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:1:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -196,7 +195,7 @@ invalid.ts:1:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━ ``` ``` -invalid.ts:5:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:5:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -222,7 +221,7 @@ invalid.ts:5:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━ ``` ``` -invalid.ts:11:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:11:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -248,7 +247,7 @@ invalid.ts:11:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:17:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:17:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -274,7 +273,7 @@ invalid.ts:17:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:22:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:22:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -299,7 +298,7 @@ invalid.ts:22:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:28:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:28:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -323,7 +322,7 @@ invalid.ts:28:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:33:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:33:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -351,7 +350,7 @@ invalid.ts:33:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:40:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:40:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -379,7 +378,7 @@ invalid.ts:40:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:48:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:48:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -404,7 +403,7 @@ invalid.ts:48:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:54:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:54:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -427,7 +426,7 @@ invalid.ts:54:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:60:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:60:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -452,7 +451,7 @@ invalid.ts:60:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:65:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:65:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -476,7 +475,7 @@ invalid.ts:65:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:71:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:71:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -501,7 +500,7 @@ invalid.ts:71:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:77:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:77:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -526,7 +525,7 @@ invalid.ts:77:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:83:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:83:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -549,7 +548,7 @@ invalid.ts:83:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:89:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:89:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -574,7 +573,7 @@ invalid.ts:89:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:95:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:95:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -599,7 +598,7 @@ invalid.ts:95:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:101:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:101:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -624,7 +623,7 @@ invalid.ts:101:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:107:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:107:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -649,7 +648,7 @@ invalid.ts:107:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:112:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:112:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -677,7 +676,7 @@ invalid.ts:112:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:118:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:118:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -702,7 +701,7 @@ invalid.ts:118:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:124:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:124:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -727,7 +726,7 @@ invalid.ts:124:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:130:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:130:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -752,7 +751,7 @@ invalid.ts:130:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:136:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:136:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -777,7 +776,7 @@ invalid.ts:136:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:141:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:141:5 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -799,7 +798,7 @@ invalid.ts:141:5 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:145:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:145:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -825,7 +824,7 @@ invalid.ts:145:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:151:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:151:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -857,7 +856,7 @@ invalid.ts:151:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:157:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:157:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. @@ -890,7 +889,7 @@ invalid.ts:157:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━ ``` ``` -invalid.ts:163:1 lint/nursery/useUnifiedTypeSignature FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:163:1 lint/style/useUnifiedTypeSignatures FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Overload signatures are hard to read and maintain. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/valid.ts b/crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/valid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/valid.ts rename to crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/valid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/valid.ts.snap b/crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/valid.ts.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useUnifiedTypeSignature/valid.ts.snap rename to crates/biome_js_analyze/tests/specs/style/useUnifiedTypeSignatures/valid.ts.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/invalid.js b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/invalid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/invalid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/invalid.js.snap similarity index 85% rename from crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/invalid.js.snap index bf1454004754..2ca858db04ab 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/invalid.js.snap @@ -37,7 +37,7 @@ let k = 4 & (3 | 5); # Diagnostics ``` -invalid.js:1:9 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:9 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '|'. @@ -52,7 +52,7 @@ invalid.js:1:9 lint/nursery/noBitwiseOperators ━━━━━━━━━━━ ``` ``` -invalid.js:3:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:12 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '&'. @@ -69,7 +69,7 @@ invalid.js:3:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:5:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:12 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '^'. @@ -86,7 +86,7 @@ invalid.js:5:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:7:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:12 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '~'. @@ -103,7 +103,7 @@ invalid.js:7:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:9:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:12 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '<<'. @@ -120,7 +120,7 @@ invalid.js:9:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:11:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:12 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '>>'. @@ -137,7 +137,7 @@ invalid.js:11:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:13:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:12 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '>>>'. @@ -154,7 +154,7 @@ invalid.js:13:12 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:15:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:1 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '|='. @@ -171,7 +171,7 @@ invalid.js:15:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:17:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:17:1 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '&='. @@ -188,7 +188,7 @@ invalid.js:17:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:19:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:19:1 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '^='. @@ -205,7 +205,7 @@ invalid.js:19:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:21:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:21:1 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '<<='. @@ -222,7 +222,7 @@ invalid.js:21:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:23:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:23:1 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '>>='. @@ -239,7 +239,7 @@ invalid.js:23:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:25:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:25:1 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '>>>='. @@ -256,7 +256,7 @@ invalid.js:25:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:27:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:27:1 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '|'. @@ -273,7 +273,7 @@ invalid.js:27:1 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:29:9 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:29:9 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '&'. @@ -288,7 +288,7 @@ invalid.js:29:9 lint/nursery/noBitwiseOperators ━━━━━━━━━━ ``` ``` -invalid.js:29:14 lint/nursery/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:29:14 lint/suspicious/noBitwiseOperators ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected use of '|'. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/valid.js b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/valid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/valid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/valid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/validBitwiseAnd.js b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/validBitwiseAnd.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/validBitwiseAnd.js rename to crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/validBitwiseAnd.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/validBitwiseAnd.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/validBitwiseAnd.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/validBitwiseAnd.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/validBitwiseAnd.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/validBitwiseAnd.options.json b/crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/validBitwiseAnd.options.json similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noBitwiseOperators/validBitwiseAnd.options.json rename to crates/biome_js_analyze/tests/specs/suspicious/noBitwiseOperators/validBitwiseAnd.options.json diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.js b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.js.snap similarity index 71% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.js.snap index dbb9dcc50ca8..4bdca5784554 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.js -snapshot_kind: text --- # Input ```js @@ -258,7 +257,7 @@ window.abc ?? 'non-nullish' ?? anything; # Diagnostics ``` -invalid.js:1:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -278,7 +277,7 @@ invalid.js:1:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:2:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -300,7 +299,7 @@ invalid.js:2:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:3:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -324,7 +323,7 @@ invalid.js:3:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:4:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -339,7 +338,7 @@ invalid.js:4:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:5:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -354,7 +353,7 @@ invalid.js:5:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:6:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -369,7 +368,7 @@ invalid.js:6:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:7:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -384,7 +383,7 @@ invalid.js:7:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:8:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:8:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -399,7 +398,7 @@ invalid.js:8:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:10:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:10:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -414,7 +413,7 @@ invalid.js:10:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:11:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -436,7 +435,7 @@ invalid.js:11:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:12:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -460,7 +459,7 @@ invalid.js:12:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:13:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -484,7 +483,7 @@ invalid.js:13:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:14:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -508,7 +507,7 @@ invalid.js:14:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:15:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -532,7 +531,7 @@ invalid.js:15:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:18:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -554,7 +553,7 @@ invalid.js:18:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:19:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:19:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -578,7 +577,7 @@ invalid.js:19:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:20:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:20:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -602,7 +601,7 @@ invalid.js:20:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:21:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:21:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -626,7 +625,7 @@ invalid.js:21:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:22:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:22:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -650,7 +649,7 @@ invalid.js:22:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:23:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:23:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -674,7 +673,7 @@ invalid.js:23:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:24:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:24:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -698,7 +697,7 @@ invalid.js:24:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:25:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:25:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -722,7 +721,7 @@ invalid.js:25:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:26:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:26:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -746,7 +745,7 @@ invalid.js:26:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:27:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:27:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -770,7 +769,7 @@ invalid.js:27:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:28:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:28:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -794,7 +793,7 @@ invalid.js:28:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:29:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:29:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -818,7 +817,7 @@ invalid.js:29:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:30:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:30:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -842,7 +841,7 @@ invalid.js:30:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:31:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:31:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -866,7 +865,7 @@ invalid.js:31:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:32:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:32:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -890,7 +889,7 @@ invalid.js:32:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:33:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:33:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -914,7 +913,7 @@ invalid.js:33:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:34:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:34:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -938,7 +937,7 @@ invalid.js:34:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:35:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:35:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -962,7 +961,7 @@ invalid.js:35:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:36:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:36:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -986,7 +985,7 @@ invalid.js:36:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:37:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:37:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1010,7 +1009,7 @@ invalid.js:37:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:40:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:40:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1032,7 +1031,7 @@ invalid.js:40:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:41:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:41:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1056,7 +1055,7 @@ invalid.js:41:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:42:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:42:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1080,7 +1079,7 @@ invalid.js:42:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:43:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:43:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1104,7 +1103,7 @@ invalid.js:43:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:44:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:44:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1128,7 +1127,7 @@ invalid.js:44:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:45:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:45:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1152,7 +1151,7 @@ invalid.js:45:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:46:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:46:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1176,7 +1175,7 @@ invalid.js:46:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:47:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:47:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1200,7 +1199,7 @@ invalid.js:47:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:48:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:48:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1224,7 +1223,7 @@ invalid.js:48:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:49:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:49:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1248,7 +1247,7 @@ invalid.js:49:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:52:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:52:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1270,7 +1269,7 @@ invalid.js:52:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:53:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:53:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1294,7 +1293,7 @@ invalid.js:53:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:54:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:54:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1318,7 +1317,7 @@ invalid.js:54:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:55:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:55:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1342,7 +1341,7 @@ invalid.js:55:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:56:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:56:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1366,7 +1365,7 @@ invalid.js:56:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:57:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:57:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1390,7 +1389,7 @@ invalid.js:57:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:58:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:58:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1414,7 +1413,7 @@ invalid.js:58:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:59:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:59:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1438,7 +1437,7 @@ invalid.js:59:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:60:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:60:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1462,7 +1461,7 @@ invalid.js:60:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:61:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:61:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1486,7 +1485,7 @@ invalid.js:61:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:62:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:62:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1510,7 +1509,7 @@ invalid.js:62:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:63:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:63:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1534,7 +1533,7 @@ invalid.js:63:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:64:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:64:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1558,7 +1557,7 @@ invalid.js:64:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:65:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:65:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1582,7 +1581,7 @@ invalid.js:65:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:66:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:66:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1606,7 +1605,7 @@ invalid.js:66:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:67:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:67:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1630,7 +1629,7 @@ invalid.js:67:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:68:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:68:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1654,7 +1653,7 @@ invalid.js:68:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:69:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:69:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1678,7 +1677,7 @@ invalid.js:69:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:70:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:70:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1702,7 +1701,7 @@ invalid.js:70:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:71:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:71:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1726,7 +1725,7 @@ invalid.js:71:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:72:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:72:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1750,7 +1749,7 @@ invalid.js:72:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:73:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:73:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1774,7 +1773,7 @@ invalid.js:73:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:74:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:74:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1798,7 +1797,7 @@ invalid.js:74:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:75:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:75:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1822,7 +1821,7 @@ invalid.js:75:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:76:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:76:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1846,7 +1845,7 @@ invalid.js:76:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:77:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:77:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1870,7 +1869,7 @@ invalid.js:77:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:78:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:78:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1894,7 +1893,7 @@ invalid.js:78:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:79:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:79:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1918,7 +1917,7 @@ invalid.js:79:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:80:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:80:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1942,7 +1941,7 @@ invalid.js:80:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:81:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:81:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1966,7 +1965,7 @@ invalid.js:81:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:82:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:82:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -1990,7 +1989,7 @@ invalid.js:82:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:83:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:83:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2014,7 +2013,7 @@ invalid.js:83:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:84:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:84:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2038,7 +2037,7 @@ invalid.js:84:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:85:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:85:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2062,7 +2061,7 @@ invalid.js:85:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:86:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:86:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2086,7 +2085,7 @@ invalid.js:86:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:87:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:87:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2110,7 +2109,7 @@ invalid.js:87:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:88:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:88:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2134,7 +2133,7 @@ invalid.js:88:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:89:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:89:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2158,7 +2157,7 @@ invalid.js:89:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:90:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:90:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2182,7 +2181,7 @@ invalid.js:90:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:91:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:91:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -2206,7 +2205,7 @@ invalid.js:91:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:94:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:94:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2220,7 +2219,7 @@ invalid.js:94:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:95:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:95:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2235,7 +2234,7 @@ invalid.js:95:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:96:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:96:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2250,7 +2249,7 @@ invalid.js:96:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:97:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:97:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2265,7 +2264,7 @@ invalid.js:97:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:98:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:98:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2280,7 +2279,7 @@ invalid.js:98:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.js:101:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:101:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2294,7 +2293,7 @@ invalid.js:101:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:102:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:102:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2309,7 +2308,7 @@ invalid.js:102:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:103:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:103:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2324,7 +2323,7 @@ invalid.js:103:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:104:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:104:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2339,7 +2338,7 @@ invalid.js:104:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:105:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:105:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2354,7 +2353,7 @@ invalid.js:105:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:106:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:106:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2369,7 +2368,7 @@ invalid.js:106:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:107:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:107:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2384,7 +2383,7 @@ invalid.js:107:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:108:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:108:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2399,7 +2398,7 @@ invalid.js:108:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:109:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:109:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2414,7 +2413,7 @@ invalid.js:109:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:110:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:110:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2429,7 +2428,7 @@ invalid.js:110:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:111:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:111:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2444,7 +2443,7 @@ invalid.js:111:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:112:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:112:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2459,7 +2458,7 @@ invalid.js:112:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:113:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:113:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2474,7 +2473,7 @@ invalid.js:113:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:114:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:114:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2489,7 +2488,7 @@ invalid.js:114:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:115:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:115:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2504,7 +2503,7 @@ invalid.js:115:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:116:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:116:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2519,7 +2518,7 @@ invalid.js:116:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:117:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:117:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2534,7 +2533,7 @@ invalid.js:117:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:118:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:118:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2549,7 +2548,7 @@ invalid.js:118:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:121:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:121:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2563,7 +2562,7 @@ invalid.js:121:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:122:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:122:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2578,7 +2577,7 @@ invalid.js:122:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:123:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:123:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2593,7 +2592,7 @@ invalid.js:123:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:124:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:124:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2608,7 +2607,7 @@ invalid.js:124:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:125:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:125:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2623,7 +2622,7 @@ invalid.js:125:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:126:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:126:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2638,7 +2637,7 @@ invalid.js:126:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:127:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:127:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2653,7 +2652,7 @@ invalid.js:127:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:128:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:128:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2668,7 +2667,7 @@ invalid.js:128:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:129:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:129:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2683,7 +2682,7 @@ invalid.js:129:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:130:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:130:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2698,7 +2697,7 @@ invalid.js:130:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:131:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:131:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2713,7 +2712,7 @@ invalid.js:131:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:132:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:132:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2728,7 +2727,7 @@ invalid.js:132:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:133:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:133:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2743,7 +2742,7 @@ invalid.js:133:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:134:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:134:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2758,7 +2757,7 @@ invalid.js:134:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:135:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:135:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2773,7 +2772,7 @@ invalid.js:135:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:136:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:136:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2788,7 +2787,7 @@ invalid.js:136:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:137:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:137:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2803,7 +2802,7 @@ invalid.js:137:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:138:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:138:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2818,7 +2817,7 @@ invalid.js:138:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:139:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:139:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2833,7 +2832,7 @@ invalid.js:139:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:140:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:140:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2848,7 +2847,7 @@ invalid.js:140:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:141:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:141:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2863,7 +2862,7 @@ invalid.js:141:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:142:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:142:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2878,7 +2877,7 @@ invalid.js:142:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:143:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:143:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2893,7 +2892,7 @@ invalid.js:143:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:144:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:144:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2908,7 +2907,7 @@ invalid.js:144:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:145:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:145:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2923,7 +2922,7 @@ invalid.js:145:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:146:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:146:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2938,7 +2937,7 @@ invalid.js:146:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:147:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:147:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2953,7 +2952,7 @@ invalid.js:147:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:148:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:148:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2968,7 +2967,7 @@ invalid.js:148:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:149:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:149:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2983,7 +2982,7 @@ invalid.js:149:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:150:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:150:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -2998,7 +2997,7 @@ invalid.js:150:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:151:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:151:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3013,7 +3012,7 @@ invalid.js:151:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:152:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:152:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3028,7 +3027,7 @@ invalid.js:152:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:153:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:153:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3043,7 +3042,7 @@ invalid.js:153:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:154:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:154:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3058,7 +3057,7 @@ invalid.js:154:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:155:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:155:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3073,7 +3072,7 @@ invalid.js:155:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:156:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:156:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3088,7 +3087,7 @@ invalid.js:156:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:157:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:157:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3103,7 +3102,7 @@ invalid.js:157:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:158:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:158:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3118,7 +3117,7 @@ invalid.js:158:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:159:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:159:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3133,7 +3132,7 @@ invalid.js:159:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:160:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:160:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3148,7 +3147,7 @@ invalid.js:160:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:161:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:161:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3163,7 +3162,7 @@ invalid.js:161:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:162:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:162:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3178,7 +3177,7 @@ invalid.js:162:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:165:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:165:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3192,7 +3191,7 @@ invalid.js:165:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:166:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:166:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3207,7 +3206,7 @@ invalid.js:166:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:167:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:167:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3222,7 +3221,7 @@ invalid.js:167:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:168:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:168:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3237,7 +3236,7 @@ invalid.js:168:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:169:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:169:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3252,7 +3251,7 @@ invalid.js:169:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:170:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:170:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3267,7 +3266,7 @@ invalid.js:170:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:171:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:171:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3282,7 +3281,7 @@ invalid.js:171:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:172:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:172:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3297,7 +3296,7 @@ invalid.js:172:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:173:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:173:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3312,7 +3311,7 @@ invalid.js:173:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:174:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:174:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3327,7 +3326,7 @@ invalid.js:174:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:175:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:175:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3342,7 +3341,7 @@ invalid.js:175:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:176:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:176:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3357,7 +3356,7 @@ invalid.js:176:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:177:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:177:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3372,7 +3371,7 @@ invalid.js:177:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:178:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:178:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3387,7 +3386,7 @@ invalid.js:178:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:179:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:179:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3402,7 +3401,7 @@ invalid.js:179:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:180:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:180:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3417,7 +3416,7 @@ invalid.js:180:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:181:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:181:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3432,7 +3431,7 @@ invalid.js:181:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:182:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:182:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3447,7 +3446,7 @@ invalid.js:182:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:183:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:183:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3462,7 +3461,7 @@ invalid.js:183:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:184:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:184:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3477,7 +3476,7 @@ invalid.js:184:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:185:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:185:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3492,7 +3491,7 @@ invalid.js:185:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:186:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:186:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3507,7 +3506,7 @@ invalid.js:186:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:187:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:187:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3522,7 +3521,7 @@ invalid.js:187:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:188:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:188:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3537,7 +3536,7 @@ invalid.js:188:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:189:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:189:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3552,7 +3551,7 @@ invalid.js:189:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:190:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:190:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3567,7 +3566,7 @@ invalid.js:190:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:193:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:193:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3581,7 +3580,7 @@ invalid.js:193:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:194:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:194:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3596,7 +3595,7 @@ invalid.js:194:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:195:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:195:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3611,7 +3610,7 @@ invalid.js:195:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:196:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:196:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3626,7 +3625,7 @@ invalid.js:196:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:197:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:197:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3641,7 +3640,7 @@ invalid.js:197:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:198:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:198:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3656,7 +3655,7 @@ invalid.js:198:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:199:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:199:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3671,7 +3670,7 @@ invalid.js:199:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:200:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:200:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3686,7 +3685,7 @@ invalid.js:200:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:201:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:201:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3701,7 +3700,7 @@ invalid.js:201:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:202:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:202:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3716,7 +3715,7 @@ invalid.js:202:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:203:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:203:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3731,7 +3730,7 @@ invalid.js:203:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:204:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:204:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3746,7 +3745,7 @@ invalid.js:204:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:205:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:205:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3761,7 +3760,7 @@ invalid.js:205:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:206:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:206:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3776,7 +3775,7 @@ invalid.js:206:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:207:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:207:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3791,7 +3790,7 @@ invalid.js:207:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:208:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:208:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3806,7 +3805,7 @@ invalid.js:208:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:209:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:209:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3821,7 +3820,7 @@ invalid.js:209:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:210:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:210:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3836,7 +3835,7 @@ invalid.js:210:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:211:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:211:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3851,7 +3850,7 @@ invalid.js:211:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:212:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:212:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3866,7 +3865,7 @@ invalid.js:212:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:213:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:213:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3881,7 +3880,7 @@ invalid.js:213:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:214:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:214:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3896,7 +3895,7 @@ invalid.js:214:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:215:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:215:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3911,7 +3910,7 @@ invalid.js:215:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:216:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:216:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3926,7 +3925,7 @@ invalid.js:216:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:217:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:217:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3941,7 +3940,7 @@ invalid.js:217:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:218:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:218:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This binary expression leads to a constant result. @@ -3956,7 +3955,7 @@ invalid.js:218:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:224:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:224:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison of two newly constructed objects. @@ -3971,7 +3970,7 @@ invalid.js:224:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:225:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:225:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison of two newly constructed objects. @@ -3986,7 +3985,7 @@ invalid.js:225:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:226:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:226:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison of two newly constructed objects. @@ -4001,7 +4000,7 @@ invalid.js:226:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:229:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:229:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4023,7 +4022,7 @@ invalid.js:229:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:230:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:230:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4047,7 +4046,7 @@ invalid.js:230:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:231:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:231:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4071,7 +4070,7 @@ invalid.js:231:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:232:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:232:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4095,7 +4094,7 @@ invalid.js:232:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:233:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:233:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4119,7 +4118,7 @@ invalid.js:233:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:234:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:234:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4143,7 +4142,7 @@ invalid.js:234:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:235:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:235:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4167,7 +4166,7 @@ invalid.js:235:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:236:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:236:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4191,7 +4190,7 @@ invalid.js:236:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:237:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:237:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4215,7 +4214,7 @@ invalid.js:237:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:240:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:240:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4239,7 +4238,7 @@ invalid.js:240:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:241:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:241:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Unexpected comparison to newly constructed object. @@ -4263,7 +4262,7 @@ invalid.js:241:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:246:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:246:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -4287,7 +4286,7 @@ invalid.js:246:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:247:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:247:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -4309,7 +4308,7 @@ invalid.js:247:1 lint/nursery/noConstantBinaryExpression ━━━━━━━ ``` ``` -invalid.js:248:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:248:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.jsx b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.jsx rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.jsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.jsx.snap b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.jsx.snap similarity index 68% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.jsx.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.jsx.snap index b6baf70ea024..5f3073cf9bf2 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/invalid.jsx.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/invalid.jsx.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.jsx -snapshot_kind: text --- # Input ```jsx @@ -16,7 +15,7 @@ true ?? <>; # Diagnostics ``` -invalid.jsx:1:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:1:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -36,7 +35,7 @@ invalid.jsx:1:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.jsx:2:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:2:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -58,7 +57,7 @@ invalid.jsx:2:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.jsx:3:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:3:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -82,7 +81,7 @@ invalid.jsx:3:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.jsx:4:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:4:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -106,7 +105,7 @@ invalid.jsx:4:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.jsx:5:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:5:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. @@ -130,7 +129,7 @@ invalid.jsx:5:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━ ``` ``` -invalid.jsx:6:1 lint/nursery/noConstantBinaryExpression ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:6:1 lint/suspicious/noConstantBinaryExpressions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i This logical expression can be simplified. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.js b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.jsx b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.jsx rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.jsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.jsx.snap b/crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.jsx.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noConstantBinaryExpression/valid.jsx.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noConstantBinaryExpressions/valid.jsx.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noTsIgnore/invalid.ts b/crates/biome_js_analyze/tests/specs/suspicious/noTsIgnore/invalid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noTsIgnore/invalid.ts rename to crates/biome_js_analyze/tests/specs/suspicious/noTsIgnore/invalid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/noTsIgnore/invalid.ts.snap b/crates/biome_js_analyze/tests/specs/suspicious/noTsIgnore/invalid.ts.snap similarity index 92% rename from crates/biome_js_analyze/tests/specs/nursery/noTsIgnore/invalid.ts.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noTsIgnore/invalid.ts.snap index 5c347c0e72e7..5b7e2750eb69 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noTsIgnore/invalid.ts.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noTsIgnore/invalid.ts.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.ts -snapshot_kind: text --- # Input ```ts @@ -30,7 +29,7 @@ let someTextAfter; # Diagnostics ``` -invalid.ts:2:4 lint/nursery/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:2:4 lint/suspicious/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unsafe use of the @ts-ignore directive found in this comment. @@ -61,7 +60,7 @@ invalid.ts:2:4 lint/nursery/noTsIgnore FIXABLE ━━━━━━━━━━ ``` ``` -invalid.ts:6:4 lint/nursery/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:6:4 lint/suspicious/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unsafe use of the @ts-ignore directive found in this comment. @@ -97,7 +96,7 @@ invalid.ts:6:4 lint/nursery/noTsIgnore FIXABLE ━━━━━━━━━━ ``` ``` -invalid.ts:13:4 lint/nursery/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:13:4 lint/suspicious/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unsafe use of the @ts-ignore directive found in this comment. @@ -130,7 +129,7 @@ invalid.ts:13:4 lint/nursery/noTsIgnore FIXABLE ━━━━━━━━━━ ``` ``` -invalid.ts:19:4 lint/nursery/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:19:4 lint/suspicious/noTsIgnore FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! Unsafe use of the @ts-ignore directive found in this comment. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.js b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.js.snap similarity index 87% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.js.snap index fb682411da7a..059c63cbc9f7 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.js.snap @@ -33,7 +33,7 @@ function init() { # Diagnostics ``` -invalid.js:1:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:5 lint/suspicious/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i The variable 'status' is declared but never assigned a value. @@ -48,7 +48,7 @@ invalid.js:1:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━ ``` ``` -invalid.js:6:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:5 lint/suspicious/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i The variable 'user' is declared but never assigned a value. @@ -65,7 +65,7 @@ invalid.js:6:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━ ``` ``` -invalid.js:10:7 lint/nursery/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:10:7 lint/suspicious/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i The variable 'error' is declared but never assigned a value. @@ -81,7 +81,7 @@ invalid.js:10:7 lint/nursery/noUnassignedVariables ━━━━━━━━━ ``` ``` -invalid.js:14:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:5 lint/suspicious/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i The variable 'options' is declared but never assigned a value. @@ -98,7 +98,7 @@ invalid.js:14:5 lint/nursery/noUnassignedVariables ━━━━━━━━━ ``` ``` -invalid.js:17:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:17:5 lint/suspicious/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i The variable 'flag' is declared but never assigned a value. @@ -115,7 +115,7 @@ invalid.js:17:5 lint/nursery/noUnassignedVariables ━━━━━━━━━ ``` ``` -invalid.js:22:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:22:5 lint/suspicious/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i The variable 'config' is declared but never assigned a value. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.ts b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.ts rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.ts.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.ts.snap similarity index 88% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.ts.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.ts.snap index b62b6d021a0d..50b3ec551dac 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/invalid.ts.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/invalid.ts.snap @@ -10,7 +10,7 @@ console.log(value); # Diagnostics ``` -invalid.ts:1:5 lint/nursery/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.ts:1:5 lint/suspicious/noUnassignedVariables ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i The variable 'value' is declared but never assigned a value. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.js b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.ts b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.ts similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.ts rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.ts diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.ts.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.ts.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUnassignedVariables/valid.ts.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUnassignedVariables/valid.ts.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/invalid.js b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/invalid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/invalid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/invalid.js.snap similarity index 85% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/invalid.js.snap index fc7db7db03a2..27ef6945b147 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/invalid.js.snap @@ -104,7 +104,7 @@ expression: invalid.js # Diagnostics ``` -invalid.js:1:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -126,7 +126,7 @@ invalid.js:1:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:2:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -144,7 +144,7 @@ invalid.js:2:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:3:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:9 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -179,7 +179,7 @@ invalid.js:3:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:4:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:16 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -214,7 +214,7 @@ invalid.js:4:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:5:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:9 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -249,7 +249,7 @@ invalid.js:5:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:6:3 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:3 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -275,7 +275,7 @@ invalid.js:6:3 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:7:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -301,7 +301,7 @@ invalid.js:7:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:8:7 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:8:7 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -327,7 +327,7 @@ invalid.js:8:7 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:9:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -353,7 +353,7 @@ invalid.js:9:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:10:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:10:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -379,7 +379,7 @@ invalid.js:10:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:11:4 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:4 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -405,7 +405,7 @@ invalid.js:11:4 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:12:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:14 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -431,7 +431,7 @@ invalid.js:12:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:13:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:13:10 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -457,7 +457,7 @@ invalid.js:13:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:14:4 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:14:4 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -483,7 +483,7 @@ invalid.js:14:4 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:15:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:15:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -509,7 +509,7 @@ invalid.js:15:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:16:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:16:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -535,7 +535,7 @@ invalid.js:16:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:17:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:17:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -561,7 +561,7 @@ invalid.js:17:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:18:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -587,7 +587,7 @@ invalid.js:18:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:19:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:19:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -613,7 +613,7 @@ invalid.js:19:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:20:8 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:20:8 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -639,7 +639,7 @@ invalid.js:20:8 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:21:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:21:11 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -665,7 +665,7 @@ invalid.js:21:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:22:8 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:22:8 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. @@ -691,7 +691,7 @@ invalid.js:22:8 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:23:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:23:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -710,7 +710,7 @@ invalid.js:23:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:24:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:24:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -729,7 +729,7 @@ invalid.js:24:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:25:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:25:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -748,7 +748,7 @@ invalid.js:25:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:26:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:26:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -767,7 +767,7 @@ invalid.js:26:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:27:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:27:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -786,7 +786,7 @@ invalid.js:27:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:28:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:28:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -805,7 +805,7 @@ invalid.js:28:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:29:3 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:29:3 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -824,7 +824,7 @@ invalid.js:29:3 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:30:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:30:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -843,7 +843,7 @@ invalid.js:30:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:31:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:31:10 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -862,7 +862,7 @@ invalid.js:31:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:32:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:32:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -881,7 +881,7 @@ invalid.js:32:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:33:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:33:9 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -900,7 +900,7 @@ invalid.js:33:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:34:8 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:34:8 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -919,7 +919,7 @@ invalid.js:34:8 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:35:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:35:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -938,7 +938,7 @@ invalid.js:35:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:36:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:36:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -957,7 +957,7 @@ invalid.js:36:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:37:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:37:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -976,7 +976,7 @@ invalid.js:37:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:38:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:38:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -995,7 +995,7 @@ invalid.js:38:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:39:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:39:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -1014,7 +1014,7 @@ invalid.js:39:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:40:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:40:5 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -1033,7 +1033,7 @@ invalid.js:40:5 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:43:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:43:9 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1065,7 +1065,7 @@ invalid.js:43:9 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:44:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:44:11 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1100,7 +1100,7 @@ invalid.js:44:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:45:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:45:14 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1135,7 +1135,7 @@ invalid.js:45:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:46:12 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:46:12 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1170,7 +1170,7 @@ invalid.js:46:12 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:47:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:47:13 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1205,7 +1205,7 @@ invalid.js:47:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:48:12 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:48:12 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1240,7 +1240,7 @@ invalid.js:48:12 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:49:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:49:16 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1275,7 +1275,7 @@ invalid.js:49:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:50:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:50:16 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1310,7 +1310,7 @@ invalid.js:50:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:51:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:51:13 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1345,7 +1345,7 @@ invalid.js:51:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:52:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:52:13 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1380,7 +1380,7 @@ invalid.js:52:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:53:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:53:13 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1415,7 +1415,7 @@ invalid.js:53:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:54:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:54:13 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -1450,7 +1450,7 @@ invalid.js:54:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:57:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:57:6 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1482,7 +1482,7 @@ invalid.js:57:6 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:58:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:58:10 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1517,7 +1517,7 @@ invalid.js:58:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:59:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:59:16 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1552,7 +1552,7 @@ invalid.js:59:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:60:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:60:16 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1587,7 +1587,7 @@ invalid.js:60:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:61:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:61:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1622,7 +1622,7 @@ invalid.js:61:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:62:19 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:62:19 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1657,7 +1657,7 @@ invalid.js:62:19 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:63:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:63:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1692,7 +1692,7 @@ invalid.js:63:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:64:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:64:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1727,7 +1727,7 @@ invalid.js:64:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:65:18 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:65:18 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1762,7 +1762,7 @@ invalid.js:65:18 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:66:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:66:10 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -1797,7 +1797,7 @@ invalid.js:66:10 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:67:7 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:67:7 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -1816,7 +1816,7 @@ invalid.js:67:7 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:70:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:70:11 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -1848,7 +1848,7 @@ invalid.js:70:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:71:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:71:11 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -1883,7 +1883,7 @@ invalid.js:71:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:72:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:72:13 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -1918,7 +1918,7 @@ invalid.js:72:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:73:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:73:14 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -1953,7 +1953,7 @@ invalid.js:73:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:74:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:74:14 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -1988,7 +1988,7 @@ invalid.js:74:14 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:75:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:75:16 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -2023,7 +2023,7 @@ invalid.js:75:16 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:76:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:76:13 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. @@ -2058,7 +2058,7 @@ invalid.js:76:13 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:77:7 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:77:7 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -2077,7 +2077,7 @@ invalid.js:77:7 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:80:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:80:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -2095,7 +2095,7 @@ invalid.js:80:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:81:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:81:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -2114,7 +2114,7 @@ invalid.js:81:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:84:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:84:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -2132,7 +2132,7 @@ invalid.js:84:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:87:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:87:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -2150,7 +2150,7 @@ invalid.js:87:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:88:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:88:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -2185,7 +2185,7 @@ invalid.js:88:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:89:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:89:2 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears after it, making it always match an empty string. @@ -2204,7 +2204,7 @@ invalid.js:89:2 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━ ``` ``` -invalid.js:90:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:90:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -2239,7 +2239,7 @@ invalid.js:90:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:91:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:91:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -2274,7 +2274,7 @@ invalid.js:91:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:92:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:92:15 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -2309,7 +2309,7 @@ invalid.js:92:15 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:93:25 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:93:25 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group placed in another alternate branch, making it always match an empty string. @@ -2344,7 +2344,7 @@ invalid.js:93:25 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:94:31 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:94:31 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group that appears before itself in a lookbehind assertion, making it always match an empty string. @@ -2379,7 +2379,7 @@ invalid.js:94:31 lint/nursery/noUselessBackrefInRegex ━━━━━━━━ ``` ``` -invalid.js:95:35 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:95:35 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference refers to a group within a negated assertion, making it always match an empty string. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/issue5989.js b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/issue5989.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/issue5989.js rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/issue5989.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/issue5989.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/issue5989.js.snap similarity index 73% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/issue5989.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/issue5989.js.snap index 6028fe27cb14..83795ab9a1eb 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/issue5989.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/issue5989.js.snap @@ -10,7 +10,7 @@ expression: issue5989.js # Diagnostics ``` -issue5989.js:1:11 lint/nursery/noUselessBackrefInRegex ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +issue5989.js:1:11 lint/suspicious/noUselessRegexBackrefs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! This backreference is nested within the group to which it refers, making it always match an empty string. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/valid.js b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/valid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/valid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessBackrefInRegex/valid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessRegexBackrefs/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/invalid.js b/crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/invalid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/invalid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/invalid.js.snap similarity index 78% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/invalid.js.snap index 7f7655042074..c9ad3ef6fcf2 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/invalid.js.snap @@ -1,7 +1,6 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs expression: invalid.js -snapshot_kind: text --- # Input ```js @@ -21,7 +20,7 @@ var s = { # Diagnostics ``` -invalid.js:2:7 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:7 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -41,7 +40,7 @@ invalid.js:2:7 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━ ``` ``` -invalid.js:2:24 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:2:24 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -61,7 +60,7 @@ invalid.js:2:24 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━ ``` ``` -invalid.js:3:7 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:7 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -82,7 +81,7 @@ invalid.js:3:7 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━ ``` ``` -invalid.js:3:13 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:13 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -103,7 +102,7 @@ invalid.js:3:13 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━ ``` ``` -invalid.js:4:10 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:10 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -129,7 +128,7 @@ invalid.js:4:10 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━ ``` ``` -invalid.js:4:30 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:30 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -150,7 +149,7 @@ invalid.js:4:30 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━ ``` ``` -invalid.js:6:13 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:6:13 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -171,7 +170,7 @@ invalid.js:6:13 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━ ``` ``` -invalid.js:8:26 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:8:26 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -192,7 +191,7 @@ invalid.js:8:26 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━ ``` ``` -invalid.js:9:29 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:9:29 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. @@ -213,7 +212,7 @@ invalid.js:9:29 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━ ``` ``` -invalid.js:10:31 lint/nursery/noUselessEscapeInString FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:10:31 lint/suspicious/noUselessStringEscapes FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ! The character doesn't need to be escaped. diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.js b/crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.js rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.jsx b/crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.jsx similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.jsx rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.jsx diff --git a/crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.jsx.snap b/crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.jsx.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/noUselessEscapeInString/valid.jsx.snap rename to crates/biome_js_analyze/tests/specs/suspicious/noUselessStringEscapes/valid.jsx.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/invalid.js b/crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/invalid.js rename to crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/invalid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/invalid.js.snap similarity index 66% rename from crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/invalid.js.snap index 15fcdea0c43e..f5b634e7c01a 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/invalid.js.snap @@ -1,6 +1,5 @@ --- source: crates/biome_js_analyze/tests/spec_tests.rs -assertion_line: 104 expression: invalid.js --- # Input @@ -211,7 +210,7 @@ Array.from([], function() { # Diagnostics ``` -invalid.js:1:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:1:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to forEach() iterable method should not return a value. @@ -233,7 +232,7 @@ invalid.js:1:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:4:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:4:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to forEach() iterable method should not return a value. @@ -259,7 +258,7 @@ invalid.js:4:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:7:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to forEach() iterable method should not return a value. @@ -285,7 +284,7 @@ invalid.js:7:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:12:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:12:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to forEach() iterable method should not return a value. @@ -311,7 +310,7 @@ invalid.js:12:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:18:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:18:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to forEach() iterable method should not return a value. @@ -337,7 +336,7 @@ invalid.js:18:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:24:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:24:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to forEach() iterable method should not return a value. @@ -363,7 +362,7 @@ invalid.js:24:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:30:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:30:7 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to Array.from() method should always return a value. @@ -380,7 +379,7 @@ invalid.js:30:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:31:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:31:7 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to Array.from() method should always return a value. @@ -397,7 +396,7 @@ invalid.js:31:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:32:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:32:7 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to Array.from() method should always return a value. @@ -414,7 +413,7 @@ invalid.js:32:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:35:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:35:7 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to Array.from() method should always return a value. @@ -431,7 +430,7 @@ invalid.js:35:7 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:38:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:38:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to every() iterable method should always return a value. @@ -448,7 +447,7 @@ invalid.js:38:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:41:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:41:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to every() iterable method should always return a value. @@ -465,7 +464,7 @@ invalid.js:41:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:44:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:44:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to every() iterable method should always return a value. @@ -482,7 +481,7 @@ invalid.js:44:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:45:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:45:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to every() iterable method should always return a value. @@ -499,7 +498,7 @@ invalid.js:45:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:46:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:46:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to every() iterable method should always return a value. @@ -516,7 +515,7 @@ invalid.js:46:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:53:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:53:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to every() iterable method should always return a value. @@ -533,7 +532,7 @@ invalid.js:53:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:62:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:62:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to every() iterable method should always return a value. @@ -550,7 +549,7 @@ invalid.js:62:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:85:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:85:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to filter() iterable method should always return a value. @@ -567,7 +566,7 @@ invalid.js:85:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:88:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:88:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to filter() iterable method should always return a value. @@ -584,7 +583,7 @@ invalid.js:88:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:91:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:91:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to filter() iterable method should always return a value. @@ -601,7 +600,7 @@ invalid.js:91:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:92:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:92:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to filter() iterable method should always return a value. @@ -618,7 +617,7 @@ invalid.js:92:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:93:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:93:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to find() iterable method should always return a value. @@ -635,7 +634,7 @@ invalid.js:93:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:96:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:96:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to find() iterable method should always return a value. @@ -652,7 +651,7 @@ invalid.js:96:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:99:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:99:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to find() iterable method should always return a value. @@ -669,7 +668,7 @@ invalid.js:99:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:100:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:100:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to find() iterable method should always return a value. @@ -686,7 +685,7 @@ invalid.js:100:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:101:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:101:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findIndex() iterable method should always return a value. @@ -703,7 +702,7 @@ invalid.js:101:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:104:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:104:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findIndex() iterable method should always return a value. @@ -720,7 +719,7 @@ invalid.js:104:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:107:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:107:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findIndex() iterable method should always return a value. @@ -737,7 +736,7 @@ invalid.js:107:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:108:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:108:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findIndex() iterable method should always return a value. @@ -754,7 +753,7 @@ invalid.js:108:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:109:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:109:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLast() iterable method should always return a value. @@ -771,7 +770,7 @@ invalid.js:109:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:112:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:112:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLast() iterable method should always return a value. @@ -788,7 +787,7 @@ invalid.js:112:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:115:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:115:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLast() iterable method should always return a value. @@ -805,7 +804,7 @@ invalid.js:115:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:116:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:116:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLast() iterable method should always return a value. @@ -822,7 +821,7 @@ invalid.js:116:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:117:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:117:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLastIndex() iterable method should always return a value. @@ -839,7 +838,7 @@ invalid.js:117:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:120:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:120:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLastIndex() iterable method should always return a value. @@ -856,7 +855,7 @@ invalid.js:120:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:123:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:123:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLastIndex() iterable method should always return a value. @@ -873,7 +872,7 @@ invalid.js:123:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:124:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:124:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to findLastIndex() iterable method should always return a value. @@ -890,7 +889,7 @@ invalid.js:124:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:125:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:125:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to some() iterable method should always return a value. @@ -907,7 +906,7 @@ invalid.js:125:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:128:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:128:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to some() iterable method should always return a value. @@ -924,7 +923,7 @@ invalid.js:128:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:131:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:131:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to some() iterable method should always return a value. @@ -941,7 +940,7 @@ invalid.js:131:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:132:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:132:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to some() iterable method should always return a value. @@ -958,7 +957,7 @@ invalid.js:132:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:133:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:133:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to flatMap() iterable method should always return a value. @@ -975,7 +974,7 @@ invalid.js:133:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:136:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:136:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to flatMap() iterable method should always return a value. @@ -992,7 +991,7 @@ invalid.js:136:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:139:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:139:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to flatMap() iterable method should always return a value. @@ -1009,7 +1008,7 @@ invalid.js:139:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:140:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:140:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to flatMap() iterable method should always return a value. @@ -1026,7 +1025,7 @@ invalid.js:140:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:141:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:141:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to map() iterable method should always return a value. @@ -1043,7 +1042,7 @@ invalid.js:141:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:144:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:144:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to map() iterable method should always return a value. @@ -1060,7 +1059,7 @@ invalid.js:144:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:147:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:147:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to map() iterable method should always return a value. @@ -1077,7 +1076,7 @@ invalid.js:147:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:148:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:148:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to map() iterable method should always return a value. @@ -1094,7 +1093,7 @@ invalid.js:148:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:149:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:149:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduce() iterable method should always return a value. @@ -1111,7 +1110,7 @@ invalid.js:149:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:152:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:152:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduce() iterable method should always return a value. @@ -1128,7 +1127,7 @@ invalid.js:152:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:155:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:155:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduce() iterable method should always return a value. @@ -1145,7 +1144,7 @@ invalid.js:155:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:156:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:156:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduce() iterable method should always return a value. @@ -1162,7 +1161,7 @@ invalid.js:156:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:157:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:157:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduceRight() iterable method should always return a value. @@ -1179,7 +1178,7 @@ invalid.js:157:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:160:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:160:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduceRight() iterable method should always return a value. @@ -1196,7 +1195,7 @@ invalid.js:160:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:163:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:163:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduceRight() iterable method should always return a value. @@ -1213,7 +1212,7 @@ invalid.js:163:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:164:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:164:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to reduceRight() iterable method should always return a value. @@ -1230,7 +1229,7 @@ invalid.js:164:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:165:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:165:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to sort() iterable method should always return a value. @@ -1247,7 +1246,7 @@ invalid.js:165:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:168:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:168:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to sort() iterable method should always return a value. @@ -1264,7 +1263,7 @@ invalid.js:168:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:171:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:171:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to sort() iterable method should always return a value. @@ -1281,7 +1280,7 @@ invalid.js:171:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:172:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:172:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to sort() iterable method should always return a value. @@ -1298,7 +1297,7 @@ invalid.js:172:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:173:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:173:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to toSorted() iterable method should always return a value. @@ -1315,7 +1314,7 @@ invalid.js:173:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:176:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:176:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to toSorted() iterable method should always return a value. @@ -1332,7 +1331,7 @@ invalid.js:176:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:179:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:179:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to toSorted() iterable method should always return a value. @@ -1369,7 +1368,7 @@ invalid.js:179:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:188:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:188:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to toSorted() iterable method should always return a value. @@ -1386,7 +1385,7 @@ invalid.js:188:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━ ``` ``` -invalid.js:195:4 lint/nursery/useIterableCallbackReturn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:195:4 lint/suspicious/useConsistentIterableCallbackReturnValues ━━━━━━━━━━━━━━━━━━━━━━━━━ × This callback passed to toSorted() iterable method should always return a value. diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/valid.js b/crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/valid.js rename to crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/valid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useIterableCallbackReturn/valid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/useConsistentIterableCallbackReturnValues/valid.js.snap diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/invalid.js b/crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/invalid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/invalid.js rename to crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/invalid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/invalid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/invalid.js.snap similarity index 84% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/invalid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/invalid.js.snap index 533f58bcf4cd..538f925af526 100644 --- a/crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/invalid.js.snap @@ -51,7 +51,7 @@ new Response('', { # Diagnostics ``` -invalid.js:3:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:3:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.json() instead of new Response(JSON.stringify()). @@ -77,7 +77,7 @@ invalid.js:3:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━ ``` ``` -invalid.js:5:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:5:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.json() instead of new Response(JSON.stringify()). @@ -103,7 +103,7 @@ invalid.js:5:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━ ``` ``` -invalid.js:7:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:7:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.json() instead of new Response(JSON.stringify()). @@ -134,7 +134,7 @@ invalid.js:7:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━ ``` ``` -invalid.js:11:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:11:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.json() instead of new Response(JSON.stringify()). @@ -169,7 +169,7 @@ invalid.js:11:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━ ``` ``` -invalid.js:17:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:17:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.json() instead of new Response(JSON.stringify()). @@ -204,7 +204,7 @@ invalid.js:17:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━ ``` ``` -invalid.js:23:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:23:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.redirect() instead of new Response(). @@ -240,7 +240,7 @@ invalid.js:23:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━ ``` ``` -invalid.js:31:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:31:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.redirect() instead of new Response(). @@ -275,7 +275,7 @@ invalid.js:31:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━ ``` ``` -invalid.js:38:1 lint/nursery/useConsistentResponse FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.js:38:1 lint/suspicious/useStaticResponseMethods FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Use Response.redirect() instead of new Response(). diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/valid.js b/crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/valid.js similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/valid.js rename to crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/valid.js diff --git a/crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/valid.js.snap b/crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/valid.js.snap similarity index 100% rename from crates/biome_js_analyze/tests/specs/nursery/useConsistentResponse/valid.js.snap rename to crates/biome_js_analyze/tests/specs/suspicious/useStaticResponseMethods/valid.js.snap diff --git a/crates/biome_rule_options/Cargo.toml b/crates/biome_rule_options/Cargo.toml index 3cd40bd10582..9d5e906b89fd 100644 --- a/crates/biome_rule_options/Cargo.toml +++ b/crates/biome_rule_options/Cargo.toml @@ -15,7 +15,7 @@ biome_console = { workspace = true } biome_deserialize = { workspace = true, features = ["smallvec"] } biome_deserialize_macros = { workspace = true } biome_diagnostics = { workspace = true } -biome_glob = { workspace = true, features = ["biome_deserialize"] } +biome_glob = { workspace = true, features = ["biome_deserialize", "serde"] } biome_resolver = { workspace = true } biome_rowan = { workspace = true } biome_string_case = { workspace = true, features = ["biome_rowan"] } diff --git a/crates/biome_rule_options/src/lib.rs b/crates/biome_rule_options/src/lib.rs index 2489e956212c..5efe1246b97f 100644 --- a/crates/biome_rule_options/src/lib.rs +++ b/crates/biome_rule_options/src/lib.rs @@ -14,7 +14,7 @@ pub mod no_array_index_key; pub mod no_assign_in_expressions; pub mod no_async_promise_executor; pub mod no_autofocus; -pub mod no_await_in_loop; +pub mod no_await_in_loops; pub mod no_banned_types; pub mod no_barrel_file; pub mod no_bitwise_operators; @@ -31,7 +31,7 @@ pub mod no_confusing_void_type; pub mod no_console; pub mod no_const_assign; pub mod no_const_enum; -pub mod no_constant_binary_expression; +pub mod no_constant_binary_expressions; pub mod no_constant_condition; pub mod no_constant_math_min_max_clamp; pub mod no_constructor_return; @@ -42,7 +42,6 @@ pub mod no_debugger; pub mod no_default_export; pub mod no_delete; pub mod no_descending_specificity; -pub mod no_destructured_props; pub mod no_distracting_elements; pub mod no_document_cookie; pub mod no_document_import_in_page; @@ -96,7 +95,7 @@ pub mod no_header_scope; pub mod no_img_element; pub mod no_implicit_any_let; pub mod no_implicit_boolean; -pub mod no_implicit_coercion; +pub mod no_implicit_coercions; pub mod no_import_assign; pub mod no_import_cycles; pub mod no_important_in_keyframe; @@ -145,7 +144,7 @@ pub mod no_prototype_builtins; pub mod no_quickfix_biome; pub mod no_qwik_use_visible_task; pub mod no_re_export_all; -pub mod no_react_prop_assign; +pub mod no_react_prop_assignments; pub mod no_react_specific_props; pub mod no_redeclare; pub mod no_redundant_alt; @@ -165,6 +164,7 @@ pub mod no_shadow_restricted_names; pub mod no_shorthand_property_overrides; pub mod no_shouty_constants; pub mod no_skipped_tests; +pub mod no_solid_destructured_props; pub mod no_sparse_array; pub mod no_static_element_interactions; pub mod no_static_only_class; @@ -204,7 +204,6 @@ pub mod no_unused_private_class_members; pub mod no_unused_template_literal; pub mod no_unused_variables; pub mod no_unwanted_polyfillio; -pub mod no_useless_backref_in_regex; pub mod no_useless_catch; pub mod no_useless_constructor; pub mod no_useless_continue; @@ -215,8 +214,10 @@ pub mod no_useless_escape_in_string; pub mod no_useless_fragments; pub mod no_useless_label; pub mod no_useless_lone_block_statements; +pub mod no_useless_regex_backrefs; pub mod no_useless_rename; pub mod no_useless_string_concat; +pub mod no_useless_string_escapes; pub mod no_useless_string_raw; pub mod no_useless_switch_case; pub mod no_useless_ternary; @@ -235,7 +236,6 @@ pub mod no_vue_reserved_props; pub mod no_with; pub mod no_yoda_expression; pub mod organize_imports; -pub mod use_adjacent_getter_setter; pub mod use_adjacent_overload_signatures; pub mod use_alt_text; pub mod use_anchor_content; @@ -256,9 +256,9 @@ pub mod use_component_export_only_modules; pub mod use_consistent_array_type; pub mod use_consistent_builtin_instantiation; pub mod use_consistent_curly_braces; +pub mod use_consistent_iterable_callback_return_values; pub mod use_consistent_member_accessibility; -pub mod use_consistent_object_definition; -pub mod use_consistent_response; +pub mod use_consistent_object_definitions; pub mod use_consistent_type_definitions; pub mod use_const; pub mod use_date_now; @@ -278,13 +278,13 @@ pub mod use_exports_last; pub mod use_filenaming_convention; pub mod use_flat_map; pub mod use_focusable_interactive; -pub mod use_for_component; pub mod use_for_of; pub mod use_fragment_syntax; pub mod use_generic_font_names; pub mod use_getter_return; pub mod use_google_font_display; pub mod use_google_font_preconnect; +pub mod use_grouped_accessor_pairs; pub mod use_guard_for_in; pub mod use_heading_content; pub mod use_hook_at_top_level; @@ -296,8 +296,7 @@ pub mod use_import_type; pub mod use_index_of; pub mod use_is_array; pub mod use_is_nan; -pub mod use_iterable_callback_return; -pub mod use_json_import_attribute; +pub mod use_json_import_attributes; pub mod use_jsx_key_in_iterable; pub mod use_key_with_click_events; pub mod use_key_with_mouse_events; @@ -305,6 +304,7 @@ pub mod use_literal_enum_members; pub mod use_literal_keys; pub mod use_max_params; pub mod use_media_caption; +pub mod use_named_graphql_operations; pub mod use_named_operation; pub mod use_namespace_keyword; pub mod use_naming_convention; @@ -329,10 +329,12 @@ pub mod use_simple_number_keys; pub mod use_simplified_logic_expression; pub mod use_single_js_doc_asterisk; pub mod use_single_var_declarator; +pub mod use_solid_for_component; pub mod use_sorted_attributes; pub mod use_sorted_classes; pub mod use_sorted_keys; pub mod use_sorted_properties; +pub mod use_static_response_methods; pub mod use_strict_mode; pub mod use_symbol_description; pub mod use_template; @@ -340,7 +342,7 @@ pub mod use_throw_new_error; pub mod use_throw_only_error; pub mod use_top_level_regex; pub mod use_trim_start_end; -pub mod use_unified_type_signature; +pub mod use_unified_type_signatures; pub mod use_unique_element_ids; pub mod use_valid_anchor; pub mod use_valid_aria_props; diff --git a/crates/biome_rule_options/src/no_await_in_loop.rs b/crates/biome_rule_options/src/no_await_in_loops.rs similarity index 89% rename from crates/biome_rule_options/src/no_await_in_loop.rs rename to crates/biome_rule_options/src/no_await_in_loops.rs index 318668997f14..e13575a51fdc 100644 --- a/crates/biome_rule_options/src/no_await_in_loop.rs +++ b/crates/biome_rule_options/src/no_await_in_loops.rs @@ -3,4 +3,4 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct NoAwaitInLoopOptions {} +pub struct NoAwaitInLoopsOptions {} diff --git a/crates/biome_rule_options/src/no_constant_binary_expression.rs b/crates/biome_rule_options/src/no_constant_binary_expressions.rs similarity index 85% rename from crates/biome_rule_options/src/no_constant_binary_expression.rs rename to crates/biome_rule_options/src/no_constant_binary_expressions.rs index 5025548c0a9a..2b7a72accc74 100644 --- a/crates/biome_rule_options/src/no_constant_binary_expression.rs +++ b/crates/biome_rule_options/src/no_constant_binary_expressions.rs @@ -3,4 +3,4 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct NoConstantBinaryExpressionOptions {} +pub struct NoConstantBinaryExpressionsOptions {} diff --git a/crates/biome_rule_options/src/no_destructured_props.rs b/crates/biome_rule_options/src/no_implicit_coercions.rs similarity index 87% rename from crates/biome_rule_options/src/no_destructured_props.rs rename to crates/biome_rule_options/src/no_implicit_coercions.rs index 2ff225962d4f..145450a299fa 100644 --- a/crates/biome_rule_options/src/no_destructured_props.rs +++ b/crates/biome_rule_options/src/no_implicit_coercions.rs @@ -3,4 +3,4 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct NoDestructuredPropsOptions {} +pub struct NoImplicitCoercionsOptions {} diff --git a/crates/biome_rule_options/src/no_implicit_coercion.rs b/crates/biome_rule_options/src/no_react_prop_assignments.rs similarity index 87% rename from crates/biome_rule_options/src/no_implicit_coercion.rs rename to crates/biome_rule_options/src/no_react_prop_assignments.rs index d5989b515152..777329b8258d 100644 --- a/crates/biome_rule_options/src/no_implicit_coercion.rs +++ b/crates/biome_rule_options/src/no_react_prop_assignments.rs @@ -3,4 +3,4 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct NoImplicitCoercionOptions {} +pub struct NoReactPropAssignmentsOptions {} diff --git a/crates/biome_rule_options/src/no_solid_destructured_props.rs b/crates/biome_rule_options/src/no_solid_destructured_props.rs new file mode 100644 index 000000000000..3c9b5fc9ed49 --- /dev/null +++ b/crates/biome_rule_options/src/no_solid_destructured_props.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct NoSolidDestructuredPropsOptions {} diff --git a/crates/biome_rule_options/src/no_useless_backref_in_regex.rs b/crates/biome_rule_options/src/no_useless_backref_in_regex.rs deleted file mode 100644 index 0b57e430bf22..000000000000 --- a/crates/biome_rule_options/src/no_useless_backref_in_regex.rs +++ /dev/null @@ -1,6 +0,0 @@ -use biome_deserialize_macros::Deserializable; -use serde::{Deserialize, Serialize}; -#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct NoUselessBackrefInRegexOptions {} diff --git a/crates/biome_rule_options/src/no_useless_regex_backrefs.rs b/crates/biome_rule_options/src/no_useless_regex_backrefs.rs new file mode 100644 index 000000000000..24c4adf27c07 --- /dev/null +++ b/crates/biome_rule_options/src/no_useless_regex_backrefs.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct NoUselessRegexBackrefsOptions {} diff --git a/crates/biome_rule_options/src/no_useless_string_escapes.rs b/crates/biome_rule_options/src/no_useless_string_escapes.rs new file mode 100644 index 000000000000..ae549da099e6 --- /dev/null +++ b/crates/biome_rule_options/src/no_useless_string_escapes.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct NoUselessStringEscapesOptions {} diff --git a/crates/biome_rule_options/src/use_adjacent_getter_setter.rs b/crates/biome_rule_options/src/use_adjacent_getter_setter.rs deleted file mode 100644 index af92ae7dd276..000000000000 --- a/crates/biome_rule_options/src/use_adjacent_getter_setter.rs +++ /dev/null @@ -1,6 +0,0 @@ -use biome_deserialize_macros::Deserializable; -use serde::{Deserialize, Serialize}; -#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseAdjacentGetterSetterOptions {} diff --git a/crates/biome_rule_options/src/use_consistent_iterable_callback_return_values.rs b/crates/biome_rule_options/src/use_consistent_iterable_callback_return_values.rs new file mode 100644 index 000000000000..16adc00e8e23 --- /dev/null +++ b/crates/biome_rule_options/src/use_consistent_iterable_callback_return_values.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct UseConsistentIterableCallbackReturnValuesOptions {} diff --git a/crates/biome_rule_options/src/use_consistent_object_definition.rs b/crates/biome_rule_options/src/use_consistent_object_definitions.rs similarity index 93% rename from crates/biome_rule_options/src/use_consistent_object_definition.rs rename to crates/biome_rule_options/src/use_consistent_object_definitions.rs index f4d7508483f9..a05e0ef16cae 100644 --- a/crates/biome_rule_options/src/use_consistent_object_definition.rs +++ b/crates/biome_rule_options/src/use_consistent_object_definitions.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseConsistentObjectDefinitionOptions { +pub struct UseConsistentObjectDefinitionsOptions { /// The preferred syntax to enforce. pub syntax: ObjectPropertySyntax, } diff --git a/crates/biome_rule_options/src/use_consistent_response.rs b/crates/biome_rule_options/src/use_consistent_response.rs deleted file mode 100644 index 54206081534a..000000000000 --- a/crates/biome_rule_options/src/use_consistent_response.rs +++ /dev/null @@ -1,6 +0,0 @@ -use biome_deserialize_macros::Deserializable; -use serde::{Deserialize, Serialize}; -#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseConsistentResponseOptions {} diff --git a/crates/biome_rule_options/src/use_for_component.rs b/crates/biome_rule_options/src/use_for_component.rs deleted file mode 100644 index 272969abe14d..000000000000 --- a/crates/biome_rule_options/src/use_for_component.rs +++ /dev/null @@ -1,6 +0,0 @@ -use biome_deserialize_macros::Deserializable; -use serde::{Deserialize, Serialize}; -#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseForComponentOptions {} diff --git a/crates/biome_rule_options/src/use_grouped_accessor_pairs.rs b/crates/biome_rule_options/src/use_grouped_accessor_pairs.rs new file mode 100644 index 000000000000..85aa74c6ea59 --- /dev/null +++ b/crates/biome_rule_options/src/use_grouped_accessor_pairs.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct UseGroupedAccessorPairsOptions {} diff --git a/crates/biome_rule_options/src/use_iterable_callback_return.rs b/crates/biome_rule_options/src/use_iterable_callback_return.rs deleted file mode 100644 index 74b01ab0ec02..000000000000 --- a/crates/biome_rule_options/src/use_iterable_callback_return.rs +++ /dev/null @@ -1,6 +0,0 @@ -use biome_deserialize_macros::Deserializable; -use serde::{Deserialize, Serialize}; -#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseIterableCallbackReturnOptions {} diff --git a/crates/biome_rule_options/src/use_json_import_attribute.rs b/crates/biome_rule_options/src/use_json_import_attribute.rs deleted file mode 100644 index 0e3ad707c36a..000000000000 --- a/crates/biome_rule_options/src/use_json_import_attribute.rs +++ /dev/null @@ -1,6 +0,0 @@ -use biome_deserialize_macros::Deserializable; -use serde::{Deserialize, Serialize}; -#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseJsonImportAttributeOptions {} diff --git a/crates/biome_rule_options/src/use_json_import_attributes.rs b/crates/biome_rule_options/src/use_json_import_attributes.rs new file mode 100644 index 000000000000..940fbd601ca3 --- /dev/null +++ b/crates/biome_rule_options/src/use_json_import_attributes.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct UseJsonImportAttributesOptions {} diff --git a/crates/biome_rule_options/src/use_named_graphql_operations.rs b/crates/biome_rule_options/src/use_named_graphql_operations.rs new file mode 100644 index 000000000000..699fe875ae0d --- /dev/null +++ b/crates/biome_rule_options/src/use_named_graphql_operations.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct UseNamedGraphqlOperationsOptions {} \ No newline at end of file diff --git a/crates/biome_rule_options/src/no_react_prop_assign.rs b/crates/biome_rule_options/src/use_solid_for_component.rs similarity index 87% rename from crates/biome_rule_options/src/no_react_prop_assign.rs rename to crates/biome_rule_options/src/use_solid_for_component.rs index c27b56ed4415..4640e7e7cd2c 100644 --- a/crates/biome_rule_options/src/no_react_prop_assign.rs +++ b/crates/biome_rule_options/src/use_solid_for_component.rs @@ -3,4 +3,4 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct NoReactPropAssignOptions {} +pub struct UseSolidForComponentOptions {} diff --git a/crates/biome_rule_options/src/use_static_response_methods.rs b/crates/biome_rule_options/src/use_static_response_methods.rs new file mode 100644 index 000000000000..13ba185c62d5 --- /dev/null +++ b/crates/biome_rule_options/src/use_static_response_methods.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct UseStaticResponseMethodsOptions {} diff --git a/crates/biome_rule_options/src/use_unified_type_signature.rs b/crates/biome_rule_options/src/use_unified_type_signature.rs deleted file mode 100644 index 33b3668754c0..000000000000 --- a/crates/biome_rule_options/src/use_unified_type_signature.rs +++ /dev/null @@ -1,6 +0,0 @@ -use biome_deserialize_macros::Deserializable; -use serde::{Deserialize, Serialize}; -#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseUnifiedTypeSignatureOptions {} diff --git a/crates/biome_rule_options/src/use_unified_type_signatures.rs b/crates/biome_rule_options/src/use_unified_type_signatures.rs new file mode 100644 index 000000000000..bb99b226e02d --- /dev/null +++ b/crates/biome_rule_options/src/use_unified_type_signatures.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct UseUnifiedTypeSignaturesOptions {} diff --git a/justfile b/justfile index 60f6e907f5a8..df97d54e3bdb 100644 --- a/justfile +++ b/justfile @@ -95,12 +95,9 @@ new-graphql-lintrule rulename: just gen-analyzer # Promotes a rule from the nursery group to a new group -move-rule group rulename: - cargo run -p xtask_codegen -- move-rule --group={{group}} --name={{rulename}} - just gen-analyzer - just documentation - cargo test -- {{snakecase(rulename)}} - cargo insta accept +move-rule rulename group: + cargo run -p xtask_codegen -- move-rule --group={{group}} --name={{rulename}} + cargo run -p xtask_codegen -- analyzer # Format Rust files and TOML files format: diff --git a/promote_and_rename_rules.sh b/promote_and_rename_rules.sh new file mode 100755 index 000000000000..85a5b90060b4 --- /dev/null +++ b/promote_and_rename_rules.sh @@ -0,0 +1,177 @@ +#!/bin/bash + +# Comprehensive script to promote and rename nursery rules to stable groups +# This handles all the complex file moves, renames, and updates needed + +set -e + +echo "Starting rule promotion and renaming process..." + +# Array of rules to rename: "old_name:new_name:group" +declare -a RULES=( + "noAwaitInLoop:noAwaitInLoops:performance" + "noConstantBinaryExpression:noConstantBinaryExpressions:suspicious" + "noDestructuredProps:noSolidDestructuredProps:correctness" + "noImplicitCoercion:noImplicitCoercions:complexity" + "noReactPropAssign:noReactPropAssignments:correctness" + "noUnknownAtRule:noUnknownAtRules:suspicious" + "noUselessBackrefInRegex:noUselessRegexBackrefs:suspicious" + "noUselessEscapeInString:noUselessStringEscapes:suspicious" + "useAdjacentGetterSetter:useGroupedAccessorPairs:style" + "useConsistentObjectDefinition:useConsistentObjectDefinitions:style" + "useConsistentResponse:useStaticResponseMethods:suspicious" + "useForComponent:useSolidForComponent:performance" + "useIterableCallbackReturn:useConsistentIterableCallbackReturnValues:suspicious" + "useJsonImportAttribute:useJsonImportAttributes:correctness" + "useNamedOperation:useNamedGraphqlOperations:correctness" + "useUnifiedTypeSignature:useUnifiedTypeSignatures:style" +) + +# Function to convert camelCase to snake_case +camel_to_snake() { + echo "$1" | sed 's/\([A-Z]\)/_\1/g' | tr '[:upper:]' '[:lower:]' | sed 's/^_//' +} + +# Function to convert snake_case to CamelCase +snake_to_camel() { + echo "$1" | awk -F'_' '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) tolower(substr($i,2))}1' | sed 's/ //g' +} + +# Process each rule +for rule in "${RULES[@]}"; do + IFS=':' read -r old_name new_name group <<< "$rule" + + echo "Processing rule: $old_name -> $new_name (group: $group)" + + old_snake=$(camel_to_snake "$old_name") + new_snake=$(camel_to_snake "$new_name") + old_camel=$(echo "${old_name:0:1}" | tr '[:lower:]' '[:upper:]')${old_name:1} + new_camel=$(echo "${new_name:0:1}" | tr '[:lower:]' '[:upper:]')${new_name:1} + + echo " Names: $old_name/$old_snake/$old_camel -> $new_name/$new_snake/$new_camel" + + # Define paths + OLD_RULE_PATH="crates/biome_js_analyze/src/lint/nursery/${old_snake}.rs" + NEW_RULE_PATH="crates/biome_js_analyze/src/lint/${group}/${new_snake}.rs" + OLD_TEST_DIR="crates/biome_js_analyze/tests/specs/nursery/${old_name}" + NEW_TEST_DIR="crates/biome_js_analyze/tests/specs/${group}/${new_name}" + OLD_OPTIONS_PATH="crates/biome_rule_options/src/${old_snake}.rs" + NEW_OPTIONS_PATH="crates/biome_rule_options/src/${new_snake}.rs" + + echo " Moving rule file: $OLD_RULE_PATH -> $NEW_RULE_PATH" + + # Create target directory if it doesn't exist + mkdir -p "crates/biome_js_analyze/src/lint/${group}" + + # Move and update the rule file + if [ -f "$OLD_RULE_PATH" ]; then + # Copy the file (we'll update content in place) + cp "$OLD_RULE_PATH" "$NEW_RULE_PATH" + + # Update the rule file contents + echo " Updating rule file contents..." + + # Update the struct name in declare_lint_rule! + sed -i.bak "s/pub ${old_camel} {/pub ${new_camel} {/g" "$NEW_RULE_PATH" + + # Update the rule name + sed -i.bak "s/name: \"${old_name}\"/name: \"${new_name}\"/g" "$NEW_RULE_PATH" + + # Update any options imports if they exist + sed -i.bak "s/use biome_rule_options::${old_snake}::/use biome_rule_options::${new_snake}::/g" "$NEW_RULE_PATH" + sed -i.bak "s/${old_camel}Options/${new_camel}Options/g" "$NEW_RULE_PATH" + + # Clean up backup files + rm -f "${NEW_RULE_PATH}.bak" + + # Remove old file + rm "$OLD_RULE_PATH" + echo " Rule file moved and updated successfully" + else + echo " WARNING: Rule file not found: $OLD_RULE_PATH" + continue + fi + + # Move and update test directory + echo " Moving test directory: $OLD_TEST_DIR -> $NEW_TEST_DIR" + if [ -d "$OLD_TEST_DIR" ]; then + mkdir -p "crates/biome_js_analyze/tests/specs/${group}" + mv "$OLD_TEST_DIR" "$NEW_TEST_DIR" + echo " Test directory moved successfully" + else + echo " WARNING: Test directory not found: $OLD_TEST_DIR" + fi + + # Move and update rule options file if it exists + if [ -f "$OLD_OPTIONS_PATH" ]; then + echo " Moving options file: $OLD_OPTIONS_PATH -> $NEW_OPTIONS_PATH" + cp "$OLD_OPTIONS_PATH" "$NEW_OPTIONS_PATH" + + # Update struct name in options file + sed -i.bak "s/pub struct ${old_camel}Options/pub struct ${new_camel}Options/g" "$NEW_OPTIONS_PATH" + + # Clean up backup files + rm -f "${NEW_OPTIONS_PATH}.bak" + + # Remove old file + rm "$OLD_OPTIONS_PATH" + echo " Options file moved and updated successfully" + fi + + echo " Rule $old_name -> $new_name completed" + echo "" +done + +echo "All rules processed. Now updating diagnostic categories..." + +# Update diagnostic categories +CATEGORIES_FILE="crates/biome_diagnostics_categories/src/categories.rs" + +for rule in "${RULES[@]}"; do + IFS=':' read -r old_name new_name group <<< "$rule" + + echo "Updating diagnostic category: lint/nursery/$old_name -> lint/$group/$new_name" + + # Update the category mapping + sed -i.bak "s/\"lint\/nursery\/${old_name}\":/\"lint\/${group}\/${new_name}\":/g" "$CATEGORIES_FILE" + + # Update the URL mapping if it exists + sed -i.bak "s/rules\/${old_name/rules\/${new_name/g" "$CATEGORIES_FILE" +done + +# Clean up backup file +rm -f "${CATEGORIES_FILE}.bak" + +echo "Diagnostic categories updated successfully" + +# Update rule options mod.rs if it exists +OPTIONS_MOD_FILE="crates/biome_rule_options/src/lib.rs" +if [ -f "$OPTIONS_MOD_FILE" ]; then + echo "Updating rule options module declarations..." + + for rule in "${RULES[@]}"; do + IFS=':' read -r old_name new_name group <<< "$rule" + old_snake=$(camel_to_snake "$old_name") + new_snake=$(camel_to_snake "$new_name") + + # Update module declarations + sed -i.bak "s/pub mod ${old_snake};/pub mod ${new_snake};/g" "$OPTIONS_MOD_FILE" + done + + # Clean up backup file + rm -f "${OPTIONS_MOD_FILE}.bak" + echo "Rule options module declarations updated" +fi + +echo "" +echo "=== PROMOTION AND RENAMING COMPLETE ===" +echo "Next steps:" +echo "1. Run 'just gen-all' to regenerate analyzer code" +echo "2. Run 'just test' to update test snapshots and verify everything works" +echo "3. Check git status to see all changes" +echo "" +echo "Rules that were promoted and renamed:" +for rule in "${RULES[@]}"; do + IFS=':' read -r old_name new_name group <<< "$rule" + echo " - $old_name -> $group/$new_name" +done \ No newline at end of file From f4dd603b252ac00ccd5d40beb3cb5b3d85ceb385 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 6 Aug 2025 17:02:29 +0000 Subject: [PATCH 02/20] [autofix.ci] apply automated fixes --- .../src/use_named_graphql_operations.rs | 2 +- .../@biomejs/backend-jsonrpc/src/workspace.ts | 1848 ++++++++--------- .../@biomejs/biome/configuration_schema.json | 1192 +++++------ 3 files changed, 1496 insertions(+), 1546 deletions(-) diff --git a/crates/biome_rule_options/src/use_named_graphql_operations.rs b/crates/biome_rule_options/src/use_named_graphql_operations.rs index 699fe875ae0d..f7335271e3e1 100644 --- a/crates/biome_rule_options/src/use_named_graphql_operations.rs +++ b/crates/biome_rule_options/src/use_named_graphql_operations.rs @@ -3,4 +3,4 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[serde(rename_all = "camelCase", deny_unknown_fields, default)] -pub struct UseNamedGraphqlOperationsOptions {} \ No newline at end of file +pub struct UseNamedGraphqlOperationsOptions {} diff --git a/packages/@biomejs/backend-jsonrpc/src/workspace.ts b/packages/@biomejs/backend-jsonrpc/src/workspace.ts index 1211f13ff28b..12f2d07aa983 100644 --- a/packages/@biomejs/backend-jsonrpc/src/workspace.ts +++ b/packages/@biomejs/backend-jsonrpc/src/workspace.ts @@ -1040,6 +1040,10 @@ export interface A11y { * Enforce that a label element or component has a text label and an associated input. */ noLabelWithoutControl?: RuleConfiguration_for_NoLabelWithoutControlOptions; + /** + * Disallow use event handlers on non-interactive elements. + */ + noNoninteractiveElementInteractions?: RuleConfiguration_for_NoNoninteractiveElementInteractionsOptions; /** * Enforce that interactive ARIA roles are not assigned to non-interactive HTML elements. */ @@ -1185,6 +1189,10 @@ export interface Complexity { * Disallow functions that exceed a given Cognitive Complexity score. */ noExcessiveCognitiveComplexity?: RuleConfiguration_for_NoExcessiveCognitiveComplexityOptions; + /** + * Restrict the number of lines of code in a function. + */ + noExcessiveLinesPerFunction?: RuleConfiguration_for_NoExcessiveLinesPerFunctionOptions; /** * This rule enforces a maximum depth to nested describe() in test files. */ @@ -1201,6 +1209,14 @@ export interface Complexity { * Prefer for...of statement instead of Array.forEach. */ noForEach?: RuleConfiguration_for_NoForEachOptions; + /** + * Disallow shorthand type conversions. + */ + noImplicitCoercions?: RuleFixConfiguration_for_NoImplicitCoercionsOptions; + /** + * Disallow the use of the !important style. + */ + noImportantStyles?: RuleFixConfiguration_for_NoImportantStylesOptions; /** * This rule reports when a class has no non-static members, such as for a class used exclusively as a static namespace. */ @@ -1293,6 +1309,10 @@ export interface Complexity { * Promotes the use of .flatMap() when map().flat() are used together. */ useFlatMap?: RuleFixConfiguration_for_UseFlatMapOptions; + /** + * Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item. + */ + useIndexOf?: RuleFixConfiguration_for_UseIndexOfOptions; /** * Enforce the usage of a literal access to properties over computed property access. */ @@ -1354,6 +1374,10 @@ export interface Correctness { * Disallows empty destructuring patterns. */ noEmptyPattern?: RuleConfiguration_for_NoEmptyPatternOptions; + /** + * Disallow the use of __dirname and __filename in the global scope. + */ + noGlobalDirnameFilename?: RuleFixConfiguration_for_NoGlobalDirnameFilenameOptions; /** * Disallow calling global object properties as functions */ @@ -1390,6 +1414,10 @@ export interface Correctness { * Disallow missing var function for css variables. */ noMissingVarFunction?: RuleConfiguration_for_NoMissingVarFunctionOptions; + /** + * Disallows defining React components inside other components. + */ + noNestedComponentDefinitions?: RuleConfiguration_for_NoNestedComponentDefinitionsOptions; /** * Forbid the use of Node.js builtin modules. */ @@ -1406,10 +1434,22 @@ export interface Correctness { * Restrict imports of private exports. */ noPrivateImports?: RuleConfiguration_for_NoPrivateImportsOptions; + /** + * Disallow the use of process global. + */ + noProcessGlobal?: RuleFixConfiguration_for_NoProcessGlobalOptions; + /** + * Disallow assigning to React component props. + */ + noReactPropAssignments?: RuleConfiguration_for_NoReactPropAssignmentsOptions; /** * Prevent the usage of the return value of React.render. */ noRenderReturnValue?: RuleConfiguration_for_NoRenderReturnValueOptions; + /** + * Disallow the use of configured elements. + */ + noRestrictedElements?: RuleConfiguration_for_NoRestrictedElementsOptions; /** * Disallow assignments where both sides are exactly the same. */ @@ -1418,6 +1458,10 @@ export interface Correctness { * Disallow returning a value from a setter */ noSetterReturn?: RuleConfiguration_for_NoSetterReturnOptions; + /** + * Disallow destructuring props inside JSX components in Solid projects. + */ + noSolidDestructuredProps?: RuleConfiguration_for_NoSolidDestructuredPropsOptions; /** * Disallow comparison of expressions modifying the string case with non-compliant value. */ @@ -1530,10 +1574,30 @@ export interface Correctness { * Require calls to isNaN() when checking for NaN. */ useIsNan?: RuleFixConfiguration_for_UseIsNanOptions; + /** + * Enforces the use of with { type: "json" } for JSON module imports. + */ + useJsonImportAttributes?: RuleFixConfiguration_for_UseJsonImportAttributesOptions; /** * Disallow missing key props in iterators/collection literals. */ useJsxKeyInIterable?: RuleConfiguration_for_UseJsxKeyInIterableOptions; + /** + * Enforce specifying the name of GraphQL operations. + */ + useNamedGraphqlOperations?: RuleFixConfiguration_for_UseNamedGraphqlOperationsOptions; + /** + * Enforce the consistent use of the radix argument when using parseInt(). + */ + useParseIntRadix?: RuleFixConfiguration_for_UseParseIntRadixOptions; + /** + * Enforce JSDoc comment lines to start with a single asterisk, except for the first one. + */ + useSingleJsDocAsterisk?: RuleFixConfiguration_for_UseSingleJsDocAsteriskOptions; + /** + * Prevent the usage of static string literal id attribute on elements. + */ + useUniqueElementIds?: RuleConfiguration_for_UseUniqueElementIdsOptions; /** * Enforce "for" loop update clause moving the counter in the right direction. */ @@ -1551,74 +1615,22 @@ export interface Correctness { * A list of rules that belong to this group */ export interface Nursery { - /** - * Disallow await inside loops. - */ - noAwaitInLoop?: RuleConfiguration_for_NoAwaitInLoopOptions; - /** - * Disallow bitwise operators. - */ - noBitwiseOperators?: RuleConfiguration_for_NoBitwiseOperatorsOptions; - /** - * Disallow expressions where the operation doesn't affect the value - */ - noConstantBinaryExpression?: RuleConfiguration_for_NoConstantBinaryExpressionOptions; - /** - * Disallow destructuring props inside JSX components in Solid projects. - */ - noDestructuredProps?: RuleConfiguration_for_NoDestructuredPropsOptions; - /** - * Restrict the number of lines of code in a function. - */ - noExcessiveLinesPerFunction?: RuleConfiguration_for_NoExcessiveLinesPerFunctionOptions; /** * Require Promise-like statements to be handled appropriately. */ noFloatingPromises?: RuleFixConfiguration_for_NoFloatingPromisesOptions; - /** - * Disallow the use of __dirname and __filename in the global scope. - */ - noGlobalDirnameFilename?: RuleFixConfiguration_for_NoGlobalDirnameFilenameOptions; - /** - * Disallow shorthand type conversions. - */ - noImplicitCoercion?: RuleFixConfiguration_for_NoImplicitCoercionOptions; /** * Prevent import cycles. */ noImportCycles?: RuleConfiguration_for_NoImportCyclesOptions; - /** - * Disallow the use of the !important style. - */ - noImportantStyles?: RuleFixConfiguration_for_NoImportantStylesOptions; - /** - * Reports usage of "magic numbers" — numbers used directly instead of being assigned to named constants. - */ - noMagicNumbers?: RuleConfiguration_for_NoMagicNumbersOptions; /** * Disallow Promises to be used in places where they are almost certainly a mistake. */ noMisusedPromises?: RuleFixConfiguration_for_NoMisusedPromisesOptions; - /** - * Disallows defining React components inside other components. - */ - noNestedComponentDefinitions?: RuleConfiguration_for_NoNestedComponentDefinitionsOptions; - /** - * Prevent client components from being async functions. - */ - noNextAsyncClientComponent?: RuleConfiguration_for_NoNextAsyncClientComponentOptions; /** * Disallow non-null assertions after optional chaining expressions. */ noNonNullAssertedOptionalChain?: RuleConfiguration_for_NoNonNullAssertedOptionalChainOptions; - /** - * Disallow use event handlers on non-interactive elements. - */ - noNoninteractiveElementInteractions?: RuleConfiguration_for_NoNoninteractiveElementInteractionsOptions; - /** - * Disallow the use of process global. - */ - noProcessGlobal?: RuleFixConfiguration_for_NoProcessGlobalOptions; /** * Disallow the use if quickfix.biome inside editor settings file. */ @@ -1627,14 +1639,6 @@ export interface Nursery { * Disallow useVisibleTask$() functions in Qwik components. */ noQwikUseVisibleTask?: RuleConfiguration_for_NoQwikUseVisibleTaskOptions; - /** - * Disallow assigning to React component props. - */ - noReactPropAssign?: RuleConfiguration_for_NoReactPropAssignOptions; - /** - * Disallow the use of configured elements. - */ - noRestrictedElements?: RuleConfiguration_for_NoRestrictedElementsOptions; /** * Disallow usage of sensitive data such as API keys and tokens. */ @@ -1643,18 +1647,6 @@ export interface Nursery { * Disallow variable declarations from shadowing variables declared in the outer scope. */ noShadow?: RuleConfiguration_for_NoShadowOptions; - /** - * Prevents the use of the TypeScript directive @ts-ignore. - */ - noTsIgnore?: RuleFixConfiguration_for_NoTsIgnoreOptions; - /** - * Disallow let or var variables that are read but never assigned. - */ - noUnassignedVariables?: RuleConfiguration_for_NoUnassignedVariablesOptions; - /** - * Disallow unknown at-rules. - */ - noUnknownAtRule?: RuleConfiguration_for_NoUnknownAtRuleOptions; /** * Disallow unnecessary type-based conditions that can be statically determined as redundant. */ @@ -1663,26 +1655,10 @@ export interface Nursery { * Warn when importing non-existing exports. */ noUnresolvedImports?: RuleConfiguration_for_NoUnresolvedImportsOptions; - /** - * Prevent duplicate polyfills from Polyfill.io. - */ - noUnwantedPolyfillio?: RuleConfiguration_for_NoUnwantedPolyfillioOptions; - /** - * Disallow useless backreferences in regular expression literals that always match an empty string. - */ - noUselessBackrefInRegex?: RuleConfiguration_for_NoUselessBackrefInRegexOptions; /** * Disallow unnecessary escapes in string literals. */ noUselessEscapeInString?: RuleFixConfiguration_for_NoUselessEscapeInStringOptions; - /** - * Disallow the use of useless undefined. - */ - noUselessUndefined?: RuleFixConfiguration_for_NoUselessUndefinedOptions; - /** - * Enforce that Vue component data options are declared as functions. - */ - noVueDataObjectDeclaration?: RuleFixConfiguration_for_NoVueDataObjectDeclarationOptions; /** * Disallow reserved keys in Vue component data and computed properties. */ @@ -1695,22 +1671,10 @@ export interface Nursery { * It enables the recommended rules for this group */ recommended?: boolean; - /** - * Enforce that getters and setters for the same property are adjacent in class and object definitions. - */ - useAdjacentGetterSetter?: RuleConfiguration_for_UseAdjacentGetterSetterOptions; /** * Enforces href attribute for \
elements. */ useAnchorHref?: RuleConfiguration_for_UseAnchorHrefOptions; - /** - * Require the consistent declaration of object literals. Defaults to explicit definitions. - */ - useConsistentObjectDefinition?: RuleFixConfiguration_for_UseConsistentObjectDefinitionOptions; - /** - * Use static Response methods instead of new Response() constructor when possible. - */ - useConsistentResponse?: RuleFixConfiguration_for_UseConsistentResponseOptions; /** * Enforce type definitions to consistently use either interface or type. */ @@ -1723,58 +1687,14 @@ export interface Nursery { * Enforce types in functions, methods, variables, and parameters. */ useExplicitType?: RuleConfiguration_for_UseExplicitTypeOptions; - /** - * Require that all exports are declared after all non-export statements. - */ - useExportsLast?: RuleConfiguration_for_UseExportsLastOptions; - /** - * Enforce using Solid's \ component for mapping an array to JSX elements. - */ - useForComponent?: RuleConfiguration_for_UseForComponentOptions; - /** - * Ensure the preconnect attribute is used when using Google Fonts. - */ - useGoogleFontPreconnect?: RuleFixConfiguration_for_UseGoogleFontPreconnectOptions; /** * Enforces that \ elements have both width and height attributes. */ useImageSize?: RuleConfiguration_for_UseImageSizeOptions; - /** - * Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item. - */ - useIndexOf?: RuleFixConfiguration_for_UseIndexOfOptions; - /** - * Enforce consistent return values in iterable callbacks. - */ - useIterableCallbackReturn?: RuleConfiguration_for_UseIterableCallbackReturnOptions; - /** - * Enforces the use of with { type: "json" } for JSON module imports. - */ - useJsonImportAttribute?: RuleFixConfiguration_for_UseJsonImportAttributeOptions; - /** - * Enforce a maximum number of parameters in function definitions. - */ - useMaxParams?: RuleConfiguration_for_UseMaxParamsOptions; /** * Enforce specifying the name of GraphQL operations. */ useNamedOperation?: RuleFixConfiguration_for_UseNamedOperationOptions; - /** - * Validates that all enum values are capitalized. - */ - useNamingConvention?: RuleConfiguration_for_UseNamingConventionOptions; - /** - * Enforce the use of numeric separators in numeric literals. - */ - useNumericSeparators?: RuleFixConfiguration_for_UseNumericSeparatorsOptions; - /** - * Prefer object spread over Object.assign() when constructing new objects. - */ - useObjectSpread?: RuleFixConfiguration_for_UseObjectSpreadOptions; - /** - * Enforce the consistent use of the radix argument when using parseInt(). - */ - useParseIntRadix?: RuleFixConfiguration_for_UseParseIntRadixOptions; /** * Prefer using the class prop as a classlist over the classnames helper. */ @@ -1783,30 +1703,10 @@ export interface Nursery { * Enforce that components are defined as functions and never as classes. */ useReactFunctionComponents?: RuleConfiguration_for_UseReactFunctionComponentsOptions; - /** - * Enforce marking members as readonly if they are never modified outside the constructor. - */ - useReadonlyClassProperties?: RuleFixConfiguration_for_UseReadonlyClassPropertiesOptions; - /** - * Enforce JSDoc comment lines to start with a single asterisk, except for the first one. - */ - useSingleJsDocAsterisk?: RuleFixConfiguration_for_UseSingleJsDocAsteriskOptions; /** * Enforce the sorting of CSS utility classes. */ useSortedClasses?: RuleFixConfiguration_for_UseSortedClassesOptions; - /** - * Require a description parameter for the Symbol(). - */ - useSymbolDescription?: RuleConfiguration_for_UseSymbolDescriptionOptions; - /** - * Disallow overload signatures that can be unified into a single signature. - */ - useUnifiedTypeSignature?: RuleFixConfiguration_for_UseUnifiedTypeSignatureOptions; - /** - * Prevent the usage of static string literal id attribute on elements. - */ - useUniqueElementIds?: RuleConfiguration_for_UseUniqueElementIdsOptions; } /** * A list of rules that belong to this group @@ -1816,6 +1716,10 @@ export interface Performance { * Disallow the use of spread (...) syntax on accumulators. */ noAccumulatingSpread?: RuleConfiguration_for_NoAccumulatingSpreadOptions; + /** + * Disallow await inside loops. + */ + noAwaitInLoops?: RuleConfiguration_for_NoAwaitInLoopsOptions; /** * Disallow the use of barrel file. */ @@ -1840,10 +1744,22 @@ export interface Performance { * Avoid re-export all. */ noReExportAll?: RuleConfiguration_for_NoReExportAllOptions; + /** + * Prevent duplicate polyfills from Polyfill.io. + */ + noUnwantedPolyfillio?: RuleConfiguration_for_NoUnwantedPolyfillioOptions; /** * It enables the recommended rules for this group */ recommended?: boolean; + /** + * Ensure the preconnect attribute is used when using Google Fonts. + */ + useGoogleFontPreconnect?: RuleFixConfiguration_for_UseGoogleFontPreconnectOptions; + /** + * Enforce using Solid's \ component for mapping an array to JSX elements. + */ + useSolidForComponent?: RuleConfiguration_for_UseSolidForComponentOptions; /** * Require regex literals to be declared at the top level. */ @@ -1914,6 +1830,10 @@ export interface Style { * Disallow type annotations for variables, parameters, and class properties initialized with a literal expression. */ noInferrableTypes?: RuleFixConfiguration_for_NoInferrableTypesOptions; + /** + * Reports usage of "magic numbers" — numbers used directly instead of being assigned to named constants. + */ + noMagicNumbers?: RuleConfiguration_for_NoMagicNumbersOptions; /** * Disallow the use of TypeScript's namespaces. */ @@ -1970,6 +1890,10 @@ export interface Style { * Disallow else block when the if block breaks early. */ noUselessElse?: RuleFixConfiguration_for_NoUselessElseOptions; + /** + * Disallow the use of useless undefined. + */ + noUselessUndefined?: RuleFixConfiguration_for_NoUselessUndefinedOptions; /** * Disallow use of @value rule in css modules. */ @@ -2026,6 +1950,10 @@ export interface Style { * Require consistent accessibility modifiers on class properties and methods. */ useConsistentMemberAccessibility?: RuleConfiguration_for_UseConsistentMemberAccessibilityOptions; + /** + * Require the consistent declaration of object literals. Defaults to explicit definitions. + */ + useConsistentObjectDefinitions?: RuleFixConfiguration_for_UseConsistentObjectDefinitionsOptions; /** * Require const declarations for variables that are only assigned once. */ @@ -2058,6 +1986,10 @@ export interface Style { * Promotes the use of export type for types. */ useExportType?: RuleFixConfiguration_for_UseExportTypeOptions; + /** + * Require that all exports are declared after all non-export statements. + */ + useExportsLast?: RuleConfiguration_for_UseExportsLastOptions; /** * Enforce naming conventions for JavaScript and TypeScript filenames. */ @@ -2070,6 +2002,10 @@ export interface Style { * This rule enforces the use of \<>...\ over \...\. */ useFragmentSyntax?: RuleFixConfiguration_for_UseFragmentSyntaxOptions; + /** + * Enforce that getters and setters for the same property are adjacent in class and object definitions. + */ + useGroupedAccessorPairs?: RuleConfiguration_for_UseGroupedAccessorPairsOptions; /** * Promotes the use of import type for types. */ @@ -2079,9 +2015,9 @@ export interface Style { */ useLiteralEnumMembers?: RuleConfiguration_for_UseLiteralEnumMembersOptions; /** - * Enforce naming conventions for everything across a codebase. + * Validates that all enum values are capitalized. */ - useNamingConvention?: RuleFixConfiguration_for_UseNamingConventionOptions; + useNamingConvention?: RuleConfiguration_for_UseNamingConventionOptions; /** * Promotes the usage of node:assert/strict over node:assert. */ @@ -2094,6 +2030,18 @@ export interface Style { * Use the Number properties instead of global ones. */ useNumberNamespace?: RuleFixConfiguration_for_UseNumberNamespaceOptions; + /** + * Enforce the use of numeric separators in numeric literals. + */ + useNumericSeparators?: RuleFixConfiguration_for_UseNumericSeparatorsOptions; + /** + * Prefer object spread over Object.assign() when constructing new objects. + */ + useObjectSpread?: RuleFixConfiguration_for_UseObjectSpreadOptions; + /** + * Enforce marking members as readonly if they are never modified outside the constructor. + */ + useReadonlyClassProperties?: RuleFixConfiguration_for_UseReadonlyClassPropertiesOptions; /** * Prevent extra closing tags for components without children. */ @@ -2110,6 +2058,10 @@ export interface Style { * Disallow multiple variable declarations in the same variable statement */ useSingleVarDeclarator?: RuleFixConfiguration_for_UseSingleVarDeclaratorOptions; + /** + * Require a description parameter for the Symbol(). + */ + useSymbolDescription?: RuleConfiguration_for_UseSymbolDescriptionOptions; /** * Prefer template literals over string concatenation. */ @@ -2126,8 +2078,12 @@ export interface Style { * Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight(). */ useTrimStartEnd?: RuleFixConfiguration_for_UseTrimStartEndOptions; -} -/** + /** + * Disallow overload signatures that can be unified into a single signature. + */ + useUnifiedTypeSignatures?: RuleFixConfiguration_for_UseUnifiedTypeSignaturesOptions; +} +/** * A list of rules that belong to this group */ export interface Suspicious { @@ -2151,6 +2107,10 @@ export interface Suspicious { * Disallows using an async function as a Promise executor. */ noAsyncPromiseExecutor?: RuleConfiguration_for_NoAsyncPromiseExecutorOptions; + /** + * Disallow bitwise operators. + */ + noBitwiseOperators?: RuleConfiguration_for_NoBitwiseOperatorsOptions; /** * Disallow reassigning exceptions in catch clauses. */ @@ -2183,6 +2143,10 @@ export interface Suspicious { * Disallow TypeScript const enum */ noConstEnum?: RuleFixConfiguration_for_NoConstEnumOptions; + /** + * Disallow expressions where the operation doesn't affect the value + */ + noConstantBinaryExpressions?: RuleConfiguration_for_NoConstantBinaryExpressionsOptions; /** * Prevents from having control characters and some escape sequences that match control characters in regular expression literals. */ @@ -2399,6 +2363,18 @@ export interface Suspicious { * Disallow then property. */ noThenProperty?: RuleConfiguration_for_NoThenPropertyOptions; + /** + * Prevents the use of the TypeScript directive @ts-ignore. + */ + noTsIgnore?: RuleFixConfiguration_for_NoTsIgnoreOptions; + /** + * Disallow let or var variables that are read but never assigned. + */ + noUnassignedVariables?: RuleConfiguration_for_NoUnassignedVariablesOptions; + /** + * Disallow unknown at-rules. + */ + noUnknownAtRule?: RuleConfiguration_for_NoUnknownAtRuleOptions; /** * Disallow unsafe declaration merging between interfaces and classes. */ @@ -2407,6 +2383,14 @@ export interface Suspicious { * Disallow using unsafe negation. */ noUnsafeNegation?: RuleFixConfiguration_for_NoUnsafeNegationOptions; + /** + * Disallow useless backreferences in regular expression literals that always match an empty string. + */ + noUselessRegexBackrefs?: RuleConfiguration_for_NoUselessRegexBackrefsOptions; + /** + * Disallow unnecessary escapes in string literals. + */ + noUselessStringEscapes?: RuleFixConfiguration_for_NoUselessStringEscapesOptions; /** * Disallow the use of var */ @@ -2427,6 +2411,10 @@ export interface Suspicious { * Ensure async functions utilize await. */ useAwait?: RuleConfiguration_for_UseAwaitOptions; + /** + * Enforce consistent return values in iterable callbacks. + */ + useConsistentIterableCallbackReturnValues?: RuleConfiguration_for_UseConsistentIterableCallbackReturnValuesOptions; /** * Enforce default clauses in switch statements to be last */ @@ -2459,6 +2447,10 @@ export interface Suspicious { * Enforce using the digits argument with Number#toFixed(). */ useNumberToFixedDigitsArgument?: RuleFixConfiguration_for_UseNumberToFixedDigitsArgumentOptions; + /** + * Use static Response methods instead of new Response() constructor when possible. + */ + useStaticResponseMethods?: RuleFixConfiguration_for_UseStaticResponseMethodsOptions; /** * Enforce the use of the directive "use strict" in script files. */ @@ -2529,6 +2521,9 @@ export type RuleFixConfiguration_for_NoInteractiveElementToNoninteractiveRoleOpt export type RuleConfiguration_for_NoLabelWithoutControlOptions = | RulePlainConfiguration | RuleWithOptions_for_NoLabelWithoutControlOptions; +export type RuleConfiguration_for_NoNoninteractiveElementInteractionsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoNoninteractiveElementInteractionsOptions; export type RuleFixConfiguration_for_NoNoninteractiveElementToInteractiveRoleOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoNoninteractiveElementToInteractiveRoleOptions; @@ -2631,6 +2626,9 @@ export type RuleConfiguration_for_NoEmptyTypeParametersOptions = export type RuleConfiguration_for_NoExcessiveCognitiveComplexityOptions = | RulePlainConfiguration | RuleWithOptions_for_NoExcessiveCognitiveComplexityOptions; +export type RuleConfiguration_for_NoExcessiveLinesPerFunctionOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoExcessiveLinesPerFunctionOptions; export type RuleConfiguration_for_NoExcessiveNestedTestSuitesOptions = | RulePlainConfiguration | RuleWithOptions_for_NoExcessiveNestedTestSuitesOptions; @@ -2643,6 +2641,12 @@ export type RuleFixConfiguration_for_NoFlatMapIdentityOptions = export type RuleConfiguration_for_NoForEachOptions = | RulePlainConfiguration | RuleWithOptions_for_NoForEachOptions; +export type RuleFixConfiguration_for_NoImplicitCoercionsOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_NoImplicitCoercionsOptions; +export type RuleFixConfiguration_for_NoImportantStylesOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_NoImportantStylesOptions; export type RuleConfiguration_for_NoStaticOnlyClassOptions = | RulePlainConfiguration | RuleWithOptions_for_NoStaticOnlyClassOptions; @@ -2709,6 +2713,9 @@ export type RuleFixConfiguration_for_UseDateNowOptions = export type RuleFixConfiguration_for_UseFlatMapOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseFlatMapOptions; +export type RuleFixConfiguration_for_UseIndexOfOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseIndexOfOptions; export type RuleFixConfiguration_for_UseLiteralKeysOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseLiteralKeysOptions; @@ -2751,6 +2758,9 @@ export type RuleConfiguration_for_NoEmptyCharacterClassInRegexOptions = export type RuleConfiguration_for_NoEmptyPatternOptions = | RulePlainConfiguration | RuleWithOptions_for_NoEmptyPatternOptions; +export type RuleFixConfiguration_for_NoGlobalDirnameFilenameOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_NoGlobalDirnameFilenameOptions; export type RuleConfiguration_for_NoGlobalObjectCallsOptions = | RulePlainConfiguration | RuleWithOptions_for_NoGlobalObjectCallsOptions; @@ -2778,6 +2788,9 @@ export type RuleConfiguration_for_NoInvalidUseBeforeDeclarationOptions = export type RuleConfiguration_for_NoMissingVarFunctionOptions = | RulePlainConfiguration | RuleWithOptions_for_NoMissingVarFunctionOptions; +export type RuleConfiguration_for_NoNestedComponentDefinitionsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoNestedComponentDefinitionsOptions; export type RuleConfiguration_for_NoNodejsModulesOptions = | RulePlainConfiguration | RuleWithOptions_for_NoNodejsModulesOptions; @@ -2790,15 +2803,27 @@ export type RuleConfiguration_for_NoPrecisionLossOptions = export type RuleConfiguration_for_NoPrivateImportsOptions = | RulePlainConfiguration | RuleWithOptions_for_NoPrivateImportsOptions; +export type RuleFixConfiguration_for_NoProcessGlobalOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_NoProcessGlobalOptions; +export type RuleConfiguration_for_NoReactPropAssignmentsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoReactPropAssignmentsOptions; export type RuleConfiguration_for_NoRenderReturnValueOptions = | RulePlainConfiguration | RuleWithOptions_for_NoRenderReturnValueOptions; +export type RuleConfiguration_for_NoRestrictedElementsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoRestrictedElementsOptions; export type RuleConfiguration_for_NoSelfAssignOptions = | RulePlainConfiguration | RuleWithOptions_for_NoSelfAssignOptions; export type RuleConfiguration_for_NoSetterReturnOptions = | RulePlainConfiguration | RuleWithOptions_for_NoSetterReturnOptions; +export type RuleConfiguration_for_NoSolidDestructuredPropsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoSolidDestructuredPropsOptions; export type RuleFixConfiguration_for_NoStringCaseMismatchOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoStringCaseMismatchOptions; @@ -2880,9 +2905,24 @@ export type RuleFixConfiguration_for_UseImportExtensionsOptions = export type RuleFixConfiguration_for_UseIsNanOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseIsNanOptions; +export type RuleFixConfiguration_for_UseJsonImportAttributesOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseJsonImportAttributesOptions; export type RuleConfiguration_for_UseJsxKeyInIterableOptions = | RulePlainConfiguration | RuleWithOptions_for_UseJsxKeyInIterableOptions; +export type RuleFixConfiguration_for_UseNamedGraphqlOperationsOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseNamedGraphqlOperationsOptions; +export type RuleFixConfiguration_for_UseParseIntRadixOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseParseIntRadixOptions; +export type RuleFixConfiguration_for_UseSingleJsDocAsteriskOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseSingleJsDocAsteriskOptions; +export type RuleConfiguration_for_UseUniqueElementIdsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_UseUniqueElementIdsOptions; export type RuleConfiguration_for_UseValidForDirectionOptions = | RulePlainConfiguration | RuleWithOptions_for_UseValidForDirectionOptions; @@ -2892,123 +2932,48 @@ export type RuleFixConfiguration_for_UseValidTypeofOptions = export type RuleConfiguration_for_UseYieldOptions = | RulePlainConfiguration | RuleWithOptions_for_UseYieldOptions; -export type RuleConfiguration_for_NoAwaitInLoopOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoAwaitInLoopOptions; -export type RuleConfiguration_for_NoBitwiseOperatorsOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoBitwiseOperatorsOptions; -export type RuleConfiguration_for_NoConstantBinaryExpressionOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoConstantBinaryExpressionOptions; -export type RuleConfiguration_for_NoDestructuredPropsOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoDestructuredPropsOptions; -export type RuleConfiguration_for_NoExcessiveLinesPerFunctionOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoExcessiveLinesPerFunctionOptions; export type RuleFixConfiguration_for_NoFloatingPromisesOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoFloatingPromisesOptions; -export type RuleFixConfiguration_for_NoGlobalDirnameFilenameOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_NoGlobalDirnameFilenameOptions; -export type RuleFixConfiguration_for_NoImplicitCoercionOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_NoImplicitCoercionOptions; export type RuleConfiguration_for_NoImportCyclesOptions = | RulePlainConfiguration | RuleWithOptions_for_NoImportCyclesOptions; -export type RuleFixConfiguration_for_NoImportantStylesOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_NoImportantStylesOptions; -export type RuleConfiguration_for_NoMagicNumbersOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoMagicNumbersOptions; export type RuleFixConfiguration_for_NoMisusedPromisesOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoMisusedPromisesOptions; -export type RuleConfiguration_for_NoNestedComponentDefinitionsOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoNestedComponentDefinitionsOptions; -export type RuleConfiguration_for_NoNextAsyncClientComponentOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoNextAsyncClientComponentOptions; export type RuleConfiguration_for_NoNonNullAssertedOptionalChainOptions = | RulePlainConfiguration | RuleWithOptions_for_NoNonNullAssertedOptionalChainOptions; -export type RuleConfiguration_for_NoNoninteractiveElementInteractionsOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoNoninteractiveElementInteractionsOptions; -export type RuleFixConfiguration_for_NoProcessGlobalOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_NoProcessGlobalOptions; export type RuleFixConfiguration_for_NoQuickfixBiomeOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoQuickfixBiomeOptions; export type RuleConfiguration_for_NoQwikUseVisibleTaskOptions = | RulePlainConfiguration | RuleWithOptions_for_NoQwikUseVisibleTaskOptions; -export type RuleConfiguration_for_NoReactPropAssignOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoReactPropAssignOptions; -export type RuleConfiguration_for_NoRestrictedElementsOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoRestrictedElementsOptions; export type RuleConfiguration_for_NoSecretsOptions = | RulePlainConfiguration | RuleWithOptions_for_NoSecretsOptions; export type RuleConfiguration_for_NoShadowOptions = | RulePlainConfiguration | RuleWithOptions_for_NoShadowOptions; -export type RuleFixConfiguration_for_NoTsIgnoreOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_NoTsIgnoreOptions; -export type RuleConfiguration_for_NoUnassignedVariablesOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoUnassignedVariablesOptions; -export type RuleConfiguration_for_NoUnknownAtRuleOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoUnknownAtRuleOptions; export type RuleConfiguration_for_NoUnnecessaryConditionsOptions = | RulePlainConfiguration | RuleWithOptions_for_NoUnnecessaryConditionsOptions; export type RuleConfiguration_for_NoUnresolvedImportsOptions = | RulePlainConfiguration | RuleWithOptions_for_NoUnresolvedImportsOptions; -export type RuleConfiguration_for_NoUnwantedPolyfillioOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoUnwantedPolyfillioOptions; -export type RuleConfiguration_for_NoUselessBackrefInRegexOptions = - | RulePlainConfiguration - | RuleWithOptions_for_NoUselessBackrefInRegexOptions; export type RuleFixConfiguration_for_NoUselessEscapeInStringOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoUselessEscapeInStringOptions; -export type RuleFixConfiguration_for_NoUselessUndefinedOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_NoUselessUndefinedOptions; -export type RuleFixConfiguration_for_NoVueDataObjectDeclarationOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_NoVueDataObjectDeclarationOptions; export type RuleConfiguration_for_NoVueReservedKeysOptions = | RulePlainConfiguration | RuleWithOptions_for_NoVueReservedKeysOptions; export type RuleConfiguration_for_NoVueReservedPropsOptions = | RulePlainConfiguration | RuleWithOptions_for_NoVueReservedPropsOptions; -export type RuleConfiguration_for_UseAdjacentGetterSetterOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseAdjacentGetterSetterOptions; export type RuleConfiguration_for_UseAnchorHrefOptions = | RulePlainConfiguration | RuleWithOptions_for_UseAnchorHrefOptions; -export type RuleFixConfiguration_for_UseConsistentObjectDefinitionOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseConsistentObjectDefinitionOptions; -export type RuleFixConfiguration_for_UseConsistentResponseOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseConsistentResponseOptions; export type RuleFixConfiguration_for_UseConsistentTypeDefinitionsOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseConsistentTypeDefinitionsOptions; @@ -3018,72 +2983,27 @@ export type RuleFixConfiguration_for_UseExhaustiveSwitchCasesOptions = export type RuleConfiguration_for_UseExplicitTypeOptions = | RulePlainConfiguration | RuleWithOptions_for_UseExplicitTypeOptions; -export type RuleConfiguration_for_UseExportsLastOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseExportsLastOptions; -export type RuleConfiguration_for_UseForComponentOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseForComponentOptions; -export type RuleFixConfiguration_for_UseGoogleFontPreconnectOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseGoogleFontPreconnectOptions; export type RuleConfiguration_for_UseImageSizeOptions = | RulePlainConfiguration | RuleWithOptions_for_UseImageSizeOptions; -export type RuleFixConfiguration_for_UseIndexOfOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseIndexOfOptions; -export type RuleConfiguration_for_UseIterableCallbackReturnOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseIterableCallbackReturnOptions; -export type RuleFixConfiguration_for_UseJsonImportAttributeOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseJsonImportAttributeOptions; -export type RuleConfiguration_for_UseMaxParamsOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseMaxParamsOptions; export type RuleFixConfiguration_for_UseNamedOperationOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseNamedOperationOptions; -export type RuleConfiguration_for_UseNamingConventionOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseNamingConventionOptions; -export type RuleFixConfiguration_for_UseNumericSeparatorsOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseNumericSeparatorsOptions; -export type RuleFixConfiguration_for_UseObjectSpreadOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseObjectSpreadOptions; -export type RuleFixConfiguration_for_UseParseIntRadixOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseParseIntRadixOptions; export type RuleConfiguration_for_UseQwikClasslistOptions = | RulePlainConfiguration | RuleWithOptions_for_UseQwikClasslistOptions; export type RuleConfiguration_for_UseReactFunctionComponentsOptions = | RulePlainConfiguration | RuleWithOptions_for_UseReactFunctionComponentsOptions; -export type RuleFixConfiguration_for_UseReadonlyClassPropertiesOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseReadonlyClassPropertiesOptions; -export type RuleFixConfiguration_for_UseSingleJsDocAsteriskOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseSingleJsDocAsteriskOptions; export type RuleFixConfiguration_for_UseSortedClassesOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseSortedClassesOptions; -export type RuleConfiguration_for_UseSymbolDescriptionOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseSymbolDescriptionOptions; -export type RuleFixConfiguration_for_UseUnifiedTypeSignatureOptions = - | RulePlainConfiguration - | RuleWithFixOptions_for_UseUnifiedTypeSignatureOptions; -export type RuleConfiguration_for_UseUniqueElementIdsOptions = - | RulePlainConfiguration - | RuleWithOptions_for_UseUniqueElementIdsOptions; export type RuleConfiguration_for_NoAccumulatingSpreadOptions = | RulePlainConfiguration | RuleWithOptions_for_NoAccumulatingSpreadOptions; +export type RuleConfiguration_for_NoAwaitInLoopsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoAwaitInLoopsOptions; export type RuleConfiguration_for_NoBarrelFileOptions = | RulePlainConfiguration | RuleWithOptions_for_NoBarrelFileOptions; @@ -3102,6 +3022,15 @@ export type RuleConfiguration_for_NoNamespaceImportOptions = export type RuleConfiguration_for_NoReExportAllOptions = | RulePlainConfiguration | RuleWithOptions_for_NoReExportAllOptions; +export type RuleConfiguration_for_NoUnwantedPolyfillioOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoUnwantedPolyfillioOptions; +export type RuleFixConfiguration_for_UseGoogleFontPreconnectOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseGoogleFontPreconnectOptions; +export type RuleConfiguration_for_UseSolidForComponentOptions = + | RulePlainConfiguration + | RuleWithOptions_for_UseSolidForComponentOptions; export type RuleConfiguration_for_UseTopLevelRegexOptions = | RulePlainConfiguration | RuleWithOptions_for_UseTopLevelRegexOptions; @@ -3144,6 +3073,9 @@ export type RuleFixConfiguration_for_NoImplicitBooleanOptions = export type RuleFixConfiguration_for_NoInferrableTypesOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoInferrableTypesOptions; +export type RuleConfiguration_for_NoMagicNumbersOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoMagicNumbersOptions; export type RuleConfiguration_for_NoNamespaceOptions = | RulePlainConfiguration | RuleWithOptions_for_NoNamespaceOptions; @@ -3186,6 +3118,9 @@ export type RuleFixConfiguration_for_NoUnusedTemplateLiteralOptions = export type RuleFixConfiguration_for_NoUselessElseOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoUselessElseOptions; +export type RuleFixConfiguration_for_NoUselessUndefinedOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_NoUselessUndefinedOptions; export type RuleConfiguration_for_NoValueAtRuleOptions = | RulePlainConfiguration | RuleWithOptions_for_NoValueAtRuleOptions; @@ -3225,6 +3160,9 @@ export type RuleFixConfiguration_for_UseConsistentCurlyBracesOptions = export type RuleConfiguration_for_UseConsistentMemberAccessibilityOptions = | RulePlainConfiguration | RuleWithOptions_for_UseConsistentMemberAccessibilityOptions; +export type RuleFixConfiguration_for_UseConsistentObjectDefinitionsOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseConsistentObjectDefinitionsOptions; export type RuleFixConfiguration_for_UseConstOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseConstOptions; @@ -3249,6 +3187,9 @@ export type RuleFixConfiguration_for_UseExponentiationOperatorOptions = export type RuleFixConfiguration_for_UseExportTypeOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseExportTypeOptions; +export type RuleConfiguration_for_UseExportsLastOptions = + | RulePlainConfiguration + | RuleWithOptions_for_UseExportsLastOptions; export type RuleConfiguration_for_UseFilenamingConventionOptions = | RulePlainConfiguration | RuleWithOptions_for_UseFilenamingConventionOptions; @@ -3258,15 +3199,18 @@ export type RuleConfiguration_for_UseForOfOptions = export type RuleFixConfiguration_for_UseFragmentSyntaxOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseFragmentSyntaxOptions; +export type RuleConfiguration_for_UseGroupedAccessorPairsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_UseGroupedAccessorPairsOptions; export type RuleFixConfiguration_for_UseImportTypeOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseImportTypeOptions; export type RuleConfiguration_for_UseLiteralEnumMembersOptions = | RulePlainConfiguration | RuleWithOptions_for_UseLiteralEnumMembersOptions; -export type RuleFixConfiguration_for_UseNamingConventionOptions = +export type RuleConfiguration_for_UseNamingConventionOptions = | RulePlainConfiguration - | RuleWithFixOptions_for_UseNamingConventionOptions; + | RuleWithOptions_for_UseNamingConventionOptions; export type RuleFixConfiguration_for_UseNodeAssertStrictOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseNodeAssertStrictOptions; @@ -3276,6 +3220,15 @@ export type RuleFixConfiguration_for_UseNodejsImportProtocolOptions = export type RuleFixConfiguration_for_UseNumberNamespaceOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseNumberNamespaceOptions; +export type RuleFixConfiguration_for_UseNumericSeparatorsOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseNumericSeparatorsOptions; +export type RuleFixConfiguration_for_UseObjectSpreadOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseObjectSpreadOptions; +export type RuleFixConfiguration_for_UseReadonlyClassPropertiesOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseReadonlyClassPropertiesOptions; export type RuleFixConfiguration_for_UseSelfClosingElementsOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseSelfClosingElementsOptions; @@ -3288,6 +3241,9 @@ export type RuleFixConfiguration_for_UseShorthandFunctionTypeOptions = export type RuleFixConfiguration_for_UseSingleVarDeclaratorOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseSingleVarDeclaratorOptions; +export type RuleConfiguration_for_UseSymbolDescriptionOptions = + | RulePlainConfiguration + | RuleWithOptions_for_UseSymbolDescriptionOptions; export type RuleFixConfiguration_for_UseTemplateOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseTemplateOptions; @@ -3300,6 +3256,9 @@ export type RuleConfiguration_for_UseThrowOnlyErrorOptions = export type RuleFixConfiguration_for_UseTrimStartEndOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseTrimStartEndOptions; +export type RuleFixConfiguration_for_UseUnifiedTypeSignaturesOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseUnifiedTypeSignaturesOptions; export type RuleConfiguration_for_NoAlertOptions = | RulePlainConfiguration | RuleWithOptions_for_NoAlertOptions; @@ -3315,6 +3274,9 @@ export type RuleConfiguration_for_NoAssignInExpressionsOptions = export type RuleConfiguration_for_NoAsyncPromiseExecutorOptions = | RulePlainConfiguration | RuleWithOptions_for_NoAsyncPromiseExecutorOptions; +export type RuleConfiguration_for_NoBitwiseOperatorsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoBitwiseOperatorsOptions; export type RuleConfiguration_for_NoCatchAssignOptions = | RulePlainConfiguration | RuleWithOptions_for_NoCatchAssignOptions; @@ -3339,6 +3301,9 @@ export type RuleFixConfiguration_for_NoConsoleOptions = export type RuleFixConfiguration_for_NoConstEnumOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoConstEnumOptions; +export type RuleConfiguration_for_NoConstantBinaryExpressionsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoConstantBinaryExpressionsOptions; export type RuleConfiguration_for_NoControlCharactersInRegexOptions = | RulePlainConfiguration | RuleWithOptions_for_NoControlCharactersInRegexOptions; @@ -3501,12 +3466,27 @@ export type RuleConfiguration_for_NoTemplateCurlyInStringOptions = export type RuleConfiguration_for_NoThenPropertyOptions = | RulePlainConfiguration | RuleWithOptions_for_NoThenPropertyOptions; +export type RuleFixConfiguration_for_NoTsIgnoreOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_NoTsIgnoreOptions; +export type RuleConfiguration_for_NoUnassignedVariablesOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoUnassignedVariablesOptions; +export type RuleConfiguration_for_NoUnknownAtRuleOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoUnknownAtRuleOptions; export type RuleConfiguration_for_NoUnsafeDeclarationMergingOptions = | RulePlainConfiguration | RuleWithOptions_for_NoUnsafeDeclarationMergingOptions; export type RuleFixConfiguration_for_NoUnsafeNegationOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoUnsafeNegationOptions; +export type RuleConfiguration_for_NoUselessRegexBackrefsOptions = + | RulePlainConfiguration + | RuleWithOptions_for_NoUselessRegexBackrefsOptions; +export type RuleFixConfiguration_for_NoUselessStringEscapesOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_NoUselessStringEscapesOptions; export type RuleFixConfiguration_for_NoVarOptions = | RulePlainConfiguration | RuleWithFixOptions_for_NoVarOptions; @@ -3519,6 +3499,9 @@ export type RuleConfiguration_for_UseAdjacentOverloadSignaturesOptions = export type RuleConfiguration_for_UseAwaitOptions = | RulePlainConfiguration | RuleWithOptions_for_UseAwaitOptions; +export type RuleConfiguration_for_UseConsistentIterableCallbackReturnValuesOptions = + | RulePlainConfiguration + | RuleWithOptions_for_UseConsistentIterableCallbackReturnValuesOptions; export type RuleConfiguration_for_UseDefaultSwitchClauseLastOptions = | RulePlainConfiguration | RuleWithOptions_for_UseDefaultSwitchClauseLastOptions; @@ -3543,6 +3526,9 @@ export type RuleFixConfiguration_for_UseNamespaceKeywordOptions = export type RuleFixConfiguration_for_UseNumberToFixedDigitsArgumentOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseNumberToFixedDigitsArgumentOptions; +export type RuleFixConfiguration_for_UseStaticResponseMethodsOptions = + | RulePlainConfiguration + | RuleWithFixOptions_for_UseStaticResponseMethodsOptions; export type RuleFixConfiguration_for_UseStrictModeOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseStrictModeOptions; @@ -3661,6 +3647,16 @@ export interface RuleWithOptions_for_NoLabelWithoutControlOptions { */ options: NoLabelWithoutControlOptions; } +export interface RuleWithOptions_for_NoNoninteractiveElementInteractionsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoNoninteractiveElementInteractionsOptions; +} export interface RuleWithFixOptions_for_NoNoninteractiveElementToInteractiveRoleOptions { /** * The kind of the code actions emitted by the rule @@ -4041,6 +4037,16 @@ export interface RuleWithOptions_for_NoExcessiveCognitiveComplexityOptions { */ options: NoExcessiveCognitiveComplexityOptions; } +export interface RuleWithOptions_for_NoExcessiveLinesPerFunctionOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoExcessiveLinesPerFunctionOptions; +} export interface RuleWithOptions_for_NoExcessiveNestedTestSuitesOptions { /** * The severity of the emitted diagnostics by the rule @@ -4089,7 +4095,11 @@ export interface RuleWithOptions_for_NoForEachOptions { */ options: NoForEachOptions; } -export interface RuleWithOptions_for_NoStaticOnlyClassOptions { +export interface RuleWithFixOptions_for_NoImplicitCoercionsOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -4097,9 +4107,9 @@ export interface RuleWithOptions_for_NoStaticOnlyClassOptions { /** * Rule's options */ - options: NoStaticOnlyClassOptions; + options: NoImplicitCoercionsOptions; } -export interface RuleWithFixOptions_for_NoThisInStaticOptions { +export interface RuleWithFixOptions_for_NoImportantStylesOptions { /** * The kind of the code actions emitted by the rule */ @@ -4111,13 +4121,9 @@ export interface RuleWithFixOptions_for_NoThisInStaticOptions { /** * Rule's options */ - options: NoThisInStaticOptions; + options: NoImportantStylesOptions; } -export interface RuleWithFixOptions_for_NoUselessCatchOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; +export interface RuleWithOptions_for_NoStaticOnlyClassOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -4125,9 +4131,37 @@ export interface RuleWithFixOptions_for_NoUselessCatchOptions { /** * Rule's options */ - options: NoUselessCatchOptions; + options: NoStaticOnlyClassOptions; } -export interface RuleWithFixOptions_for_NoUselessConstructorOptions { +export interface RuleWithFixOptions_for_NoThisInStaticOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoThisInStaticOptions; +} +export interface RuleWithFixOptions_for_NoUselessCatchOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoUselessCatchOptions; +} +export interface RuleWithFixOptions_for_NoUselessConstructorOptions { /** * The kind of the code actions emitted by the rule */ @@ -4385,6 +4419,20 @@ export interface RuleWithFixOptions_for_UseFlatMapOptions { */ options: UseFlatMapOptions; } +export interface RuleWithFixOptions_for_UseIndexOfOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseIndexOfOptions; +} export interface RuleWithFixOptions_for_UseLiteralKeysOptions { /** * The kind of the code actions emitted by the rule @@ -4561,6 +4609,20 @@ export interface RuleWithOptions_for_NoEmptyPatternOptions { */ options: NoEmptyPatternOptions; } +export interface RuleWithFixOptions_for_NoGlobalDirnameFilenameOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoGlobalDirnameFilenameOptions; +} export interface RuleWithOptions_for_NoGlobalObjectCallsOptions { /** * The severity of the emitted diagnostics by the rule @@ -4655,6 +4717,16 @@ export interface RuleWithOptions_for_NoMissingVarFunctionOptions { */ options: NoMissingVarFunctionOptions; } +export interface RuleWithOptions_for_NoNestedComponentDefinitionsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoNestedComponentDefinitionsOptions; +} export interface RuleWithOptions_for_NoNodejsModulesOptions { /** * The severity of the emitted diagnostics by the rule @@ -4699,6 +4771,30 @@ export interface RuleWithOptions_for_NoPrivateImportsOptions { */ options: NoPrivateImportsOptions; } +export interface RuleWithFixOptions_for_NoProcessGlobalOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoProcessGlobalOptions; +} +export interface RuleWithOptions_for_NoReactPropAssignmentsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoReactPropAssignmentsOptions; +} export interface RuleWithOptions_for_NoRenderReturnValueOptions { /** * The severity of the emitted diagnostics by the rule @@ -4709,6 +4805,16 @@ export interface RuleWithOptions_for_NoRenderReturnValueOptions { */ options: NoRenderReturnValueOptions; } +export interface RuleWithOptions_for_NoRestrictedElementsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoRestrictedElementsOptions; +} export interface RuleWithOptions_for_NoSelfAssignOptions { /** * The severity of the emitted diagnostics by the rule @@ -4729,6 +4835,16 @@ export interface RuleWithOptions_for_NoSetterReturnOptions { */ options: NoSetterReturnOptions; } +export interface RuleWithOptions_for_NoSolidDestructuredPropsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoSolidDestructuredPropsOptions; +} export interface RuleWithFixOptions_for_NoStringCaseMismatchOptions { /** * The kind of the code actions emitted by the rule @@ -5043,7 +5159,11 @@ export interface RuleWithFixOptions_for_UseIsNanOptions { */ options: UseIsNanOptions; } -export interface RuleWithOptions_for_UseJsxKeyInIterableOptions { +export interface RuleWithFixOptions_for_UseJsonImportAttributesOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -5051,9 +5171,9 @@ export interface RuleWithOptions_for_UseJsxKeyInIterableOptions { /** * Rule's options */ - options: UseJsxKeyInIterableOptions; + options: UseJsonImportAttributesOptions; } -export interface RuleWithOptions_for_UseValidForDirectionOptions { +export interface RuleWithOptions_for_UseJsxKeyInIterableOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5061,9 +5181,9 @@ export interface RuleWithOptions_for_UseValidForDirectionOptions { /** * Rule's options */ - options: UseValidForDirectionOptions; + options: UseJsxKeyInIterableOptions; } -export interface RuleWithFixOptions_for_UseValidTypeofOptions { +export interface RuleWithFixOptions_for_UseNamedGraphqlOperationsOptions { /** * The kind of the code actions emitted by the rule */ @@ -5075,19 +5195,13 @@ export interface RuleWithFixOptions_for_UseValidTypeofOptions { /** * Rule's options */ - options: UseValidTypeofOptions; + options: UseNamedGraphqlOperationsOptions; } -export interface RuleWithOptions_for_UseYieldOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; +export interface RuleWithFixOptions_for_UseParseIntRadixOptions { /** - * Rule's options + * The kind of the code actions emitted by the rule */ - options: UseYieldOptions; -} -export interface RuleWithOptions_for_NoAwaitInLoopOptions { + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -5095,19 +5209,13 @@ export interface RuleWithOptions_for_NoAwaitInLoopOptions { /** * Rule's options */ - options: NoAwaitInLoopOptions; + options: UseParseIntRadixOptions; } -export interface RuleWithOptions_for_NoBitwiseOperatorsOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; +export interface RuleWithFixOptions_for_UseSingleJsDocAsteriskOptions { /** - * Rule's options + * The kind of the code actions emitted by the rule */ - options: NoBitwiseOperatorsOptions; -} -export interface RuleWithOptions_for_NoConstantBinaryExpressionOptions { + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -5115,9 +5223,9 @@ export interface RuleWithOptions_for_NoConstantBinaryExpressionOptions { /** * Rule's options */ - options: NoConstantBinaryExpressionOptions; + options: UseSingleJsDocAsteriskOptions; } -export interface RuleWithOptions_for_NoDestructuredPropsOptions { +export interface RuleWithOptions_for_UseUniqueElementIdsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5125,9 +5233,9 @@ export interface RuleWithOptions_for_NoDestructuredPropsOptions { /** * Rule's options */ - options: NoDestructuredPropsOptions; + options: UseUniqueElementIdsOptions; } -export interface RuleWithOptions_for_NoExcessiveLinesPerFunctionOptions { +export interface RuleWithOptions_for_UseValidForDirectionOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5135,9 +5243,9 @@ export interface RuleWithOptions_for_NoExcessiveLinesPerFunctionOptions { /** * Rule's options */ - options: NoExcessiveLinesPerFunctionOptions; + options: UseValidForDirectionOptions; } -export interface RuleWithFixOptions_for_NoFloatingPromisesOptions { +export interface RuleWithFixOptions_for_UseValidTypeofOptions { /** * The kind of the code actions emitted by the rule */ @@ -5149,13 +5257,9 @@ export interface RuleWithFixOptions_for_NoFloatingPromisesOptions { /** * Rule's options */ - options: NoFloatingPromisesOptions; + options: UseValidTypeofOptions; } -export interface RuleWithFixOptions_for_NoGlobalDirnameFilenameOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; +export interface RuleWithOptions_for_UseYieldOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5163,9 +5267,9 @@ export interface RuleWithFixOptions_for_NoGlobalDirnameFilenameOptions { /** * Rule's options */ - options: NoGlobalDirnameFilenameOptions; + options: UseYieldOptions; } -export interface RuleWithFixOptions_for_NoImplicitCoercionOptions { +export interface RuleWithFixOptions_for_NoFloatingPromisesOptions { /** * The kind of the code actions emitted by the rule */ @@ -5177,7 +5281,7 @@ export interface RuleWithFixOptions_for_NoImplicitCoercionOptions { /** * Rule's options */ - options: NoImplicitCoercionOptions; + options: NoFloatingPromisesOptions; } export interface RuleWithOptions_for_NoImportCyclesOptions { /** @@ -5189,7 +5293,7 @@ export interface RuleWithOptions_for_NoImportCyclesOptions { */ options: NoImportCyclesOptions; } -export interface RuleWithFixOptions_for_NoImportantStylesOptions { +export interface RuleWithFixOptions_for_NoMisusedPromisesOptions { /** * The kind of the code actions emitted by the rule */ @@ -5201,9 +5305,9 @@ export interface RuleWithFixOptions_for_NoImportantStylesOptions { /** * Rule's options */ - options: NoImportantStylesOptions; + options: NoMisusedPromisesOptions; } -export interface RuleWithOptions_for_NoMagicNumbersOptions { +export interface RuleWithOptions_for_NoNonNullAssertedOptionalChainOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5211,9 +5315,9 @@ export interface RuleWithOptions_for_NoMagicNumbersOptions { /** * Rule's options */ - options: NoMagicNumbersOptions; + options: NoNonNullAssertedOptionalChainOptions; } -export interface RuleWithFixOptions_for_NoMisusedPromisesOptions { +export interface RuleWithFixOptions_for_NoQuickfixBiomeOptions { /** * The kind of the code actions emitted by the rule */ @@ -5225,9 +5329,9 @@ export interface RuleWithFixOptions_for_NoMisusedPromisesOptions { /** * Rule's options */ - options: NoMisusedPromisesOptions; + options: NoQuickfixBiomeOptions; } -export interface RuleWithOptions_for_NoNestedComponentDefinitionsOptions { +export interface RuleWithOptions_for_NoQwikUseVisibleTaskOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5235,9 +5339,9 @@ export interface RuleWithOptions_for_NoNestedComponentDefinitionsOptions { /** * Rule's options */ - options: NoNestedComponentDefinitionsOptions; + options: NoQwikUseVisibleTaskOptions; } -export interface RuleWithOptions_for_NoNextAsyncClientComponentOptions { +export interface RuleWithOptions_for_NoSecretsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5245,9 +5349,9 @@ export interface RuleWithOptions_for_NoNextAsyncClientComponentOptions { /** * Rule's options */ - options: NoNextAsyncClientComponentOptions; + options: NoSecretsOptions; } -export interface RuleWithOptions_for_NoNonNullAssertedOptionalChainOptions { +export interface RuleWithOptions_for_NoShadowOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5255,9 +5359,9 @@ export interface RuleWithOptions_for_NoNonNullAssertedOptionalChainOptions { /** * Rule's options */ - options: NoNonNullAssertedOptionalChainOptions; + options: NoShadowOptions; } -export interface RuleWithOptions_for_NoNoninteractiveElementInteractionsOptions { +export interface RuleWithOptions_for_NoUnnecessaryConditionsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5265,13 +5369,9 @@ export interface RuleWithOptions_for_NoNoninteractiveElementInteractionsOptions /** * Rule's options */ - options: NoNoninteractiveElementInteractionsOptions; + options: NoUnnecessaryConditionsOptions; } -export interface RuleWithFixOptions_for_NoProcessGlobalOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; +export interface RuleWithOptions_for_NoUnresolvedImportsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5279,9 +5379,9 @@ export interface RuleWithFixOptions_for_NoProcessGlobalOptions { /** * Rule's options */ - options: NoProcessGlobalOptions; + options: NoUnresolvedImportsOptions; } -export interface RuleWithFixOptions_for_NoQuickfixBiomeOptions { +export interface RuleWithFixOptions_for_NoUselessEscapeInStringOptions { /** * The kind of the code actions emitted by the rule */ @@ -5293,9 +5393,9 @@ export interface RuleWithFixOptions_for_NoQuickfixBiomeOptions { /** * Rule's options */ - options: NoQuickfixBiomeOptions; + options: NoUselessEscapeInStringOptions; } -export interface RuleWithOptions_for_NoQwikUseVisibleTaskOptions { +export interface RuleWithOptions_for_NoVueReservedKeysOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5303,9 +5403,9 @@ export interface RuleWithOptions_for_NoQwikUseVisibleTaskOptions { /** * Rule's options */ - options: NoQwikUseVisibleTaskOptions; + options: NoVueReservedKeysOptions; } -export interface RuleWithOptions_for_NoReactPropAssignOptions { +export interface RuleWithOptions_for_NoVueReservedPropsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5313,9 +5413,9 @@ export interface RuleWithOptions_for_NoReactPropAssignOptions { /** * Rule's options */ - options: NoReactPropAssignOptions; + options: NoVueReservedPropsOptions; } -export interface RuleWithOptions_for_NoRestrictedElementsOptions { +export interface RuleWithOptions_for_UseAnchorHrefOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5323,19 +5423,13 @@ export interface RuleWithOptions_for_NoRestrictedElementsOptions { /** * Rule's options */ - options: NoRestrictedElementsOptions; + options: UseAnchorHrefOptions; } -export interface RuleWithOptions_for_NoSecretsOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; +export interface RuleWithFixOptions_for_UseConsistentTypeDefinitionsOptions { /** - * Rule's options + * The kind of the code actions emitted by the rule */ - options: NoSecretsOptions; -} -export interface RuleWithOptions_for_NoShadowOptions { + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -5343,9 +5437,9 @@ export interface RuleWithOptions_for_NoShadowOptions { /** * Rule's options */ - options: NoShadowOptions; + options: UseConsistentTypeDefinitionsOptions; } -export interface RuleWithFixOptions_for_NoTsIgnoreOptions { +export interface RuleWithFixOptions_for_UseExhaustiveSwitchCasesOptions { /** * The kind of the code actions emitted by the rule */ @@ -5357,9 +5451,9 @@ export interface RuleWithFixOptions_for_NoTsIgnoreOptions { /** * Rule's options */ - options: NoTsIgnoreOptions; + options: UseExhaustiveSwitchCasesOptions; } -export interface RuleWithOptions_for_NoUnassignedVariablesOptions { +export interface RuleWithOptions_for_UseExplicitTypeOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5367,9 +5461,9 @@ export interface RuleWithOptions_for_NoUnassignedVariablesOptions { /** * Rule's options */ - options: NoUnassignedVariablesOptions; + options: UseExplicitTypeOptions; } -export interface RuleWithOptions_for_NoUnknownAtRuleOptions { +export interface RuleWithOptions_for_UseImageSizeOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5377,19 +5471,13 @@ export interface RuleWithOptions_for_NoUnknownAtRuleOptions { /** * Rule's options */ - options: NoUnknownAtRuleOptions; + options: UseImageSizeOptions; } -export interface RuleWithOptions_for_NoUnnecessaryConditionsOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; +export interface RuleWithFixOptions_for_UseNamedOperationOptions { /** - * Rule's options + * The kind of the code actions emitted by the rule */ - options: NoUnnecessaryConditionsOptions; -} -export interface RuleWithOptions_for_NoUnresolvedImportsOptions { + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -5397,9 +5485,9 @@ export interface RuleWithOptions_for_NoUnresolvedImportsOptions { /** * Rule's options */ - options: NoUnresolvedImportsOptions; + options: UseNamedOperationOptions; } -export interface RuleWithOptions_for_NoUnwantedPolyfillioOptions { +export interface RuleWithOptions_for_UseQwikClasslistOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5407,9 +5495,9 @@ export interface RuleWithOptions_for_NoUnwantedPolyfillioOptions { /** * Rule's options */ - options: NoUnwantedPolyfillioOptions; + options: UseQwikClasslistOptions; } -export interface RuleWithOptions_for_NoUselessBackrefInRegexOptions { +export interface RuleWithOptions_for_UseReactFunctionComponentsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5417,349 +5505,9 @@ export interface RuleWithOptions_for_NoUselessBackrefInRegexOptions { /** * Rule's options */ - options: NoUselessBackrefInRegexOptions; + options: UseReactFunctionComponentsOptions; } -export interface RuleWithFixOptions_for_NoUselessEscapeInStringOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: NoUselessEscapeInStringOptions; -} -export interface RuleWithFixOptions_for_NoUselessUndefinedOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: NoUselessUndefinedOptions; -} -export interface RuleWithFixOptions_for_NoVueDataObjectDeclarationOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: NoVueDataObjectDeclarationOptions; -} -export interface RuleWithOptions_for_NoVueReservedKeysOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: NoVueReservedKeysOptions; -} -export interface RuleWithOptions_for_NoVueReservedPropsOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: NoVueReservedPropsOptions; -} -export interface RuleWithOptions_for_UseAdjacentGetterSetterOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseAdjacentGetterSetterOptions; -} -export interface RuleWithOptions_for_UseAnchorHrefOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseAnchorHrefOptions; -} -export interface RuleWithFixOptions_for_UseConsistentObjectDefinitionOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseConsistentObjectDefinitionOptions; -} -export interface RuleWithFixOptions_for_UseConsistentResponseOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseConsistentResponseOptions; -} -export interface RuleWithFixOptions_for_UseConsistentTypeDefinitionsOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseConsistentTypeDefinitionsOptions; -} -export interface RuleWithFixOptions_for_UseExhaustiveSwitchCasesOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseExhaustiveSwitchCasesOptions; -} -export interface RuleWithOptions_for_UseExplicitTypeOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseExplicitTypeOptions; -} -export interface RuleWithOptions_for_UseExportsLastOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseExportsLastOptions; -} -export interface RuleWithOptions_for_UseForComponentOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseForComponentOptions; -} -export interface RuleWithFixOptions_for_UseGoogleFontPreconnectOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseGoogleFontPreconnectOptions; -} -export interface RuleWithOptions_for_UseImageSizeOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseImageSizeOptions; -} -export interface RuleWithFixOptions_for_UseIndexOfOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseIndexOfOptions; -} -export interface RuleWithOptions_for_UseIterableCallbackReturnOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseIterableCallbackReturnOptions; -} -export interface RuleWithFixOptions_for_UseJsonImportAttributeOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseJsonImportAttributeOptions; -} -export interface RuleWithOptions_for_UseMaxParamsOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseMaxParamsOptions; -} -export interface RuleWithFixOptions_for_UseNamedOperationOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseNamedOperationOptions; -} -export interface RuleWithOptions_for_UseNamingConventionOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseNamingConventionOptions; -} -export interface RuleWithFixOptions_for_UseNumericSeparatorsOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseNumericSeparatorsOptions; -} -export interface RuleWithFixOptions_for_UseObjectSpreadOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseObjectSpreadOptions; -} -export interface RuleWithFixOptions_for_UseParseIntRadixOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseParseIntRadixOptions; -} -export interface RuleWithOptions_for_UseQwikClasslistOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseQwikClasslistOptions; -} -export interface RuleWithOptions_for_UseReactFunctionComponentsOptions { - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseReactFunctionComponentsOptions; -} -export interface RuleWithFixOptions_for_UseReadonlyClassPropertiesOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; - /** - * The severity of the emitted diagnostics by the rule - */ - level: RulePlainConfiguration; - /** - * Rule's options - */ - options: UseReadonlyClassPropertiesOptions; -} -export interface RuleWithFixOptions_for_UseSingleJsDocAsteriskOptions { +export interface RuleWithFixOptions_for_UseSortedClassesOptions { /** * The kind of the code actions emitted by the rule */ @@ -5771,13 +5519,9 @@ export interface RuleWithFixOptions_for_UseSingleJsDocAsteriskOptions { /** * Rule's options */ - options: UseSingleJsDocAsteriskOptions; + options: UseSortedClassesOptions; } -export interface RuleWithFixOptions_for_UseSortedClassesOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; +export interface RuleWithOptions_for_NoAccumulatingSpreadOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5785,9 +5529,9 @@ export interface RuleWithFixOptions_for_UseSortedClassesOptions { /** * Rule's options */ - options: UseSortedClassesOptions; + options: NoAccumulatingSpreadOptions; } -export interface RuleWithOptions_for_UseSymbolDescriptionOptions { +export interface RuleWithOptions_for_NoAwaitInLoopsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5795,13 +5539,9 @@ export interface RuleWithOptions_for_UseSymbolDescriptionOptions { /** * Rule's options */ - options: UseSymbolDescriptionOptions; + options: NoAwaitInLoopsOptions; } -export interface RuleWithFixOptions_for_UseUnifiedTypeSignatureOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; +export interface RuleWithOptions_for_NoBarrelFileOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5809,9 +5549,13 @@ export interface RuleWithFixOptions_for_UseUnifiedTypeSignatureOptions { /** * Rule's options */ - options: UseUnifiedTypeSignatureOptions; + options: NoBarrelFileOptions; } -export interface RuleWithOptions_for_UseUniqueElementIdsOptions { +export interface RuleWithFixOptions_for_NoDeleteOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -5819,9 +5563,9 @@ export interface RuleWithOptions_for_UseUniqueElementIdsOptions { /** * Rule's options */ - options: UseUniqueElementIdsOptions; + options: NoDeleteOptions; } -export interface RuleWithOptions_for_NoAccumulatingSpreadOptions { +export interface RuleWithOptions_for_NoDynamicNamespaceImportAccessOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5829,9 +5573,9 @@ export interface RuleWithOptions_for_NoAccumulatingSpreadOptions { /** * Rule's options */ - options: NoAccumulatingSpreadOptions; + options: NoDynamicNamespaceImportAccessOptions; } -export interface RuleWithOptions_for_NoBarrelFileOptions { +export interface RuleWithOptions_for_NoImgElementOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5839,13 +5583,9 @@ export interface RuleWithOptions_for_NoBarrelFileOptions { /** * Rule's options */ - options: NoBarrelFileOptions; + options: NoImgElementOptions; } -export interface RuleWithFixOptions_for_NoDeleteOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; +export interface RuleWithOptions_for_NoNamespaceImportOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5853,9 +5593,9 @@ export interface RuleWithFixOptions_for_NoDeleteOptions { /** * Rule's options */ - options: NoDeleteOptions; + options: NoNamespaceImportOptions; } -export interface RuleWithOptions_for_NoDynamicNamespaceImportAccessOptions { +export interface RuleWithOptions_for_NoReExportAllOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5863,9 +5603,9 @@ export interface RuleWithOptions_for_NoDynamicNamespaceImportAccessOptions { /** * Rule's options */ - options: NoDynamicNamespaceImportAccessOptions; + options: NoReExportAllOptions; } -export interface RuleWithOptions_for_NoImgElementOptions { +export interface RuleWithOptions_for_NoUnwantedPolyfillioOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5873,9 +5613,13 @@ export interface RuleWithOptions_for_NoImgElementOptions { /** * Rule's options */ - options: NoImgElementOptions; + options: NoUnwantedPolyfillioOptions; } -export interface RuleWithOptions_for_NoNamespaceImportOptions { +export interface RuleWithFixOptions_for_UseGoogleFontPreconnectOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -5883,9 +5627,9 @@ export interface RuleWithOptions_for_NoNamespaceImportOptions { /** * Rule's options */ - options: NoNamespaceImportOptions; + options: UseGoogleFontPreconnectOptions; } -export interface RuleWithOptions_for_NoReExportAllOptions { +export interface RuleWithOptions_for_UseSolidForComponentOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -5893,7 +5637,7 @@ export interface RuleWithOptions_for_NoReExportAllOptions { /** * Rule's options */ - options: NoReExportAllOptions; + options: UseSolidForComponentOptions; } export interface RuleWithOptions_for_UseTopLevelRegexOptions { /** @@ -6047,6 +5791,16 @@ export interface RuleWithFixOptions_for_NoInferrableTypesOptions { */ options: NoInferrableTypesOptions; } +export interface RuleWithOptions_for_NoMagicNumbersOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoMagicNumbersOptions; +} export interface RuleWithOptions_for_NoNamespaceOptions { /** * The severity of the emitted diagnostics by the rule @@ -6215,6 +5969,20 @@ export interface RuleWithFixOptions_for_NoUselessElseOptions { */ options: NoUselessElseOptions; } +export interface RuleWithFixOptions_for_NoUselessUndefinedOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoUselessUndefinedOptions; +} export interface RuleWithOptions_for_NoValueAtRuleOptions { /** * The severity of the emitted diagnostics by the rule @@ -6385,6 +6153,20 @@ export interface RuleWithOptions_for_UseConsistentMemberAccessibilityOptions { */ options: UseConsistentMemberAccessibilityOptions; } +export interface RuleWithFixOptions_for_UseConsistentObjectDefinitionsOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseConsistentObjectDefinitionsOptions; +} export interface RuleWithFixOptions_for_UseConstOptions { /** * The kind of the code actions emitted by the rule @@ -6489,6 +6271,16 @@ export interface RuleWithFixOptions_for_UseExportTypeOptions { */ options: UseExportTypeOptions; } +export interface RuleWithOptions_for_UseExportsLastOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseExportsLastOptions; +} export interface RuleWithOptions_for_UseFilenamingConventionOptions { /** * The severity of the emitted diagnostics by the rule @@ -6523,6 +6315,16 @@ export interface RuleWithFixOptions_for_UseFragmentSyntaxOptions { */ options: UseFragmentSyntaxOptions; } +export interface RuleWithOptions_for_UseGroupedAccessorPairsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseGroupedAccessorPairsOptions; +} export interface RuleWithFixOptions_for_UseImportTypeOptions { /** * The kind of the code actions emitted by the rule @@ -6547,11 +6349,7 @@ export interface RuleWithOptions_for_UseLiteralEnumMembersOptions { */ options: UseLiteralEnumMembersOptions; } -export interface RuleWithFixOptions_for_UseNamingConventionOptions { - /** - * The kind of the code actions emitted by the rule - */ - fix?: FixKind; +export interface RuleWithOptions_for_UseNamingConventionOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -6603,6 +6401,48 @@ export interface RuleWithFixOptions_for_UseNumberNamespaceOptions { */ options: UseNumberNamespaceOptions; } +export interface RuleWithFixOptions_for_UseNumericSeparatorsOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseNumericSeparatorsOptions; +} +export interface RuleWithFixOptions_for_UseObjectSpreadOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseObjectSpreadOptions; +} +export interface RuleWithFixOptions_for_UseReadonlyClassPropertiesOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseReadonlyClassPropertiesOptions; +} export interface RuleWithFixOptions_for_UseSelfClosingElementsOptions { /** * The kind of the code actions emitted by the rule @@ -6659,6 +6499,16 @@ export interface RuleWithFixOptions_for_UseSingleVarDeclaratorOptions { */ options: UseSingleVarDeclaratorOptions; } +export interface RuleWithOptions_for_UseSymbolDescriptionOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseSymbolDescriptionOptions; +} export interface RuleWithFixOptions_for_UseTemplateOptions { /** * The kind of the code actions emitted by the rule @@ -6711,6 +6561,20 @@ export interface RuleWithFixOptions_for_UseTrimStartEndOptions { */ options: UseTrimStartEndOptions; } +export interface RuleWithFixOptions_for_UseUnifiedTypeSignaturesOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseUnifiedTypeSignaturesOptions; +} export interface RuleWithOptions_for_NoAlertOptions { /** * The severity of the emitted diagnostics by the rule @@ -6765,6 +6629,16 @@ export interface RuleWithOptions_for_NoAsyncPromiseExecutorOptions { */ options: NoAsyncPromiseExecutorOptions; } +export interface RuleWithOptions_for_NoBitwiseOperatorsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoBitwiseOperatorsOptions; +} export interface RuleWithOptions_for_NoCatchAssignOptions { /** * The severity of the emitted diagnostics by the rule @@ -6865,6 +6739,16 @@ export interface RuleWithFixOptions_for_NoConstEnumOptions { */ options: NoConstEnumOptions; } +export interface RuleWithOptions_for_NoConstantBinaryExpressionsOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoConstantBinaryExpressionsOptions; +} export interface RuleWithOptions_for_NoControlCharactersInRegexOptions { /** * The severity of the emitted diagnostics by the rule @@ -7435,7 +7319,61 @@ export interface RuleWithFixOptions_for_NoSparseArrayOptions { */ options: NoSparseArrayOptions; } -export interface RuleWithOptions_for_NoSuspiciousSemicolonInJsxOptions { +export interface RuleWithOptions_for_NoSuspiciousSemicolonInJsxOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoSuspiciousSemicolonInJsxOptions; +} +export interface RuleWithOptions_for_NoTemplateCurlyInStringOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoTemplateCurlyInStringOptions; +} +export interface RuleWithOptions_for_NoThenPropertyOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoThenPropertyOptions; +} +export interface RuleWithFixOptions_for_NoTsIgnoreOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoTsIgnoreOptions; +} +export interface RuleWithOptions_for_NoUnassignedVariablesOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: NoUnassignedVariablesOptions; +} +export interface RuleWithOptions_for_NoUnknownAtRuleOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -7443,9 +7381,9 @@ export interface RuleWithOptions_for_NoSuspiciousSemicolonInJsxOptions { /** * Rule's options */ - options: NoSuspiciousSemicolonInJsxOptions; + options: NoUnknownAtRuleOptions; } -export interface RuleWithOptions_for_NoTemplateCurlyInStringOptions { +export interface RuleWithOptions_for_NoUnsafeDeclarationMergingOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -7453,9 +7391,13 @@ export interface RuleWithOptions_for_NoTemplateCurlyInStringOptions { /** * Rule's options */ - options: NoTemplateCurlyInStringOptions; + options: NoUnsafeDeclarationMergingOptions; } -export interface RuleWithOptions_for_NoThenPropertyOptions { +export interface RuleWithFixOptions_for_NoUnsafeNegationOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -7463,9 +7405,9 @@ export interface RuleWithOptions_for_NoThenPropertyOptions { /** * Rule's options */ - options: NoThenPropertyOptions; + options: NoUnsafeNegationOptions; } -export interface RuleWithOptions_for_NoUnsafeDeclarationMergingOptions { +export interface RuleWithOptions_for_NoUselessRegexBackrefsOptions { /** * The severity of the emitted diagnostics by the rule */ @@ -7473,9 +7415,9 @@ export interface RuleWithOptions_for_NoUnsafeDeclarationMergingOptions { /** * Rule's options */ - options: NoUnsafeDeclarationMergingOptions; + options: NoUselessRegexBackrefsOptions; } -export interface RuleWithFixOptions_for_NoUnsafeNegationOptions { +export interface RuleWithFixOptions_for_NoUselessStringEscapesOptions { /** * The kind of the code actions emitted by the rule */ @@ -7487,7 +7429,7 @@ export interface RuleWithFixOptions_for_NoUnsafeNegationOptions { /** * Rule's options */ - options: NoUnsafeNegationOptions; + options: NoUselessStringEscapesOptions; } export interface RuleWithFixOptions_for_NoVarOptions { /** @@ -7533,6 +7475,16 @@ export interface RuleWithOptions_for_UseAwaitOptions { */ options: UseAwaitOptions; } +export interface RuleWithOptions_for_UseConsistentIterableCallbackReturnValuesOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseConsistentIterableCallbackReturnValuesOptions; +} export interface RuleWithOptions_for_UseDefaultSwitchClauseLastOptions { /** * The severity of the emitted diagnostics by the rule @@ -7625,6 +7577,20 @@ export interface RuleWithFixOptions_for_UseNumberToFixedDigitsArgumentOptions { */ options: UseNumberToFixedDigitsArgumentOptions; } +export interface RuleWithFixOptions_for_UseStaticResponseMethodsOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseStaticResponseMethodsOptions; +} export interface RuleWithFixOptions_for_UseStrictModeOptions { /** * The kind of the code actions emitted by the rule @@ -7665,6 +7631,7 @@ export interface NoLabelWithoutControlOptions { */ labelComponents?: string[]; } +export interface NoNoninteractiveElementInteractionsOptions {} export interface NoNoninteractiveElementToInteractiveRoleOptions {} export interface NoNoninteractiveTabindexOptions {} export interface NoPositiveTabindexOptions {} @@ -7718,6 +7685,20 @@ export interface NoExcessiveCognitiveComplexityOptions { */ maxAllowedComplexity?: number; } +export interface NoExcessiveLinesPerFunctionOptions { + /** + * The maximum number of lines allowed in a function body. + */ + maxLines?: number; + /** + * When this options is set to `true`, blank lines in the function body are not counted towards the maximum line limit. + */ + skipBlankLines?: boolean; + /** + * When this option is set to `true`, Immediately Invoked Function Expressions (IIFEs) are not checked for the maximum line limit. + */ + skipIifes?: boolean; +} export interface NoExcessiveNestedTestSuitesOptions {} export interface NoExtraBooleanCastOptions {} export interface NoFlatMapIdentityOptions {} @@ -7727,6 +7708,8 @@ export interface NoForEachOptions { */ allowedIdentifiers?: string[]; } +export interface NoImplicitCoercionsOptions {} +export interface NoImportantStylesOptions {} export interface NoStaticOnlyClassOptions {} export interface NoThisInStaticOptions {} export interface NoUselessCatchOptions {} @@ -7749,6 +7732,7 @@ export interface NoVoidOptions {} export interface UseArrowFunctionOptions {} export interface UseDateNowOptions {} export interface UseFlatMapOptions {} +export interface UseIndexOfOptions {} export interface UseLiteralKeysOptions {} export interface UseNumericLiteralsOptions {} export interface UseOptionalChainOptions {} @@ -7763,6 +7747,7 @@ export interface NoConstantMathMinMaxClampOptions {} export interface NoConstructorReturnOptions {} export interface NoEmptyCharacterClassInRegexOptions {} export interface NoEmptyPatternOptions {} +export interface NoGlobalDirnameFilenameOptions {} export interface NoGlobalObjectCallsOptions {} export interface NoInnerDeclarationsOptions {} export interface NoInvalidBuiltinInstantiationOptions {} @@ -7772,6 +7757,7 @@ export interface NoInvalidGridAreasOptions {} export interface NoInvalidPositionAtImportRuleOptions {} export interface NoInvalidUseBeforeDeclarationOptions {} export interface NoMissingVarFunctionOptions {} +export interface NoNestedComponentDefinitionsOptions {} export interface NoNodejsModulesOptions {} export interface NoNonoctalDecimalEscapeOptions {} export interface NoPrecisionLossOptions {} @@ -7783,9 +7769,18 @@ Default: **public**. */ defaultVisibility?: Visibility; } +export interface NoProcessGlobalOptions {} +export interface NoReactPropAssignmentsOptions {} export interface NoRenderReturnValueOptions {} +export interface NoRestrictedElementsOptions { + /** + * Elements to restrict. Each key is the element name, and the value is the message to show when the element is used. + */ + elements: CustomRestrictedElements; +} export interface NoSelfAssignOptions {} export interface NoSetterReturnOptions {} +export interface NoSolidDestructuredPropsOptions {} export interface NoStringCaseMismatchOptions {} export interface NoSwitchDeclarationsOptions {} export interface NoUndeclaredDependenciesOptions { @@ -7859,55 +7854,29 @@ export interface UseImportExtensionsOptions { forceJsExtensions?: boolean; } export interface UseIsNanOptions {} +export interface UseJsonImportAttributesOptions {} export interface UseJsxKeyInIterableOptions { /** * Set to `true` to check shorthand fragments (`<>`) */ checkShorthandFragments?: boolean; } -export interface UseValidForDirectionOptions {} -export interface UseValidTypeofOptions {} -export interface UseYieldOptions {} -export interface NoAwaitInLoopOptions {} -export interface NoBitwiseOperatorsOptions { - /** - * Allows a list of bitwise operators to be used as exceptions. - */ - allow: string[]; -} -export interface NoConstantBinaryExpressionOptions {} -export interface NoDestructuredPropsOptions {} -export interface NoExcessiveLinesPerFunctionOptions { - /** - * The maximum number of lines allowed in a function body. - */ - maxLines?: number; - /** - * When this options is set to `true`, blank lines in the function body are not counted towards the maximum line limit. - */ - skipBlankLines?: boolean; +export interface UseNamedGraphqlOperationsOptions {} +export interface UseParseIntRadixOptions {} +export interface UseSingleJsDocAsteriskOptions {} +export interface UseUniqueElementIdsOptions { /** - * When this option is set to `true`, Immediately Invoked Function Expressions (IIFEs) are not checked for the maximum line limit. + * Component names that accept an `id` prop that does not translate to a DOM element id. */ - skipIifes?: boolean; + excludedComponents?: string[]; } +export interface UseValidForDirectionOptions {} +export interface UseValidTypeofOptions {} +export interface UseYieldOptions {} export interface NoFloatingPromisesOptions {} -export interface NoGlobalDirnameFilenameOptions {} -export interface NoImplicitCoercionOptions {} -export interface NoImportCyclesOptions { - /** - * Ignores type-only imports when finding an import cycle. A type-only import (`import type`) will be removed by the compiler, so it cuts an import cycle at runtime. Note that named type imports (`import { type Foo }`) aren't considered as type-only because it's not removed by the compiler if the `verbatimModuleSyntax` option is enabled. Enabled by default. - */ - ignoreTypes?: boolean; -} -export interface NoImportantStylesOptions {} -export interface NoMagicNumbersOptions {} +export interface NoImportCyclesOptions {} export interface NoMisusedPromisesOptions {} -export interface NoNestedComponentDefinitionsOptions {} -export interface NoNextAsyncClientComponentOptions {} export interface NoNonNullAssertedOptionalChainOptions {} -export interface NoNoninteractiveElementInteractionsOptions {} -export interface NoProcessGlobalOptions {} export interface NoQuickfixBiomeOptions { /** * A list of additional JSON files that should be checked. @@ -7915,13 +7884,6 @@ export interface NoQuickfixBiomeOptions { additionalPaths?: string[]; } export interface NoQwikUseVisibleTaskOptions {} -export interface NoReactPropAssignOptions {} -export interface NoRestrictedElementsOptions { - /** - * Elements to restrict. Each key is the element name, and the value is the message to show when the element is used. - */ - elements: CustomRestrictedElements; -} export interface NoSecretsOptions { /** * Set entropy threshold (default is 41). @@ -7929,75 +7891,21 @@ export interface NoSecretsOptions { entropyThreshold?: number; } export interface NoShadowOptions {} -export interface NoTsIgnoreOptions {} -export interface NoUnassignedVariablesOptions {} -export interface NoUnknownAtRuleOptions {} export interface NoUnnecessaryConditionsOptions {} export interface NoUnresolvedImportsOptions {} -export interface NoUnwantedPolyfillioOptions {} -export interface NoUselessBackrefInRegexOptions {} export interface NoUselessEscapeInStringOptions {} -export interface NoUselessUndefinedOptions {} -export interface NoVueDataObjectDeclarationOptions {} export interface NoVueReservedKeysOptions {} export interface NoVueReservedPropsOptions {} -export interface UseAdjacentGetterSetterOptions {} export type UseAnchorHrefOptions = null; -export interface UseConsistentObjectDefinitionOptions { - /** - * The preferred syntax to enforce. - */ - syntax?: ObjectPropertySyntax; -} -export interface UseConsistentResponseOptions {} export interface UseConsistentTypeDefinitionsOptions { style?: ConsistentTypeDefinition; } export interface UseExhaustiveSwitchCasesOptions {} export interface UseExplicitTypeOptions {} -export interface UseExportsLastOptions {} -export interface UseForComponentOptions {} -export interface UseGoogleFontPreconnectOptions {} export type UseImageSizeOptions = null; -export interface UseIndexOfOptions {} -export interface UseIterableCallbackReturnOptions {} -export interface UseJsonImportAttributeOptions {} -export interface UseMaxParamsOptions { - /** - * Maximum number of parameters allowed (default: 4) - */ - max?: number; -} export interface UseNamedOperationOptions {} -/** - * Rule's options. - */ -export interface UseNamingConventionOptions { - /** - * Custom conventions. - */ - conventions: Convention[]; - /** - * If `false`, then non-ASCII characters are allowed. - */ - requireAscii: boolean; - /** - * If `false`, then consecutive uppercase are allowed in _camel_ and _pascal_ cases. This does not affect other [Case]. - */ - strictCase: boolean; -} -export interface UseNumericSeparatorsOptions {} -export interface UseObjectSpreadOptions {} -export interface UseParseIntRadixOptions {} export interface UseQwikClasslistOptions {} export interface UseReactFunctionComponentsOptions {} -export interface UseReadonlyClassPropertiesOptions { - /** - * When `true`, the keywords `public`, `protected`, and `private` are analyzed by the rule. - */ - checkAllProperties: boolean; -} -export interface UseSingleJsDocAsteriskOptions {} export interface UseSortedClassesOptions { /** * Additional attributes that will be sorted. @@ -8008,21 +7916,17 @@ export interface UseSortedClassesOptions { */ functions?: string[]; } -export interface UseSymbolDescriptionOptions {} -export interface UseUnifiedTypeSignatureOptions {} -export interface UseUniqueElementIdsOptions { - /** - * Component names that accept an `id` prop that does not translate to a DOM element id. - */ - excludedComponents?: string[]; -} export interface NoAccumulatingSpreadOptions {} +export interface NoAwaitInLoopsOptions {} export interface NoBarrelFileOptions {} export interface NoDeleteOptions {} export interface NoDynamicNamespaceImportAccessOptions {} export interface NoImgElementOptions {} export interface NoNamespaceImportOptions {} export interface NoReExportAllOptions {} +export interface NoUnwantedPolyfillioOptions {} +export interface UseGoogleFontPreconnectOptions {} +export interface UseSolidForComponentOptions {} export interface UseTopLevelRegexOptions {} export interface NoBlankTargetOptions { /** @@ -8046,6 +7950,7 @@ export interface NoExportedImportsOptions {} export interface NoHeadElementOptions {} export interface NoImplicitBooleanOptions {} export interface NoInferrableTypesOptions {} +export interface NoMagicNumbersOptions {} export interface NoNamespaceOptions {} export interface NoNegationElseOptions {} export interface NoNestedTernaryOptions {} @@ -8077,6 +7982,7 @@ export interface NoShoutyConstantsOptions {} export interface NoSubstrOptions {} export interface NoUnusedTemplateLiteralOptions {} export interface NoUselessElseOptions {} +export interface NoUselessUndefinedOptions {} export interface NoValueAtRuleOptions {} export interface NoYodaExpressionOptions {} export interface UseArrayLiteralsOptions {} @@ -8106,6 +8012,12 @@ export interface UseConsistentMemberAccessibilityOptions { */ accessibility?: Accessibility; } +export interface UseConsistentObjectDefinitionsOptions { + /** + * The preferred syntax to enforce. + */ + syntax?: ObjectPropertySyntax; +} export interface UseConstOptions {} export interface UseDefaultParameterLastOptions {} export interface UseDefaultSwitchClauseOptions {} @@ -8114,6 +8026,7 @@ export interface UseEnumInitializersOptions {} export interface UseExplicitLengthCheckOptions {} export interface UseExponentiationOperatorOptions {} export interface UseExportTypeOptions {} +export interface UseExportsLastOptions {} export interface UseFilenamingConventionOptions { /** * Allowed cases for file names. @@ -8134,6 +8047,7 @@ export interface UseFilenamingConventionOptions { } export interface UseForOfOptions {} export interface UseFragmentSyntaxOptions {} +export interface UseGroupedAccessorPairsOptions {} export interface UseImportTypeOptions { /** * The style to apply when import types. Default to "auto" @@ -8141,24 +8055,57 @@ export interface UseImportTypeOptions { style?: Style2; } export interface UseLiteralEnumMembersOptions {} +/** + * Rule's options. + */ +export interface UseNamingConventionOptions { + /** + * Custom conventions. + */ + conventions: Convention[]; + /** + * If `false`, then non-ASCII characters are allowed. + */ + requireAscii: boolean; + /** + * If `false`, then consecutive uppercase are allowed in _camel_ and _pascal_ cases. This does not affect other [Case]. + */ + strictCase: boolean; +} export interface UseNodeAssertStrictOptions {} export interface UseNodejsImportProtocolOptions {} export interface UseNumberNamespaceOptions {} +export interface UseNumericSeparatorsOptions {} +export interface UseObjectSpreadOptions {} +export interface UseReadonlyClassPropertiesOptions { + /** + * When `true`, the keywords `public`, `protected`, and `private` are analyzed by the rule. + */ + checkAllProperties: boolean; +} export interface UseSelfClosingElementsOptions { ignoreHtmlElements?: boolean; } export interface UseShorthandAssignOptions {} export interface UseShorthandFunctionTypeOptions {} export interface UseSingleVarDeclaratorOptions {} +export interface UseSymbolDescriptionOptions {} export interface UseTemplateOptions {} export interface UseThrowNewErrorOptions {} export interface UseThrowOnlyErrorOptions {} export interface UseTrimStartEndOptions {} +export interface UseUnifiedTypeSignaturesOptions {} export interface NoAlertOptions {} export interface NoApproximativeNumericConstantOptions {} export interface NoArrayIndexKeyOptions {} export interface NoAssignInExpressionsOptions {} export interface NoAsyncPromiseExecutorOptions {} +export interface NoBitwiseOperatorsOptions { + /** + * Allows a list of bitwise operators to be used as exceptions. + */ + allow: string[]; +} export interface NoCatchAssignOptions {} export interface NoClassAssignOptions {} export interface NoCommentTextOptions {} @@ -8177,6 +8124,7 @@ export interface NoConsoleOptions { allow: string[]; } export interface NoConstEnumOptions {} +export interface NoConstantBinaryExpressionsOptions {} export interface NoControlCharactersInRegexOptions {} export interface NoDebuggerOptions {} export interface NoDocumentCookieOptions {} @@ -8238,12 +8186,18 @@ export interface NoSparseArrayOptions {} export interface NoSuspiciousSemicolonInJsxOptions {} export interface NoTemplateCurlyInStringOptions {} export interface NoThenPropertyOptions {} +export interface NoTsIgnoreOptions {} +export interface NoUnassignedVariablesOptions {} +export interface NoUnknownAtRuleOptions {} export interface NoUnsafeDeclarationMergingOptions {} export interface NoUnsafeNegationOptions {} +export interface NoUselessRegexBackrefsOptions {} +export interface NoUselessStringEscapesOptions {} export interface NoVarOptions {} export interface NoWithOptions {} export interface UseAdjacentOverloadSignaturesOptions {} export interface UseAwaitOptions {} +export interface UseConsistentIterableCallbackReturnValuesOptions {} export interface UseDefaultSwitchClauseLastOptions {} export interface UseErrorMessageOptions {} export interface UseGetterReturnOptions {} @@ -8252,9 +8206,11 @@ export interface UseGuardForInOptions {} export interface UseIsArrayOptions {} export interface UseNamespaceKeywordOptions {} export interface UseNumberToFixedDigitsArgumentOptions {} +export interface UseStaticResponseMethodsOptions {} export interface UseStrictModeOptions {} export type ImportGroup = null | GroupMatcher | GroupMatcher[]; export type Visibility = "public" | "package" | "private"; +export type CustomRestrictedElements = Record; export type DependencyAvailability = boolean | string[]; export interface Hook { /** @@ -8282,23 +8238,7 @@ For example, for React's `useRef()` hook the value would be `true`, while for `u */ stableResult?: StableHookResult; } -export type CustomRestrictedElements = Record; -export type ObjectPropertySyntax = "explicit" | "shorthand"; export type ConsistentTypeDefinition = "interface" | "type"; -export interface Convention { - /** - * String cases to enforce - */ - formats: Formats; - /** - * Regular expression to enforce - */ - match?: Regex; - /** - * Declarations concerned by this convention - */ - selector: Selector; -} /** * Specifies whether property assignments on function parameters are allowed or denied. */ @@ -8307,29 +8247,29 @@ export type CustomRestrictedImport = string | CustomRestrictedImportOptions; export type CustomRestrictedType = string | CustomRestrictedTypeOptions; export type ConsistentArrayType = "shorthand" | "generic"; export type Accessibility = "noPublic" | "explicit" | "none"; +export type ObjectPropertySyntax = "explicit" | "shorthand"; export type FilenameCases = FilenameCase[]; export type Regex = string; /** * Rule's options. */ export type Style2 = "auto" | "inlineType" | "separatedType"; -export type GroupMatcher = ImportMatcher | SourceMatcher; -export type StableHookResult = boolean | number[]; -export type Formats = Format[]; -export interface Selector { +export interface Convention { /** - * Declaration kind + * String cases to enforce */ - kind: Kind; + formats: Formats; /** - * Modifiers used on the declaration + * Regular expression to enforce */ - modifiers: Modifiers; + match?: Regex; /** - * Scope of the declaration + * Declarations concerned by this convention */ - scope: Scope; + selector: Selector; } +export type GroupMatcher = ImportMatcher | SourceMatcher; +export type StableHookResult = boolean | number[]; export interface CustomRestrictedImportOptions { /** * Names of the exported members that allowed to be not be used. @@ -8357,6 +8297,21 @@ export type FilenameCase = | "kebab-case" | "PascalCase" | "snake_case"; +export type Formats = Format[]; +export interface Selector { + /** + * Declaration kind + */ + kind: Kind; + /** + * Modifiers used on the declaration + */ + modifiers: Modifiers; + /** + * Scope of the declaration + */ + scope: Scope; +} export interface ImportMatcher { source?: SourcesMatcher; type?: boolean; @@ -8469,6 +8424,7 @@ export type Category = | "lint/a11y/noHeaderScope" | "lint/a11y/noInteractiveElementToNoninteractiveRole" | "lint/a11y/noLabelWithoutControl" + | "lint/a11y/noNoninteractiveElementInteractions" | "lint/a11y/noNoninteractiveElementToInteractiveRole" | "lint/a11y/noNoninteractiveTabindex" | "lint/a11y/noPositiveTabindex" @@ -8504,9 +8460,12 @@ export type Category = | "lint/complexity/noEmptyTypeParameters" | "lint/complexity/noExcessiveCognitiveComplexity" | "lint/complexity/noExcessiveNestedTestSuites" + | "lint/complexity/noExcessiveLinesPerFunction" | "lint/complexity/noExtraBooleanCast" | "lint/complexity/noFlatMapIdentity" | "lint/complexity/noForEach" + | "lint/complexity/noImplicitCoercions" + | "lint/complexity/noImportantStyles" | "lint/complexity/noStaticOnlyClass" | "lint/complexity/noThisInStatic" | "lint/complexity/noUselessCatch" @@ -8529,6 +8488,7 @@ export type Category = | "lint/complexity/useArrowFunction" | "lint/complexity/useDateNow" | "lint/complexity/useFlatMap" + | "lint/complexity/useIndexOf" | "lint/complexity/useLiteralKeys" | "lint/complexity/useNumericLiterals" | "lint/complexity/useOptionalChain" @@ -8543,6 +8503,7 @@ export type Category = | "lint/correctness/noConstructorReturn" | "lint/correctness/noEmptyCharacterClassInRegex" | "lint/correctness/noEmptyPattern" + | "lint/correctness/noGlobalDirnameFilename" | "lint/correctness/noGlobalObjectCalls" | "lint/correctness/noInnerDeclarations" | "lint/correctness/noInvalidBuiltinInstantiation" @@ -8553,14 +8514,19 @@ export type Category = | "lint/correctness/noInvalidPositionAtImportRule" | "lint/correctness/noInvalidUseBeforeDeclaration" | "lint/correctness/noMissingVarFunction" + | "lint/correctness/noNestedComponentDefinitions" | "lint/correctness/noNewSymbol" | "lint/correctness/noNodejsModules" | "lint/correctness/noNonoctalDecimalEscape" | "lint/correctness/noPrecisionLoss" | "lint/correctness/noPrivateImports" + | "lint/correctness/noProcessGlobal" + | "lint/correctness/noReactPropAssignments" | "lint/correctness/noRenderReturnValue" + | "lint/correctness/noRestrictedElements" | "lint/correctness/noSelfAssign" | "lint/correctness/noSetterReturn" + | "lint/correctness/noSolidDestructuredProps" | "lint/correctness/noStringCaseMismatch" | "lint/correctness/noSwitchDeclarations" | "lint/correctness/noUndeclaredDependencies" @@ -8589,12 +8555,16 @@ export type Category = | "lint/correctness/useHookAtTopLevel" | "lint/correctness/useImportExtensions" | "lint/correctness/useIsNan" + | "lint/correctness/useJsonImportAttributes" | "lint/correctness/useJsxKeyInIterable" + | "lint/correctness/useNamedGraphqlOperations" + | "lint/correctness/useParseIntRadix" + | "lint/correctness/useSingleJsDocAsterisk" + | "lint/correctness/useUniqueElementIds" | "lint/correctness/useValidForDirection" | "lint/correctness/useValidTypeof" | "lint/correctness/useYield" | "lint/nursery/colorNoInvalidHex" - | "lint/nursery/noNextAsyncClientComponent" | "lint/nursery/noAwaitInLoop" | "lint/nursery/noBitwiseOperators" | "lint/nursery/noColorInvalidHex" @@ -8631,7 +8601,6 @@ export type Category = | "lint/nursery/noTsIgnore" | "lint/nursery/noUnassignedVariables" | "lint/nursery/noUndeclaredDependencies" - | "lint/nursery/noUnknownAtRule" | "lint/nursery/noUnknownFunction" | "lint/nursery/noUnknownMediaFeatureName" | "lint/nursery/noUnknownProperty" @@ -8647,7 +8616,6 @@ export type Category = | "lint/nursery/noUselessUndefined" | "lint/nursery/noVueReservedKeys" | "lint/nursery/noVueReservedProps" - | "lint/nursery/noVueDataObjectDeclaration" | "lint/nursery/useAdjacentGetterSetter" | "lint/nursery/useAnchorHref" | "lint/nursery/useBiomeSuppressionComment" @@ -8666,7 +8634,6 @@ export type Category = | "lint/nursery/useIterableCallbackReturn" | "lint/nursery/useJsonImportAttribute" | "lint/nursery/useJsxCurlyBraceConvention" - | "lint/nursery/useMaxParams" | "lint/nursery/useNamedOperation" | "lint/nursery/useNamingConvention" | "lint/nursery/useNumericSeparators" @@ -8682,12 +8649,16 @@ export type Category = | "lint/nursery/useUnifiedTypeSignature" | "lint/nursery/useUniqueElementIds" | "lint/performance/noAccumulatingSpread" + | "lint/performance/noAwaitInLoops" | "lint/performance/noBarrelFile" | "lint/performance/noDelete" | "lint/performance/noDynamicNamespaceImportAccess" | "lint/performance/noImgElement" | "lint/performance/noNamespaceImport" | "lint/performance/noReExportAll" + | "lint/performance/noUnwantedPolyfillio" + | "lint/performance/useGoogleFontPreconnect" + | "lint/performance/useSolidForComponent" | "lint/performance/useTopLevelRegex" | "lint/security/noBlankTarget" | "lint/security/noDangerouslySetInnerHtml" @@ -8698,6 +8669,7 @@ export type Category = | "lint/style/noDescendingSpecificity" | "lint/style/noDoneCallback" | "lint/style/noEnum" + | "lint/style/noMagicNumbers" | "lint/style/noExportedImports" | "lint/style/noHeadElement" | "lint/style/noImplicitBoolean" @@ -8716,6 +8688,7 @@ export type Category = | "lint/style/noSubstr" | "lint/style/noUnusedTemplateLiteral" | "lint/style/noUselessElse" + | "lint/style/noUselessUndefined" | "lint/style/noValueAtRule" | "lint/style/noYodaExpression" | "lint/style/useArrayLiterals" @@ -8736,14 +8709,22 @@ export type Category = | "lint/style/useEnumInitializers" | "lint/style/useExplicitLengthCheck" | "lint/style/useExponentiationOperator" + | "lint/style/useConsistentObjectDefinitions" | "lint/style/useExportType" + | "lint/style/useExportsLast" | "lint/style/useFilenamingConvention" | "lint/style/useForOf" | "lint/style/useFragmentSyntax" + | "lint/style/useGroupedAccessorPairs" | "lint/style/useImportType" | "lint/style/useLiteralEnumMembers" | "lint/style/useNamingConvention" | "lint/style/useNodeAssertStrict" + | "lint/style/useNumericSeparators" + | "lint/style/useObjectSpread" + | "lint/style/useReadonlyClassProperties" + | "lint/style/useSymbolDescription" + | "lint/style/useUnifiedTypeSignatures" | "lint/style/useNodejsImportProtocol" | "lint/style/useNumberNamespace" | "lint/style/useSelfClosingElements" @@ -8761,10 +8742,12 @@ export type Category = | "lint/suspicious/noArrayIndexKey" | "lint/suspicious/noAssignInExpressions" | "lint/suspicious/noAsyncPromiseExecutor" + | "lint/suspicious/noBitwiseOperators" | "lint/suspicious/noCatchAssign" | "lint/suspicious/noClassAssign" | "lint/suspicious/noCommentText" | "lint/suspicious/noCompareNegZero" + | "lint/suspicious/noConstantBinaryExpressions" | "lint/suspicious/noConfusingLabels" | "lint/suspicious/noConfusingVoidType" | "lint/suspicious/noConsole" @@ -8817,18 +8800,24 @@ export type Category = | "lint/suspicious/noRedundantUseStrict" | "lint/suspicious/noSelfCompare" | "lint/suspicious/noShadowRestrictedNames" + | "lint/suspicious/noTsIgnore" + | "lint/suspicious/noUnassignedVariables" + | "lint/suspicious/noUselessRegexBackrefs" + | "lint/suspicious/noUselessStringEscapes" | "lint/suspicious/noShorthandPropertyOverrides" | "lint/suspicious/noSkippedTests" | "lint/suspicious/noSparseArray" | "lint/suspicious/noSuspiciousSemicolonInJsx" | "lint/suspicious/noTemplateCurlyInString" | "lint/suspicious/noThenProperty" + | "lint/suspicious/noUnknownAtRule" | "lint/suspicious/noUnsafeDeclarationMerging" | "lint/suspicious/noUnsafeNegation" | "lint/suspicious/noVar" | "lint/suspicious/noWith" | "lint/suspicious/useAdjacentOverloadSignatures" | "lint/suspicious/useAwait" + | "lint/suspicious/useConsistentIterableCallbackReturnValues" | "lint/suspicious/useDefaultSwitchClauseLast" | "lint/suspicious/useErrorMessage" | "lint/suspicious/useGetterReturn" @@ -8837,6 +8826,7 @@ export type Category = | "lint/suspicious/useIsArray" | "lint/suspicious/useNamespaceKeyword" | "lint/suspicious/useNumberToFixedDigitsArgument" + | "lint/suspicious/useStaticResponseMethods" | "lint/suspicious/useStrictMode" | "assist/source/useSortedKeys" | "assist/source/useSortedProperties" diff --git a/packages/@biomejs/biome/configuration_schema.json b/packages/@biomejs/biome/configuration_schema.json index 169791e4b02b..9ea787b69e3d 100644 --- a/packages/@biomejs/biome/configuration_schema.json +++ b/packages/@biomejs/biome/configuration_schema.json @@ -163,6 +163,15 @@ { "type": "null" } ] }, + "noNoninteractiveElementInteractions": { + "description": "Disallow use event handlers on non-interactive elements.", + "anyOf": [ + { + "$ref": "#/definitions/NoNoninteractiveElementInteractionsConfiguration" + }, + { "type": "null" } + ] + }, "noNoninteractiveElementToInteractiveRole": { "description": "Enforce that interactive ARIA roles are not assigned to non-interactive HTML elements.", "anyOf": [ @@ -466,6 +475,15 @@ { "type": "null" } ] }, + "noExcessiveLinesPerFunction": { + "description": "Restrict the number of lines of code in a function.", + "anyOf": [ + { + "$ref": "#/definitions/NoExcessiveLinesPerFunctionConfiguration" + }, + { "type": "null" } + ] + }, "noExcessiveNestedTestSuites": { "description": "This rule enforces a maximum depth to nested describe() in test files.", "anyOf": [ @@ -496,6 +514,20 @@ { "type": "null" } ] }, + "noImplicitCoercions": { + "description": "Disallow shorthand type conversions.", + "anyOf": [ + { "$ref": "#/definitions/NoImplicitCoercionsConfiguration" }, + { "type": "null" } + ] + }, + "noImportantStyles": { + "description": "Disallow the use of the !important style.", + "anyOf": [ + { "$ref": "#/definitions/NoImportantStylesConfiguration" }, + { "type": "null" } + ] + }, "noStaticOnlyClass": { "description": "This rule reports when a class has no non-static members, such as for a class used exclusively as a static namespace.", "anyOf": [ @@ -658,6 +690,13 @@ { "type": "null" } ] }, + "useIndexOf": { + "description": "Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item.", + "anyOf": [ + { "$ref": "#/definitions/UseIndexOfConfiguration" }, + { "type": "null" } + ] + }, "useLiteralKeys": { "description": "Enforce the usage of a literal access to properties over computed property access.", "anyOf": [ @@ -813,6 +852,13 @@ { "type": "null" } ] }, + "noGlobalDirnameFilename": { + "description": "Disallow the use of __dirname and __filename in the global scope.", + "anyOf": [ + { "$ref": "#/definitions/NoGlobalDirnameFilenameConfiguration" }, + { "type": "null" } + ] + }, "noGlobalObjectCalls": { "description": "Disallow calling global object properties as functions", "anyOf": [ @@ -884,6 +930,15 @@ { "type": "null" } ] }, + "noNestedComponentDefinitions": { + "description": "Disallows defining React components inside other components.", + "anyOf": [ + { + "$ref": "#/definitions/NoNestedComponentDefinitionsConfiguration" + }, + { "type": "null" } + ] + }, "noNodejsModules": { "description": "Forbid the use of Node.js builtin modules.", "anyOf": [ @@ -912,6 +967,20 @@ { "type": "null" } ] }, + "noProcessGlobal": { + "description": "Disallow the use of process global.", + "anyOf": [ + { "$ref": "#/definitions/NoProcessGlobalConfiguration" }, + { "type": "null" } + ] + }, + "noReactPropAssignments": { + "description": "Disallow assigning to React component props.", + "anyOf": [ + { "$ref": "#/definitions/NoReactPropAssignmentsConfiguration" }, + { "type": "null" } + ] + }, "noRenderReturnValue": { "description": "Prevent the usage of the return value of React.render.", "anyOf": [ @@ -919,6 +988,13 @@ { "type": "null" } ] }, + "noRestrictedElements": { + "description": "Disallow the use of configured elements.", + "anyOf": [ + { "$ref": "#/definitions/NoRestrictedElementsConfiguration" }, + { "type": "null" } + ] + }, "noSelfAssign": { "description": "Disallow assignments where both sides are exactly the same.", "anyOf": [ @@ -933,6 +1009,13 @@ { "type": "null" } ] }, + "noSolidDestructuredProps": { + "description": "Disallow destructuring props inside JSX components in Solid projects.", + "anyOf": [ + { "$ref": "#/definitions/NoSolidDestructuredPropsConfiguration" }, + { "type": "null" } + ] + }, "noStringCaseMismatch": { "description": "Disallow comparison of expressions modifying the string case with non-compliant value.", "anyOf": [ @@ -1128,6 +1211,13 @@ { "type": "null" } ] }, + "useJsonImportAttributes": { + "description": "Enforces the use of with { type: \"json\" } for JSON module imports.", + "anyOf": [ + { "$ref": "#/definitions/UseJsonImportAttributesConfiguration" }, + { "type": "null" } + ] + }, "useJsxKeyInIterable": { "description": "Disallow missing key props in iterators/collection literals.", "anyOf": [ @@ -1135,6 +1225,34 @@ { "type": "null" } ] }, + "useNamedGraphqlOperations": { + "description": "Enforce specifying the name of GraphQL operations.", + "anyOf": [ + { "$ref": "#/definitions/UseNamedGraphqlOperationsConfiguration" }, + { "type": "null" } + ] + }, + "useParseIntRadix": { + "description": "Enforce the consistent use of the radix argument when using parseInt().", + "anyOf": [ + { "$ref": "#/definitions/UseParseIntRadixConfiguration" }, + { "type": "null" } + ] + }, + "useSingleJsDocAsterisk": { + "description": "Enforce JSDoc comment lines to start with a single asterisk, except for the first one.", + "anyOf": [ + { "$ref": "#/definitions/UseSingleJsDocAsteriskConfiguration" }, + { "type": "null" } + ] + }, + "useUniqueElementIds": { + "description": "Prevent the usage of static string literal id attribute on elements.", + "anyOf": [ + { "$ref": "#/definitions/UseUniqueElementIdsConfiguration" }, + { "type": "null" } + ] + }, "useValidForDirection": { "description": "Enforce \"for\" loop update clause moving the counter in the right direction.", "anyOf": [ @@ -2466,13 +2584,16 @@ ] }, "NoAutofocusOptions": { "type": "object", "additionalProperties": false }, - "NoAwaitInLoopConfiguration": { + "NoAwaitInLoopsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoAwaitInLoopOptions" } + { "$ref": "#/definitions/RuleWithNoAwaitInLoopsOptions" } ] }, - "NoAwaitInLoopOptions": { "type": "object", "additionalProperties": false }, + "NoAwaitInLoopsOptions": { + "type": "object", + "additionalProperties": false + }, "NoBannedTypesConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -2642,13 +2763,13 @@ ] }, "NoConstEnumOptions": { "type": "object", "additionalProperties": false }, - "NoConstantBinaryExpressionConfiguration": { + "NoConstantBinaryExpressionsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoConstantBinaryExpressionOptions" } + { "$ref": "#/definitions/RuleWithNoConstantBinaryExpressionsOptions" } ] }, - "NoConstantBinaryExpressionOptions": { + "NoConstantBinaryExpressionsOptions": { "type": "object", "additionalProperties": false }, @@ -2748,16 +2869,6 @@ "type": "object", "additionalProperties": false }, - "NoDestructuredPropsConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoDestructuredPropsOptions" } - ] - }, - "NoDestructuredPropsOptions": { - "type": "object", - "additionalProperties": false - }, "NoDistractingElementsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -3312,13 +3423,13 @@ "type": "object", "additionalProperties": false }, - "NoImplicitCoercionConfiguration": { + "NoImplicitCoercionsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoImplicitCoercionOptions" } + { "$ref": "#/definitions/RuleWithNoImplicitCoercionsOptions" } ] }, - "NoImplicitCoercionOptions": { + "NoImplicitCoercionsOptions": { "type": "object", "additionalProperties": false }, @@ -3340,13 +3451,6 @@ }, "NoImportCyclesOptions": { "type": "object", - "properties": { - "ignoreTypes": { - "description": "Ignores type-only imports when finding an import cycle. A type-only import (`import type`) will be removed by the compiler, so it cuts an import cycle at runtime. Note that named type imports (`import { type Foo }`) aren't considered as type-only because it's not removed by the compiler if the `verbatimModuleSyntax` option is enabled. Enabled by default.", - "default": true, - "type": "boolean" - } - }, "additionalProperties": false }, "NoImportantInKeyframeConfiguration": { @@ -3629,16 +3733,6 @@ "type": "object", "additionalProperties": false }, - "NoNextAsyncClientComponentConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoNextAsyncClientComponentOptions" } - ] - }, - "NoNextAsyncClientComponentOptions": { - "type": "object", - "additionalProperties": false - }, "NoNodejsModulesConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -3848,13 +3942,13 @@ ] }, "NoReExportAllOptions": { "type": "object", "additionalProperties": false }, - "NoReactPropAssignConfiguration": { + "NoReactPropAssignmentsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoReactPropAssignOptions" } + { "$ref": "#/definitions/RuleWithNoReactPropAssignmentsOptions" } ] }, - "NoReactPropAssignOptions": { + "NoReactPropAssignmentsOptions": { "type": "object", "additionalProperties": false }, @@ -4076,6 +4170,16 @@ "type": "object", "additionalProperties": false }, + "NoSolidDestructuredPropsConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { "$ref": "#/definitions/RuleWithNoSolidDestructuredPropsOptions" } + ] + }, + "NoSolidDestructuredPropsOptions": { + "type": "object", + "additionalProperties": false + }, "NoSparseArrayConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -4489,16 +4593,6 @@ "type": "object", "additionalProperties": false }, - "NoUselessBackrefInRegexConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoUselessBackrefInRegexOptions" } - ] - }, - "NoUselessBackrefInRegexOptions": { - "type": "object", - "additionalProperties": false - }, "NoUselessCatchConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -4596,6 +4690,16 @@ "type": "object", "additionalProperties": false }, + "NoUselessRegexBackrefsConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { "$ref": "#/definitions/RuleWithNoUselessRegexBackrefsOptions" } + ] + }, + "NoUselessRegexBackrefsOptions": { + "type": "object", + "additionalProperties": false + }, "NoUselessRenameConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -4616,6 +4720,16 @@ "type": "object", "additionalProperties": false }, + "NoUselessStringEscapesConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { "$ref": "#/definitions/RuleWithNoUselessStringEscapesOptions" } + ] + }, + "NoUselessStringEscapesOptions": { + "type": "object", + "additionalProperties": false + }, "NoUselessStringRawConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -4729,16 +4843,6 @@ "type": "object", "additionalProperties": false }, - "NoVueDataObjectDeclarationConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithNoVueDataObjectDeclarationOptions" } - ] - }, - "NoVueDataObjectDeclarationOptions": { - "type": "object", - "additionalProperties": false - }, "NoVueReservedKeysConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -4784,298 +4888,115 @@ "description": "A list of rules that belong to this group", "type": "object", "properties": { - "noAwaitInLoop": { - "description": "Disallow await inside loops.", + "noFloatingPromises": { + "description": "Require Promise-like statements to be handled appropriately.", "anyOf": [ - { "$ref": "#/definitions/NoAwaitInLoopConfiguration" }, + { "$ref": "#/definitions/NoFloatingPromisesConfiguration" }, { "type": "null" } ] }, - "noBitwiseOperators": { - "description": "Disallow bitwise operators.", + "noImportCycles": { + "description": "Prevent import cycles.", "anyOf": [ - { "$ref": "#/definitions/NoBitwiseOperatorsConfiguration" }, + { "$ref": "#/definitions/NoImportCyclesConfiguration" }, { "type": "null" } ] }, - "noConstantBinaryExpression": { - "description": "Disallow expressions where the operation doesn't affect the value", + "noMisusedPromises": { + "description": "Disallow Promises to be used in places where they are almost certainly a mistake.", "anyOf": [ - { "$ref": "#/definitions/NoConstantBinaryExpressionConfiguration" }, + { "$ref": "#/definitions/NoMisusedPromisesConfiguration" }, { "type": "null" } ] }, - "noDestructuredProps": { - "description": "Disallow destructuring props inside JSX components in Solid projects.", + "noNonNullAssertedOptionalChain": { + "description": "Disallow non-null assertions after optional chaining expressions.", "anyOf": [ - { "$ref": "#/definitions/NoDestructuredPropsConfiguration" }, + { + "$ref": "#/definitions/NoNonNullAssertedOptionalChainConfiguration" + }, { "type": "null" } ] }, - "noExcessiveLinesPerFunction": { - "description": "Restrict the number of lines of code in a function.", + "noQuickfixBiome": { + "description": "Disallow the use if quickfix.biome inside editor settings file.", "anyOf": [ - { - "$ref": "#/definitions/NoExcessiveLinesPerFunctionConfiguration" - }, + { "$ref": "#/definitions/NoQuickfixBiomeConfiguration" }, { "type": "null" } ] }, - "noFloatingPromises": { - "description": "Require Promise-like statements to be handled appropriately.", + "noQwikUseVisibleTask": { + "description": "Disallow useVisibleTask$() functions in Qwik components.", "anyOf": [ - { "$ref": "#/definitions/NoFloatingPromisesConfiguration" }, + { "$ref": "#/definitions/NoQwikUseVisibleTaskConfiguration" }, { "type": "null" } ] }, - "noGlobalDirnameFilename": { - "description": "Disallow the use of __dirname and __filename in the global scope.", + "noSecrets": { + "description": "Disallow usage of sensitive data such as API keys and tokens.", "anyOf": [ - { "$ref": "#/definitions/NoGlobalDirnameFilenameConfiguration" }, + { "$ref": "#/definitions/NoSecretsConfiguration" }, { "type": "null" } ] }, - "noImplicitCoercion": { - "description": "Disallow shorthand type conversions.", + "noShadow": { + "description": "Disallow variable declarations from shadowing variables declared in the outer scope.", "anyOf": [ - { "$ref": "#/definitions/NoImplicitCoercionConfiguration" }, + { "$ref": "#/definitions/NoShadowConfiguration" }, { "type": "null" } ] }, - "noImportCycles": { - "description": "Prevent import cycles.", + "noUnnecessaryConditions": { + "description": "Disallow unnecessary type-based conditions that can be statically determined as redundant.", "anyOf": [ - { "$ref": "#/definitions/NoImportCyclesConfiguration" }, + { "$ref": "#/definitions/NoUnnecessaryConditionsConfiguration" }, { "type": "null" } ] }, - "noImportantStyles": { - "description": "Disallow the use of the !important style.", + "noUnresolvedImports": { + "description": "Warn when importing non-existing exports.", "anyOf": [ - { "$ref": "#/definitions/NoImportantStylesConfiguration" }, + { "$ref": "#/definitions/NoUnresolvedImportsConfiguration" }, { "type": "null" } ] }, - "noMagicNumbers": { - "description": "Reports usage of \"magic numbers\" — numbers used directly instead of being assigned to named constants.", + "noUselessEscapeInString": { + "description": "Disallow unnecessary escapes in string literals.", "anyOf": [ - { "$ref": "#/definitions/NoMagicNumbersConfiguration" }, + { "$ref": "#/definitions/NoUselessEscapeInStringConfiguration" }, { "type": "null" } ] }, - "noMisusedPromises": { - "description": "Disallow Promises to be used in places where they are almost certainly a mistake.", + "noVueReservedKeys": { + "description": "Disallow reserved keys in Vue component data and computed properties.", "anyOf": [ - { "$ref": "#/definitions/NoMisusedPromisesConfiguration" }, + { "$ref": "#/definitions/NoVueReservedKeysConfiguration" }, { "type": "null" } ] }, - "noNestedComponentDefinitions": { - "description": "Disallows defining React components inside other components.", + "noVueReservedProps": { + "description": "Disallow reserved names to be used as props.", "anyOf": [ - { - "$ref": "#/definitions/NoNestedComponentDefinitionsConfiguration" - }, + { "$ref": "#/definitions/NoVueReservedPropsConfiguration" }, { "type": "null" } ] }, - "noNextAsyncClientComponent": { - "description": "Prevent client components from being async functions.", + "recommended": { + "description": "It enables the recommended rules for this group", + "type": ["boolean", "null"] + }, + "useAnchorHref": { + "description": "Enforces href attribute for \\ elements.", "anyOf": [ - { "$ref": "#/definitions/NoNextAsyncClientComponentConfiguration" }, + { "$ref": "#/definitions/UseAnchorHrefConfiguration" }, { "type": "null" } ] }, - "noNonNullAssertedOptionalChain": { - "description": "Disallow non-null assertions after optional chaining expressions.", + "useConsistentTypeDefinitions": { + "description": "Enforce type definitions to consistently use either interface or type.", "anyOf": [ { - "$ref": "#/definitions/NoNonNullAssertedOptionalChainConfiguration" - }, - { "type": "null" } - ] - }, - "noNoninteractiveElementInteractions": { - "description": "Disallow use event handlers on non-interactive elements.", - "anyOf": [ - { - "$ref": "#/definitions/NoNoninteractiveElementInteractionsConfiguration" - }, - { "type": "null" } - ] - }, - "noProcessGlobal": { - "description": "Disallow the use of process global.", - "anyOf": [ - { "$ref": "#/definitions/NoProcessGlobalConfiguration" }, - { "type": "null" } - ] - }, - "noQuickfixBiome": { - "description": "Disallow the use if quickfix.biome inside editor settings file.", - "anyOf": [ - { "$ref": "#/definitions/NoQuickfixBiomeConfiguration" }, - { "type": "null" } - ] - }, - "noQwikUseVisibleTask": { - "description": "Disallow useVisibleTask$() functions in Qwik components.", - "anyOf": [ - { "$ref": "#/definitions/NoQwikUseVisibleTaskConfiguration" }, - { "type": "null" } - ] - }, - "noReactPropAssign": { - "description": "Disallow assigning to React component props.", - "anyOf": [ - { "$ref": "#/definitions/NoReactPropAssignConfiguration" }, - { "type": "null" } - ] - }, - "noRestrictedElements": { - "description": "Disallow the use of configured elements.", - "anyOf": [ - { "$ref": "#/definitions/NoRestrictedElementsConfiguration" }, - { "type": "null" } - ] - }, - "noSecrets": { - "description": "Disallow usage of sensitive data such as API keys and tokens.", - "anyOf": [ - { "$ref": "#/definitions/NoSecretsConfiguration" }, - { "type": "null" } - ] - }, - "noShadow": { - "description": "Disallow variable declarations from shadowing variables declared in the outer scope.", - "anyOf": [ - { "$ref": "#/definitions/NoShadowConfiguration" }, - { "type": "null" } - ] - }, - "noTsIgnore": { - "description": "Prevents the use of the TypeScript directive @ts-ignore.", - "anyOf": [ - { "$ref": "#/definitions/NoTsIgnoreConfiguration" }, - { "type": "null" } - ] - }, - "noUnassignedVariables": { - "description": "Disallow let or var variables that are read but never assigned.", - "anyOf": [ - { "$ref": "#/definitions/NoUnassignedVariablesConfiguration" }, - { "type": "null" } - ] - }, - "noUnknownAtRule": { - "description": "Disallow unknown at-rules.", - "anyOf": [ - { "$ref": "#/definitions/NoUnknownAtRuleConfiguration" }, - { "type": "null" } - ] - }, - "noUnnecessaryConditions": { - "description": "Disallow unnecessary type-based conditions that can be statically determined as redundant.", - "anyOf": [ - { "$ref": "#/definitions/NoUnnecessaryConditionsConfiguration" }, - { "type": "null" } - ] - }, - "noUnresolvedImports": { - "description": "Warn when importing non-existing exports.", - "anyOf": [ - { "$ref": "#/definitions/NoUnresolvedImportsConfiguration" }, - { "type": "null" } - ] - }, - "noUnwantedPolyfillio": { - "description": "Prevent duplicate polyfills from Polyfill.io.", - "anyOf": [ - { "$ref": "#/definitions/NoUnwantedPolyfillioConfiguration" }, - { "type": "null" } - ] - }, - "noUselessBackrefInRegex": { - "description": "Disallow useless backreferences in regular expression literals that always match an empty string.", - "anyOf": [ - { "$ref": "#/definitions/NoUselessBackrefInRegexConfiguration" }, - { "type": "null" } - ] - }, - "noUselessEscapeInString": { - "description": "Disallow unnecessary escapes in string literals.", - "anyOf": [ - { "$ref": "#/definitions/NoUselessEscapeInStringConfiguration" }, - { "type": "null" } - ] - }, - "noUselessUndefined": { - "description": "Disallow the use of useless undefined.", - "anyOf": [ - { "$ref": "#/definitions/NoUselessUndefinedConfiguration" }, - { "type": "null" } - ] - }, - "noVueDataObjectDeclaration": { - "description": "Enforce that Vue component data options are declared as functions.", - "anyOf": [ - { "$ref": "#/definitions/NoVueDataObjectDeclarationConfiguration" }, - { "type": "null" } - ] - }, - "noVueReservedKeys": { - "description": "Disallow reserved keys in Vue component data and computed properties.", - "anyOf": [ - { "$ref": "#/definitions/NoVueReservedKeysConfiguration" }, - { "type": "null" } - ] - }, - "noVueReservedProps": { - "description": "Disallow reserved names to be used as props.", - "anyOf": [ - { "$ref": "#/definitions/NoVueReservedPropsConfiguration" }, - { "type": "null" } - ] - }, - "recommended": { - "description": "It enables the recommended rules for this group", - "type": ["boolean", "null"] - }, - "useAdjacentGetterSetter": { - "description": "Enforce that getters and setters for the same property are adjacent in class and object definitions.", - "anyOf": [ - { "$ref": "#/definitions/UseAdjacentGetterSetterConfiguration" }, - { "type": "null" } - ] - }, - "useAnchorHref": { - "description": "Enforces href attribute for \\ elements.", - "anyOf": [ - { "$ref": "#/definitions/UseAnchorHrefConfiguration" }, - { "type": "null" } - ] - }, - "useConsistentObjectDefinition": { - "description": "Require the consistent declaration of object literals. Defaults to explicit definitions.", - "anyOf": [ - { - "$ref": "#/definitions/UseConsistentObjectDefinitionConfiguration" - }, - { "type": "null" } - ] - }, - "useConsistentResponse": { - "description": "Use static Response methods instead of new Response() constructor when possible.", - "anyOf": [ - { "$ref": "#/definitions/UseConsistentResponseConfiguration" }, - { "type": "null" } - ] - }, - "useConsistentTypeDefinitions": { - "description": "Enforce type definitions to consistently use either interface or type.", - "anyOf": [ - { - "$ref": "#/definitions/UseConsistentTypeDefinitionsConfiguration" + "$ref": "#/definitions/UseConsistentTypeDefinitionsConfiguration" }, { "type": "null" } ] @@ -5094,27 +5015,6 @@ { "type": "null" } ] }, - "useExportsLast": { - "description": "Require that all exports are declared after all non-export statements.", - "anyOf": [ - { "$ref": "#/definitions/UseExportsLastConfiguration" }, - { "type": "null" } - ] - }, - "useForComponent": { - "description": "Enforce using Solid's \\ component for mapping an array to JSX elements.", - "anyOf": [ - { "$ref": "#/definitions/UseForComponentConfiguration" }, - { "type": "null" } - ] - }, - "useGoogleFontPreconnect": { - "description": "Ensure the preconnect attribute is used when using Google Fonts.", - "anyOf": [ - { "$ref": "#/definitions/UseGoogleFontPreconnectConfiguration" }, - { "type": "null" } - ] - }, "useImageSize": { "description": "Enforces that \\ elements have both width and height attributes.", "anyOf": [ @@ -5122,34 +5022,6 @@ { "type": "null" } ] }, - "useIndexOf": { - "description": "Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item.", - "anyOf": [ - { "$ref": "#/definitions/UseIndexOfConfiguration" }, - { "type": "null" } - ] - }, - "useIterableCallbackReturn": { - "description": "Enforce consistent return values in iterable callbacks.", - "anyOf": [ - { "$ref": "#/definitions/UseIterableCallbackReturnConfiguration" }, - { "type": "null" } - ] - }, - "useJsonImportAttribute": { - "description": "Enforces the use of with { type: \"json\" } for JSON module imports.", - "anyOf": [ - { "$ref": "#/definitions/UseJsonImportAttributeConfiguration" }, - { "type": "null" } - ] - }, - "useMaxParams": { - "description": "Enforce a maximum number of parameters in function definitions.", - "anyOf": [ - { "$ref": "#/definitions/UseMaxParamsConfiguration" }, - { "type": "null" } - ] - }, "useNamedOperation": { "description": "Enforce specifying the name of GraphQL operations.", "anyOf": [ @@ -5157,34 +5029,6 @@ { "type": "null" } ] }, - "useNamingConvention": { - "description": "Validates that all enum values are capitalized.", - "anyOf": [ - { "$ref": "#/definitions/UseNamingConventionConfiguration" }, - { "type": "null" } - ] - }, - "useNumericSeparators": { - "description": "Enforce the use of numeric separators in numeric literals.", - "anyOf": [ - { "$ref": "#/definitions/UseNumericSeparatorsConfiguration" }, - { "type": "null" } - ] - }, - "useObjectSpread": { - "description": "Prefer object spread over Object.assign() when constructing new objects.", - "anyOf": [ - { "$ref": "#/definitions/UseObjectSpreadConfiguration" }, - { "type": "null" } - ] - }, - "useParseIntRadix": { - "description": "Enforce the consistent use of the radix argument when using parseInt().", - "anyOf": [ - { "$ref": "#/definitions/UseParseIntRadixConfiguration" }, - { "type": "null" } - ] - }, "useQwikClasslist": { "description": "Prefer using the class prop as a classlist over the classnames helper.", "anyOf": [ @@ -5199,47 +5043,12 @@ { "type": "null" } ] }, - "useReadonlyClassProperties": { - "description": "Enforce marking members as readonly if they are never modified outside the constructor.", - "anyOf": [ - { "$ref": "#/definitions/UseReadonlyClassPropertiesConfiguration" }, - { "type": "null" } - ] - }, - "useSingleJsDocAsterisk": { - "description": "Enforce JSDoc comment lines to start with a single asterisk, except for the first one.", - "anyOf": [ - { "$ref": "#/definitions/UseSingleJsDocAsteriskConfiguration" }, - { "type": "null" } - ] - }, "useSortedClasses": { "description": "Enforce the sorting of CSS utility classes.", "anyOf": [ { "$ref": "#/definitions/UseSortedClassesConfiguration" }, { "type": "null" } ] - }, - "useSymbolDescription": { - "description": "Require a description parameter for the Symbol().", - "anyOf": [ - { "$ref": "#/definitions/UseSymbolDescriptionConfiguration" }, - { "type": "null" } - ] - }, - "useUnifiedTypeSignature": { - "description": "Disallow overload signatures that can be unified into a single signature.", - "anyOf": [ - { "$ref": "#/definitions/UseUnifiedTypeSignatureConfiguration" }, - { "type": "null" } - ] - }, - "useUniqueElementIds": { - "description": "Prevent the usage of static string literal id attribute on elements.", - "anyOf": [ - { "$ref": "#/definitions/UseUniqueElementIdsConfiguration" }, - { "type": "null" } - ] } }, "additionalProperties": false @@ -5470,6 +5279,13 @@ { "type": "null" } ] }, + "noAwaitInLoops": { + "description": "Disallow await inside loops.", + "anyOf": [ + { "$ref": "#/definitions/NoAwaitInLoopsConfiguration" }, + { "type": "null" } + ] + }, "noBarrelFile": { "description": "Disallow the use of barrel file.", "anyOf": [ @@ -5514,10 +5330,31 @@ { "type": "null" } ] }, + "noUnwantedPolyfillio": { + "description": "Prevent duplicate polyfills from Polyfill.io.", + "anyOf": [ + { "$ref": "#/definitions/NoUnwantedPolyfillioConfiguration" }, + { "type": "null" } + ] + }, "recommended": { "description": "It enables the recommended rules for this group", "type": ["boolean", "null"] }, + "useGoogleFontPreconnect": { + "description": "Ensure the preconnect attribute is used when using Google Fonts.", + "anyOf": [ + { "$ref": "#/definitions/UseGoogleFontPreconnectConfiguration" }, + { "type": "null" } + ] + }, + "useSolidForComponent": { + "description": "Enforce using Solid's \\ component for mapping an array to JSX elements.", + "anyOf": [ + { "$ref": "#/definitions/UseSolidForComponentConfiguration" }, + { "type": "null" } + ] + }, "useTopLevelRegex": { "description": "Require regex literals to be declared at the top level.", "anyOf": [ @@ -5946,7 +5783,7 @@ }, "additionalProperties": false }, - "RuleWithNoAwaitInLoopOptions": { + "RuleWithNoAwaitInLoopsOptions": { "type": "object", "required": ["level"], "properties": { @@ -5956,7 +5793,7 @@ }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/NoAwaitInLoopOptions" }] + "allOf": [{ "$ref": "#/definitions/NoAwaitInLoopsOptions" }] } }, "additionalProperties": false @@ -6233,7 +6070,7 @@ }, "additionalProperties": false }, - "RuleWithNoConstantBinaryExpressionOptions": { + "RuleWithNoConstantBinaryExpressionsOptions": { "type": "object", "required": ["level"], "properties": { @@ -6244,7 +6081,7 @@ "options": { "description": "Rule's options", "allOf": [ - { "$ref": "#/definitions/NoConstantBinaryExpressionOptions" } + { "$ref": "#/definitions/NoConstantBinaryExpressionsOptions" } ] } }, @@ -6422,21 +6259,6 @@ }, "additionalProperties": false }, - "RuleWithNoDestructuredPropsOptions": { - "type": "object", - "required": ["level"], - "properties": { - "level": { - "description": "The severity of the emitted diagnostics by the rule", - "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] - }, - "options": { - "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/NoDestructuredPropsOptions" }] - } - }, - "additionalProperties": false - }, "RuleWithNoDistractingElementsOptions": { "type": "object", "required": ["level"], @@ -7300,7 +7122,7 @@ }, "additionalProperties": false }, - "RuleWithNoImplicitCoercionOptions": { + "RuleWithNoImplicitCoercionsOptions": { "type": "object", "required": ["level"], "properties": { @@ -7314,7 +7136,7 @@ }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/NoImplicitCoercionOptions" }] + "allOf": [{ "$ref": "#/definitions/NoImplicitCoercionsOptions" }] } }, "additionalProperties": false @@ -7793,23 +7615,6 @@ }, "additionalProperties": false }, - "RuleWithNoNextAsyncClientComponentOptions": { - "type": "object", - "required": ["level"], - "properties": { - "level": { - "description": "The severity of the emitted diagnostics by the rule", - "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] - }, - "options": { - "description": "Rule's options", - "allOf": [ - { "$ref": "#/definitions/NoNextAsyncClientComponentOptions" } - ] - } - }, - "additionalProperties": false - }, "RuleWithNoNodejsModulesOptions": { "type": "object", "required": ["level"], @@ -8141,7 +7946,7 @@ }, "additionalProperties": false }, - "RuleWithNoReactPropAssignOptions": { + "RuleWithNoReactPropAssignmentsOptions": { "type": "object", "required": ["level"], "properties": { @@ -8151,7 +7956,7 @@ }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/NoReactPropAssignOptions" }] + "allOf": [{ "$ref": "#/definitions/NoReactPropAssignmentsOptions" }] } }, "additionalProperties": false @@ -8467,6 +8272,21 @@ }, "additionalProperties": false }, + "RuleWithNoSolidDestructuredPropsOptions": { + "type": "object", + "required": ["level"], + "properties": { + "level": { + "description": "The severity of the emitted diagnostics by the rule", + "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] + }, + "options": { + "description": "Rule's options", + "allOf": [{ "$ref": "#/definitions/NoSolidDestructuredPropsOptions" }] + } + }, + "additionalProperties": false + }, "RuleWithNoSparseArrayOptions": { "type": "object", "required": ["level"], @@ -9116,21 +8936,6 @@ }, "additionalProperties": false }, - "RuleWithNoUselessBackrefInRegexOptions": { - "type": "object", - "required": ["level"], - "properties": { - "level": { - "description": "The severity of the emitted diagnostics by the rule", - "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] - }, - "options": { - "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/NoUselessBackrefInRegexOptions" }] - } - }, - "additionalProperties": false - }, "RuleWithNoUselessCatchOptions": { "type": "object", "required": ["level"], @@ -9323,6 +9128,21 @@ }, "additionalProperties": false }, + "RuleWithNoUselessRegexBackrefsOptions": { + "type": "object", + "required": ["level"], + "properties": { + "level": { + "description": "The severity of the emitted diagnostics by the rule", + "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] + }, + "options": { + "description": "Rule's options", + "allOf": [{ "$ref": "#/definitions/NoUselessRegexBackrefsOptions" }] + } + }, + "additionalProperties": false + }, "RuleWithNoUselessRenameOptions": { "type": "object", "required": ["level"], @@ -9361,6 +9181,25 @@ }, "additionalProperties": false }, + "RuleWithNoUselessStringEscapesOptions": { + "type": "object", + "required": ["level"], + "properties": { + "fix": { + "description": "The kind of the code actions emitted by the rule", + "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] + }, + "level": { + "description": "The severity of the emitted diagnostics by the rule", + "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] + }, + "options": { + "description": "Rule's options", + "allOf": [{ "$ref": "#/definitions/NoUselessStringEscapesOptions" }] + } + }, + "additionalProperties": false + }, "RuleWithNoUselessStringRawOptions": { "type": "object", "required": ["level"], @@ -9577,27 +9416,6 @@ }, "additionalProperties": false }, - "RuleWithNoVueDataObjectDeclarationOptions": { - "type": "object", - "required": ["level"], - "properties": { - "fix": { - "description": "The kind of the code actions emitted by the rule", - "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] - }, - "level": { - "description": "The severity of the emitted diagnostics by the rule", - "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] - }, - "options": { - "description": "Rule's options", - "allOf": [ - { "$ref": "#/definitions/NoVueDataObjectDeclarationOptions" } - ] - } - }, - "additionalProperties": false - }, "RuleWithNoVueReservedKeysOptions": { "type": "object", "required": ["level"], @@ -9662,21 +9480,6 @@ }, "additionalProperties": false }, - "RuleWithUseAdjacentGetterSetterOptions": { - "type": "object", - "required": ["level"], - "properties": { - "level": { - "description": "The severity of the emitted diagnostics by the rule", - "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] - }, - "options": { - "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseAdjacentGetterSetterOptions" }] - } - }, - "additionalProperties": false - }, "RuleWithUseAdjacentOverloadSignaturesOptions": { "type": "object", "required": ["level"], @@ -10037,7 +9840,7 @@ }, "additionalProperties": false }, - "RuleWithUseConsistentMemberAccessibilityOptions": { + "RuleWithUseConsistentIterableCallbackReturnValuesOptions": { "type": "object", "required": ["level"], "properties": { @@ -10048,20 +9851,18 @@ "options": { "description": "Rule's options", "allOf": [ - { "$ref": "#/definitions/UseConsistentMemberAccessibilityOptions" } + { + "$ref": "#/definitions/UseConsistentIterableCallbackReturnValuesOptions" + } ] } }, "additionalProperties": false }, - "RuleWithUseConsistentObjectDefinitionOptions": { + "RuleWithUseConsistentMemberAccessibilityOptions": { "type": "object", "required": ["level"], "properties": { - "fix": { - "description": "The kind of the code actions emitted by the rule", - "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] - }, "level": { "description": "The severity of the emitted diagnostics by the rule", "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] @@ -10069,13 +9870,13 @@ "options": { "description": "Rule's options", "allOf": [ - { "$ref": "#/definitions/UseConsistentObjectDefinitionOptions" } + { "$ref": "#/definitions/UseConsistentMemberAccessibilityOptions" } ] } }, "additionalProperties": false }, - "RuleWithUseConsistentResponseOptions": { + "RuleWithUseConsistentObjectDefinitionsOptions": { "type": "object", "required": ["level"], "properties": { @@ -10089,7 +9890,9 @@ }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseConsistentResponseOptions" }] + "allOf": [ + { "$ref": "#/definitions/UseConsistentObjectDefinitionsOptions" } + ] } }, "additionalProperties": false @@ -10431,21 +10234,6 @@ }, "additionalProperties": false }, - "RuleWithUseForComponentOptions": { - "type": "object", - "required": ["level"], - "properties": { - "level": { - "description": "The severity of the emitted diagnostics by the rule", - "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] - }, - "options": { - "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseForComponentOptions" }] - } - }, - "additionalProperties": false - }, "RuleWithUseForOfOptions": { "type": "object", "required": ["level"], @@ -10529,17 +10317,32 @@ "type": "object", "required": ["level"], "properties": { - "fix": { - "description": "The kind of the code actions emitted by the rule", - "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] - }, + "fix": { + "description": "The kind of the code actions emitted by the rule", + "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] + }, + "level": { + "description": "The severity of the emitted diagnostics by the rule", + "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] + }, + "options": { + "description": "Rule's options", + "allOf": [{ "$ref": "#/definitions/UseGoogleFontPreconnectOptions" }] + } + }, + "additionalProperties": false + }, + "RuleWithUseGroupedAccessorPairsOptions": { + "type": "object", + "required": ["level"], + "properties": { "level": { "description": "The severity of the emitted diagnostics by the rule", "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseGoogleFontPreconnectOptions" }] + "allOf": [{ "$ref": "#/definitions/UseGroupedAccessorPairsOptions" }] } }, "additionalProperties": false @@ -10729,24 +10532,7 @@ }, "additionalProperties": false }, - "RuleWithUseIterableCallbackReturnOptions": { - "type": "object", - "required": ["level"], - "properties": { - "level": { - "description": "The severity of the emitted diagnostics by the rule", - "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] - }, - "options": { - "description": "Rule's options", - "allOf": [ - { "$ref": "#/definitions/UseIterableCallbackReturnOptions" } - ] - } - }, - "additionalProperties": false - }, - "RuleWithUseJsonImportAttributeOptions": { + "RuleWithUseJsonImportAttributesOptions": { "type": "object", "required": ["level"], "properties": { @@ -10760,7 +10546,7 @@ }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseJsonImportAttributeOptions" }] + "allOf": [{ "$ref": "#/definitions/UseJsonImportAttributesOptions" }] } }, "additionalProperties": false @@ -10844,7 +10630,7 @@ }, "additionalProperties": false }, - "RuleWithUseMaxParamsOptions": { + "RuleWithUseMediaCaptionOptions": { "type": "object", "required": ["level"], "properties": { @@ -10854,22 +10640,28 @@ }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseMaxParamsOptions" }] + "allOf": [{ "$ref": "#/definitions/UseMediaCaptionOptions" }] } }, "additionalProperties": false }, - "RuleWithUseMediaCaptionOptions": { + "RuleWithUseNamedGraphqlOperationsOptions": { "type": "object", "required": ["level"], "properties": { + "fix": { + "description": "The kind of the code actions emitted by the rule", + "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] + }, "level": { "description": "The severity of the emitted diagnostics by the rule", "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseMediaCaptionOptions" }] + "allOf": [ + { "$ref": "#/definitions/UseNamedGraphqlOperationsOptions" } + ] } }, "additionalProperties": false @@ -11322,6 +11114,21 @@ }, "additionalProperties": false }, + "RuleWithUseSolidForComponentOptions": { + "type": "object", + "required": ["level"], + "properties": { + "level": { + "description": "The severity of the emitted diagnostics by the rule", + "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] + }, + "options": { + "description": "Rule's options", + "allOf": [{ "$ref": "#/definitions/UseSolidForComponentOptions" }] + } + }, + "additionalProperties": false + }, "RuleWithUseSortedClassesOptions": { "type": "object", "required": ["level"], @@ -11341,6 +11148,25 @@ }, "additionalProperties": false }, + "RuleWithUseStaticResponseMethodsOptions": { + "type": "object", + "required": ["level"], + "properties": { + "fix": { + "description": "The kind of the code actions emitted by the rule", + "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] + }, + "level": { + "description": "The severity of the emitted diagnostics by the rule", + "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] + }, + "options": { + "description": "Rule's options", + "allOf": [{ "$ref": "#/definitions/UseStaticResponseMethodsOptions" }] + } + }, + "additionalProperties": false + }, "RuleWithUseStrictModeOptions": { "type": "object", "required": ["level"], @@ -11462,7 +11288,7 @@ }, "additionalProperties": false }, - "RuleWithUseUnifiedTypeSignatureOptions": { + "RuleWithUseUnifiedTypeSignaturesOptions": { "type": "object", "required": ["level"], "properties": { @@ -11476,7 +11302,7 @@ }, "options": { "description": "Rule's options", - "allOf": [{ "$ref": "#/definitions/UseUnifiedTypeSignatureOptions" }] + "allOf": [{ "$ref": "#/definitions/UseUnifiedTypeSignaturesOptions" }] } }, "additionalProperties": false @@ -11990,6 +11816,13 @@ { "type": "null" } ] }, + "noMagicNumbers": { + "description": "Reports usage of \"magic numbers\" — numbers used directly instead of being assigned to named constants.", + "anyOf": [ + { "$ref": "#/definitions/NoMagicNumbersConfiguration" }, + { "type": "null" } + ] + }, "noNamespace": { "description": "Disallow the use of TypeScript's namespaces.", "anyOf": [ @@ -12088,6 +11921,13 @@ { "type": "null" } ] }, + "noUselessUndefined": { + "description": "Disallow the use of useless undefined.", + "anyOf": [ + { "$ref": "#/definitions/NoUselessUndefinedConfiguration" }, + { "type": "null" } + ] + }, "noValueAtRule": { "description": "Disallow use of @value rule in css modules.", "anyOf": [ @@ -12189,6 +12029,15 @@ { "type": "null" } ] }, + "useConsistentObjectDefinitions": { + "description": "Require the consistent declaration of object literals. Defaults to explicit definitions.", + "anyOf": [ + { + "$ref": "#/definitions/UseConsistentObjectDefinitionsConfiguration" + }, + { "type": "null" } + ] + }, "useConst": { "description": "Require const declarations for variables that are only assigned once.", "anyOf": [ @@ -12245,6 +12094,13 @@ { "type": "null" } ] }, + "useExportsLast": { + "description": "Require that all exports are declared after all non-export statements.", + "anyOf": [ + { "$ref": "#/definitions/UseExportsLastConfiguration" }, + { "type": "null" } + ] + }, "useFilenamingConvention": { "description": "Enforce naming conventions for JavaScript and TypeScript filenames.", "anyOf": [ @@ -12266,6 +12122,13 @@ { "type": "null" } ] }, + "useGroupedAccessorPairs": { + "description": "Enforce that getters and setters for the same property are adjacent in class and object definitions.", + "anyOf": [ + { "$ref": "#/definitions/UseGroupedAccessorPairsConfiguration" }, + { "type": "null" } + ] + }, "useImportType": { "description": "Promotes the use of import type for types.", "anyOf": [ @@ -12281,7 +12144,7 @@ ] }, "useNamingConvention": { - "description": "Enforce naming conventions for everything across a codebase.", + "description": "Validates that all enum values are capitalized.", "anyOf": [ { "$ref": "#/definitions/UseNamingConventionConfiguration" }, { "type": "null" } @@ -12308,6 +12171,27 @@ { "type": "null" } ] }, + "useNumericSeparators": { + "description": "Enforce the use of numeric separators in numeric literals.", + "anyOf": [ + { "$ref": "#/definitions/UseNumericSeparatorsConfiguration" }, + { "type": "null" } + ] + }, + "useObjectSpread": { + "description": "Prefer object spread over Object.assign() when constructing new objects.", + "anyOf": [ + { "$ref": "#/definitions/UseObjectSpreadConfiguration" }, + { "type": "null" } + ] + }, + "useReadonlyClassProperties": { + "description": "Enforce marking members as readonly if they are never modified outside the constructor.", + "anyOf": [ + { "$ref": "#/definitions/UseReadonlyClassPropertiesConfiguration" }, + { "type": "null" } + ] + }, "useSelfClosingElements": { "description": "Prevent extra closing tags for components without children.", "anyOf": [ @@ -12336,6 +12220,13 @@ { "type": "null" } ] }, + "useSymbolDescription": { + "description": "Require a description parameter for the Symbol().", + "anyOf": [ + { "$ref": "#/definitions/UseSymbolDescriptionConfiguration" }, + { "type": "null" } + ] + }, "useTemplate": { "description": "Prefer template literals over string concatenation.", "anyOf": [ @@ -12363,6 +12254,13 @@ { "$ref": "#/definitions/UseTrimStartEndConfiguration" }, { "type": "null" } ] + }, + "useUnifiedTypeSignatures": { + "description": "Disallow overload signatures that can be unified into a single signature.", + "anyOf": [ + { "$ref": "#/definitions/UseUnifiedTypeSignaturesConfiguration" }, + { "type": "null" } + ] } }, "additionalProperties": false @@ -12428,6 +12326,13 @@ { "type": "null" } ] }, + "noBitwiseOperators": { + "description": "Disallow bitwise operators.", + "anyOf": [ + { "$ref": "#/definitions/NoBitwiseOperatorsConfiguration" }, + { "type": "null" } + ] + }, "noCatchAssign": { "description": "Disallow reassigning exceptions in catch clauses.", "anyOf": [ @@ -12484,6 +12389,15 @@ { "type": "null" } ] }, + "noConstantBinaryExpressions": { + "description": "Disallow expressions where the operation doesn't affect the value", + "anyOf": [ + { + "$ref": "#/definitions/NoConstantBinaryExpressionsConfiguration" + }, + { "type": "null" } + ] + }, "noControlCharactersInRegex": { "description": "Prevents from having control characters and some escape sequences that match control characters in regular expression literals.", "anyOf": [ @@ -12870,6 +12784,27 @@ { "type": "null" } ] }, + "noTsIgnore": { + "description": "Prevents the use of the TypeScript directive @ts-ignore.", + "anyOf": [ + { "$ref": "#/definitions/NoTsIgnoreConfiguration" }, + { "type": "null" } + ] + }, + "noUnassignedVariables": { + "description": "Disallow let or var variables that are read but never assigned.", + "anyOf": [ + { "$ref": "#/definitions/NoUnassignedVariablesConfiguration" }, + { "type": "null" } + ] + }, + "noUnknownAtRule": { + "description": "Disallow unknown at-rules.", + "anyOf": [ + { "$ref": "#/definitions/NoUnknownAtRuleConfiguration" }, + { "type": "null" } + ] + }, "noUnsafeDeclarationMerging": { "description": "Disallow unsafe declaration merging between interfaces and classes.", "anyOf": [ @@ -12884,6 +12819,20 @@ { "type": "null" } ] }, + "noUselessRegexBackrefs": { + "description": "Disallow useless backreferences in regular expression literals that always match an empty string.", + "anyOf": [ + { "$ref": "#/definitions/NoUselessRegexBackrefsConfiguration" }, + { "type": "null" } + ] + }, + "noUselessStringEscapes": { + "description": "Disallow unnecessary escapes in string literals.", + "anyOf": [ + { "$ref": "#/definitions/NoUselessStringEscapesConfiguration" }, + { "type": "null" } + ] + }, "noVar": { "description": "Disallow the use of var", "anyOf": [ @@ -12918,6 +12867,15 @@ { "type": "null" } ] }, + "useConsistentIterableCallbackReturnValues": { + "description": "Enforce consistent return values in iterable callbacks.", + "anyOf": [ + { + "$ref": "#/definitions/UseConsistentIterableCallbackReturnValuesConfiguration" + }, + { "type": "null" } + ] + }, "useDefaultSwitchClauseLast": { "description": "Enforce default clauses in switch statements to be last", "anyOf": [ @@ -12976,6 +12934,13 @@ { "type": "null" } ] }, + "useStaticResponseMethods": { + "description": "Use static Response methods instead of new Response() constructor when possible.", + "anyOf": [ + { "$ref": "#/definitions/UseStaticResponseMethodsConfiguration" }, + { "type": "null" } + ] + }, "useStrictMode": { "description": "Enforce the use of the directive \"use strict\" in script files.", "anyOf": [ @@ -13020,16 +12985,6 @@ } ] }, - "UseAdjacentGetterSetterConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseAdjacentGetterSetterOptions" } - ] - }, - "UseAdjacentGetterSetterOptions": { - "type": "object", - "additionalProperties": false - }, "UseAdjacentOverloadSignaturesConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -13237,6 +13192,18 @@ "type": "object", "additionalProperties": false }, + "UseConsistentIterableCallbackReturnValuesConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { + "$ref": "#/definitions/RuleWithUseConsistentIterableCallbackReturnValuesOptions" + } + ] + }, + "UseConsistentIterableCallbackReturnValuesOptions": { + "type": "object", + "additionalProperties": false + }, "UseConsistentMemberAccessibilityConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -13256,13 +13223,15 @@ }, "additionalProperties": false }, - "UseConsistentObjectDefinitionConfiguration": { + "UseConsistentObjectDefinitionsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseConsistentObjectDefinitionOptions" } + { + "$ref": "#/definitions/RuleWithUseConsistentObjectDefinitionsOptions" + } ] }, - "UseConsistentObjectDefinitionOptions": { + "UseConsistentObjectDefinitionsOptions": { "type": "object", "properties": { "syntax": { @@ -13273,16 +13242,6 @@ }, "additionalProperties": false }, - "UseConsistentResponseConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseConsistentResponseOptions" } - ] - }, - "UseConsistentResponseOptions": { - "type": "object", - "additionalProperties": false - }, "UseConsistentTypeDefinitionsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -13503,16 +13462,6 @@ "type": "object", "additionalProperties": false }, - "UseForComponentConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseForComponentOptions" } - ] - }, - "UseForComponentOptions": { - "type": "object", - "additionalProperties": false - }, "UseForOfConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -13570,6 +13519,16 @@ "type": "object", "additionalProperties": false }, + "UseGroupedAccessorPairsConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { "$ref": "#/definitions/RuleWithUseGroupedAccessorPairsOptions" } + ] + }, + "UseGroupedAccessorPairsOptions": { + "type": "object", + "additionalProperties": false + }, "UseGuardForInConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -13676,23 +13635,13 @@ ] }, "UseIsNanOptions": { "type": "object", "additionalProperties": false }, - "UseIterableCallbackReturnConfiguration": { - "anyOf": [ - { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseIterableCallbackReturnOptions" } - ] - }, - "UseIterableCallbackReturnOptions": { - "type": "object", - "additionalProperties": false - }, - "UseJsonImportAttributeConfiguration": { + "UseJsonImportAttributesConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseJsonImportAttributeOptions" } + { "$ref": "#/definitions/RuleWithUseJsonImportAttributesOptions" } ] }, - "UseJsonImportAttributeOptions": { + "UseJsonImportAttributesOptions": { "type": "object", "additionalProperties": false }, @@ -13753,32 +13702,23 @@ "type": "object", "additionalProperties": false }, - "UseMaxParamsConfiguration": { + "UseMediaCaptionConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseMaxParamsOptions" } + { "$ref": "#/definitions/RuleWithUseMediaCaptionOptions" } ] }, - "UseMaxParamsOptions": { + "UseMediaCaptionOptions": { "type": "object", - "properties": { - "max": { - "description": "Maximum number of parameters allowed (default: 4)", - "default": 4, - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - }, "additionalProperties": false }, - "UseMediaCaptionConfiguration": { + "UseNamedGraphqlOperationsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseMediaCaptionOptions" } + { "$ref": "#/definitions/RuleWithUseNamedGraphqlOperationsOptions" } ] }, - "UseMediaCaptionOptions": { + "UseNamedGraphqlOperationsOptions": { "type": "object", "additionalProperties": false }, @@ -14049,6 +13989,16 @@ "type": "object", "additionalProperties": false }, + "UseSolidForComponentConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { "$ref": "#/definitions/RuleWithUseSolidForComponentOptions" } + ] + }, + "UseSolidForComponentOptions": { + "type": "object", + "additionalProperties": false + }, "UseSortedAttributesOptions": { "type": "object", "additionalProperties": false @@ -14080,6 +14030,16 @@ "type": "object", "additionalProperties": false }, + "UseStaticResponseMethodsConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { "$ref": "#/definitions/RuleWithUseStaticResponseMethodsOptions" } + ] + }, + "UseStaticResponseMethodsOptions": { + "type": "object", + "additionalProperties": false + }, "UseStrictModeConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, @@ -14144,13 +14104,13 @@ "type": "object", "additionalProperties": false }, - "UseUnifiedTypeSignatureConfiguration": { + "UseUnifiedTypeSignaturesConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, - { "$ref": "#/definitions/RuleWithUseUnifiedTypeSignatureOptions" } + { "$ref": "#/definitions/RuleWithUseUnifiedTypeSignaturesOptions" } ] }, - "UseUnifiedTypeSignatureOptions": { + "UseUnifiedTypeSignaturesOptions": { "type": "object", "additionalProperties": false }, From 90584be5729420c64a82e1542bd1d1d524228fa7 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 6 Aug 2025 18:33:12 +0100 Subject: [PATCH 03/20] rename rule --- .../src/execute/migrate/eslint_to_biome.rs | 2 +- .../src/analyzer/linter/rules.rs | 111 +++++++++++------- .../src/categories.rs | 1 + .../biome_graphql_analyze/src/lint/style.rs | 4 +- ...on.rs => use_graphql_naming_convention.rs} | 10 +- .../invalid.graphql | 0 .../invalid.graphql.snap | 2 +- .../valid.graphql | 0 .../valid.graphql.snap | 0 crates/biome_rule_options/src/lib.rs | 1 + .../src/use_graphql_naming_convention.rs | 6 + 11 files changed, 83 insertions(+), 54 deletions(-) rename crates/biome_graphql_analyze/src/lint/style/{use_naming_convention.rs => use_graphql_naming_convention.rs} (87%) rename crates/biome_graphql_analyze/tests/specs/style/{useNamingConvention => useGraphqlNamingConvention}/invalid.graphql (100%) rename crates/biome_graphql_analyze/tests/specs/style/{useNamingConvention => useGraphqlNamingConvention}/invalid.graphql.snap (63%) rename crates/biome_graphql_analyze/tests/specs/style/{useNamingConvention => useGraphqlNamingConvention}/valid.graphql (100%) rename crates/biome_graphql_analyze/tests/specs/style/{useNamingConvention => useGraphqlNamingConvention}/valid.graphql.snap (100%) create mode 100644 crates/biome_rule_options/src/use_graphql_naming_convention.rs diff --git a/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs b/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs index 8f1ea17a9637..2ac7a86aa9a1 100644 --- a/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs +++ b/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs @@ -606,7 +606,7 @@ fn migrate_eslint_rule( biome_config::RuleWithFixOptions { level: severity.into(), fix: None, - options: options.into(), + options: conf.option_or_default().into(), }, )); } diff --git a/crates/biome_configuration/src/analyzer/linter/rules.rs b/crates/biome_configuration/src/analyzer/linter/rules.rs index 0e4acdaa97da..0416c2114090 100644 --- a/crates/biome_configuration/src/analyzer/linter/rules.rs +++ b/crates/biome_configuration/src/analyzer/linter/rules.rs @@ -368,6 +368,7 @@ pub enum RuleName { UseGetterReturn, UseGoogleFontDisplay, UseGoogleFontPreconnect, + UseGraphqlNamingConvention, UseGroupedAccessorPairs, UseGuardForIn, UseHeadingContent, @@ -723,6 +724,7 @@ impl RuleName { Self::UseGetterReturn => "useGetterReturn", Self::UseGoogleFontDisplay => "useGoogleFontDisplay", Self::UseGoogleFontPreconnect => "useGoogleFontPreconnect", + Self::UseGraphqlNamingConvention => "useGraphqlNamingConvention", Self::UseGroupedAccessorPairs => "useGroupedAccessorPairs", Self::UseGuardForIn => "useGuardForIn", Self::UseHeadingContent => "useHeadingContent", @@ -1072,6 +1074,7 @@ impl RuleName { Self::UseGetterReturn => RuleGroup::Suspicious, Self::UseGoogleFontDisplay => RuleGroup::Suspicious, Self::UseGoogleFontPreconnect => RuleGroup::Performance, + Self::UseGraphqlNamingConvention => RuleGroup::Style, Self::UseGroupedAccessorPairs => RuleGroup::Style, Self::UseGuardForIn => RuleGroup::Suspicious, Self::UseHeadingContent => RuleGroup::A11y, @@ -1432,6 +1435,7 @@ impl std::str::FromStr for RuleName { "useGetterReturn" => Ok(Self::UseGetterReturn), "useGoogleFontDisplay" => Ok(Self::UseGoogleFontDisplay), "useGoogleFontPreconnect" => Ok(Self::UseGoogleFontPreconnect), + "useGraphqlNamingConvention" => Ok(Self::UseGraphqlNamingConvention), "useGroupedAccessorPairs" => Ok(Self::UseGroupedAccessorPairs), "useGuardForIn" => Ok(Self::UseGuardForIn), "useHeadingContent" => Ok(Self::UseHeadingContent), @@ -5442,7 +5446,7 @@ impl From for Security { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Style { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow use of CommonJs module system in favor of ESM style imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_common_js : Option < RuleConfiguration < biome_rule_options :: no_common_js :: NoCommonJsOptions >> , # [doc = "Disallow default exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_default_export : Option < RuleConfiguration < biome_rule_options :: no_default_export :: NoDefaultExportOptions >> , # [doc = "Disallow a lower specificity selector from coming after a higher specificity selector."] # [serde (skip_serializing_if = "Option::is_none")] pub no_descending_specificity : Option < RuleConfiguration < biome_rule_options :: no_descending_specificity :: NoDescendingSpecificityOptions >> , # [doc = "Disallow using a callback in asynchronous tests and hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_done_callback : Option < RuleConfiguration < biome_rule_options :: no_done_callback :: NoDoneCallbackOptions >> , # [doc = "Disallow TypeScript enum."] # [serde (skip_serializing_if = "Option::is_none")] pub no_enum : Option < RuleConfiguration < biome_rule_options :: no_enum :: NoEnumOptions >> , # [doc = "Disallow exporting an imported variable."] # [serde (skip_serializing_if = "Option::is_none")] pub no_exported_imports : Option < RuleConfiguration < biome_rule_options :: no_exported_imports :: NoExportedImportsOptions >> , # [doc = "Prevent usage of \\ element in a Next.js project."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_element : Option < RuleConfiguration < biome_rule_options :: no_head_element :: NoHeadElementOptions >> , # [doc = "Disallow implicit true values on JSX boolean attributes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_boolean : Option < RuleFixConfiguration < biome_rule_options :: no_implicit_boolean :: NoImplicitBooleanOptions >> , # [doc = "Disallow type annotations for variables, parameters, and class properties initialized with a literal expression."] # [serde (skip_serializing_if = "Option::is_none")] pub no_inferrable_types : Option < RuleFixConfiguration < biome_rule_options :: no_inferrable_types :: NoInferrableTypesOptions >> , # [doc = "Reports usage of \"magic numbers\" — numbers used directly instead of being assigned to named constants."] # [serde (skip_serializing_if = "Option::is_none")] pub no_magic_numbers : Option < RuleConfiguration < biome_rule_options :: no_magic_numbers :: NoMagicNumbersOptions >> , # [doc = "Disallow the use of TypeScript's namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_namespace : Option < RuleConfiguration < biome_rule_options :: no_namespace :: NoNamespaceOptions >> , # [doc = "Disallow negation in the condition of an if statement if it has an else clause."] # [serde (skip_serializing_if = "Option::is_none")] pub no_negation_else : Option < RuleFixConfiguration < biome_rule_options :: no_negation_else :: NoNegationElseOptions >> , # [doc = "Disallow nested ternary expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nested_ternary : Option < RuleConfiguration < biome_rule_options :: no_nested_ternary :: NoNestedTernaryOptions >> , # [doc = "Disallow non-null assertions using the ! postfix operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_non_null_assertion :: NoNonNullAssertionOptions >> , # [doc = "Disallow reassigning function parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_assign : Option < RuleConfiguration < biome_rule_options :: no_parameter_assign :: NoParameterAssignOptions >> , # [doc = "Disallow the use of parameter properties in class constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_properties : Option < RuleConfiguration < biome_rule_options :: no_parameter_properties :: NoParameterPropertiesOptions >> , # [doc = "Disallow the use of process.env."] # [serde (skip_serializing_if = "Option::is_none")] pub no_process_env : Option < RuleConfiguration < biome_rule_options :: no_process_env :: NoProcessEnvOptions >> , # [doc = "This rule allows you to specify global variable names that you don’t want to use in your application."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_globals : Option < RuleConfiguration < biome_rule_options :: no_restricted_globals :: NoRestrictedGlobalsOptions >> , # [doc = "Disallow specified modules when loaded by import or require."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_imports : Option < RuleConfiguration < biome_rule_options :: no_restricted_imports :: NoRestrictedImportsOptions >> , # [doc = "Disallow user defined types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_types : Option < RuleFixConfiguration < biome_rule_options :: no_restricted_types :: NoRestrictedTypesOptions >> , # [doc = "Disallow the use of constants which its value is the upper-case version of its name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shouty_constants : Option < RuleFixConfiguration < biome_rule_options :: no_shouty_constants :: NoShoutyConstantsOptions >> , # [doc = "Enforce the use of String.slice() over String.substr() and String.substring()."] # [serde (skip_serializing_if = "Option::is_none")] pub no_substr : Option < RuleFixConfiguration < biome_rule_options :: no_substr :: NoSubstrOptions >> , # [doc = "Disallow template literals if interpolation and special-character handling are not needed"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_template_literal : Option < RuleFixConfiguration < biome_rule_options :: no_unused_template_literal :: NoUnusedTemplateLiteralOptions >> , # [doc = "Disallow else block when the if block breaks early."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_else : Option < RuleFixConfiguration < biome_rule_options :: no_useless_else :: NoUselessElseOptions >> , # [doc = "Disallow the use of useless undefined."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_undefined : Option < RuleFixConfiguration < biome_rule_options :: no_useless_undefined :: NoUselessUndefinedOptions >> , # [doc = "Disallow use of @value rule in css modules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_value_at_rule : Option < RuleConfiguration < biome_rule_options :: no_value_at_rule :: NoValueAtRuleOptions >> , # [doc = "Disallow the use of yoda expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_yoda_expression : Option < RuleFixConfiguration < biome_rule_options :: no_yoda_expression :: NoYodaExpressionOptions >> , # [doc = "Disallow Array constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub use_array_literals : Option < RuleFixConfiguration < biome_rule_options :: use_array_literals :: UseArrayLiteralsOptions >> , # [doc = "Enforce the use of as const over literal type and type annotation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_as_const_assertion : Option < RuleFixConfiguration < biome_rule_options :: use_as_const_assertion :: UseAsConstAssertionOptions >> , # [doc = "Use at() instead of integer index access."] # [serde (skip_serializing_if = "Option::is_none")] pub use_at_index : Option < RuleFixConfiguration < biome_rule_options :: use_at_index :: UseAtIndexOptions >> , # [doc = "Requires following curly brace conventions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_block_statements : Option < RuleFixConfiguration < biome_rule_options :: use_block_statements :: UseBlockStatementsOptions >> , # [doc = "Enforce using else if instead of nested if in else clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_else_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_else_if :: UseCollapsedElseIfOptions >> , # [doc = "Enforce using single if instead of nested if clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_if :: UseCollapsedIfOptions >> , # [doc = "Enforce declaring components only within modules that export React Components exclusively."] # [serde (skip_serializing_if = "Option::is_none")] pub use_component_export_only_modules : Option < RuleConfiguration < biome_rule_options :: use_component_export_only_modules :: UseComponentExportOnlyModulesOptions >> , # [doc = "Require consistently using either T\\[] or Array\\"] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_array_type : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_array_type :: UseConsistentArrayTypeOptions >> , # [doc = "Enforce the use of new for all builtins, except String, Number and Boolean."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_builtin_instantiation : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_builtin_instantiation :: UseConsistentBuiltinInstantiationOptions >> , # [doc = "This rule enforces consistent use of curly braces inside JSX attributes and JSX children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_curly_braces : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_curly_braces :: UseConsistentCurlyBracesOptions >> , # [doc = "Require consistent accessibility modifiers on class properties and methods."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_member_accessibility : Option < RuleConfiguration < biome_rule_options :: use_consistent_member_accessibility :: UseConsistentMemberAccessibilityOptions >> , # [doc = "Require the consistent declaration of object literals. Defaults to explicit definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_object_definitions : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_object_definitions :: UseConsistentObjectDefinitionsOptions >> , # [doc = "Require const declarations for variables that are only assigned once."] # [serde (skip_serializing_if = "Option::is_none")] pub use_const : Option < RuleFixConfiguration < biome_rule_options :: use_const :: UseConstOptions >> , # [doc = "Enforce default function parameters and optional function parameters to be last."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_parameter_last : Option < RuleFixConfiguration < biome_rule_options :: use_default_parameter_last :: UseDefaultParameterLastOptions >> , # [doc = "Require the default clause in switch statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause :: UseDefaultSwitchClauseOptions >> , # [doc = "Require specifying the reason argument when using @deprecated directive"] # [serde (skip_serializing_if = "Option::is_none")] pub use_deprecated_reason : Option < RuleConfiguration < biome_rule_options :: use_deprecated_reason :: UseDeprecatedReasonOptions >> , # [doc = "Require that each enum member value be explicitly initialized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_enum_initializers : Option < RuleFixConfiguration < biome_rule_options :: use_enum_initializers :: UseEnumInitializersOptions >> , # [doc = "Enforce explicitly comparing the length, size, byteLength or byteOffset property of a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_length_check : Option < RuleFixConfiguration < biome_rule_options :: use_explicit_length_check :: UseExplicitLengthCheckOptions >> , # [doc = "Disallow the use of Math.pow in favor of the ** operator."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exponentiation_operator : Option < RuleFixConfiguration < biome_rule_options :: use_exponentiation_operator :: UseExponentiationOperatorOptions >> , # [doc = "Promotes the use of export type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_export_type : Option < RuleFixConfiguration < biome_rule_options :: use_export_type :: UseExportTypeOptions >> , # [doc = "Require that all exports are declared after all non-export statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exports_last : Option < RuleConfiguration < biome_rule_options :: use_exports_last :: UseExportsLastOptions >> , # [doc = "Enforce naming conventions for JavaScript and TypeScript filenames."] # [serde (skip_serializing_if = "Option::is_none")] pub use_filenaming_convention : Option < RuleConfiguration < biome_rule_options :: use_filenaming_convention :: UseFilenamingConventionOptions >> , # [doc = "This rule recommends a for-of loop when in a for loop, the index used to extract an item from the iterated array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_for_of : Option < RuleConfiguration < biome_rule_options :: use_for_of :: UseForOfOptions >> , # [doc = "This rule enforces the use of \\<>...\\ over \\...\\."] # [serde (skip_serializing_if = "Option::is_none")] pub use_fragment_syntax : Option < RuleFixConfiguration < biome_rule_options :: use_fragment_syntax :: UseFragmentSyntaxOptions >> , # [doc = "Enforce that getters and setters for the same property are adjacent in class and object definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_grouped_accessor_pairs : Option < RuleConfiguration < biome_rule_options :: use_grouped_accessor_pairs :: UseGroupedAccessorPairsOptions >> , # [doc = "Promotes the use of import type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_import_type : Option < RuleFixConfiguration < biome_rule_options :: use_import_type :: UseImportTypeOptions >> , # [doc = "Require all enum members to be literal values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_literal_enum_members : Option < RuleConfiguration < biome_rule_options :: use_literal_enum_members :: UseLiteralEnumMembersOptions >> , # [doc = "Validates that all enum values are capitalized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_naming_convention : Option < RuleConfiguration < biome_rule_options :: use_naming_convention :: UseNamingConventionOptions >> , # [doc = "Promotes the usage of node:assert/strict over node:assert."] # [serde (skip_serializing_if = "Option::is_none")] pub use_node_assert_strict : Option < RuleFixConfiguration < biome_rule_options :: use_node_assert_strict :: UseNodeAssertStrictOptions >> , # [doc = "Enforces using the node: protocol for Node.js builtin modules."] # [serde (skip_serializing_if = "Option::is_none")] pub use_nodejs_import_protocol : Option < RuleFixConfiguration < biome_rule_options :: use_nodejs_import_protocol :: UseNodejsImportProtocolOptions >> , # [doc = "Use the Number properties instead of global ones."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_namespace : Option < RuleFixConfiguration < biome_rule_options :: use_number_namespace :: UseNumberNamespaceOptions >> , # [doc = "Enforce the use of numeric separators in numeric literals."] # [serde (skip_serializing_if = "Option::is_none")] pub use_numeric_separators : Option < RuleFixConfiguration < biome_rule_options :: use_numeric_separators :: UseNumericSeparatorsOptions >> , # [doc = "Prefer object spread over Object.assign() when constructing new objects."] # [serde (skip_serializing_if = "Option::is_none")] pub use_object_spread : Option < RuleFixConfiguration < biome_rule_options :: use_object_spread :: UseObjectSpreadOptions >> , # [doc = "Enforce marking members as readonly if they are never modified outside the constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub use_readonly_class_properties : Option < RuleFixConfiguration < biome_rule_options :: use_readonly_class_properties :: UseReadonlyClassPropertiesOptions >> , # [doc = "Prevent extra closing tags for components without children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_self_closing_elements : Option < RuleFixConfiguration < biome_rule_options :: use_self_closing_elements :: UseSelfClosingElementsOptions >> , # [doc = "Require assignment operator shorthand where possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_assign :: UseShorthandAssignOptions >> , # [doc = "Enforce using function types instead of object type with call signatures."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_function_type : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_function_type :: UseShorthandFunctionTypeOptions >> , # [doc = "Disallow multiple variable declarations in the same variable statement"] # [serde (skip_serializing_if = "Option::is_none")] pub use_single_var_declarator : Option < RuleFixConfiguration < biome_rule_options :: use_single_var_declarator :: UseSingleVarDeclaratorOptions >> , # [doc = "Require a description parameter for the Symbol()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_symbol_description : Option < RuleConfiguration < biome_rule_options :: use_symbol_description :: UseSymbolDescriptionOptions >> , # [doc = "Prefer template literals over string concatenation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_template : Option < RuleFixConfiguration < biome_rule_options :: use_template :: UseTemplateOptions >> , # [doc = "Require new when throwing an error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_new_error : Option < RuleFixConfiguration < biome_rule_options :: use_throw_new_error :: UseThrowNewErrorOptions >> , # [doc = "Disallow throwing non-Error values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_only_error : Option < RuleConfiguration < biome_rule_options :: use_throw_only_error :: UseThrowOnlyErrorOptions >> , # [doc = "Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_trim_start_end : Option < RuleFixConfiguration < biome_rule_options :: use_trim_start_end :: UseTrimStartEndOptions >> , # [doc = "Disallow overload signatures that can be unified into a single signature."] # [serde (skip_serializing_if = "Option::is_none")] pub use_unified_type_signatures : Option < RuleFixConfiguration < biome_rule_options :: use_unified_type_signatures :: UseUnifiedTypeSignaturesOptions >> } +pub struct Style { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow use of CommonJs module system in favor of ESM style imports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_common_js : Option < RuleConfiguration < biome_rule_options :: no_common_js :: NoCommonJsOptions >> , # [doc = "Disallow default exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_default_export : Option < RuleConfiguration < biome_rule_options :: no_default_export :: NoDefaultExportOptions >> , # [doc = "Disallow a lower specificity selector from coming after a higher specificity selector."] # [serde (skip_serializing_if = "Option::is_none")] pub no_descending_specificity : Option < RuleConfiguration < biome_rule_options :: no_descending_specificity :: NoDescendingSpecificityOptions >> , # [doc = "Disallow using a callback in asynchronous tests and hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_done_callback : Option < RuleConfiguration < biome_rule_options :: no_done_callback :: NoDoneCallbackOptions >> , # [doc = "Disallow TypeScript enum."] # [serde (skip_serializing_if = "Option::is_none")] pub no_enum : Option < RuleConfiguration < biome_rule_options :: no_enum :: NoEnumOptions >> , # [doc = "Disallow exporting an imported variable."] # [serde (skip_serializing_if = "Option::is_none")] pub no_exported_imports : Option < RuleConfiguration < biome_rule_options :: no_exported_imports :: NoExportedImportsOptions >> , # [doc = "Prevent usage of \\ element in a Next.js project."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_element : Option < RuleConfiguration < biome_rule_options :: no_head_element :: NoHeadElementOptions >> , # [doc = "Disallow implicit true values on JSX boolean attributes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_boolean : Option < RuleFixConfiguration < biome_rule_options :: no_implicit_boolean :: NoImplicitBooleanOptions >> , # [doc = "Disallow type annotations for variables, parameters, and class properties initialized with a literal expression."] # [serde (skip_serializing_if = "Option::is_none")] pub no_inferrable_types : Option < RuleFixConfiguration < biome_rule_options :: no_inferrable_types :: NoInferrableTypesOptions >> , # [doc = "Reports usage of \"magic numbers\" — numbers used directly instead of being assigned to named constants."] # [serde (skip_serializing_if = "Option::is_none")] pub no_magic_numbers : Option < RuleConfiguration < biome_rule_options :: no_magic_numbers :: NoMagicNumbersOptions >> , # [doc = "Disallow the use of TypeScript's namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_namespace : Option < RuleConfiguration < biome_rule_options :: no_namespace :: NoNamespaceOptions >> , # [doc = "Disallow negation in the condition of an if statement if it has an else clause."] # [serde (skip_serializing_if = "Option::is_none")] pub no_negation_else : Option < RuleFixConfiguration < biome_rule_options :: no_negation_else :: NoNegationElseOptions >> , # [doc = "Disallow nested ternary expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_nested_ternary : Option < RuleConfiguration < biome_rule_options :: no_nested_ternary :: NoNestedTernaryOptions >> , # [doc = "Disallow non-null assertions using the ! postfix operator."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_non_null_assertion :: NoNonNullAssertionOptions >> , # [doc = "Disallow reassigning function parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_assign : Option < RuleConfiguration < biome_rule_options :: no_parameter_assign :: NoParameterAssignOptions >> , # [doc = "Disallow the use of parameter properties in class constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub no_parameter_properties : Option < RuleConfiguration < biome_rule_options :: no_parameter_properties :: NoParameterPropertiesOptions >> , # [doc = "Disallow the use of process.env."] # [serde (skip_serializing_if = "Option::is_none")] pub no_process_env : Option < RuleConfiguration < biome_rule_options :: no_process_env :: NoProcessEnvOptions >> , # [doc = "This rule allows you to specify global variable names that you don’t want to use in your application."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_globals : Option < RuleConfiguration < biome_rule_options :: no_restricted_globals :: NoRestrictedGlobalsOptions >> , # [doc = "Disallow specified modules when loaded by import or require."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_imports : Option < RuleConfiguration < biome_rule_options :: no_restricted_imports :: NoRestrictedImportsOptions >> , # [doc = "Disallow user defined types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_restricted_types : Option < RuleFixConfiguration < biome_rule_options :: no_restricted_types :: NoRestrictedTypesOptions >> , # [doc = "Disallow the use of constants which its value is the upper-case version of its name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shouty_constants : Option < RuleFixConfiguration < biome_rule_options :: no_shouty_constants :: NoShoutyConstantsOptions >> , # [doc = "Enforce the use of String.slice() over String.substr() and String.substring()."] # [serde (skip_serializing_if = "Option::is_none")] pub no_substr : Option < RuleFixConfiguration < biome_rule_options :: no_substr :: NoSubstrOptions >> , # [doc = "Disallow template literals if interpolation and special-character handling are not needed"] # [serde (skip_serializing_if = "Option::is_none")] pub no_unused_template_literal : Option < RuleFixConfiguration < biome_rule_options :: no_unused_template_literal :: NoUnusedTemplateLiteralOptions >> , # [doc = "Disallow else block when the if block breaks early."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_else : Option < RuleFixConfiguration < biome_rule_options :: no_useless_else :: NoUselessElseOptions >> , # [doc = "Disallow the use of useless undefined."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_undefined : Option < RuleFixConfiguration < biome_rule_options :: no_useless_undefined :: NoUselessUndefinedOptions >> , # [doc = "Disallow use of @value rule in css modules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_value_at_rule : Option < RuleConfiguration < biome_rule_options :: no_value_at_rule :: NoValueAtRuleOptions >> , # [doc = "Disallow the use of yoda expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_yoda_expression : Option < RuleFixConfiguration < biome_rule_options :: no_yoda_expression :: NoYodaExpressionOptions >> , # [doc = "Disallow Array constructors."] # [serde (skip_serializing_if = "Option::is_none")] pub use_array_literals : Option < RuleFixConfiguration < biome_rule_options :: use_array_literals :: UseArrayLiteralsOptions >> , # [doc = "Enforce the use of as const over literal type and type annotation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_as_const_assertion : Option < RuleFixConfiguration < biome_rule_options :: use_as_const_assertion :: UseAsConstAssertionOptions >> , # [doc = "Use at() instead of integer index access."] # [serde (skip_serializing_if = "Option::is_none")] pub use_at_index : Option < RuleFixConfiguration < biome_rule_options :: use_at_index :: UseAtIndexOptions >> , # [doc = "Requires following curly brace conventions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_block_statements : Option < RuleFixConfiguration < biome_rule_options :: use_block_statements :: UseBlockStatementsOptions >> , # [doc = "Enforce using else if instead of nested if in else clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_else_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_else_if :: UseCollapsedElseIfOptions >> , # [doc = "Enforce using single if instead of nested if clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub use_collapsed_if : Option < RuleFixConfiguration < biome_rule_options :: use_collapsed_if :: UseCollapsedIfOptions >> , # [doc = "Enforce declaring components only within modules that export React Components exclusively."] # [serde (skip_serializing_if = "Option::is_none")] pub use_component_export_only_modules : Option < RuleConfiguration < biome_rule_options :: use_component_export_only_modules :: UseComponentExportOnlyModulesOptions >> , # [doc = "Require consistently using either T\\[] or Array\\"] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_array_type : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_array_type :: UseConsistentArrayTypeOptions >> , # [doc = "Enforce the use of new for all builtins, except String, Number and Boolean."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_builtin_instantiation : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_builtin_instantiation :: UseConsistentBuiltinInstantiationOptions >> , # [doc = "This rule enforces consistent use of curly braces inside JSX attributes and JSX children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_curly_braces : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_curly_braces :: UseConsistentCurlyBracesOptions >> , # [doc = "Require consistent accessibility modifiers on class properties and methods."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_member_accessibility : Option < RuleConfiguration < biome_rule_options :: use_consistent_member_accessibility :: UseConsistentMemberAccessibilityOptions >> , # [doc = "Require the consistent declaration of object literals. Defaults to explicit definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_object_definitions : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_object_definitions :: UseConsistentObjectDefinitionsOptions >> , # [doc = "Require const declarations for variables that are only assigned once."] # [serde (skip_serializing_if = "Option::is_none")] pub use_const : Option < RuleFixConfiguration < biome_rule_options :: use_const :: UseConstOptions >> , # [doc = "Enforce default function parameters and optional function parameters to be last."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_parameter_last : Option < RuleFixConfiguration < biome_rule_options :: use_default_parameter_last :: UseDefaultParameterLastOptions >> , # [doc = "Require the default clause in switch statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause :: UseDefaultSwitchClauseOptions >> , # [doc = "Require specifying the reason argument when using @deprecated directive"] # [serde (skip_serializing_if = "Option::is_none")] pub use_deprecated_reason : Option < RuleConfiguration < biome_rule_options :: use_deprecated_reason :: UseDeprecatedReasonOptions >> , # [doc = "Require that each enum member value be explicitly initialized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_enum_initializers : Option < RuleFixConfiguration < biome_rule_options :: use_enum_initializers :: UseEnumInitializersOptions >> , # [doc = "Enforce explicitly comparing the length, size, byteLength or byteOffset property of a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_length_check : Option < RuleFixConfiguration < biome_rule_options :: use_explicit_length_check :: UseExplicitLengthCheckOptions >> , # [doc = "Disallow the use of Math.pow in favor of the ** operator."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exponentiation_operator : Option < RuleFixConfiguration < biome_rule_options :: use_exponentiation_operator :: UseExponentiationOperatorOptions >> , # [doc = "Promotes the use of export type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_export_type : Option < RuleFixConfiguration < biome_rule_options :: use_export_type :: UseExportTypeOptions >> , # [doc = "Require that all exports are declared after all non-export statements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exports_last : Option < RuleConfiguration < biome_rule_options :: use_exports_last :: UseExportsLastOptions >> , # [doc = "Enforce naming conventions for JavaScript and TypeScript filenames."] # [serde (skip_serializing_if = "Option::is_none")] pub use_filenaming_convention : Option < RuleConfiguration < biome_rule_options :: use_filenaming_convention :: UseFilenamingConventionOptions >> , # [doc = "This rule recommends a for-of loop when in a for loop, the index used to extract an item from the iterated array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_for_of : Option < RuleConfiguration < biome_rule_options :: use_for_of :: UseForOfOptions >> , # [doc = "This rule enforces the use of \\<>...\\ over \\...\\."] # [serde (skip_serializing_if = "Option::is_none")] pub use_fragment_syntax : Option < RuleFixConfiguration < biome_rule_options :: use_fragment_syntax :: UseFragmentSyntaxOptions >> , # [doc = "Validates that all enum values are capitalized."] # [serde (skip_serializing_if = "Option::is_none")] pub use_graphql_naming_convention : Option < RuleConfiguration < biome_rule_options :: use_graphql_naming_convention :: UseGraphqlNamingConventionOptions >> , # [doc = "Enforce that getters and setters for the same property are adjacent in class and object definitions."] # [serde (skip_serializing_if = "Option::is_none")] pub use_grouped_accessor_pairs : Option < RuleConfiguration < biome_rule_options :: use_grouped_accessor_pairs :: UseGroupedAccessorPairsOptions >> , # [doc = "Promotes the use of import type for types."] # [serde (skip_serializing_if = "Option::is_none")] pub use_import_type : Option < RuleFixConfiguration < biome_rule_options :: use_import_type :: UseImportTypeOptions >> , # [doc = "Require all enum members to be literal values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_literal_enum_members : Option < RuleConfiguration < biome_rule_options :: use_literal_enum_members :: UseLiteralEnumMembersOptions >> , # [doc = "Enforce naming conventions for everything across a codebase."] # [serde (skip_serializing_if = "Option::is_none")] pub use_naming_convention : Option < RuleFixConfiguration < biome_rule_options :: use_naming_convention :: UseNamingConventionOptions >> , # [doc = "Promotes the usage of node:assert/strict over node:assert."] # [serde (skip_serializing_if = "Option::is_none")] pub use_node_assert_strict : Option < RuleFixConfiguration < biome_rule_options :: use_node_assert_strict :: UseNodeAssertStrictOptions >> , # [doc = "Enforces using the node: protocol for Node.js builtin modules."] # [serde (skip_serializing_if = "Option::is_none")] pub use_nodejs_import_protocol : Option < RuleFixConfiguration < biome_rule_options :: use_nodejs_import_protocol :: UseNodejsImportProtocolOptions >> , # [doc = "Use the Number properties instead of global ones."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_namespace : Option < RuleFixConfiguration < biome_rule_options :: use_number_namespace :: UseNumberNamespaceOptions >> , # [doc = "Enforce the use of numeric separators in numeric literals."] # [serde (skip_serializing_if = "Option::is_none")] pub use_numeric_separators : Option < RuleFixConfiguration < biome_rule_options :: use_numeric_separators :: UseNumericSeparatorsOptions >> , # [doc = "Prefer object spread over Object.assign() when constructing new objects."] # [serde (skip_serializing_if = "Option::is_none")] pub use_object_spread : Option < RuleFixConfiguration < biome_rule_options :: use_object_spread :: UseObjectSpreadOptions >> , # [doc = "Enforce marking members as readonly if they are never modified outside the constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub use_readonly_class_properties : Option < RuleFixConfiguration < biome_rule_options :: use_readonly_class_properties :: UseReadonlyClassPropertiesOptions >> , # [doc = "Prevent extra closing tags for components without children."] # [serde (skip_serializing_if = "Option::is_none")] pub use_self_closing_elements : Option < RuleFixConfiguration < biome_rule_options :: use_self_closing_elements :: UseSelfClosingElementsOptions >> , # [doc = "Require assignment operator shorthand where possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_assign :: UseShorthandAssignOptions >> , # [doc = "Enforce using function types instead of object type with call signatures."] # [serde (skip_serializing_if = "Option::is_none")] pub use_shorthand_function_type : Option < RuleFixConfiguration < biome_rule_options :: use_shorthand_function_type :: UseShorthandFunctionTypeOptions >> , # [doc = "Disallow multiple variable declarations in the same variable statement"] # [serde (skip_serializing_if = "Option::is_none")] pub use_single_var_declarator : Option < RuleFixConfiguration < biome_rule_options :: use_single_var_declarator :: UseSingleVarDeclaratorOptions >> , # [doc = "Require a description parameter for the Symbol()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_symbol_description : Option < RuleConfiguration < biome_rule_options :: use_symbol_description :: UseSymbolDescriptionOptions >> , # [doc = "Prefer template literals over string concatenation."] # [serde (skip_serializing_if = "Option::is_none")] pub use_template : Option < RuleFixConfiguration < biome_rule_options :: use_template :: UseTemplateOptions >> , # [doc = "Require new when throwing an error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_new_error : Option < RuleFixConfiguration < biome_rule_options :: use_throw_new_error :: UseThrowNewErrorOptions >> , # [doc = "Disallow throwing non-Error values."] # [serde (skip_serializing_if = "Option::is_none")] pub use_throw_only_error : Option < RuleConfiguration < biome_rule_options :: use_throw_only_error :: UseThrowOnlyErrorOptions >> , # [doc = "Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_trim_start_end : Option < RuleFixConfiguration < biome_rule_options :: use_trim_start_end :: UseTrimStartEndOptions >> , # [doc = "Disallow overload signatures that can be unified into a single signature."] # [serde (skip_serializing_if = "Option::is_none")] pub use_unified_type_signatures : Option < RuleFixConfiguration < biome_rule_options :: use_unified_type_signatures :: UseUnifiedTypeSignaturesOptions >> } impl Style { const GROUP_NAME: &'static str = "style"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -5497,6 +5501,7 @@ impl Style { "useFilenamingConvention", "useForOf", "useFragmentSyntax", + "useGraphqlNamingConvention", "useGroupedAccessorPairs", "useImportType", "useLiteralEnumMembers", @@ -5526,11 +5531,11 @@ impl Style { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[42]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[45]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[46]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -5604,6 +5609,7 @@ impl Style { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71]), ]; } impl RuleGroupExt for Style { @@ -5870,106 +5876,111 @@ impl RuleGroupExt for Style { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); } } - if let Some(rule) = self.use_grouped_accessor_pairs.as_ref() { + if let Some(rule) = self.use_graphql_naming_convention.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); } } - if let Some(rule) = self.use_import_type.as_ref() { + if let Some(rule) = self.use_grouped_accessor_pairs.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); } } - if let Some(rule) = self.use_literal_enum_members.as_ref() { + if let Some(rule) = self.use_import_type.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); } } - if let Some(rule) = self.use_naming_convention.as_ref() { + if let Some(rule) = self.use_literal_enum_members.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); } } - if let Some(rule) = self.use_node_assert_strict.as_ref() { + if let Some(rule) = self.use_naming_convention.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); } } - if let Some(rule) = self.use_nodejs_import_protocol.as_ref() { + if let Some(rule) = self.use_node_assert_strict.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); } } - if let Some(rule) = self.use_number_namespace.as_ref() { + if let Some(rule) = self.use_nodejs_import_protocol.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); } } - if let Some(rule) = self.use_numeric_separators.as_ref() { + if let Some(rule) = self.use_number_namespace.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); } } - if let Some(rule) = self.use_object_spread.as_ref() { + if let Some(rule) = self.use_numeric_separators.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); } } - if let Some(rule) = self.use_readonly_class_properties.as_ref() { + if let Some(rule) = self.use_object_spread.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } - if let Some(rule) = self.use_self_closing_elements.as_ref() { + if let Some(rule) = self.use_readonly_class_properties.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } - if let Some(rule) = self.use_shorthand_assign.as_ref() { + if let Some(rule) = self.use_self_closing_elements.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } - if let Some(rule) = self.use_shorthand_function_type.as_ref() { + if let Some(rule) = self.use_shorthand_assign.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } - if let Some(rule) = self.use_single_var_declarator.as_ref() { + if let Some(rule) = self.use_shorthand_function_type.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); } } - if let Some(rule) = self.use_symbol_description.as_ref() { + if let Some(rule) = self.use_single_var_declarator.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); } } - if let Some(rule) = self.use_template.as_ref() { + if let Some(rule) = self.use_symbol_description.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); } } - if let Some(rule) = self.use_throw_new_error.as_ref() { + if let Some(rule) = self.use_template.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); } } - if let Some(rule) = self.use_throw_only_error.as_ref() { + if let Some(rule) = self.use_throw_new_error.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); } } - if let Some(rule) = self.use_trim_start_end.as_ref() { + if let Some(rule) = self.use_throw_only_error.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); } } - if let Some(rule) = self.use_unified_type_signatures.as_ref() { + if let Some(rule) = self.use_trim_start_end.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); } } + if let Some(rule) = self.use_unified_type_signatures.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71])); + } + } index_set } fn get_disabled_rules(&self) -> FxHashSet> { @@ -6229,106 +6240,111 @@ impl RuleGroupExt for Style { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[50])); } } - if let Some(rule) = self.use_grouped_accessor_pairs.as_ref() { + if let Some(rule) = self.use_graphql_naming_convention.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[51])); } } - if let Some(rule) = self.use_import_type.as_ref() { + if let Some(rule) = self.use_grouped_accessor_pairs.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[52])); } } - if let Some(rule) = self.use_literal_enum_members.as_ref() { + if let Some(rule) = self.use_import_type.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[53])); } } - if let Some(rule) = self.use_naming_convention.as_ref() { + if let Some(rule) = self.use_literal_enum_members.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[54])); } } - if let Some(rule) = self.use_node_assert_strict.as_ref() { + if let Some(rule) = self.use_naming_convention.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55])); } } - if let Some(rule) = self.use_nodejs_import_protocol.as_ref() { + if let Some(rule) = self.use_node_assert_strict.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56])); } } - if let Some(rule) = self.use_number_namespace.as_ref() { + if let Some(rule) = self.use_nodejs_import_protocol.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); } } - if let Some(rule) = self.use_numeric_separators.as_ref() { + if let Some(rule) = self.use_number_namespace.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); } } - if let Some(rule) = self.use_object_spread.as_ref() { + if let Some(rule) = self.use_numeric_separators.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); } } - if let Some(rule) = self.use_readonly_class_properties.as_ref() { + if let Some(rule) = self.use_object_spread.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } - if let Some(rule) = self.use_self_closing_elements.as_ref() { + if let Some(rule) = self.use_readonly_class_properties.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } - if let Some(rule) = self.use_shorthand_assign.as_ref() { + if let Some(rule) = self.use_self_closing_elements.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } - if let Some(rule) = self.use_shorthand_function_type.as_ref() { + if let Some(rule) = self.use_shorthand_assign.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } - if let Some(rule) = self.use_single_var_declarator.as_ref() { + if let Some(rule) = self.use_shorthand_function_type.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); } } - if let Some(rule) = self.use_symbol_description.as_ref() { + if let Some(rule) = self.use_single_var_declarator.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); } } - if let Some(rule) = self.use_template.as_ref() { + if let Some(rule) = self.use_symbol_description.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); } } - if let Some(rule) = self.use_throw_new_error.as_ref() { + if let Some(rule) = self.use_template.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); } } - if let Some(rule) = self.use_throw_only_error.as_ref() { + if let Some(rule) = self.use_throw_new_error.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); } } - if let Some(rule) = self.use_trim_start_end.as_ref() { + if let Some(rule) = self.use_throw_only_error.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); } } - if let Some(rule) = self.use_unified_type_signatures.as_ref() { + if let Some(rule) = self.use_trim_start_end.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); } } + if let Some(rule) = self.use_unified_type_signatures.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71])); + } + } index_set } #[doc = r" Checks if, given a rule name, matches one of the rules contained in this category"] @@ -6563,6 +6579,10 @@ impl RuleGroupExt for Style { .use_fragment_syntax .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "useGraphqlNamingConvention" => self + .use_graphql_naming_convention + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "useGroupedAccessorPairs" => self .use_grouped_accessor_pairs .as_ref() @@ -6702,6 +6722,7 @@ impl From for Style { use_filenaming_convention: Some(value.into()), use_for_of: Some(value.into()), use_fragment_syntax: Some(value.into()), + use_graphql_naming_convention: Some(value.into()), use_grouped_accessor_pairs: Some(value.into()), use_import_type: Some(value.into()), use_literal_enum_members: Some(value.into()), diff --git a/crates/biome_diagnostics_categories/src/categories.rs b/crates/biome_diagnostics_categories/src/categories.rs index eefe76bc7793..fcba92e1d1ef 100644 --- a/crates/biome_diagnostics_categories/src/categories.rs +++ b/crates/biome_diagnostics_categories/src/categories.rs @@ -315,6 +315,7 @@ define_categories! { "lint/style/useFilenamingConvention": "https://biomejs.dev/linter/rules/use-filenaming-convention", "lint/style/useForOf": "https://biomejs.dev/linter/rules/use-for-of", "lint/style/useFragmentSyntax": "https://biomejs.dev/linter/rules/use-fragment-syntax", + "lint/style/useGraphqlNamingConvention": "https://biomejs.dev/linter/rules/use-graphql-naming-convention", "lint/style/useGroupedAccessorPairs": "https://biomejs.dev/linter/rules/use-grouped-accessor-pairs", "lint/style/useImportType": "https://biomejs.dev/linter/rules/use-import-type", "lint/style/useLiteralEnumMembers": "https://biomejs.dev/linter/rules/use-literal-enum-members", diff --git a/crates/biome_graphql_analyze/src/lint/style.rs b/crates/biome_graphql_analyze/src/lint/style.rs index bebbd8876f2d..291a4ab9f8ab 100644 --- a/crates/biome_graphql_analyze/src/lint/style.rs +++ b/crates/biome_graphql_analyze/src/lint/style.rs @@ -4,5 +4,5 @@ use biome_analyze::declare_lint_group; pub mod use_deprecated_reason; -pub mod use_naming_convention; -declare_lint_group! { pub Style { name : "style" , rules : [self :: use_deprecated_reason :: UseDeprecatedReason , self :: use_naming_convention :: UseNamingConvention ,] } } +pub mod use_graphql_naming_convention; +declare_lint_group! { pub Style { name : "style" , rules : [self :: use_deprecated_reason :: UseDeprecatedReason , self :: use_graphql_naming_convention :: UseGraphqlNamingConvention ,] } } diff --git a/crates/biome_graphql_analyze/src/lint/style/use_naming_convention.rs b/crates/biome_graphql_analyze/src/lint/style/use_graphql_naming_convention.rs similarity index 87% rename from crates/biome_graphql_analyze/src/lint/style/use_naming_convention.rs rename to crates/biome_graphql_analyze/src/lint/style/use_graphql_naming_convention.rs index 1087d0fcffed..bc2cca46ede9 100644 --- a/crates/biome_graphql_analyze/src/lint/style/use_naming_convention.rs +++ b/crates/biome_graphql_analyze/src/lint/style/use_graphql_naming_convention.rs @@ -3,7 +3,7 @@ use biome_analyze::{Ast, Rule, RuleDiagnostic, context::RuleContext, declare_lin use biome_console::markup; use biome_graphql_syntax::GraphqlEnumValueDefinition; use biome_rowan::AstNode; -use biome_rule_options::use_naming_convention::UseNamingConventionOptions; +use biome_rule_options::use_graphql_naming_convention::UseGraphqlNamingConventionOptions; declare_lint_rule! { /// Validates that all enum values are capitalized. @@ -28,20 +28,20 @@ declare_lint_rule! { /// } /// ``` /// - pub UseNamingConvention { + pub UseGraphqlNamingConvention { version: "2.0.0", - name: "useNamingConvention", + name: "useGraphqlNamingConvention", language: "graphql", recommended: false, sources: &[RuleSource::EslintGraphqlSchemaLinter("enum-values-all-caps").inspired()], } } -impl Rule for UseNamingConvention { +impl Rule for UseGraphqlNamingConvention { type Query = Ast; type State = (); type Signals = Option; - type Options = UseNamingConventionOptions; + type Options = UseGraphqlNamingConventionOptions; fn run(ctx: &RuleContext) -> Option { let node = ctx.query(); diff --git a/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql b/crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/invalid.graphql similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql rename to crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/invalid.graphql diff --git a/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql.snap b/crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/invalid.graphql.snap similarity index 63% rename from crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql.snap rename to crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/invalid.graphql.snap index d38304c3b97b..8d1baf267e13 100644 --- a/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/invalid.graphql.snap +++ b/crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/invalid.graphql.snap @@ -12,7 +12,7 @@ enum Status { # Diagnostics ``` -invalid.graphql:2:2 lint/style/useNamingConvention ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.graphql:2:2 lint/style/useGraphqlNamingConvention ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ i Enum values should be in all caps. diff --git a/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql b/crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/valid.graphql similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql rename to crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/valid.graphql diff --git a/crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql.snap b/crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/valid.graphql.snap similarity index 100% rename from crates/biome_graphql_analyze/tests/specs/style/useNamingConvention/valid.graphql.snap rename to crates/biome_graphql_analyze/tests/specs/style/useGraphqlNamingConvention/valid.graphql.snap diff --git a/crates/biome_rule_options/src/lib.rs b/crates/biome_rule_options/src/lib.rs index 5efe1246b97f..3a37bb20bbce 100644 --- a/crates/biome_rule_options/src/lib.rs +++ b/crates/biome_rule_options/src/lib.rs @@ -284,6 +284,7 @@ pub mod use_generic_font_names; pub mod use_getter_return; pub mod use_google_font_display; pub mod use_google_font_preconnect; +pub mod use_graphql_naming_convention; pub mod use_grouped_accessor_pairs; pub mod use_guard_for_in; pub mod use_heading_content; diff --git a/crates/biome_rule_options/src/use_graphql_naming_convention.rs b/crates/biome_rule_options/src/use_graphql_naming_convention.rs new file mode 100644 index 000000000000..1958b22b34a1 --- /dev/null +++ b/crates/biome_rule_options/src/use_graphql_naming_convention.rs @@ -0,0 +1,6 @@ +use biome_deserialize_macros::Deserializable; +use serde::{Deserialize, Serialize}; +#[derive(Default, Clone, Debug, Deserialize, Deserializable, Eq, PartialEq, Serialize)] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[serde(rename_all = "camelCase", deny_unknown_fields, default)] +pub struct UseGraphqlNamingConventionOptions {} From 05cf5b182260beb1d4beeaed56dbeb0acdb1dd62 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 6 Aug 2025 18:37:06 +0100 Subject: [PATCH 04/20] fix type --- crates/biome_cli/src/execute/migrate/eslint_to_biome.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs b/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs index 2ac7a86aa9a1..8f1ea17a9637 100644 --- a/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs +++ b/crates/biome_cli/src/execute/migrate/eslint_to_biome.rs @@ -606,7 +606,7 @@ fn migrate_eslint_rule( biome_config::RuleWithFixOptions { level: severity.into(), fix: None, - options: conf.option_or_default().into(), + options: options.into(), }, )); } From 39627559da4196efdb0acac91a5eb590c2200806 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Wed, 6 Aug 2025 17:42:52 +0000 Subject: [PATCH 05/20] [autofix.ci] apply automated fixes --- .../@biomejs/backend-jsonrpc/src/workspace.ts | 33 ++++++++++++--- .../@biomejs/biome/configuration_schema.json | 40 ++++++++++++++++++- 2 files changed, 67 insertions(+), 6 deletions(-) diff --git a/packages/@biomejs/backend-jsonrpc/src/workspace.ts b/packages/@biomejs/backend-jsonrpc/src/workspace.ts index 12f2d07aa983..dcef62484a0b 100644 --- a/packages/@biomejs/backend-jsonrpc/src/workspace.ts +++ b/packages/@biomejs/backend-jsonrpc/src/workspace.ts @@ -2002,6 +2002,10 @@ export interface Style { * This rule enforces the use of \<>...\ over \...\. */ useFragmentSyntax?: RuleFixConfiguration_for_UseFragmentSyntaxOptions; + /** + * Validates that all enum values are capitalized. + */ + useGraphqlNamingConvention?: RuleConfiguration_for_UseGraphqlNamingConventionOptions; /** * Enforce that getters and setters for the same property are adjacent in class and object definitions. */ @@ -2015,9 +2019,9 @@ export interface Style { */ useLiteralEnumMembers?: RuleConfiguration_for_UseLiteralEnumMembersOptions; /** - * Validates that all enum values are capitalized. + * Enforce naming conventions for everything across a codebase. */ - useNamingConvention?: RuleConfiguration_for_UseNamingConventionOptions; + useNamingConvention?: RuleFixConfiguration_for_UseNamingConventionOptions; /** * Promotes the usage of node:assert/strict over node:assert. */ @@ -3199,6 +3203,9 @@ export type RuleConfiguration_for_UseForOfOptions = export type RuleFixConfiguration_for_UseFragmentSyntaxOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseFragmentSyntaxOptions; +export type RuleConfiguration_for_UseGraphqlNamingConventionOptions = + | RulePlainConfiguration + | RuleWithOptions_for_UseGraphqlNamingConventionOptions; export type RuleConfiguration_for_UseGroupedAccessorPairsOptions = | RulePlainConfiguration | RuleWithOptions_for_UseGroupedAccessorPairsOptions; @@ -3208,9 +3215,9 @@ export type RuleFixConfiguration_for_UseImportTypeOptions = export type RuleConfiguration_for_UseLiteralEnumMembersOptions = | RulePlainConfiguration | RuleWithOptions_for_UseLiteralEnumMembersOptions; -export type RuleConfiguration_for_UseNamingConventionOptions = +export type RuleFixConfiguration_for_UseNamingConventionOptions = | RulePlainConfiguration - | RuleWithOptions_for_UseNamingConventionOptions; + | RuleWithFixOptions_for_UseNamingConventionOptions; export type RuleFixConfiguration_for_UseNodeAssertStrictOptions = | RulePlainConfiguration | RuleWithFixOptions_for_UseNodeAssertStrictOptions; @@ -6315,6 +6322,16 @@ export interface RuleWithFixOptions_for_UseFragmentSyntaxOptions { */ options: UseFragmentSyntaxOptions; } +export interface RuleWithOptions_for_UseGraphqlNamingConventionOptions { + /** + * The severity of the emitted diagnostics by the rule + */ + level: RulePlainConfiguration; + /** + * Rule's options + */ + options: UseGraphqlNamingConventionOptions; +} export interface RuleWithOptions_for_UseGroupedAccessorPairsOptions { /** * The severity of the emitted diagnostics by the rule @@ -6349,7 +6366,11 @@ export interface RuleWithOptions_for_UseLiteralEnumMembersOptions { */ options: UseLiteralEnumMembersOptions; } -export interface RuleWithOptions_for_UseNamingConventionOptions { +export interface RuleWithFixOptions_for_UseNamingConventionOptions { + /** + * The kind of the code actions emitted by the rule + */ + fix?: FixKind; /** * The severity of the emitted diagnostics by the rule */ @@ -8047,6 +8068,7 @@ export interface UseFilenamingConventionOptions { } export interface UseForOfOptions {} export interface UseFragmentSyntaxOptions {} +export interface UseGraphqlNamingConventionOptions {} export interface UseGroupedAccessorPairsOptions {} export interface UseImportTypeOptions { /** @@ -8715,6 +8737,7 @@ export type Category = | "lint/style/useFilenamingConvention" | "lint/style/useForOf" | "lint/style/useFragmentSyntax" + | "lint/style/useGraphqlNamingConvention" | "lint/style/useGroupedAccessorPairs" | "lint/style/useImportType" | "lint/style/useLiteralEnumMembers" diff --git a/packages/@biomejs/biome/configuration_schema.json b/packages/@biomejs/biome/configuration_schema.json index 9ea787b69e3d..8024db9b715a 100644 --- a/packages/@biomejs/biome/configuration_schema.json +++ b/packages/@biomejs/biome/configuration_schema.json @@ -10332,6 +10332,23 @@ }, "additionalProperties": false }, + "RuleWithUseGraphqlNamingConventionOptions": { + "type": "object", + "required": ["level"], + "properties": { + "level": { + "description": "The severity of the emitted diagnostics by the rule", + "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] + }, + "options": { + "description": "Rule's options", + "allOf": [ + { "$ref": "#/definitions/UseGraphqlNamingConventionOptions" } + ] + } + }, + "additionalProperties": false + }, "RuleWithUseGroupedAccessorPairsOptions": { "type": "object", "required": ["level"], @@ -10708,6 +10725,10 @@ "type": "object", "required": ["level"], "properties": { + "fix": { + "description": "The kind of the code actions emitted by the rule", + "anyOf": [{ "$ref": "#/definitions/FixKind" }, { "type": "null" }] + }, "level": { "description": "The severity of the emitted diagnostics by the rule", "allOf": [{ "$ref": "#/definitions/RulePlainConfiguration" }] @@ -12122,6 +12143,13 @@ { "type": "null" } ] }, + "useGraphqlNamingConvention": { + "description": "Validates that all enum values are capitalized.", + "anyOf": [ + { "$ref": "#/definitions/UseGraphqlNamingConventionConfiguration" }, + { "type": "null" } + ] + }, "useGroupedAccessorPairs": { "description": "Enforce that getters and setters for the same property are adjacent in class and object definitions.", "anyOf": [ @@ -12144,7 +12172,7 @@ ] }, "useNamingConvention": { - "description": "Validates that all enum values are capitalized.", + "description": "Enforce naming conventions for everything across a codebase.", "anyOf": [ { "$ref": "#/definitions/UseNamingConventionConfiguration" }, { "type": "null" } @@ -13519,6 +13547,16 @@ "type": "object", "additionalProperties": false }, + "UseGraphqlNamingConventionConfiguration": { + "anyOf": [ + { "$ref": "#/definitions/RulePlainConfiguration" }, + { "$ref": "#/definitions/RuleWithUseGraphqlNamingConventionOptions" } + ] + }, + "UseGraphqlNamingConventionOptions": { + "type": "object", + "additionalProperties": false + }, "UseGroupedAccessorPairsConfiguration": { "anyOf": [ { "$ref": "#/definitions/RulePlainConfiguration" }, From 971537d99bb8a94768e872bfb0a37222d7eea1a8 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 6 Aug 2025 19:06:24 +0100 Subject: [PATCH 06/20] promote `noQuickfixBiome` and remove redundant categories --- crates/biome_analyze/src/rule.rs | 4 +- .../src/analyzer/linter/rules.rs | 260 +++++++++--------- .../src/categories.rs | 58 +--- crates/biome_json_analyze/src/lint.rs | 3 +- crates/biome_json_analyze/src/lint/nursery.rs | 7 - .../biome_json_analyze/src/lint/suspicious.rs | 3 +- .../no_quickfix_biome.rs | 0 .../has_fix_all/.vscode/settings.json | 0 .../has_fix_all/.vscode/settings.json.snap | 0 .../has_fix_all/.zed/settings.json | 0 .../has_fix_all/.zed/settings.json.snap | 0 .../has_fix_all/Code/User/settings.json | 0 .../has_fix_all/Code/User/settings.json.snap | 0 .../has_fix_all/zed/settings.json | 0 .../has_fix_all/zed/settings.json.snap | 0 .../more_items/.vscode/settings.json | 0 .../more_items/.vscode/settings.json.snap | 0 .../more_items/.zed/settings.json | 0 .../more_items/.zed/settings.json.snap | 0 .../more_items/Code/User/settings.json | 0 .../more_items/Code/User/settings.json.snap | 0 .../more_items/zed/settings.json | 0 .../more_items/zed/settings.json.snap | 0 .../simple/.vscode/settings.json | 0 .../simple/.vscode/settings.json.snap | 0 .../noQuickfixBiome/simple/.zed/settings.json | 0 .../simple/.zed/settings.json.snap | 0 .../simple/Code/User/settings.json | 0 .../simple/Code/User/settings.json.snap | 0 .../noQuickfixBiome/simple/zed/settings.json | 0 .../simple/zed/settings.json.snap | 0 31 files changed, 149 insertions(+), 186 deletions(-) delete mode 100644 crates/biome_json_analyze/src/lint/nursery.rs rename crates/biome_json_analyze/src/lint/{nursery => suspicious}/no_quickfix_biome.rs (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/.vscode/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/.vscode/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/.zed/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/.zed/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/Code/User/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/Code/User/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/zed/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/has_fix_all/zed/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/.vscode/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/.vscode/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/.zed/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/.zed/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/Code/User/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/Code/User/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/zed/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/more_items/zed/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/.vscode/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/.vscode/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/.zed/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/.zed/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/Code/User/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/Code/User/settings.json.snap (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/zed/settings.json (100%) rename crates/biome_json_analyze/tests/specs/{nursery => suspicious}/noQuickfixBiome/simple/zed/settings.json.snap (100%) diff --git a/crates/biome_analyze/src/rule.rs b/crates/biome_analyze/src/rule.rs index 456df509e0c7..ce1ee1b60e9e 100644 --- a/crates/biome_analyze/src/rule.rs +++ b/crates/biome_analyze/src/rule.rs @@ -966,7 +966,9 @@ impl_group_language!( T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50, T51, T52, T53, T54, T55, T56, T57, T58, T59, T60, T61, T62, T63, T64, T65, T66, T67, T68, T69, T70, T71, T72, T73, T74, T75, - T76, T77, T78, T79, T80, T81, T82, T83, T84, T85, T86, T87, T88, T89 + T76, T77, T78, T79, T80, T81, T82, T83, T84, T85, T86, T87, T88, T89, T90, T91, T92, T93, T94, + T95, T96, T97, T98, T99, T100, T101, T102, T103, T104, T105, T106, T107, T108, T109, T110, + T111, T112, T113, T114, T115 ); /// Trait implemented by all analysis rules: declares interest to a certain AstNode type, diff --git a/crates/biome_configuration/src/analyzer/linter/rules.rs b/crates/biome_configuration/src/analyzer/linter/rules.rs index 0416c2114090..67e134a2eceb 100644 --- a/crates/biome_configuration/src/analyzer/linter/rules.rs +++ b/crates/biome_configuration/src/analyzer/linter/rules.rs @@ -933,7 +933,7 @@ impl RuleName { Self::NoProcessEnv => RuleGroup::Style, Self::NoProcessGlobal => RuleGroup::Correctness, Self::NoPrototypeBuiltins => RuleGroup::Suspicious, - Self::NoQuickfixBiome => RuleGroup::Nursery, + Self::NoQuickfixBiome => RuleGroup::Suspicious, Self::NoQwikUseVisibleTask => RuleGroup::Nursery, Self::NoReExportAll => RuleGroup::Performance, Self::NoReactPropAssignments => RuleGroup::Correctness, @@ -4586,7 +4586,7 @@ impl From for Correctness { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Nursery { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Require Promise-like statements to be handled appropriately."] # [serde (skip_serializing_if = "Option::is_none")] pub no_floating_promises : Option < RuleFixConfiguration < biome_rule_options :: no_floating_promises :: NoFloatingPromisesOptions >> , # [doc = "Prevent import cycles."] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_cycles : Option < RuleConfiguration < biome_rule_options :: no_import_cycles :: NoImportCyclesOptions >> , # [doc = "Disallow Promises to be used in places where they are almost certainly a mistake."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misused_promises : Option < RuleFixConfiguration < biome_rule_options :: no_misused_promises :: NoMisusedPromisesOptions >> , # [doc = "Disallow non-null assertions after optional chaining expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_asserted_optional_chain : Option < RuleConfiguration < biome_rule_options :: no_non_null_asserted_optional_chain :: NoNonNullAssertedOptionalChainOptions >> , # [doc = "Disallow the use if quickfix.biome inside editor settings file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_quickfix_biome : Option < RuleFixConfiguration < biome_rule_options :: no_quickfix_biome :: NoQuickfixBiomeOptions >> , # [doc = "Disallow useVisibleTask$() functions in Qwik components."] # [serde (skip_serializing_if = "Option::is_none")] pub no_qwik_use_visible_task : Option < RuleConfiguration < biome_rule_options :: no_qwik_use_visible_task :: NoQwikUseVisibleTaskOptions >> , # [doc = "Disallow usage of sensitive data such as API keys and tokens."] # [serde (skip_serializing_if = "Option::is_none")] pub no_secrets : Option < RuleConfiguration < biome_rule_options :: no_secrets :: NoSecretsOptions >> , # [doc = "Disallow variable declarations from shadowing variables declared in the outer scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow : Option < RuleConfiguration < biome_rule_options :: no_shadow :: NoShadowOptions >> , # [doc = "Disallow unnecessary type-based conditions that can be statically determined as redundant."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unnecessary_conditions : Option < RuleConfiguration < biome_rule_options :: no_unnecessary_conditions :: NoUnnecessaryConditionsOptions >> , # [doc = "Warn when importing non-existing exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unresolved_imports : Option < RuleConfiguration < biome_rule_options :: no_unresolved_imports :: NoUnresolvedImportsOptions >> , # [doc = "Disallow unnecessary escapes in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_escape_in_string : Option < RuleFixConfiguration < biome_rule_options :: no_useless_escape_in_string :: NoUselessEscapeInStringOptions >> , # [doc = "Disallow reserved keys in Vue component data and computed properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_keys : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_keys :: NoVueReservedKeysOptions >> , # [doc = "Disallow reserved names to be used as props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_props : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_props :: NoVueReservedPropsOptions >> , # [doc = "Enforces href attribute for \\ elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_anchor_href : Option < RuleConfiguration < biome_rule_options :: use_anchor_href :: UseAnchorHrefOptions >> , # [doc = "Enforce type definitions to consistently use either interface or type."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_type_definitions : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_type_definitions :: UseConsistentTypeDefinitionsOptions >> , # [doc = "Require switch-case statements to be exhaustive."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exhaustive_switch_cases : Option < RuleFixConfiguration < biome_rule_options :: use_exhaustive_switch_cases :: UseExhaustiveSwitchCasesOptions >> , # [doc = "Enforce types in functions, methods, variables, and parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_type : Option < RuleConfiguration < biome_rule_options :: use_explicit_type :: UseExplicitTypeOptions >> , # [doc = "Enforces that \\ elements have both width and height attributes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_image_size : Option < RuleConfiguration < biome_rule_options :: use_image_size :: UseImageSizeOptions >> , # [doc = "Enforce specifying the name of GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub use_named_operation : Option < RuleFixConfiguration < biome_rule_options :: use_named_operation :: UseNamedOperationOptions >> , # [doc = "Prefer using the class prop as a classlist over the classnames helper."] # [serde (skip_serializing_if = "Option::is_none")] pub use_qwik_classlist : Option < RuleConfiguration < biome_rule_options :: use_qwik_classlist :: UseQwikClasslistOptions >> , # [doc = "Enforce that components are defined as functions and never as classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_react_function_components : Option < RuleConfiguration < biome_rule_options :: use_react_function_components :: UseReactFunctionComponentsOptions >> , # [doc = "Enforce the sorting of CSS utility classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_sorted_classes : Option < RuleFixConfiguration < biome_rule_options :: use_sorted_classes :: UseSortedClassesOptions >> } +pub struct Nursery { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Require Promise-like statements to be handled appropriately."] # [serde (skip_serializing_if = "Option::is_none")] pub no_floating_promises : Option < RuleFixConfiguration < biome_rule_options :: no_floating_promises :: NoFloatingPromisesOptions >> , # [doc = "Prevent import cycles."] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_cycles : Option < RuleConfiguration < biome_rule_options :: no_import_cycles :: NoImportCyclesOptions >> , # [doc = "Disallow Promises to be used in places where they are almost certainly a mistake."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misused_promises : Option < RuleFixConfiguration < biome_rule_options :: no_misused_promises :: NoMisusedPromisesOptions >> , # [doc = "Disallow non-null assertions after optional chaining expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_non_null_asserted_optional_chain : Option < RuleConfiguration < biome_rule_options :: no_non_null_asserted_optional_chain :: NoNonNullAssertedOptionalChainOptions >> , # [doc = "Disallow useVisibleTask$() functions in Qwik components."] # [serde (skip_serializing_if = "Option::is_none")] pub no_qwik_use_visible_task : Option < RuleConfiguration < biome_rule_options :: no_qwik_use_visible_task :: NoQwikUseVisibleTaskOptions >> , # [doc = "Disallow usage of sensitive data such as API keys and tokens."] # [serde (skip_serializing_if = "Option::is_none")] pub no_secrets : Option < RuleConfiguration < biome_rule_options :: no_secrets :: NoSecretsOptions >> , # [doc = "Disallow variable declarations from shadowing variables declared in the outer scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow : Option < RuleConfiguration < biome_rule_options :: no_shadow :: NoShadowOptions >> , # [doc = "Disallow unnecessary type-based conditions that can be statically determined as redundant."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unnecessary_conditions : Option < RuleConfiguration < biome_rule_options :: no_unnecessary_conditions :: NoUnnecessaryConditionsOptions >> , # [doc = "Warn when importing non-existing exports."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unresolved_imports : Option < RuleConfiguration < biome_rule_options :: no_unresolved_imports :: NoUnresolvedImportsOptions >> , # [doc = "Disallow unnecessary escapes in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_escape_in_string : Option < RuleFixConfiguration < biome_rule_options :: no_useless_escape_in_string :: NoUselessEscapeInStringOptions >> , # [doc = "Disallow reserved keys in Vue component data and computed properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_keys : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_keys :: NoVueReservedKeysOptions >> , # [doc = "Disallow reserved names to be used as props."] # [serde (skip_serializing_if = "Option::is_none")] pub no_vue_reserved_props : Option < RuleConfiguration < biome_rule_options :: no_vue_reserved_props :: NoVueReservedPropsOptions >> , # [doc = "Enforces href attribute for \\ elements."] # [serde (skip_serializing_if = "Option::is_none")] pub use_anchor_href : Option < RuleConfiguration < biome_rule_options :: use_anchor_href :: UseAnchorHrefOptions >> , # [doc = "Enforce type definitions to consistently use either interface or type."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_type_definitions : Option < RuleFixConfiguration < biome_rule_options :: use_consistent_type_definitions :: UseConsistentTypeDefinitionsOptions >> , # [doc = "Require switch-case statements to be exhaustive."] # [serde (skip_serializing_if = "Option::is_none")] pub use_exhaustive_switch_cases : Option < RuleFixConfiguration < biome_rule_options :: use_exhaustive_switch_cases :: UseExhaustiveSwitchCasesOptions >> , # [doc = "Enforce types in functions, methods, variables, and parameters."] # [serde (skip_serializing_if = "Option::is_none")] pub use_explicit_type : Option < RuleConfiguration < biome_rule_options :: use_explicit_type :: UseExplicitTypeOptions >> , # [doc = "Enforces that \\ elements have both width and height attributes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_image_size : Option < RuleConfiguration < biome_rule_options :: use_image_size :: UseImageSizeOptions >> , # [doc = "Enforce specifying the name of GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub use_named_operation : Option < RuleFixConfiguration < biome_rule_options :: use_named_operation :: UseNamedOperationOptions >> , # [doc = "Prefer using the class prop as a classlist over the classnames helper."] # [serde (skip_serializing_if = "Option::is_none")] pub use_qwik_classlist : Option < RuleConfiguration < biome_rule_options :: use_qwik_classlist :: UseQwikClasslistOptions >> , # [doc = "Enforce that components are defined as functions and never as classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_react_function_components : Option < RuleConfiguration < biome_rule_options :: use_react_function_components :: UseReactFunctionComponentsOptions >> , # [doc = "Enforce the sorting of CSS utility classes."] # [serde (skip_serializing_if = "Option::is_none")] pub use_sorted_classes : Option < RuleFixConfiguration < biome_rule_options :: use_sorted_classes :: UseSortedClassesOptions >> } impl Nursery { const GROUP_NAME: &'static str = "nursery"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -4594,7 +4594,6 @@ impl Nursery { "noImportCycles", "noMisusedPromises", "noNonNullAssertedOptionalChain", - "noQuickfixBiome", "noQwikUseVisibleTask", "noSecrets", "noShadow", @@ -4615,9 +4614,8 @@ impl Nursery { ]; const RECOMMENDED_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -4641,7 +4639,6 @@ impl Nursery { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21]), ]; } impl RuleGroupExt for Nursery { @@ -4673,94 +4670,89 @@ impl RuleGroupExt for Nursery { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); } } - if let Some(rule) = self.no_quickfix_biome.as_ref() { - if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); - } - } if let Some(rule) = self.no_qwik_use_visible_task.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } if let Some(rule) = self.no_secrets.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } if let Some(rule) = self.no_shadow.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } if let Some(rule) = self.no_unnecessary_conditions.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } if let Some(rule) = self.no_unresolved_imports.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } if let Some(rule) = self.no_useless_escape_in_string.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } if let Some(rule) = self.no_vue_reserved_keys.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } if let Some(rule) = self.no_vue_reserved_props.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } if let Some(rule) = self.use_anchor_href.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } if let Some(rule) = self.use_consistent_type_definitions.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } if let Some(rule) = self.use_exhaustive_switch_cases.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } if let Some(rule) = self.use_explicit_type.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } if let Some(rule) = self.use_image_size.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } if let Some(rule) = self.use_named_operation.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } if let Some(rule) = self.use_qwik_classlist.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } if let Some(rule) = self.use_react_function_components.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } if let Some(rule) = self.use_sorted_classes.as_ref() { if rule.is_enabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } index_set @@ -4787,94 +4779,89 @@ impl RuleGroupExt for Nursery { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[3])); } } - if let Some(rule) = self.no_quickfix_biome.as_ref() { - if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); - } - } if let Some(rule) = self.no_qwik_use_visible_task.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[4])); } } if let Some(rule) = self.no_secrets.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[5])); } } if let Some(rule) = self.no_shadow.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[6])); } } if let Some(rule) = self.no_unnecessary_conditions.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[7])); } } if let Some(rule) = self.no_unresolved_imports.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[8])); } } if let Some(rule) = self.no_useless_escape_in_string.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[9])); } } if let Some(rule) = self.no_vue_reserved_keys.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[10])); } } if let Some(rule) = self.no_vue_reserved_props.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[11])); } } if let Some(rule) = self.use_anchor_href.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[12])); } } if let Some(rule) = self.use_consistent_type_definitions.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[13])); } } if let Some(rule) = self.use_exhaustive_switch_cases.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[14])); } } if let Some(rule) = self.use_explicit_type.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[15])); } } if let Some(rule) = self.use_image_size.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[16])); } } if let Some(rule) = self.use_named_operation.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[17])); } } if let Some(rule) = self.use_qwik_classlist.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[18])); } } if let Some(rule) = self.use_react_function_components.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[19])); } } if let Some(rule) = self.use_sorted_classes.as_ref() { if rule.is_disabled() { - index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[21])); + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[20])); } } index_set @@ -4923,10 +4910,6 @@ impl RuleGroupExt for Nursery { .no_non_null_asserted_optional_chain .as_ref() .map(|conf| (conf.level(), conf.get_options())), - "noQuickfixBiome" => self - .no_quickfix_biome - .as_ref() - .map(|conf| (conf.level(), conf.get_options())), "noQwikUseVisibleTask" => self .no_qwik_use_visible_task .as_ref() @@ -5007,7 +4990,6 @@ impl From for Nursery { no_import_cycles: Some(value.into()), no_misused_promises: Some(value.into()), no_non_null_asserted_optional_chain: Some(value.into()), - no_quickfix_biome: Some(value.into()), no_qwik_use_visible_task: Some(value.into()), no_secrets: Some(value.into()), no_shadow: Some(value.into()), @@ -6750,7 +6732,7 @@ impl From for Style { #[cfg_attr(feature = "schema", derive(JsonSchema))] #[serde(rename_all = "camelCase", default, deny_unknown_fields)] #[doc = r" A list of rules that belong to this group"] -pub struct Suspicious { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow the use of alert, confirm, and prompt."] # [serde (skip_serializing_if = "Option::is_none")] pub no_alert : Option < RuleConfiguration < biome_rule_options :: no_alert :: NoAlertOptions >> , # [doc = "Use standard constants instead of approximated literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_approximative_numeric_constant : Option < RuleFixConfiguration < biome_rule_options :: no_approximative_numeric_constant :: NoApproximativeNumericConstantOptions >> , # [doc = "Discourage the usage of Array index in keys."] # [serde (skip_serializing_if = "Option::is_none")] pub no_array_index_key : Option < RuleConfiguration < biome_rule_options :: no_array_index_key :: NoArrayIndexKeyOptions >> , # [doc = "Disallow assignments in expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_assign_in_expressions : Option < RuleConfiguration < biome_rule_options :: no_assign_in_expressions :: NoAssignInExpressionsOptions >> , # [doc = "Disallows using an async function as a Promise executor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_async_promise_executor : Option < RuleConfiguration < biome_rule_options :: no_async_promise_executor :: NoAsyncPromiseExecutorOptions >> , # [doc = "Disallow bitwise operators."] # [serde (skip_serializing_if = "Option::is_none")] pub no_bitwise_operators : Option < RuleConfiguration < biome_rule_options :: no_bitwise_operators :: NoBitwiseOperatorsOptions >> , # [doc = "Disallow reassigning exceptions in catch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_catch_assign : Option < RuleConfiguration < biome_rule_options :: no_catch_assign :: NoCatchAssignOptions >> , # [doc = "Disallow reassigning class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_class_assign : Option < RuleConfiguration < biome_rule_options :: no_class_assign :: NoClassAssignOptions >> , # [doc = "Prevent comments from being inserted as text nodes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_comment_text : Option < RuleFixConfiguration < biome_rule_options :: no_comment_text :: NoCommentTextOptions >> , # [doc = "Disallow comparing against -0"] # [serde (skip_serializing_if = "Option::is_none")] pub no_compare_neg_zero : Option < RuleFixConfiguration < biome_rule_options :: no_compare_neg_zero :: NoCompareNegZeroOptions >> , # [doc = "Disallow labeled statements that are not loops."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_labels : Option < RuleConfiguration < biome_rule_options :: no_confusing_labels :: NoConfusingLabelsOptions >> , # [doc = "Disallow void type outside of generic or return types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_void_type : Option < RuleFixConfiguration < biome_rule_options :: no_confusing_void_type :: NoConfusingVoidTypeOptions >> , # [doc = "Disallow the use of console."] # [serde (skip_serializing_if = "Option::is_none")] pub no_console : Option < RuleFixConfiguration < biome_rule_options :: no_console :: NoConsoleOptions >> , # [doc = "Disallow TypeScript const enum"] # [serde (skip_serializing_if = "Option::is_none")] pub no_const_enum : Option < RuleFixConfiguration < biome_rule_options :: no_const_enum :: NoConstEnumOptions >> , # [doc = "Disallow expressions where the operation doesn't affect the value"] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_binary_expressions : Option < RuleConfiguration < biome_rule_options :: no_constant_binary_expressions :: NoConstantBinaryExpressionsOptions >> , # [doc = "Prevents from having control characters and some escape sequences that match control characters in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_control_characters_in_regex : Option < RuleConfiguration < biome_rule_options :: no_control_characters_in_regex :: NoControlCharactersInRegexOptions >> , # [doc = "Disallow the use of debugger"] # [serde (skip_serializing_if = "Option::is_none")] pub no_debugger : Option < RuleFixConfiguration < biome_rule_options :: no_debugger :: NoDebuggerOptions >> , # [doc = "Disallow direct assignments to document.cookie."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_cookie : Option < RuleConfiguration < biome_rule_options :: no_document_cookie :: NoDocumentCookieOptions >> , # [doc = "Prevents importing next/document outside of pages/_document.jsx in Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_import_in_page : Option < RuleConfiguration < biome_rule_options :: no_document_import_in_page :: NoDocumentImportInPageOptions >> , # [doc = "Require the use of === and !==."] # [serde (skip_serializing_if = "Option::is_none")] pub no_double_equals : Option < RuleFixConfiguration < biome_rule_options :: no_double_equals :: NoDoubleEqualsOptions >> , # [doc = "Disallow duplicate @import rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_at_import_rules : Option < RuleConfiguration < biome_rule_options :: no_duplicate_at_import_rules :: NoDuplicateAtImportRulesOptions >> , # [doc = "Disallow duplicate case labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_case : Option < RuleConfiguration < biome_rule_options :: no_duplicate_case :: NoDuplicateCaseOptions >> , # [doc = "Disallow duplicate class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_class_members : Option < RuleConfiguration < biome_rule_options :: no_duplicate_class_members :: NoDuplicateClassMembersOptions >> , # [doc = "Disallow duplicate custom properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_custom_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_custom_properties :: NoDuplicateCustomPropertiesOptions >> , # [doc = "Disallow duplicate conditions in if-else-if chains"] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_else_if : Option < RuleConfiguration < biome_rule_options :: no_duplicate_else_if :: NoDuplicateElseIfOptions >> , # [doc = "No duplicated fields in GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_fields : Option < RuleConfiguration < biome_rule_options :: no_duplicate_fields :: NoDuplicateFieldsOptions >> , # [doc = "Disallow duplicate names within font families."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_font_names : Option < RuleConfiguration < biome_rule_options :: no_duplicate_font_names :: NoDuplicateFontNamesOptions >> , # [doc = "Prevents JSX properties to be assigned multiple times."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_jsx_props : Option < RuleConfiguration < biome_rule_options :: no_duplicate_jsx_props :: NoDuplicateJsxPropsOptions >> , # [doc = "Disallow two keys with the same name inside objects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_object_keys : Option < RuleConfiguration < biome_rule_options :: no_duplicate_object_keys :: NoDuplicateObjectKeysOptions >> , # [doc = "Disallow duplicate function parameter name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_parameters : Option < RuleConfiguration < biome_rule_options :: no_duplicate_parameters :: NoDuplicateParametersOptions >> , # [doc = "Disallow duplicate properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_properties :: NoDuplicatePropertiesOptions >> , # [doc = "Disallow duplicate selectors within keyframe blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_selectors_keyframe_block : Option < RuleConfiguration < biome_rule_options :: no_duplicate_selectors_keyframe_block :: NoDuplicateSelectorsKeyframeBlockOptions >> , # [doc = "A describe block should not contain duplicate hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_test_hooks : Option < RuleConfiguration < biome_rule_options :: no_duplicate_test_hooks :: NoDuplicateTestHooksOptions >> , # [doc = "Disallow CSS empty blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block : Option < RuleConfiguration < biome_rule_options :: no_empty_block :: NoEmptyBlockOptions >> , # [doc = "Disallow empty block statements and static blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block_statements : Option < RuleConfiguration < biome_rule_options :: no_empty_block_statements :: NoEmptyBlockStatementsOptions >> , # [doc = "Disallow the declaration of empty interfaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_interface : Option < RuleFixConfiguration < biome_rule_options :: no_empty_interface :: NoEmptyInterfaceOptions >> , # [doc = "Disallow variables from evolving into any type through reassignments."] # [serde (skip_serializing_if = "Option::is_none")] pub no_evolving_types : Option < RuleConfiguration < biome_rule_options :: no_evolving_types :: NoEvolvingTypesOptions >> , # [doc = "Disallow the any type usage."] # [serde (skip_serializing_if = "Option::is_none")] pub no_explicit_any : Option < RuleConfiguration < biome_rule_options :: no_explicit_any :: NoExplicitAnyOptions >> , # [doc = "Disallow using export or module.exports in files containing tests"] # [serde (skip_serializing_if = "Option::is_none")] pub no_exports_in_test : Option < RuleConfiguration < biome_rule_options :: no_exports_in_test :: NoExportsInTestOptions >> , # [doc = "Prevents the wrong usage of the non-null assertion operator (!) in TypeScript files."] # [serde (skip_serializing_if = "Option::is_none")] pub no_extra_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_extra_non_null_assertion :: NoExtraNonNullAssertionOptions >> , # [doc = "Disallow fallthrough of switch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_fallthrough_switch_clause : Option < RuleConfiguration < biome_rule_options :: no_fallthrough_switch_clause :: NoFallthroughSwitchClauseOptions >> , # [doc = "Disallow focused tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_focused_tests : Option < RuleFixConfiguration < biome_rule_options :: no_focused_tests :: NoFocusedTestsOptions >> , # [doc = "Disallow reassigning function declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_function_assign : Option < RuleConfiguration < biome_rule_options :: no_function_assign :: NoFunctionAssignOptions >> , # [doc = "Disallow assignments to native objects and read-only global variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_assign : Option < RuleConfiguration < biome_rule_options :: no_global_assign :: NoGlobalAssignOptions >> , # [doc = "Use Number.isFinite instead of global isFinite."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_finite : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_finite :: NoGlobalIsFiniteOptions >> , # [doc = "Use Number.isNaN instead of global isNaN."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_nan : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_nan :: NoGlobalIsNanOptions >> , # [doc = "Prevent using the next/head module in pages/_document.js on Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_import_in_document : Option < RuleConfiguration < biome_rule_options :: no_head_import_in_document :: NoHeadImportInDocumentOptions >> , # [doc = "Disallow use of implicit any type on variable declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_any_let : Option < RuleConfiguration < biome_rule_options :: no_implicit_any_let :: NoImplicitAnyLetOptions >> , # [doc = "Disallow assigning to imported bindings"] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_assign : Option < RuleConfiguration < biome_rule_options :: no_import_assign :: NoImportAssignOptions >> , # [doc = "Disallow invalid !important within keyframe declarations"] # [serde (skip_serializing_if = "Option::is_none")] pub no_important_in_keyframe : Option < RuleConfiguration < biome_rule_options :: no_important_in_keyframe :: NoImportantInKeyframeOptions >> , # [doc = "Disallows the use of irregular whitespace characters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_irregular_whitespace : Option < RuleConfiguration < biome_rule_options :: no_irregular_whitespace :: NoIrregularWhitespaceOptions >> , # [doc = "Disallow labels that share a name with a variable"] # [serde (skip_serializing_if = "Option::is_none")] pub no_label_var : Option < RuleConfiguration < biome_rule_options :: no_label_var :: NoLabelVarOptions >> , # [doc = "Disallow characters made with multiple code points in character class syntax."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_character_class : Option < RuleFixConfiguration < biome_rule_options :: no_misleading_character_class :: NoMisleadingCharacterClassOptions >> , # [doc = "Enforce proper usage of new and constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_instantiator : Option < RuleConfiguration < biome_rule_options :: no_misleading_instantiator :: NoMisleadingInstantiatorOptions >> , # [doc = "Checks that the assertion function, for example expect, is placed inside an it() function call."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misplaced_assertion : Option < RuleConfiguration < biome_rule_options :: no_misplaced_assertion :: NoMisplacedAssertionOptions >> , # [doc = "Disallow shorthand assign when variable appears on both sides."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misrefactored_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: no_misrefactored_shorthand_assign :: NoMisrefactoredShorthandAssignOptions >> , # [doc = "Disallow octal escape sequences in string literals"] # [serde (skip_serializing_if = "Option::is_none")] pub no_octal_escape : Option < RuleFixConfiguration < biome_rule_options :: no_octal_escape :: NoOctalEscapeOptions >> , # [doc = "Disallow direct use of Object.prototype builtins."] # [serde (skip_serializing_if = "Option::is_none")] pub no_prototype_builtins : Option < RuleFixConfiguration < biome_rule_options :: no_prototype_builtins :: NoPrototypeBuiltinsOptions >> , # [doc = "Prevents React-specific JSX properties from being used."] # [serde (skip_serializing_if = "Option::is_none")] pub no_react_specific_props : Option < RuleFixConfiguration < biome_rule_options :: no_react_specific_props :: NoReactSpecificPropsOptions >> , # [doc = "Disallow variable, function, class, and type redeclarations in the same scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redeclare : Option < RuleConfiguration < biome_rule_options :: no_redeclare :: NoRedeclareOptions >> , # [doc = "Prevents from having redundant \"use strict\"."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_use_strict : Option < RuleFixConfiguration < biome_rule_options :: no_redundant_use_strict :: NoRedundantUseStrictOptions >> , # [doc = "Disallow comparisons where both sides are exactly the same."] # [serde (skip_serializing_if = "Option::is_none")] pub no_self_compare : Option < RuleConfiguration < biome_rule_options :: no_self_compare :: NoSelfCompareOptions >> , # [doc = "Disallow identifiers from shadowing restricted names."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow_restricted_names : Option < RuleConfiguration < biome_rule_options :: no_shadow_restricted_names :: NoShadowRestrictedNamesOptions >> , # [doc = "Disallow shorthand properties that override related longhand properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shorthand_property_overrides : Option < RuleConfiguration < biome_rule_options :: no_shorthand_property_overrides :: NoShorthandPropertyOverridesOptions >> , # [doc = "Disallow disabled tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_skipped_tests : Option < RuleFixConfiguration < biome_rule_options :: no_skipped_tests :: NoSkippedTestsOptions >> , # [doc = "Prevents the use of sparse arrays (arrays with holes)."] # [serde (skip_serializing_if = "Option::is_none")] pub no_sparse_array : Option < RuleFixConfiguration < biome_rule_options :: no_sparse_array :: NoSparseArrayOptions >> , # [doc = "It detects possible \"wrong\" semicolons inside JSX elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_suspicious_semicolon_in_jsx : Option < RuleConfiguration < biome_rule_options :: no_suspicious_semicolon_in_jsx :: NoSuspiciousSemicolonInJsxOptions >> , # [doc = "Disallow template literal placeholder syntax in regular strings."] # [serde (skip_serializing_if = "Option::is_none")] pub no_template_curly_in_string : Option < RuleConfiguration < biome_rule_options :: no_template_curly_in_string :: NoTemplateCurlyInStringOptions >> , # [doc = "Disallow then property."] # [serde (skip_serializing_if = "Option::is_none")] pub no_then_property : Option < RuleConfiguration < biome_rule_options :: no_then_property :: NoThenPropertyOptions >> , # [doc = "Prevents the use of the TypeScript directive @ts-ignore."] # [serde (skip_serializing_if = "Option::is_none")] pub no_ts_ignore : Option < RuleFixConfiguration < biome_rule_options :: no_ts_ignore :: NoTsIgnoreOptions >> , # [doc = "Disallow let or var variables that are read but never assigned."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unassigned_variables : Option < RuleConfiguration < biome_rule_options :: no_unassigned_variables :: NoUnassignedVariablesOptions >> , # [doc = "Disallow unknown at-rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_at_rule : Option < RuleConfiguration < biome_rule_options :: no_unknown_at_rule :: NoUnknownAtRuleOptions >> , # [doc = "Disallow unsafe declaration merging between interfaces and classes."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_declaration_merging : Option < RuleConfiguration < biome_rule_options :: no_unsafe_declaration_merging :: NoUnsafeDeclarationMergingOptions >> , # [doc = "Disallow using unsafe negation."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_negation : Option < RuleFixConfiguration < biome_rule_options :: no_unsafe_negation :: NoUnsafeNegationOptions >> , # [doc = "Disallow useless backreferences in regular expression literals that always match an empty string."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_regex_backrefs : Option < RuleConfiguration < biome_rule_options :: no_useless_regex_backrefs :: NoUselessRegexBackrefsOptions >> , # [doc = "Disallow unnecessary escapes in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_string_escapes : Option < RuleFixConfiguration < biome_rule_options :: no_useless_string_escapes :: NoUselessStringEscapesOptions >> , # [doc = "Disallow the use of var"] # [serde (skip_serializing_if = "Option::is_none")] pub no_var : Option < RuleFixConfiguration < biome_rule_options :: no_var :: NoVarOptions >> , # [doc = "Disallow with statements in non-strict contexts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_with : Option < RuleConfiguration < biome_rule_options :: no_with :: NoWithOptions >> , # [doc = "Disallow the use of overload signatures that are not next to each other."] # [serde (skip_serializing_if = "Option::is_none")] pub use_adjacent_overload_signatures : Option < RuleConfiguration < biome_rule_options :: use_adjacent_overload_signatures :: UseAdjacentOverloadSignaturesOptions >> , # [doc = "Ensure async functions utilize await."] # [serde (skip_serializing_if = "Option::is_none")] pub use_await : Option < RuleConfiguration < biome_rule_options :: use_await :: UseAwaitOptions >> , # [doc = "Enforce consistent return values in iterable callbacks."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_iterable_callback_return_values : Option < RuleConfiguration < biome_rule_options :: use_consistent_iterable_callback_return_values :: UseConsistentIterableCallbackReturnValuesOptions >> , # [doc = "Enforce default clauses in switch statements to be last"] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause_last : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause_last :: UseDefaultSwitchClauseLastOptions >> , # [doc = "Enforce passing a message value when creating a built-in error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_error_message : Option < RuleConfiguration < biome_rule_options :: use_error_message :: UseErrorMessageOptions >> , # [doc = "Enforce get methods to always return a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_getter_return : Option < RuleConfiguration < biome_rule_options :: use_getter_return :: UseGetterReturnOptions >> , # [doc = "Enforces the use of a recommended display strategy with Google Fonts."] # [serde (skip_serializing_if = "Option::is_none")] pub use_google_font_display : Option < RuleConfiguration < biome_rule_options :: use_google_font_display :: UseGoogleFontDisplayOptions >> , # [doc = "Require for-in loops to include an if statement."] # [serde (skip_serializing_if = "Option::is_none")] pub use_guard_for_in : Option < RuleConfiguration < biome_rule_options :: use_guard_for_in :: UseGuardForInOptions >> , # [doc = "Use Array.isArray() instead of instanceof Array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_is_array : Option < RuleFixConfiguration < biome_rule_options :: use_is_array :: UseIsArrayOptions >> , # [doc = "Require using the namespace keyword over the module keyword to declare TypeScript namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub use_namespace_keyword : Option < RuleFixConfiguration < biome_rule_options :: use_namespace_keyword :: UseNamespaceKeywordOptions >> , # [doc = "Enforce using the digits argument with Number#toFixed()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_to_fixed_digits_argument : Option < RuleFixConfiguration < biome_rule_options :: use_number_to_fixed_digits_argument :: UseNumberToFixedDigitsArgumentOptions >> , # [doc = "Use static Response methods instead of new Response() constructor when possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_static_response_methods : Option < RuleFixConfiguration < biome_rule_options :: use_static_response_methods :: UseStaticResponseMethodsOptions >> , # [doc = "Enforce the use of the directive \"use strict\" in script files."] # [serde (skip_serializing_if = "Option::is_none")] pub use_strict_mode : Option < RuleFixConfiguration < biome_rule_options :: use_strict_mode :: UseStrictModeOptions >> } +pub struct Suspicious { # [doc = r" It enables the recommended rules for this group"] # [serde (skip_serializing_if = "Option::is_none")] pub recommended : Option < bool > , # [doc = "Disallow the use of alert, confirm, and prompt."] # [serde (skip_serializing_if = "Option::is_none")] pub no_alert : Option < RuleConfiguration < biome_rule_options :: no_alert :: NoAlertOptions >> , # [doc = "Use standard constants instead of approximated literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_approximative_numeric_constant : Option < RuleFixConfiguration < biome_rule_options :: no_approximative_numeric_constant :: NoApproximativeNumericConstantOptions >> , # [doc = "Discourage the usage of Array index in keys."] # [serde (skip_serializing_if = "Option::is_none")] pub no_array_index_key : Option < RuleConfiguration < biome_rule_options :: no_array_index_key :: NoArrayIndexKeyOptions >> , # [doc = "Disallow assignments in expressions."] # [serde (skip_serializing_if = "Option::is_none")] pub no_assign_in_expressions : Option < RuleConfiguration < biome_rule_options :: no_assign_in_expressions :: NoAssignInExpressionsOptions >> , # [doc = "Disallows using an async function as a Promise executor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_async_promise_executor : Option < RuleConfiguration < biome_rule_options :: no_async_promise_executor :: NoAsyncPromiseExecutorOptions >> , # [doc = "Disallow bitwise operators."] # [serde (skip_serializing_if = "Option::is_none")] pub no_bitwise_operators : Option < RuleConfiguration < biome_rule_options :: no_bitwise_operators :: NoBitwiseOperatorsOptions >> , # [doc = "Disallow reassigning exceptions in catch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_catch_assign : Option < RuleConfiguration < biome_rule_options :: no_catch_assign :: NoCatchAssignOptions >> , # [doc = "Disallow reassigning class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_class_assign : Option < RuleConfiguration < biome_rule_options :: no_class_assign :: NoClassAssignOptions >> , # [doc = "Prevent comments from being inserted as text nodes"] # [serde (skip_serializing_if = "Option::is_none")] pub no_comment_text : Option < RuleFixConfiguration < biome_rule_options :: no_comment_text :: NoCommentTextOptions >> , # [doc = "Disallow comparing against -0"] # [serde (skip_serializing_if = "Option::is_none")] pub no_compare_neg_zero : Option < RuleFixConfiguration < biome_rule_options :: no_compare_neg_zero :: NoCompareNegZeroOptions >> , # [doc = "Disallow labeled statements that are not loops."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_labels : Option < RuleConfiguration < biome_rule_options :: no_confusing_labels :: NoConfusingLabelsOptions >> , # [doc = "Disallow void type outside of generic or return types."] # [serde (skip_serializing_if = "Option::is_none")] pub no_confusing_void_type : Option < RuleFixConfiguration < biome_rule_options :: no_confusing_void_type :: NoConfusingVoidTypeOptions >> , # [doc = "Disallow the use of console."] # [serde (skip_serializing_if = "Option::is_none")] pub no_console : Option < RuleFixConfiguration < biome_rule_options :: no_console :: NoConsoleOptions >> , # [doc = "Disallow TypeScript const enum"] # [serde (skip_serializing_if = "Option::is_none")] pub no_const_enum : Option < RuleFixConfiguration < biome_rule_options :: no_const_enum :: NoConstEnumOptions >> , # [doc = "Disallow expressions where the operation doesn't affect the value"] # [serde (skip_serializing_if = "Option::is_none")] pub no_constant_binary_expressions : Option < RuleConfiguration < biome_rule_options :: no_constant_binary_expressions :: NoConstantBinaryExpressionsOptions >> , # [doc = "Prevents from having control characters and some escape sequences that match control characters in regular expression literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_control_characters_in_regex : Option < RuleConfiguration < biome_rule_options :: no_control_characters_in_regex :: NoControlCharactersInRegexOptions >> , # [doc = "Disallow the use of debugger"] # [serde (skip_serializing_if = "Option::is_none")] pub no_debugger : Option < RuleFixConfiguration < biome_rule_options :: no_debugger :: NoDebuggerOptions >> , # [doc = "Disallow direct assignments to document.cookie."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_cookie : Option < RuleConfiguration < biome_rule_options :: no_document_cookie :: NoDocumentCookieOptions >> , # [doc = "Prevents importing next/document outside of pages/_document.jsx in Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_document_import_in_page : Option < RuleConfiguration < biome_rule_options :: no_document_import_in_page :: NoDocumentImportInPageOptions >> , # [doc = "Require the use of === and !==."] # [serde (skip_serializing_if = "Option::is_none")] pub no_double_equals : Option < RuleFixConfiguration < biome_rule_options :: no_double_equals :: NoDoubleEqualsOptions >> , # [doc = "Disallow duplicate @import rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_at_import_rules : Option < RuleConfiguration < biome_rule_options :: no_duplicate_at_import_rules :: NoDuplicateAtImportRulesOptions >> , # [doc = "Disallow duplicate case labels."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_case : Option < RuleConfiguration < biome_rule_options :: no_duplicate_case :: NoDuplicateCaseOptions >> , # [doc = "Disallow duplicate class members."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_class_members : Option < RuleConfiguration < biome_rule_options :: no_duplicate_class_members :: NoDuplicateClassMembersOptions >> , # [doc = "Disallow duplicate custom properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_custom_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_custom_properties :: NoDuplicateCustomPropertiesOptions >> , # [doc = "Disallow duplicate conditions in if-else-if chains"] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_else_if : Option < RuleConfiguration < biome_rule_options :: no_duplicate_else_if :: NoDuplicateElseIfOptions >> , # [doc = "No duplicated fields in GraphQL operations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_fields : Option < RuleConfiguration < biome_rule_options :: no_duplicate_fields :: NoDuplicateFieldsOptions >> , # [doc = "Disallow duplicate names within font families."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_font_names : Option < RuleConfiguration < biome_rule_options :: no_duplicate_font_names :: NoDuplicateFontNamesOptions >> , # [doc = "Prevents JSX properties to be assigned multiple times."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_jsx_props : Option < RuleConfiguration < biome_rule_options :: no_duplicate_jsx_props :: NoDuplicateJsxPropsOptions >> , # [doc = "Disallow two keys with the same name inside objects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_object_keys : Option < RuleConfiguration < biome_rule_options :: no_duplicate_object_keys :: NoDuplicateObjectKeysOptions >> , # [doc = "Disallow duplicate function parameter name."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_parameters : Option < RuleConfiguration < biome_rule_options :: no_duplicate_parameters :: NoDuplicateParametersOptions >> , # [doc = "Disallow duplicate properties within declaration blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_properties : Option < RuleConfiguration < biome_rule_options :: no_duplicate_properties :: NoDuplicatePropertiesOptions >> , # [doc = "Disallow duplicate selectors within keyframe blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_selectors_keyframe_block : Option < RuleConfiguration < biome_rule_options :: no_duplicate_selectors_keyframe_block :: NoDuplicateSelectorsKeyframeBlockOptions >> , # [doc = "A describe block should not contain duplicate hooks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_duplicate_test_hooks : Option < RuleConfiguration < biome_rule_options :: no_duplicate_test_hooks :: NoDuplicateTestHooksOptions >> , # [doc = "Disallow CSS empty blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block : Option < RuleConfiguration < biome_rule_options :: no_empty_block :: NoEmptyBlockOptions >> , # [doc = "Disallow empty block statements and static blocks."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_block_statements : Option < RuleConfiguration < biome_rule_options :: no_empty_block_statements :: NoEmptyBlockStatementsOptions >> , # [doc = "Disallow the declaration of empty interfaces."] # [serde (skip_serializing_if = "Option::is_none")] pub no_empty_interface : Option < RuleFixConfiguration < biome_rule_options :: no_empty_interface :: NoEmptyInterfaceOptions >> , # [doc = "Disallow variables from evolving into any type through reassignments."] # [serde (skip_serializing_if = "Option::is_none")] pub no_evolving_types : Option < RuleConfiguration < biome_rule_options :: no_evolving_types :: NoEvolvingTypesOptions >> , # [doc = "Disallow the any type usage."] # [serde (skip_serializing_if = "Option::is_none")] pub no_explicit_any : Option < RuleConfiguration < biome_rule_options :: no_explicit_any :: NoExplicitAnyOptions >> , # [doc = "Disallow using export or module.exports in files containing tests"] # [serde (skip_serializing_if = "Option::is_none")] pub no_exports_in_test : Option < RuleConfiguration < biome_rule_options :: no_exports_in_test :: NoExportsInTestOptions >> , # [doc = "Prevents the wrong usage of the non-null assertion operator (!) in TypeScript files."] # [serde (skip_serializing_if = "Option::is_none")] pub no_extra_non_null_assertion : Option < RuleFixConfiguration < biome_rule_options :: no_extra_non_null_assertion :: NoExtraNonNullAssertionOptions >> , # [doc = "Disallow fallthrough of switch clauses."] # [serde (skip_serializing_if = "Option::is_none")] pub no_fallthrough_switch_clause : Option < RuleConfiguration < biome_rule_options :: no_fallthrough_switch_clause :: NoFallthroughSwitchClauseOptions >> , # [doc = "Disallow focused tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_focused_tests : Option < RuleFixConfiguration < biome_rule_options :: no_focused_tests :: NoFocusedTestsOptions >> , # [doc = "Disallow reassigning function declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_function_assign : Option < RuleConfiguration < biome_rule_options :: no_function_assign :: NoFunctionAssignOptions >> , # [doc = "Disallow assignments to native objects and read-only global variables."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_assign : Option < RuleConfiguration < biome_rule_options :: no_global_assign :: NoGlobalAssignOptions >> , # [doc = "Use Number.isFinite instead of global isFinite."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_finite : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_finite :: NoGlobalIsFiniteOptions >> , # [doc = "Use Number.isNaN instead of global isNaN."] # [serde (skip_serializing_if = "Option::is_none")] pub no_global_is_nan : Option < RuleFixConfiguration < biome_rule_options :: no_global_is_nan :: NoGlobalIsNanOptions >> , # [doc = "Prevent using the next/head module in pages/_document.js on Next.js projects."] # [serde (skip_serializing_if = "Option::is_none")] pub no_head_import_in_document : Option < RuleConfiguration < biome_rule_options :: no_head_import_in_document :: NoHeadImportInDocumentOptions >> , # [doc = "Disallow use of implicit any type on variable declarations."] # [serde (skip_serializing_if = "Option::is_none")] pub no_implicit_any_let : Option < RuleConfiguration < biome_rule_options :: no_implicit_any_let :: NoImplicitAnyLetOptions >> , # [doc = "Disallow assigning to imported bindings"] # [serde (skip_serializing_if = "Option::is_none")] pub no_import_assign : Option < RuleConfiguration < biome_rule_options :: no_import_assign :: NoImportAssignOptions >> , # [doc = "Disallow invalid !important within keyframe declarations"] # [serde (skip_serializing_if = "Option::is_none")] pub no_important_in_keyframe : Option < RuleConfiguration < biome_rule_options :: no_important_in_keyframe :: NoImportantInKeyframeOptions >> , # [doc = "Disallows the use of irregular whitespace characters."] # [serde (skip_serializing_if = "Option::is_none")] pub no_irregular_whitespace : Option < RuleConfiguration < biome_rule_options :: no_irregular_whitespace :: NoIrregularWhitespaceOptions >> , # [doc = "Disallow labels that share a name with a variable"] # [serde (skip_serializing_if = "Option::is_none")] pub no_label_var : Option < RuleConfiguration < biome_rule_options :: no_label_var :: NoLabelVarOptions >> , # [doc = "Disallow characters made with multiple code points in character class syntax."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_character_class : Option < RuleFixConfiguration < biome_rule_options :: no_misleading_character_class :: NoMisleadingCharacterClassOptions >> , # [doc = "Enforce proper usage of new and constructor."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misleading_instantiator : Option < RuleConfiguration < biome_rule_options :: no_misleading_instantiator :: NoMisleadingInstantiatorOptions >> , # [doc = "Checks that the assertion function, for example expect, is placed inside an it() function call."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misplaced_assertion : Option < RuleConfiguration < biome_rule_options :: no_misplaced_assertion :: NoMisplacedAssertionOptions >> , # [doc = "Disallow shorthand assign when variable appears on both sides."] # [serde (skip_serializing_if = "Option::is_none")] pub no_misrefactored_shorthand_assign : Option < RuleFixConfiguration < biome_rule_options :: no_misrefactored_shorthand_assign :: NoMisrefactoredShorthandAssignOptions >> , # [doc = "Disallow octal escape sequences in string literals"] # [serde (skip_serializing_if = "Option::is_none")] pub no_octal_escape : Option < RuleFixConfiguration < biome_rule_options :: no_octal_escape :: NoOctalEscapeOptions >> , # [doc = "Disallow direct use of Object.prototype builtins."] # [serde (skip_serializing_if = "Option::is_none")] pub no_prototype_builtins : Option < RuleFixConfiguration < biome_rule_options :: no_prototype_builtins :: NoPrototypeBuiltinsOptions >> , # [doc = "Disallow the use if quickfix.biome inside editor settings file."] # [serde (skip_serializing_if = "Option::is_none")] pub no_quickfix_biome : Option < RuleFixConfiguration < biome_rule_options :: no_quickfix_biome :: NoQuickfixBiomeOptions >> , # [doc = "Prevents React-specific JSX properties from being used."] # [serde (skip_serializing_if = "Option::is_none")] pub no_react_specific_props : Option < RuleFixConfiguration < biome_rule_options :: no_react_specific_props :: NoReactSpecificPropsOptions >> , # [doc = "Disallow variable, function, class, and type redeclarations in the same scope."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redeclare : Option < RuleConfiguration < biome_rule_options :: no_redeclare :: NoRedeclareOptions >> , # [doc = "Prevents from having redundant \"use strict\"."] # [serde (skip_serializing_if = "Option::is_none")] pub no_redundant_use_strict : Option < RuleFixConfiguration < biome_rule_options :: no_redundant_use_strict :: NoRedundantUseStrictOptions >> , # [doc = "Disallow comparisons where both sides are exactly the same."] # [serde (skip_serializing_if = "Option::is_none")] pub no_self_compare : Option < RuleConfiguration < biome_rule_options :: no_self_compare :: NoSelfCompareOptions >> , # [doc = "Disallow identifiers from shadowing restricted names."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shadow_restricted_names : Option < RuleConfiguration < biome_rule_options :: no_shadow_restricted_names :: NoShadowRestrictedNamesOptions >> , # [doc = "Disallow shorthand properties that override related longhand properties."] # [serde (skip_serializing_if = "Option::is_none")] pub no_shorthand_property_overrides : Option < RuleConfiguration < biome_rule_options :: no_shorthand_property_overrides :: NoShorthandPropertyOverridesOptions >> , # [doc = "Disallow disabled tests."] # [serde (skip_serializing_if = "Option::is_none")] pub no_skipped_tests : Option < RuleFixConfiguration < biome_rule_options :: no_skipped_tests :: NoSkippedTestsOptions >> , # [doc = "Prevents the use of sparse arrays (arrays with holes)."] # [serde (skip_serializing_if = "Option::is_none")] pub no_sparse_array : Option < RuleFixConfiguration < biome_rule_options :: no_sparse_array :: NoSparseArrayOptions >> , # [doc = "It detects possible \"wrong\" semicolons inside JSX elements."] # [serde (skip_serializing_if = "Option::is_none")] pub no_suspicious_semicolon_in_jsx : Option < RuleConfiguration < biome_rule_options :: no_suspicious_semicolon_in_jsx :: NoSuspiciousSemicolonInJsxOptions >> , # [doc = "Disallow template literal placeholder syntax in regular strings."] # [serde (skip_serializing_if = "Option::is_none")] pub no_template_curly_in_string : Option < RuleConfiguration < biome_rule_options :: no_template_curly_in_string :: NoTemplateCurlyInStringOptions >> , # [doc = "Disallow then property."] # [serde (skip_serializing_if = "Option::is_none")] pub no_then_property : Option < RuleConfiguration < biome_rule_options :: no_then_property :: NoThenPropertyOptions >> , # [doc = "Prevents the use of the TypeScript directive @ts-ignore."] # [serde (skip_serializing_if = "Option::is_none")] pub no_ts_ignore : Option < RuleFixConfiguration < biome_rule_options :: no_ts_ignore :: NoTsIgnoreOptions >> , # [doc = "Disallow let or var variables that are read but never assigned."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unassigned_variables : Option < RuleConfiguration < biome_rule_options :: no_unassigned_variables :: NoUnassignedVariablesOptions >> , # [doc = "Disallow unknown at-rules."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unknown_at_rule : Option < RuleConfiguration < biome_rule_options :: no_unknown_at_rule :: NoUnknownAtRuleOptions >> , # [doc = "Disallow unsafe declaration merging between interfaces and classes."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_declaration_merging : Option < RuleConfiguration < biome_rule_options :: no_unsafe_declaration_merging :: NoUnsafeDeclarationMergingOptions >> , # [doc = "Disallow using unsafe negation."] # [serde (skip_serializing_if = "Option::is_none")] pub no_unsafe_negation : Option < RuleFixConfiguration < biome_rule_options :: no_unsafe_negation :: NoUnsafeNegationOptions >> , # [doc = "Disallow useless backreferences in regular expression literals that always match an empty string."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_regex_backrefs : Option < RuleConfiguration < biome_rule_options :: no_useless_regex_backrefs :: NoUselessRegexBackrefsOptions >> , # [doc = "Disallow unnecessary escapes in string literals."] # [serde (skip_serializing_if = "Option::is_none")] pub no_useless_string_escapes : Option < RuleFixConfiguration < biome_rule_options :: no_useless_string_escapes :: NoUselessStringEscapesOptions >> , # [doc = "Disallow the use of var"] # [serde (skip_serializing_if = "Option::is_none")] pub no_var : Option < RuleFixConfiguration < biome_rule_options :: no_var :: NoVarOptions >> , # [doc = "Disallow with statements in non-strict contexts."] # [serde (skip_serializing_if = "Option::is_none")] pub no_with : Option < RuleConfiguration < biome_rule_options :: no_with :: NoWithOptions >> , # [doc = "Disallow the use of overload signatures that are not next to each other."] # [serde (skip_serializing_if = "Option::is_none")] pub use_adjacent_overload_signatures : Option < RuleConfiguration < biome_rule_options :: use_adjacent_overload_signatures :: UseAdjacentOverloadSignaturesOptions >> , # [doc = "Ensure async functions utilize await."] # [serde (skip_serializing_if = "Option::is_none")] pub use_await : Option < RuleConfiguration < biome_rule_options :: use_await :: UseAwaitOptions >> , # [doc = "Enforce consistent return values in iterable callbacks."] # [serde (skip_serializing_if = "Option::is_none")] pub use_consistent_iterable_callback_return_values : Option < RuleConfiguration < biome_rule_options :: use_consistent_iterable_callback_return_values :: UseConsistentIterableCallbackReturnValuesOptions >> , # [doc = "Enforce default clauses in switch statements to be last"] # [serde (skip_serializing_if = "Option::is_none")] pub use_default_switch_clause_last : Option < RuleConfiguration < biome_rule_options :: use_default_switch_clause_last :: UseDefaultSwitchClauseLastOptions >> , # [doc = "Enforce passing a message value when creating a built-in error."] # [serde (skip_serializing_if = "Option::is_none")] pub use_error_message : Option < RuleConfiguration < biome_rule_options :: use_error_message :: UseErrorMessageOptions >> , # [doc = "Enforce get methods to always return a value."] # [serde (skip_serializing_if = "Option::is_none")] pub use_getter_return : Option < RuleConfiguration < biome_rule_options :: use_getter_return :: UseGetterReturnOptions >> , # [doc = "Enforces the use of a recommended display strategy with Google Fonts."] # [serde (skip_serializing_if = "Option::is_none")] pub use_google_font_display : Option < RuleConfiguration < biome_rule_options :: use_google_font_display :: UseGoogleFontDisplayOptions >> , # [doc = "Require for-in loops to include an if statement."] # [serde (skip_serializing_if = "Option::is_none")] pub use_guard_for_in : Option < RuleConfiguration < biome_rule_options :: use_guard_for_in :: UseGuardForInOptions >> , # [doc = "Use Array.isArray() instead of instanceof Array."] # [serde (skip_serializing_if = "Option::is_none")] pub use_is_array : Option < RuleFixConfiguration < biome_rule_options :: use_is_array :: UseIsArrayOptions >> , # [doc = "Require using the namespace keyword over the module keyword to declare TypeScript namespaces."] # [serde (skip_serializing_if = "Option::is_none")] pub use_namespace_keyword : Option < RuleFixConfiguration < biome_rule_options :: use_namespace_keyword :: UseNamespaceKeywordOptions >> , # [doc = "Enforce using the digits argument with Number#toFixed()."] # [serde (skip_serializing_if = "Option::is_none")] pub use_number_to_fixed_digits_argument : Option < RuleFixConfiguration < biome_rule_options :: use_number_to_fixed_digits_argument :: UseNumberToFixedDigitsArgumentOptions >> , # [doc = "Use static Response methods instead of new Response() constructor when possible."] # [serde (skip_serializing_if = "Option::is_none")] pub use_static_response_methods : Option < RuleFixConfiguration < biome_rule_options :: use_static_response_methods :: UseStaticResponseMethodsOptions >> , # [doc = "Enforce the use of the directive \"use strict\" in script files."] # [serde (skip_serializing_if = "Option::is_none")] pub use_strict_mode : Option < RuleFixConfiguration < biome_rule_options :: use_strict_mode :: UseStrictModeOptions >> } impl Suspicious { const GROUP_NAME: &'static str = "suspicious"; pub(crate) const GROUP_RULES: &'static [&'static str] = &[ @@ -6812,6 +6794,7 @@ impl Suspicious { "noMisrefactoredShorthandAssign", "noOctalEscape", "noPrototypeBuiltins", + "noQuickfixBiome", "noReactSpecificProps", "noRedeclare", "noRedundantUseStrict", @@ -6893,29 +6876,30 @@ impl Suspicious { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[55]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[56]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[72]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[73]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[74]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[75]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[77]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[76]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[78]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[83]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[82]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[84]), - RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[86]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[85]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[87]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[88]), ]; const ALL_RULES_AS_FILTERS: &'static [RuleFilter<'static>] = &[ RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[0]), @@ -7009,6 +6993,7 @@ impl Suspicious { RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[88]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[89]), RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[90]), + RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[91]), ]; } impl RuleGroupExt for Suspicious { @@ -7310,171 +7295,176 @@ impl RuleGroupExt for Suspicious { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); } } - if let Some(rule) = self.no_react_specific_props.as_ref() { + if let Some(rule) = self.no_quickfix_biome.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); } } - if let Some(rule) = self.no_redeclare.as_ref() { + if let Some(rule) = self.no_react_specific_props.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); } } - if let Some(rule) = self.no_redundant_use_strict.as_ref() { + if let Some(rule) = self.no_redeclare.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } - if let Some(rule) = self.no_self_compare.as_ref() { + if let Some(rule) = self.no_redundant_use_strict.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } - if let Some(rule) = self.no_shadow_restricted_names.as_ref() { + if let Some(rule) = self.no_self_compare.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } - if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { + if let Some(rule) = self.no_shadow_restricted_names.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } - if let Some(rule) = self.no_skipped_tests.as_ref() { + if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); } } - if let Some(rule) = self.no_sparse_array.as_ref() { + if let Some(rule) = self.no_skipped_tests.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); } } - if let Some(rule) = self.no_suspicious_semicolon_in_jsx.as_ref() { + if let Some(rule) = self.no_sparse_array.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); } } - if let Some(rule) = self.no_template_curly_in_string.as_ref() { + if let Some(rule) = self.no_suspicious_semicolon_in_jsx.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); } } - if let Some(rule) = self.no_then_property.as_ref() { + if let Some(rule) = self.no_template_curly_in_string.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); } } - if let Some(rule) = self.no_ts_ignore.as_ref() { + if let Some(rule) = self.no_then_property.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); } } - if let Some(rule) = self.no_unassigned_variables.as_ref() { + if let Some(rule) = self.no_ts_ignore.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); } } - if let Some(rule) = self.no_unknown_at_rule.as_ref() { + if let Some(rule) = self.no_unassigned_variables.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71])); } } - if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { + if let Some(rule) = self.no_unknown_at_rule.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[72])); } } - if let Some(rule) = self.no_unsafe_negation.as_ref() { + if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[73])); } } - if let Some(rule) = self.no_useless_regex_backrefs.as_ref() { + if let Some(rule) = self.no_unsafe_negation.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[74])); } } - if let Some(rule) = self.no_useless_string_escapes.as_ref() { + if let Some(rule) = self.no_useless_regex_backrefs.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[75])); } } - if let Some(rule) = self.no_var.as_ref() { + if let Some(rule) = self.no_useless_string_escapes.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[76])); } } - if let Some(rule) = self.no_with.as_ref() { + if let Some(rule) = self.no_var.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[77])); } } - if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { + if let Some(rule) = self.no_with.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[78])); } } - if let Some(rule) = self.use_await.as_ref() { + if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79])); } } - if let Some(rule) = self.use_consistent_iterable_callback_return_values.as_ref() { + if let Some(rule) = self.use_await.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80])); } } - if let Some(rule) = self.use_default_switch_clause_last.as_ref() { + if let Some(rule) = self.use_consistent_iterable_callback_return_values.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81])); } } - if let Some(rule) = self.use_error_message.as_ref() { + if let Some(rule) = self.use_default_switch_clause_last.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[82])); } } - if let Some(rule) = self.use_getter_return.as_ref() { + if let Some(rule) = self.use_error_message.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[83])); } } - if let Some(rule) = self.use_google_font_display.as_ref() { + if let Some(rule) = self.use_getter_return.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[84])); } } - if let Some(rule) = self.use_guard_for_in.as_ref() { + if let Some(rule) = self.use_google_font_display.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[85])); } } - if let Some(rule) = self.use_is_array.as_ref() { + if let Some(rule) = self.use_guard_for_in.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[86])); } } - if let Some(rule) = self.use_namespace_keyword.as_ref() { + if let Some(rule) = self.use_is_array.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[87])); } } - if let Some(rule) = self.use_number_to_fixed_digits_argument.as_ref() { + if let Some(rule) = self.use_namespace_keyword.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[88])); } } - if let Some(rule) = self.use_static_response_methods.as_ref() { + if let Some(rule) = self.use_number_to_fixed_digits_argument.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[89])); } } - if let Some(rule) = self.use_strict_mode.as_ref() { + if let Some(rule) = self.use_static_response_methods.as_ref() { if rule.is_enabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[90])); } } + if let Some(rule) = self.use_strict_mode.as_ref() { + if rule.is_enabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[91])); + } + } index_set } fn get_disabled_rules(&self) -> FxHashSet> { @@ -7769,171 +7759,176 @@ impl RuleGroupExt for Suspicious { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[57])); } } - if let Some(rule) = self.no_react_specific_props.as_ref() { + if let Some(rule) = self.no_quickfix_biome.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[58])); } } - if let Some(rule) = self.no_redeclare.as_ref() { + if let Some(rule) = self.no_react_specific_props.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[59])); } } - if let Some(rule) = self.no_redundant_use_strict.as_ref() { + if let Some(rule) = self.no_redeclare.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[60])); } } - if let Some(rule) = self.no_self_compare.as_ref() { + if let Some(rule) = self.no_redundant_use_strict.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[61])); } } - if let Some(rule) = self.no_shadow_restricted_names.as_ref() { + if let Some(rule) = self.no_self_compare.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[62])); } } - if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { + if let Some(rule) = self.no_shadow_restricted_names.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[63])); } } - if let Some(rule) = self.no_skipped_tests.as_ref() { + if let Some(rule) = self.no_shorthand_property_overrides.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[64])); } } - if let Some(rule) = self.no_sparse_array.as_ref() { + if let Some(rule) = self.no_skipped_tests.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[65])); } } - if let Some(rule) = self.no_suspicious_semicolon_in_jsx.as_ref() { + if let Some(rule) = self.no_sparse_array.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[66])); } } - if let Some(rule) = self.no_template_curly_in_string.as_ref() { + if let Some(rule) = self.no_suspicious_semicolon_in_jsx.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[67])); } } - if let Some(rule) = self.no_then_property.as_ref() { + if let Some(rule) = self.no_template_curly_in_string.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[68])); } } - if let Some(rule) = self.no_ts_ignore.as_ref() { + if let Some(rule) = self.no_then_property.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[69])); } } - if let Some(rule) = self.no_unassigned_variables.as_ref() { + if let Some(rule) = self.no_ts_ignore.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[70])); } } - if let Some(rule) = self.no_unknown_at_rule.as_ref() { + if let Some(rule) = self.no_unassigned_variables.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[71])); } } - if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { + if let Some(rule) = self.no_unknown_at_rule.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[72])); } } - if let Some(rule) = self.no_unsafe_negation.as_ref() { + if let Some(rule) = self.no_unsafe_declaration_merging.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[73])); } } - if let Some(rule) = self.no_useless_regex_backrefs.as_ref() { + if let Some(rule) = self.no_unsafe_negation.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[74])); } } - if let Some(rule) = self.no_useless_string_escapes.as_ref() { + if let Some(rule) = self.no_useless_regex_backrefs.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[75])); } } - if let Some(rule) = self.no_var.as_ref() { + if let Some(rule) = self.no_useless_string_escapes.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[76])); } } - if let Some(rule) = self.no_with.as_ref() { + if let Some(rule) = self.no_var.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[77])); } } - if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { + if let Some(rule) = self.no_with.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[78])); } } - if let Some(rule) = self.use_await.as_ref() { + if let Some(rule) = self.use_adjacent_overload_signatures.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[79])); } } - if let Some(rule) = self.use_consistent_iterable_callback_return_values.as_ref() { + if let Some(rule) = self.use_await.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[80])); } } - if let Some(rule) = self.use_default_switch_clause_last.as_ref() { + if let Some(rule) = self.use_consistent_iterable_callback_return_values.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[81])); } } - if let Some(rule) = self.use_error_message.as_ref() { + if let Some(rule) = self.use_default_switch_clause_last.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[82])); } } - if let Some(rule) = self.use_getter_return.as_ref() { + if let Some(rule) = self.use_error_message.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[83])); } } - if let Some(rule) = self.use_google_font_display.as_ref() { + if let Some(rule) = self.use_getter_return.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[84])); } } - if let Some(rule) = self.use_guard_for_in.as_ref() { + if let Some(rule) = self.use_google_font_display.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[85])); } } - if let Some(rule) = self.use_is_array.as_ref() { + if let Some(rule) = self.use_guard_for_in.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[86])); } } - if let Some(rule) = self.use_namespace_keyword.as_ref() { + if let Some(rule) = self.use_is_array.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[87])); } } - if let Some(rule) = self.use_number_to_fixed_digits_argument.as_ref() { + if let Some(rule) = self.use_namespace_keyword.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[88])); } } - if let Some(rule) = self.use_static_response_methods.as_ref() { + if let Some(rule) = self.use_number_to_fixed_digits_argument.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[89])); } } - if let Some(rule) = self.use_strict_mode.as_ref() { + if let Some(rule) = self.use_static_response_methods.as_ref() { if rule.is_disabled() { index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[90])); } } + if let Some(rule) = self.use_strict_mode.as_ref() { + if rule.is_disabled() { + index_set.insert(RuleFilter::Rule(Self::GROUP_NAME, Self::GROUP_RULES[91])); + } + } index_set } #[doc = r" Checks if, given a rule name, matches one of the rules contained in this category"] @@ -8196,6 +8191,10 @@ impl RuleGroupExt for Suspicious { .no_prototype_builtins .as_ref() .map(|conf| (conf.level(), conf.get_options())), + "noQuickfixBiome" => self + .no_quickfix_biome + .as_ref() + .map(|conf| (conf.level(), conf.get_options())), "noReactSpecificProps" => self .no_react_specific_props .as_ref() @@ -8394,6 +8393,7 @@ impl From for Suspicious { no_misrefactored_shorthand_assign: Some(value.into()), no_octal_escape: Some(value.into()), no_prototype_builtins: Some(value.into()), + no_quickfix_biome: Some(value.into()), no_react_specific_props: Some(value.into()), no_redeclare: Some(value.into()), no_redundant_use_strict: Some(value.into()), diff --git a/crates/biome_diagnostics_categories/src/categories.rs b/crates/biome_diagnostics_categories/src/categories.rs index fcba92e1d1ef..46753a3c7594 100644 --- a/crates/biome_diagnostics_categories/src/categories.rs +++ b/crates/biome_diagnostics_categories/src/categories.rs @@ -56,8 +56,8 @@ define_categories! { "lint/complexity/noCommaOperator": "https://biomejs.dev/linter/rules/no-comma-operator", "lint/complexity/noEmptyTypeParameters": "https://biomejs.dev/linter/rules/no-empty-type-parameters", "lint/complexity/noExcessiveCognitiveComplexity": "https://biomejs.dev/linter/rules/no-excessive-cognitive-complexity", - "lint/complexity/noExcessiveNestedTestSuites": "https://biomejs.dev/linter/rules/no-excessive-nested-test-suites", "lint/complexity/noExcessiveLinesPerFunction": "https://biomejs.dev/linter/rules/no-excessive-lines-per-function", + "lint/complexity/noExcessiveNestedTestSuites": "https://biomejs.dev/linter/rules/no-excessive-nested-test-suites", "lint/complexity/noExtraBooleanCast": "https://biomejs.dev/linter/rules/no-extra-boolean-cast", "lint/complexity/noFlatMapIdentity": "https://biomejs.dev/linter/rules/no-flat-map-identity", "lint/complexity/noForEach": "https://biomejs.dev/linter/rules/no-for-each", @@ -171,43 +171,22 @@ define_categories! { "lint/nursery/noDestructuredProps": "https://biomejs.dev/linter/rules/no-destructured-props", "lint/nursery/noDoneCallback": "https://biomejs.dev/linter/rules/no-done-callback", "lint/nursery/noDuplicateAtImportRules": "https://biomejs.dev/linter/rules/no-duplicate-at-import-rules", - "lint/nursery/noExcessiveLinesPerFunction": "https://biomejs.dev/linter/rules/no-excessive-lines-per-function", "lint/nursery/noFloatingPromises": "https://biomejs.dev/linter/rules/no-floating-promises", - "lint/nursery/noGlobalDirnameFilename": "https://biomejs.dev/linter/rules/no-global-dirname-filename", "lint/nursery/noImplicitCoercion": "https://biomejs.dev/linter/rules/no-implicit-coercion", "lint/nursery/noImportCycles": "https://biomejs.dev/linter/rules/no-import-cycles", "lint/nursery/noImportantInKeyframe": "https://biomejs.dev/linter/rules/no-important-in-keyframe", - "lint/nursery/noImportantStyles": "https://biomejs.dev/linter/rules/no-important-styles", - "lint/nursery/noInvalidDirectionInLinearGradient": "https://biomejs.dev/linter/rules/no-invalid-direction-in-linear-gradient", - "lint/nursery/noInvalidGridAreas": "https://biomejs.dev/linter/rules/use-consistent-grid-areas", - "lint/nursery/noInvalidPositionAtImportRule": "https://biomejs.dev/linter/rules/no-invalid-position-at-import-rule", "lint/nursery/noMagicNumbers": "https://biomejs.dev/linter/rules/no-magic-numbers", "lint/nursery/noMissingGenericFamilyKeyword": "https://biomejs.dev/linter/rules/no-missing-generic-family-keyword", "lint/nursery/noMisusedPromises": "https://biomejs.dev/linter/rules/no-misused-promises", - "lint/nursery/noNestedComponentDefinitions": "https://biomejs.dev/linter/rules/no-nested-component-definitions", "lint/nursery/noNonNullAssertedOptionalChain": "https://biomejs.dev/linter/rules/no-non-null-asserted-optional-chain", - "lint/nursery/noNoninteractiveElementInteractions": "https://biomejs.dev/linter/rules/no-noninteractive-element-interactions", - "lint/nursery/noProcessGlobal": "https://biomejs.dev/linter/rules/no-process-global", - "lint/nursery/noQuickfixBiome": "https://biomejs.dev/linter/rules/no-quickfix-biome", "lint/nursery/noQwikUseVisibleTask": "https://biomejs.dev/linter/rules/no-qwik-use-visible-task", - "lint/nursery/noReactPropAssign": "https://biomejs.dev/linter/rules/no-react-prop-assign", - "lint/nursery/noReactSpecificProps": "https://biomejs.dev/linter/rules/no-react-specific-props", - "lint/nursery/noRestrictedElements": "https://biomejs.dev/linter/rules/no-restricted-elements", "lint/nursery/noSecrets": "https://biomejs.dev/linter/rules/no-secrets", "lint/nursery/noShadow": "https://biomejs.dev/linter/rules/no-shadow", "lint/nursery/noShorthandPropertyOverrides": "https://biomejs.dev/linter/rules/no-shorthand-property-overrides", "lint/nursery/noTsIgnore": "https://biomejs.dev/linter/rules/no-ts-ignore", "lint/nursery/noUnassignedVariables": "https://biomejs.dev/linter/rules/no-unassigned-variables", - "lint/nursery/noUndeclaredDependencies": "https://biomejs.dev/linter/rules/no-undeclared-dependencies", - "lint/nursery/noUnknownFunction": "https://biomejs.dev/linter/rules/no-unknown-function", - "lint/nursery/noUnknownMediaFeatureName": "https://biomejs.dev/linter/rules/no-unknown-media-feature-name", - "lint/nursery/noUnknownProperty": "https://biomejs.dev/linter/rules/no-unknown-property", - "lint/nursery/noUnknownSelectorPseudoElement": "https://biomejs.dev/linter/rules/no-unknown-selector-pseudo-element", - "lint/nursery/noUnknownUnit": "https://biomejs.dev/linter/rules/no-unknown-unit", - "lint/nursery/noUnmatchableAnbSelector": "https://biomejs.dev/linter/rules/no-unmatchable-anb-selector", "lint/nursery/noUnnecessaryConditions": "https://biomejs.dev/linter/rules/no-unnecessary-conditions", "lint/nursery/noUnresolvedImports": "https://biomejs.dev/linter/rules/no-unresolved-imports", - "lint/nursery/noUnusedFunctionParameters": "https://biomejs.dev/linter/rules/no-unused-function-parameters", "lint/nursery/noUnwantedPolyfillio": "https://biomejs.dev/linter/rules/no-unwanted-polyfillio", "lint/nursery/noUselessBackrefInRegex": "https://biomejs.dev/linter/rules/no-useless-backref-in-regex", "lint/nursery/noUselessEscapeInString": "https://biomejs.dev/linter/rules/no-useless-escape-in-string", @@ -226,28 +205,16 @@ define_categories! { "lint/nursery/useExplicitType": "https://biomejs.dev/linter/rules/use-explicit-type", "lint/nursery/useExportsLast": "https://biomejs.dev/linter/rules/use-exports-last", "lint/nursery/useForComponent": "https://biomejs.dev/linter/rules/use-for-component", - "lint/nursery/useGoogleFontPreconnect": "https://biomejs.dev/linter/rules/use-google-font-preconnect", "lint/nursery/useImageSize": "https://biomejs.dev/linter/rules/use-image-size", "lint/nursery/useImportRestrictions": "https://biomejs.dev/linter/rules/use-import-restrictions", - "lint/nursery/useIndexOf": "https://biomejs.dev/linter/rules/use-index-of", "lint/nursery/useIterableCallbackReturn": "https://biomejs.dev/linter/rules/use-iterable-callback-return", - "lint/nursery/useJsonImportAttribute": "https://biomejs.dev/linter/rules/use-json-import-attribute", "lint/nursery/useJsxCurlyBraceConvention": "https://biomejs.dev/linter/rules/use-jsx-curly-brace-convention", "lint/nursery/useMaxParams": "https://biomejs.dev/linter/rules/use-max-params", "lint/nursery/useNamedOperation": "https://biomejs.dev/linter/rules/use-named-operation", - "lint/nursery/useNamingConvention": "https://biomejs.dev/linter/rules/use-naming-convention", - "lint/nursery/useNumericSeparators": "https://biomejs.dev/linter/rules/use-numeric-separators", - "lint/nursery/useObjectSpread": "https://biomejs.dev/linter/rules/use-object-spread", - "lint/nursery/useParseIntRadix": "https://biomejs.dev/linter/rules/use-parse-int-radix", "lint/nursery/useQwikClasslist": "https://biomejs.dev/linter/rules/use-qwik-classlist", "lint/nursery/useReactFunctionComponents": "https://biomejs.dev/linter/rules/use-react-function-components", "lint/nursery/useReadonlyClassProperties": "https://biomejs.dev/linter/rules/use-readonly-class-properties", - "lint/nursery/useSingleJsDocAsterisk": "https://biomejs.dev/linter/rules/use-single-js-doc-asterisk", "lint/nursery/useSortedClasses": "https://biomejs.dev/linter/rules/use-sorted-classes", - "lint/nursery/useSortedProperties": "https://biomejs.dev/linter/rules/use-sorted-properties", - "lint/nursery/useSymbolDescription": "https://biomejs.dev/linter/rules/use-symbol-description", - "lint/nursery/useUnifiedTypeSignature": "https://biomejs.dev/linter/rules/use-unified-type-signature", - "lint/nursery/useUniqueElementIds": "https://biomejs.dev/linter/rules/use-unique-element-ids", "lint/performance/noAccumulatingSpread": "https://biomejs.dev/linter/rules/no-accumulating-spread", "lint/performance/noAwaitInLoops": "https://biomejs.dev/linter/rules/no-await-in-loops", "lint/performance/noBarrelFile": "https://biomejs.dev/linter/rules/no-barrel-file", @@ -269,11 +236,11 @@ define_categories! { "lint/style/noDescendingSpecificity": "https://biomejs.dev/linter/rules/no-descending-specificity", "lint/style/noDoneCallback": "https://biomejs.dev/linter/rules/no-done-callback", "lint/style/noEnum": "https://biomejs.dev/linter/rules/no-enum", - "lint/style/noMagicNumbers": "https://biomejs.dev/linter/rules/no-magic-numbers", "lint/style/noExportedImports": "https://biomejs.dev/linter/rules/no-exported-imports", "lint/style/noHeadElement": "https://biomejs.dev/linter/rules/no-head-element", "lint/style/noImplicitBoolean": "https://biomejs.dev/linter/rules/no-implicit-boolean", "lint/style/noInferrableTypes": "https://biomejs.dev/linter/rules/no-inferrable-types", + "lint/style/noMagicNumbers": "https://biomejs.dev/linter/rules/no-magic-numbers", "lint/style/noNamespace": "https://biomejs.dev/linter/rules/no-namespace", "lint/style/noNegationElse": "https://biomejs.dev/linter/rules/no-negation-else", "lint/style/noNestedTernary": "https://biomejs.dev/linter/rules/no-nested-ternary", @@ -302,6 +269,7 @@ define_categories! { "lint/style/useConsistentBuiltinInstantiation": "https://biomejs.dev/linter/rules/use-consistent-new-builtin", "lint/style/useConsistentCurlyBraces": "https://biomejs.dev/linter/rules/use-consistent-curly-braces", "lint/style/useConsistentMemberAccessibility": "https://biomejs.dev/linter/rules/use-consistent-member-accessibility", + "lint/style/useConsistentObjectDefinitions": "https://biomejs.dev/linter/rules/use-consistent-object-definitions", "lint/style/useConst": "https://biomejs.dev/linter/rules/use-const", "lint/style/useDefaultParameterLast": "https://biomejs.dev/linter/rules/use-default-parameter-last", "lint/style/useDefaultSwitchClause": "https://biomejs.dev/linter/rules/use-default-switch-clause", @@ -309,7 +277,6 @@ define_categories! { "lint/style/useEnumInitializers": "https://biomejs.dev/linter/rules/use-enum-initializers", "lint/style/useExplicitLengthCheck": "https://biomejs.dev/linter/rules/use-explicit-length-check", "lint/style/useExponentiationOperator": "https://biomejs.dev/linter/rules/use-exponentiation-operator", - "lint/style/useConsistentObjectDefinitions": "https://biomejs.dev/linter/rules/use-consistent-object-definitions", "lint/style/useExportType": "https://biomejs.dev/linter/rules/use-export-type", "lint/style/useExportsLast": "https://biomejs.dev/linter/rules/use-exports-last", "lint/style/useFilenamingConvention": "https://biomejs.dev/linter/rules/use-filenaming-convention", @@ -321,23 +288,23 @@ define_categories! { "lint/style/useLiteralEnumMembers": "https://biomejs.dev/linter/rules/use-literal-enum-members", "lint/style/useNamingConvention": "https://biomejs.dev/linter/rules/use-naming-convention", "lint/style/useNodeAssertStrict": "https://biomejs.dev/linter/rules/use-node-assert-strict", + "lint/style/useNodejsImportProtocol": "https://biomejs.dev/linter/rules/use-nodejs-import-protocol", + "lint/style/useNumberNamespace": "https://biomejs.dev/linter/rules/use-number-namespace", "lint/style/useNumericSeparators": "https://biomejs.dev/linter/rules/use-numeric-separators", "lint/style/useObjectSpread": "https://biomejs.dev/linter/rules/use-object-spread", "lint/style/useReadonlyClassProperties": "https://biomejs.dev/linter/rules/use-readonly-class-properties", - "lint/style/useSymbolDescription": "https://biomejs.dev/linter/rules/use-symbol-description", - "lint/style/useUnifiedTypeSignatures": "https://biomejs.dev/linter/rules/use-unified-type-signatures", - "lint/style/useNodejsImportProtocol": "https://biomejs.dev/linter/rules/use-nodejs-import-protocol", - "lint/style/useNumberNamespace": "https://biomejs.dev/linter/rules/use-number-namespace", "lint/style/useSelfClosingElements": "https://biomejs.dev/linter/rules/use-self-closing-elements", "lint/style/useShorthandArrayType": "https://biomejs.dev/linter/rules/use-shorthand-array-type", "lint/style/useShorthandAssign": "https://biomejs.dev/linter/rules/use-shorthand-assign", "lint/style/useShorthandFunctionType": "https://biomejs.dev/linter/rules/use-shorthand-function-type", "lint/style/useSingleCaseStatement": "https://biomejs.dev/linter/rules/use-single-case-statement", "lint/style/useSingleVarDeclarator": "https://biomejs.dev/linter/rules/use-single-var-declarator", + "lint/style/useSymbolDescription": "https://biomejs.dev/linter/rules/use-symbol-description", "lint/style/useTemplate": "https://biomejs.dev/linter/rules/use-template", "lint/style/useThrowNewError": "https://biomejs.dev/linter/rules/use-throw-new-error", "lint/style/useThrowOnlyError": "https://biomejs.dev/linter/rules/use-throw-only-error", "lint/style/useTrimStartEnd": "https://biomejs.dev/linter/rules/use-trim-start-end", + "lint/style/useUnifiedTypeSignatures": "https://biomejs.dev/linter/rules/use-unified-type-signatures", "lint/suspicious/noAlert": "https://biomejs.dev/linter/rules/no-alert", "lint/suspicious/noApproximativeNumericConstant": "https://biomejs.dev/linter/rules/no-approximative-numeric-constant", "lint/suspicious/noArrayIndexKey": "https://biomejs.dev/linter/rules/no-array-index-key", @@ -348,11 +315,11 @@ define_categories! { "lint/suspicious/noClassAssign": "https://biomejs.dev/linter/rules/no-class-assign", "lint/suspicious/noCommentText": "https://biomejs.dev/linter/rules/no-comment-text", "lint/suspicious/noCompareNegZero": "https://biomejs.dev/linter/rules/no-compare-neg-zero", - "lint/suspicious/noConstantBinaryExpressions": "https://biomejs.dev/linter/rules/no-constant-binary-expressions", "lint/suspicious/noConfusingLabels": "https://biomejs.dev/linter/rules/no-confusing-labels", "lint/suspicious/noConfusingVoidType": "https://biomejs.dev/linter/rules/no-confusing-void-type", "lint/suspicious/noConsole": "https://biomejs.dev/linter/rules/no-console", "lint/suspicious/noConstEnum": "https://biomejs.dev/linter/rules/no-const-enum", + "lint/suspicious/noConstantBinaryExpressions": "https://biomejs.dev/linter/rules/no-constant-binary-expressions", "lint/suspicious/noControlCharactersInRegex": "https://biomejs.dev/linter/rules/no-control-characters-in-regex", "lint/suspicious/noDebugger": "https://biomejs.dev/linter/rules/no-debugger", "lint/suspicious/noDocumentCookie": "https://biomejs.dev/linter/rules/no-document-cookie", @@ -396,24 +363,25 @@ define_categories! { "lint/suspicious/noMisrefactoredShorthandAssign": "https://biomejs.dev/linter/rules/no-misrefactored-shorthand-assign", "lint/suspicious/noOctalEscape": "https://biomejs.dev/linter/rules/no-octal-escape", "lint/suspicious/noPrototypeBuiltins": "https://biomejs.dev/linter/rules/no-prototype-builtins", + "lint/suspicious/noQuickfixBiome": "https://biomejs.dev/linter/rules/no-quickfix-biome", "lint/suspicious/noReactSpecificProps": "https://biomejs.dev/linter/rules/no-react-specific-props", "lint/suspicious/noRedeclare": "https://biomejs.dev/linter/rules/no-redeclare", "lint/suspicious/noRedundantUseStrict": "https://biomejs.dev/linter/rules/no-redundant-use-strict", "lint/suspicious/noSelfCompare": "https://biomejs.dev/linter/rules/no-self-compare", "lint/suspicious/noShadowRestrictedNames": "https://biomejs.dev/linter/rules/no-shadow-restricted-names", - "lint/suspicious/noTsIgnore": "https://biomejs.dev/linter/rules/no-ts-ignore", - "lint/suspicious/noUnassignedVariables": "https://biomejs.dev/linter/rules/no-unassigned-variables", - "lint/suspicious/noUselessRegexBackrefs": "https://biomejs.dev/linter/rules/no-useless-regex-backrefs", - "lint/suspicious/noUselessStringEscapes": "https://biomejs.dev/linter/rules/no-useless-string-escapes", "lint/suspicious/noShorthandPropertyOverrides": "https://biomejs.dev/linter/rules/no-shorthand-property-overrides", "lint/suspicious/noSkippedTests": "https://biomejs.dev/linter/rules/no-skipped-tests", "lint/suspicious/noSparseArray": "https://biomejs.dev/linter/rules/no-sparse-array", "lint/suspicious/noSuspiciousSemicolonInJsx": "https://biomejs.dev/linter/rules/no-suspicious-semicolon-in-jsx", "lint/suspicious/noTemplateCurlyInString": "https://biomejs.dev/linter/rules/no-template-curly-in-string", "lint/suspicious/noThenProperty": "https://biomejs.dev/linter/rules/no-then-property", + "lint/suspicious/noTsIgnore": "https://biomejs.dev/linter/rules/no-ts-ignore", + "lint/suspicious/noUnassignedVariables": "https://biomejs.dev/linter/rules/no-unassigned-variables", "lint/suspicious/noUnknownAtRule": "https://biomejs.dev/linter/rules/no-unknown-at-rule", "lint/suspicious/noUnsafeDeclarationMerging": "https://biomejs.dev/linter/rules/no-unsafe-declaration-merging", "lint/suspicious/noUnsafeNegation": "https://biomejs.dev/linter/rules/no-unsafe-negation", + "lint/suspicious/noUselessRegexBackrefs": "https://biomejs.dev/linter/rules/no-useless-regex-backrefs", + "lint/suspicious/noUselessStringEscapes": "https://biomejs.dev/linter/rules/no-useless-string-escapes", "lint/suspicious/noVar": "https://biomejs.dev/linter/rules/no-var", "lint/suspicious/noWith": "https://biomejs.dev/linter/rules/no-with", "lint/suspicious/useAdjacentOverloadSignatures": "https://biomejs.dev/linter/rules/use-adjacent-overload-signatures", diff --git a/crates/biome_json_analyze/src/lint.rs b/crates/biome_json_analyze/src/lint.rs index 87c4bcee6dda..9801b9af1285 100644 --- a/crates/biome_json_analyze/src/lint.rs +++ b/crates/biome_json_analyze/src/lint.rs @@ -2,6 +2,5 @@ //! Generated file, do not edit by hand, see `xtask/codegen` -pub mod nursery; pub mod suspicious; -::biome_analyze::declare_category! { pub Lint { kind : Lint , groups : [self :: nursery :: Nursery , self :: suspicious :: Suspicious ,] } } +::biome_analyze::declare_category! { pub Lint { kind : Lint , groups : [self :: suspicious :: Suspicious ,] } } diff --git a/crates/biome_json_analyze/src/lint/nursery.rs b/crates/biome_json_analyze/src/lint/nursery.rs deleted file mode 100644 index 3f45585844b3..000000000000 --- a/crates/biome_json_analyze/src/lint/nursery.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Generated file, do not edit by hand, see `xtask/codegen` - -//! Generated file, do not edit by hand, see `xtask/codegen` - -use biome_analyze::declare_lint_group; -pub mod no_quickfix_biome; -declare_lint_group! { pub Nursery { name : "nursery" , rules : [self :: no_quickfix_biome :: NoQuickfixBiome ,] } } diff --git a/crates/biome_json_analyze/src/lint/suspicious.rs b/crates/biome_json_analyze/src/lint/suspicious.rs index 9c8bd724d603..054c5031aedc 100644 --- a/crates/biome_json_analyze/src/lint/suspicious.rs +++ b/crates/biome_json_analyze/src/lint/suspicious.rs @@ -4,4 +4,5 @@ use biome_analyze::declare_lint_group; pub mod no_duplicate_object_keys; -declare_lint_group! { pub Suspicious { name : "suspicious" , rules : [self :: no_duplicate_object_keys :: NoDuplicateObjectKeys ,] } } +pub mod no_quickfix_biome; +declare_lint_group! { pub Suspicious { name : "suspicious" , rules : [self :: no_duplicate_object_keys :: NoDuplicateObjectKeys , self :: no_quickfix_biome :: NoQuickfixBiome ,] } } diff --git a/crates/biome_json_analyze/src/lint/nursery/no_quickfix_biome.rs b/crates/biome_json_analyze/src/lint/suspicious/no_quickfix_biome.rs similarity index 100% rename from crates/biome_json_analyze/src/lint/nursery/no_quickfix_biome.rs rename to crates/biome_json_analyze/src/lint/suspicious/no_quickfix_biome.rs diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.vscode/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.vscode/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.vscode/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.vscode/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.vscode/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.vscode/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.vscode/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.vscode/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.zed/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.zed/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.zed/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.zed/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.zed/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.zed/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/.zed/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/.zed/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/Code/User/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/Code/User/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/Code/User/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/Code/User/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/Code/User/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/Code/User/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/Code/User/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/Code/User/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/zed/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/zed/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/zed/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/zed/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/zed/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/zed/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/has_fix_all/zed/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/has_fix_all/zed/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.vscode/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.vscode/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.vscode/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.vscode/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.vscode/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.vscode/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.vscode/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.vscode/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.zed/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.zed/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.zed/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.zed/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.zed/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.zed/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/.zed/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/.zed/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/Code/User/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/Code/User/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/Code/User/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/Code/User/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/Code/User/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/Code/User/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/Code/User/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/Code/User/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/zed/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/zed/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/zed/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/zed/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/zed/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/zed/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/more_items/zed/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/more_items/zed/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.vscode/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.vscode/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.vscode/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.vscode/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.vscode/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.vscode/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.vscode/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.vscode/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.zed/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.zed/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.zed/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.zed/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.zed/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.zed/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/.zed/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/.zed/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/Code/User/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/Code/User/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/Code/User/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/Code/User/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/Code/User/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/Code/User/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/Code/User/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/Code/User/settings.json.snap diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/zed/settings.json b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/zed/settings.json similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/zed/settings.json rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/zed/settings.json diff --git a/crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/zed/settings.json.snap b/crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/zed/settings.json.snap similarity index 100% rename from crates/biome_json_analyze/tests/specs/nursery/noQuickfixBiome/simple/zed/settings.json.snap rename to crates/biome_json_analyze/tests/specs/suspicious/noQuickfixBiome/simple/zed/settings.json.snap From ec2c360bccf6560a507730ee57c8600986d7c62a Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 6 Aug 2025 19:20:15 +0100 Subject: [PATCH 07/20] fix options and update snapshots --- ...shows_the_default_severity_of_rule_on.snap | 11 + .../with_linter_configuration.snap | 2 + .../incorrect_rule_name.snap | 22 ++ .../src/categories.rs | 1 - .../use_consistent_object_definitions.rs | 2 +- .../invalid.js.snap | 248 ++++++++++-- .../invalid.options.json | 2 +- .../invalidSkipBlankLines.js.snap | 46 +-- .../invalidSkipBlankLines.options.json | 2 +- .../valid.options.json | 2 +- .../validSkipBlankLines.options.json | 2 +- .../validSkipIiefs.options.json | 2 +- .../noRestrictedElements/invalid.jsx.snap | 91 ++--- .../noRestrictedElements/invalid.options.json | 3 +- .../noRestrictedElements/valid.options.json | 2 +- .../useUniqueElementIds/allowlist.jsx.snap | 1 - .../useUniqueElementIds/badAllowlist.jsx.snap | 1 - .../invalidExplicit.js.snap | 67 +--- .../invalidExplicit.options.json | 4 +- .../invalidShorthand.js.snap | 368 ++++++++++++++++-- .../invalidShorthand.options.json | 4 +- .../validExplicit.options.json | 4 +- .../validShorthand.options.json | 4 +- ...nvalid_checkAllPropertiesTrue.options.json | 2 +- .../invalid_checkAllPropertiesTrue.ts.snap | 251 ++++++++++-- .../valid_checkAllPropertiesTrue.options.json | 2 +- .../validBitwiseAnd.options.json | 2 +- 27 files changed, 859 insertions(+), 289 deletions(-) diff --git a/crates/biome_cli/tests/snapshots/main_commands_lint/linter_shows_the_default_severity_of_rule_on.snap b/crates/biome_cli/tests/snapshots/main_commands_lint/linter_shows_the_default_severity_of_rule_on.snap index 3c0073d48d9f..5b46a94272e5 100644 --- a/crates/biome_cli/tests/snapshots/main_commands_lint/linter_shows_the_default_severity_of_rule_on.snap +++ b/crates/biome_cli/tests/snapshots/main_commands_lint/linter_shows_the_default_severity_of_rule_on.snap @@ -59,6 +59,7 @@ biome.json:5:17 deserialize ━━━━━━━━━━━━━━━━━ - noHeadElement - noImplicitBoolean - noInferrableTypes + - noMagicNumbers - noNamespace - noNegationElse - noNestedTernary @@ -73,6 +74,7 @@ biome.json:5:17 deserialize ━━━━━━━━━━━━━━━━━ - noSubstr - noUnusedTemplateLiteral - noUselessElse + - noUselessUndefined - noValueAtRule - noYodaExpression - useArrayLiterals @@ -86,6 +88,7 @@ biome.json:5:17 deserialize ━━━━━━━━━━━━━━━━━ - useConsistentBuiltinInstantiation - useConsistentCurlyBraces - useConsistentMemberAccessibility + - useConsistentObjectDefinitions - useConst - useDefaultParameterLast - useDefaultSwitchClause @@ -94,23 +97,31 @@ biome.json:5:17 deserialize ━━━━━━━━━━━━━━━━━ - useExplicitLengthCheck - useExponentiationOperator - useExportType + - useExportsLast - useFilenamingConvention - useForOf - useFragmentSyntax + - useGraphqlNamingConvention + - useGroupedAccessorPairs - useImportType - useLiteralEnumMembers - useNamingConvention - useNodeAssertStrict - useNodejsImportProtocol - useNumberNamespace + - useNumericSeparators + - useObjectSpread + - useReadonlyClassProperties - useSelfClosingElements - useShorthandAssign - useShorthandFunctionType - useSingleVarDeclarator + - useSymbolDescription - useTemplate - useThrowNewError - useThrowOnlyError - useTrimStartEnd + - useUnifiedTypeSignatures ``` diff --git a/crates/biome_cli/tests/snapshots/main_commands_rage/with_linter_configuration.snap b/crates/biome_cli/tests/snapshots/main_commands_rage/with_linter_configuration.snap index ce0b8c4fdaeb..47d5ae561f39 100644 --- a/crates/biome_cli/tests/snapshots/main_commands_rage/with_linter_configuration.snap +++ b/crates/biome_cli/tests/snapshots/main_commands_rage/with_linter_configuration.snap @@ -74,6 +74,7 @@ Linter: complexity/noEmptyTypeParameters complexity/noExtraBooleanCast complexity/noFlatMapIdentity + complexity/noImportantStyles complexity/noStaticOnlyClass complexity/noThisInStatic complexity/noUselessCatch @@ -94,6 +95,7 @@ Linter: complexity/useArrowFunction complexity/useDateNow complexity/useFlatMap + complexity/useIndexOf complexity/useLiteralKeys complexity/useNumericLiterals complexity/useOptionalChain diff --git a/crates/biome_cli/tests/snapshots/main_configuration/incorrect_rule_name.snap b/crates/biome_cli/tests/snapshots/main_configuration/incorrect_rule_name.snap index a5caa8d2f4a2..b7476ee1fd99 100644 --- a/crates/biome_cli/tests/snapshots/main_configuration/incorrect_rule_name.snap +++ b/crates/biome_cli/tests/snapshots/main_configuration/incorrect_rule_name.snap @@ -55,6 +55,7 @@ biome.json:6:13 deserialize ━━━━━━━━━━━━━━━━━ - noConstructorReturn - noEmptyCharacterClassInRegex - noEmptyPattern + - noGlobalDirnameFilename - noGlobalObjectCalls - noInnerDeclarations - noInvalidBuiltinInstantiation @@ -64,13 +65,18 @@ biome.json:6:13 deserialize ━━━━━━━━━━━━━━━━━ - noInvalidPositionAtImportRule - noInvalidUseBeforeDeclaration - noMissingVarFunction + - noNestedComponentDefinitions - noNodejsModules - noNonoctalDecimalEscape - noPrecisionLoss - noPrivateImports + - noProcessGlobal + - noReactPropAssignments - noRenderReturnValue + - noRestrictedElements - noSelfAssign - noSetterReturn + - noSolidDestructuredProps - noStringCaseMismatch - noSwitchDeclarations - noUndeclaredDependencies @@ -98,7 +104,12 @@ biome.json:6:13 deserialize ━━━━━━━━━━━━━━━━━ - useHookAtTopLevel - useImportExtensions - useIsNan + - useJsonImportAttributes - useJsxKeyInIterable + - useNamedGraphqlOperations + - useParseIntRadix + - useSingleJsDocAsterisk + - useUniqueElementIds - useValidForDirection - useValidTypeof - useYield @@ -130,6 +141,7 @@ biome.json:9:13 deserialize ━━━━━━━━━━━━━━━━━ - noHeadElement - noImplicitBoolean - noInferrableTypes + - noMagicNumbers - noNamespace - noNegationElse - noNestedTernary @@ -144,6 +156,7 @@ biome.json:9:13 deserialize ━━━━━━━━━━━━━━━━━ - noSubstr - noUnusedTemplateLiteral - noUselessElse + - noUselessUndefined - noValueAtRule - noYodaExpression - useArrayLiterals @@ -157,6 +170,7 @@ biome.json:9:13 deserialize ━━━━━━━━━━━━━━━━━ - useConsistentBuiltinInstantiation - useConsistentCurlyBraces - useConsistentMemberAccessibility + - useConsistentObjectDefinitions - useConst - useDefaultParameterLast - useDefaultSwitchClause @@ -165,23 +179,31 @@ biome.json:9:13 deserialize ━━━━━━━━━━━━━━━━━ - useExplicitLengthCheck - useExponentiationOperator - useExportType + - useExportsLast - useFilenamingConvention - useForOf - useFragmentSyntax + - useGraphqlNamingConvention + - useGroupedAccessorPairs - useImportType - useLiteralEnumMembers - useNamingConvention - useNodeAssertStrict - useNodejsImportProtocol - useNumberNamespace + - useNumericSeparators + - useObjectSpread + - useReadonlyClassProperties - useSelfClosingElements - useShorthandAssign - useShorthandFunctionType - useSingleVarDeclarator + - useSymbolDescription - useTemplate - useThrowNewError - useThrowOnlyError - useTrimStartEnd + - useUnifiedTypeSignatures ``` diff --git a/crates/biome_diagnostics_categories/src/categories.rs b/crates/biome_diagnostics_categories/src/categories.rs index 46753a3c7594..e49da2de4a4b 100644 --- a/crates/biome_diagnostics_categories/src/categories.rs +++ b/crates/biome_diagnostics_categories/src/categories.rs @@ -164,7 +164,6 @@ define_categories! { "lint/nursery/colorNoInvalidHex": "https://biomejs.dev/linter/rules/color-no-invalid-hex", "lint/nursery/noNextAsyncClientComponent": "https://biomejs.dev/linter/rules/no-next-async-client-component", "lint/nursery/noAwaitInLoop": "https://biomejs.dev/linter/rules/no-await-in-loop", - "lint/nursery/noBitwiseOperators": "https://biomejs.dev/linter/rules/no-bitwise-operators", "lint/nursery/noColorInvalidHex": "https://biomejs.dev/linter/rules/no-color-invalid-hex", "lint/nursery/noConsole": "https://biomejs.dev/linter/rules/no-console", "lint/nursery/noConstantBinaryExpression": "https://biomejs.dev/linter/rules/no-constant-binary-expression", diff --git a/crates/biome_js_analyze/src/lint/style/use_consistent_object_definitions.rs b/crates/biome_js_analyze/src/lint/style/use_consistent_object_definitions.rs index 0d6af2151bd8..26e4f41a9e23 100644 --- a/crates/biome_js_analyze/src/lint/style/use_consistent_object_definitions.rs +++ b/crates/biome_js_analyze/src/lint/style/use_consistent_object_definitions.rs @@ -115,7 +115,7 @@ declare_lint_rule! { language: "js", recommended: false, fix_kind: FixKind::Safe, - severity: Severity::Error, + severity: Severity::Warning, sources: &[RuleSource::Eslint("object-shorthand").inspired()], } } diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap index b03a5d796670..81158e5f12b1 100644 --- a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.js.snap @@ -73,42 +73,218 @@ class foo { # Diagnostics ``` -invalid.options:6:9 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - - × Found an unknown key `noExcessiveLinesPerFunction`. - - 4 │ "rules": { - 5 │ "nursery": { - > 6 │ "noExcessiveLinesPerFunction": { - │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 7 │ "level": "error", - 8 │ "options": { - - i Known keys: - - - recommended - - noFloatingPromises - - noImportCycles - - noMisusedPromises - - noNonNullAssertedOptionalChain - - noQuickfixBiome - - noQwikUseVisibleTask - - noSecrets - - noShadow - - noUnnecessaryConditions - - noUnresolvedImports - - noUselessEscapeInString - - noVueReservedKeys - - noVueReservedProps - - useAnchorHref - - useConsistentTypeDefinitions - - useExhaustiveSwitchCases - - useExplicitType - - useImageSize - - useNamedOperation - - useQwikClasslist - - useReactFunctionComponents - - useSortedClasses +invalid.js:1:13 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (3). Maximum allowed is 2. + + > 1 │ const foo = () => { + │ ^^^^^^^ + > 2 │ const x = 2; + > 3 │ const y = 1; + > 4 │ return x + y; + > 5 │ }; + │ ^ + 6 │ + 7 │ function bar() { + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:7:1 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (3). Maximum allowed is 2. + + 5 │ }; + 6 │ + > 7 │ function bar() { + │ ^^^^^^^^^^^^^^^^ + > 8 │ const x = 2; + > 9 │ const y = 1; + > 10 │ return x + y; + > 11 │ } + │ ^ + 12 │ + 13 │ function name() { + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:13:1 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (3). Maximum allowed is 2. + + 11 │ } + 12 │ + > 13 │ function name() { + │ ^^^^^^^^^^^^^^^^^ + > 14 │ var x = 5; + > 15 │ + > 16 │ var x = 2; + > 17 │ } + │ ^ + 18 │ + 19 │ function foo( + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:19:1 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (3). Maximum allowed is 2. + + 17 │ } + 18 │ + > 19 │ function foo( + │ ^^^^^^^^^^^^^ + > 20 │ aaa = 1, + ... + > 26 │ return aaa + bbb + ccc + x + y; + > 27 │ } + │ ^ + 28 │ + 29 │ function parent() { + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:29:1 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (5). Maximum allowed is 2. + + 27 │ } + 28 │ + > 29 │ function parent() { + │ ^^^^^^^^^^^^^^^^^^^ + > 30 │ var x = 0; + ... + > 35 │ } + > 36 │ }; + │ ^ + 37 │ + 38 │ class foo { + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:31:2 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (3). Maximum allowed is 2. + + 29 │ function parent() { + 30 │ var x = 0; + > 31 │ function nested() { + │ ^^^^^^^^^^^^^^^^^^^ + > 32 │ var y = 0; + > 33 │ x = 2; + > 34 │ var z = x + y; + > 35 │ } + │ ^ + 36 │ }; + 37 │ + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:39:2 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (3). Maximum allowed is 2. + + 38 │ class foo { + > 39 │ method() { + │ ^^^^^^^^^^ + > 40 │ let y = 10; + > 41 │ let x = 20; + > 42 │ return y + x; + > 43 │ } + │ ^ + 44 │ constructor() { + 45 │ let y = 10; + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:44:2 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (3). Maximum allowed is 2. + + 42 │ return y + x; + 43 │ } + > 44 │ constructor() { + │ ^^^^^^^^^^^^^^^ + > 45 │ let y = 10; + > 46 │ let x = 20; + > 47 │ return y + x; + > 48 │ } + │ ^ + 49 │ } + 50 │ + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:51:2 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (5). Maximum allowed is 2. + + 49 │ } + 50 │ + > 51 │ (function () { + │ ^^^^^^^^^^^^^ + > 52 │ let x = 0; + ... + > 56 │ return bar; + > 57 │ })(); + │ ^ + 58 │ + 59 │ (() => { + + i Consider refactoring this function to split it into smaller functions. + + +``` + +``` +invalid.js:59:2 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + i This function has too many lines (5). Maximum allowed is 2. + + 57 │ })(); + 58 │ + > 59 │ (() => { + │ ^^^^^^^ + > 60 │ let x = 0; + > 61 │ let y = 0; + > 62 │ let z = x + y; + > 63 │ let foo = {}; + > 64 │ return bar; + > 65 │ })(); + │ ^ + + i Consider refactoring this function to split it into smaller functions. ``` diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.options.json index 1fbc65716886..37be606a64db 100644 --- a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.options.json +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalid.options.json @@ -2,7 +2,7 @@ "$schema": "../../../../../../packages/@biomejs/biome/configuration_schema.json", "linter": { "rules": { - "nursery": { + "complexity": { "noExcessiveLinesPerFunction": { "level": "error", "options": { diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap index f92a690ce51f..a68e7f183bf5 100644 --- a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.js.snap @@ -16,42 +16,22 @@ function name() { # Diagnostics ``` -invalidSkipBlankLines.options:6:9 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalidSkipBlankLines.js:1:1 lint/complexity/noExcessiveLinesPerFunction ━━━━━━━━━━━━━━━━━━━━━━━━━━━ - × Found an unknown key `noExcessiveLinesPerFunction`. + i This function has too many lines (3). Maximum allowed is 2. - 4 │ "rules": { - 5 │ "nursery": { - > 6 │ "noExcessiveLinesPerFunction": { - │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 7 │ "level": "error", - 8 │ "options": { + > 1 │ function name() { + │ ^^^^^^^^^^^^^^^^^ + > 2 │ var x = 5;· + > 3 │ + > 4 │ + > 5 │ var x = 2; + > 6 │ var y = 3; + > 7 │ } + │ ^ + 8 │ - i Known keys: - - - recommended - - noFloatingPromises - - noImportCycles - - noMisusedPromises - - noNonNullAssertedOptionalChain - - noQuickfixBiome - - noQwikUseVisibleTask - - noSecrets - - noShadow - - noUnnecessaryConditions - - noUnresolvedImports - - noUselessEscapeInString - - noVueReservedKeys - - noVueReservedProps - - useAnchorHref - - useConsistentTypeDefinitions - - useExhaustiveSwitchCases - - useExplicitType - - useImageSize - - useNamedOperation - - useQwikClasslist - - useReactFunctionComponents - - useSortedClasses + i Consider refactoring this function to split it into smaller functions. ``` diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json index 905d4a616ae6..28e2b9741202 100644 --- a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/invalidSkipBlankLines.options.json @@ -2,7 +2,7 @@ "$schema": "../../../../../../packages/@biomejs/biome/configuration_schema.json", "linter": { "rules": { - "nursery": { + "complexity": { "noExcessiveLinesPerFunction": { "level": "error", "options": { diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.options.json index e245bd78b1d3..3eb5ad89fd2a 100644 --- a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.options.json +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/valid.options.json @@ -2,7 +2,7 @@ "$schema": "../../../../../../packages/@biomejs/biome/configuration_schema.json", "linter": { "rules": { - "nursery": { + "complexity": { "noExcessiveLinesPerFunction": { "level": "error", "options": { diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.options.json index 905d4a616ae6..28e2b9741202 100644 --- a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.options.json +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipBlankLines.options.json @@ -2,7 +2,7 @@ "$schema": "../../../../../../packages/@biomejs/biome/configuration_schema.json", "linter": { "rules": { - "nursery": { + "complexity": { "noExcessiveLinesPerFunction": { "level": "error", "options": { diff --git a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIiefs.options.json b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIiefs.options.json index e92c94df3dac..c33cc1d25aae 100644 --- a/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIiefs.options.json +++ b/crates/biome_js_analyze/tests/specs/complexity/noExcessiveLinesPerFunction/validSkipIiefs.options.json @@ -2,7 +2,7 @@ "$schema": "../../../../../../packages/@biomejs/biome/configuration_schema.json", "linter": { "rules": { - "nursery": { + "complexity": { "noExcessiveLinesPerFunction": { "level": "error", "options": { diff --git a/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap b/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap index 816706db669a..b8e29d758648 100644 --- a/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap +++ b/crates/biome_js_analyze/tests/specs/correctness/noRestrictedElements/invalid.jsx.snap @@ -12,83 +12,42 @@ expression: invalid.jsx # Diagnostics ``` -invalid.options:7:5 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +invalid.jsx:1:2 lint/correctness/noRestrictedElements ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - × Found an unknown key `noBitwiseOperators`. + i Use TextField instead - 5 │ "rules": { - 6 │ "nursery": { - > 7 │ "noBitwiseOperators": "error", - │ ^^^^^^^^^^^^^^^^^^^^ - 8 │ "noRestrictedElements": { - 9 │ "level": "error", - - i Known keys: - - - recommended - - noFloatingPromises - - noImportCycles - - noMisusedPromises - - noNonNullAssertedOptionalChain - - noQuickfixBiome - - noQwikUseVisibleTask - - noSecrets - - noShadow - - noUnnecessaryConditions - - noUnresolvedImports - - noUselessEscapeInString - - noVueReservedKeys - - noVueReservedProps - - useAnchorHref - - useConsistentTypeDefinitions - - useExhaustiveSwitchCases - - useExplicitType - - useImageSize - - useNamedOperation - - useQwikClasslist - - useReactFunctionComponents - - useSortedClasses + > 1 │ (); + │ ^^^^^^^^^ + 2 │ (