chore(deps): update dependency @biomejs/biome to v2.3.12 #49
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.3.10→2.3.12Release Notes
biomejs/biome (@biomejs/biome)
v2.3.12Compare Source
Patch Changes
#8653
047576dThanks @dyc3! - Added new nursery rulenoDuplicateAttributesto forbid duplicate attributes in HTML elements.#8648
96d09f4Thanks @BaeSeokJae! - Added a new nursery rulenoVueOptionsApi.Biome now reports Vue Options API usage, which is incompatible with Vue 3.6's Vapor Mode.
This rule detects Options API patterns in
<script>blocks,defineComponent(), andcreateApp()calls,helping prepare codebases for Vapor Mode adoption.
For example, the following now triggers this rule:
#8832
b08270bThanks @Exudev! - Fixed #8809, #7985, and #8136: thenoSecretsrule no longer reports false positives on common CamelCase identifiers likepaddingBottom,backgroundColor,unhandledRejection,uncaughtException, andIngestGatewayLogGroup.The entropy calculation algorithm now uses "average run length" to distinguish between legitimate CamelCase patterns (which have longer runs of same-case letters) and suspicious alternating case patterns (which have short runs).
#8793
c19fb0eThanks @TheBaconWizard! - Properly handleparametersmetavariables forarrow_functionGritQL queries. The followingbiome searchcommand no longer throws an error:biome search 'arrow_function(parameters=$parameters, body=$body)'#8561
981affbThanks @wataryooou! - FixednoUnusedVariablesto ignore type parameters declared in ambient contexts such asdeclare moduleblocks.#8817
652cfbbThanks @dyc3! - Fixed #8765: The HTML parser can now parse directive modifiers with a single colon, e.g.@keydown.:.#8704
a1914d4Thanks @Netail! - Added the nursery rulenoRootType.Disallow the usage of specified root types. (e.g.
mutationand/orsubscription)Invalid:
{ "options": { "disallow": ["mutation"] } }#8712
251b47bThanks @Netail! - Renamed the following GraphQL nursery rules to match the Biome standard:useUniqueArgumentNames->noDuplicateArgumentNamesuseUniqueFieldDefinitionNames->noDuplicateFieldDefinitionNamesuseUniqueGraphqlOperationName->noDuplicateGraphqlOperationNameuseUniqueInputFieldNames->noDuplicateInputFieldNamesuseUniqueVariableNames->noDuplicateVariableNamesRun the
biome migrate --writecommand to automatically update the configuration file.#7602
957cd8eThanks @kedevked! - Added the nursery lint ruleuseErrorCause.This rule enforces that errors caught in a
catchclause are not rethrown without wrapping them in a newErrorobject and specifying the original error as thecause. This helps preserve the error’s stack trace and context for better debugging.It can be configured with the following option:
requireCatchParameter: (default:true)true, the rule requires thatcatchclauses have a parameter. If athrowstatement appears inside acatchclause without a parameter, it will be flagged.Invalid examples:
Valid examples:
Valid example when
requireCatchParameterisfalse:Valid:
#8725
95aba98Thanks @dyc3! - Fixed #8715: The CSS parser will now recover slightly better if a semicolon is missing from Tailwind's@applyat-rule.#8616
4ee3bdaThanks @Netail! - Added the nursery ruleuseLoneAnonymousOperation. Disallow anonymous operations when more than one operation specified in document.Invalid:
#8624
291c9f2Thanks @taga3s! - Added the nursery ruleuseInlineScriptIdto the Next.js domain.This rule enforces
idattribute onnext/scriptcomponents with inline content ordangerouslySetInnerHTML.The following code is invalid:
#8767
0d15370Thanks @mdevils! - Fixed #3512:useExhaustiveDependenciesnow properly handles nested destructuring patternsfrom hook results.
#8757
17ed9d3Thanks @Netail! - Added the nursery rulenoDivRegex. Disallow equal signs explicitly at the beginning of regular expressions.Invalid:
#8836
aab1d17Thanks @dyc3! - Fixed #7858: Biome now parses Astro files with empty frontmatter blocks.#8755
3a15c29Thanks @arturalkaim! - Fixed #6670. The$filenamemetavariable can now be used in GritQLwhereclauses to filter matches by filename.#8821
63e68a1Thanks @playhardgopro! - Fixed several bugs in Vue conditional rules (useVueValidVIf,useVueValidVElse, anduseVueValidVElseIf) related to whitespace handling, newlines, and self-closing tags.#8767
0d15370Thanks @mdevils! - Fixed #3685:useExhaustiveDependenciesnow properly handles transparent expressionwrappers like non-null assertions and type assertions in dependency comparisons.
#8597
f764007Thanks @Netail! - Added the nursery rulenoDuplicateEnumValueNames. Enforce unique enum value names.Invalid:
#8679
33dfd7cThanks @ematipico! - Fixed #8678. Now Biome correctly parses components inside Vue, Svelte and Astro files when they have the same name of self-closing elements.#8617
31a9bfeThanks @Netail! - Added the nursery ruleuseLoneExecutableDefinition. Require queries, mutations, subscriptions or fragments to be located in separate files.Invalid:
#8697
8519669Thanks @Faizanq! - Added the nursery lint rulenoExcessiveLinesPerFileto CSS and GraphQL.#8711
365f7aaThanks @Netail! - Added new nursery rulenoDuplicateEnumValues, which disallows defining an enum with multiple members initialized to the same value.#8767
0d15370Thanks @mdevils! - Fixed #5914:useExhaustiveDependenciesnow properly handles variables declared in the samestatement.
#8767
0d15370Thanks @mdevils! - Fixed #8427:useExhaustiveDependenciesnow properly resolves variable references to detectcaptured dependencies.
#8767
0d15370Thanks @mdevils! - Fixed #8484:useExhaustiveDependenciesnow properly handles member access on stable hookresults.
#8767
0d15370Thanks @mdevils! - Fixed #7982:useExhaustiveDependenciesnow properly handles callback expressions with typeassertions.
#8766
39eb545Thanks @Netail! - Fixed #8761: Reverted wrapping the URL of rule descriptions with<>, causing broken URLs in VSCode.#8767
0d15370Thanks @mdevils! - Fixed #3080:useExhaustiveDependenciesnow properly analyzes captures within referencedfunctions passed to hooks.
#8740
4962ed0Thanks @Netail! - Extra rule source references.biome migrate eslintshould do a bit better detecting rules in your eslint configurations.#8776
395746fThanks @codiini! - Fixed #6003:noUselessUndefinedInitializationno longer reports exported variables initialized toundefined. In Svelte 4, this pattern is used to declare optional component props.#8767
0d15370Thanks @mdevils! - Fixed #4248:useExhaustiveDependenciesnow correctly handles function props passed ascallbacks.
#8819
bc191ffThanks @Netail! - Fixed #6567:noUnknownPropertynow ignores unknown properties in at-rules which support descriptors.#8787
adb652fThanks @tuyuritio! - Fixed #8777: Add support for:active-view-transitionpseudo-class.#8639
6577e32Thanks @ohnoah! - Added the nursery lint rulenoExcessiveLinesPerFile.Biome now reports files that exceed a configurable line limit.
#8753
71b5c6eThanks @Netail! - Added the nursery rulenoExcessiveClassesPerFile. Enforce a maximum number of classes per file.Invalid:
#8754
d6b2bdaThanks @Netail! - Added the nursery rulenoFloatingClasses. Disallownewoperators outside of assignments or comparisons.Invalid:
v2.3.11Compare Source
Patch Changes
#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidTemplateRoot.This rule validates only root-level
<template>elements in Vue single-file components. If the<template>has asrcattribute, it must be empty. Otherwise, it must contain content.Invalid examples:
Valid examples:
#8586
df8fe06Thanks @dyc3! - Added a new nursery ruleuseVueConsistentVBindStyle. Enforces consistentv-bindstyle (:propshorthand vsv-bind:proplonghand). Default prefers shorthand; configurable via rule options.#8587
9a8c98dThanks @dyc3! - Added the ruleuseVueVForKey, which enforces that any element usingv-foralso specifies akey.Invalid
Valid
#8586
df8fe06Thanks @dyc3! - Added a new nursery ruleuseVueConsistentVOnStyle. Enforces consistentv-onstyle (@eventshorthand vsv-on:eventlonghand). Default prefers shorthand; configurable via rule options.#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidVOnce. Enforces that usages of thev-oncedirective in Vue.js SFC are valid.#8498
d80fa41Thanks @tt-a1i! - Fixed #8494. ExtendednoUndeclaredEnvVarsto support bracket notation (process.env["VAR"],import.meta.env["VAR"]), Bun runtime (Bun.env.VAR,Bun.env["VAR"]), and Deno runtime (Deno.env.get("VAR")).#8509
574a909Thanks @ematipico! - Added support for parsing and formatting the Svelte{#await}syntax, whenhtml.experimentalFullSupportEnabledis set totrue.#8316
d64e92dThanks @washbin! - Added the new nursery rulenoMultiAssign. This rule helps to prevent multiple chained assignments.For example, the following code triggers because there are two assignment expressions in the same statement.
#8592
a5f59cdThanks @Netail! - Added the nursery ruleuseUniqueInputFieldNames. Require fields within an input object to be unique.Invalid:
#8524
17a6156Thanks @JacquesLeupin! - Fixed #8488: Relative plugin paths are now resolved from the configuration file directory, including when configurations are merged (e.g.extends: "//").#8655
3260ec9Thanks @JacquesLeupin! - Fixed #8636: Biome's CSS formatter now breaks comma-separated declaration values at top-level commas when wrapping.#8537
cc3e851Thanks @dibashthapa! - Fixed #8491: Resolved false positive errors for safe boolean expressions. There are still pending fixes. Head to #8491 (comment) for more detailsThis new change will check for safe boolean expressions in variable declarations.
For example,
Valid:
Invalid:
#8511
16a9036Thanks @ematipico! - Improved the diagnostics of the rulesuseSortedClassesandnoUnnecessaryConditions. The diagnostics now state that these rules are a work in progress and link to the relevant GitHub issue.#8521
a704be9Thanks @ToBinio! - Added the nursery ruleuseVueConsistentDefinePropsDeclaration, which enforces consistentdefinePropsdeclaration style.Invalid
Valid
#8595
7c85bf0Thanks @dyc3! - Fixed #8584: The HTML formatter will preserve whitespace after some elements and embedded expressions, which more closely aligns with Prettier's behavior.#8598
5e85d43Thanks @Netail! - Added the nursery ruleuseUniqueFieldDefinitionNames. Require all fields of a type to be unique.Invalid:
#8495
b573d14Thanks @taga3s! - Fixed #8405:noMisusedPromisesnow emits warnings/errors when a function returns union types such asT | Promise<T>which is used in conditionals.#8632
0be7d12Thanks @Bertie690! - The documentation & rule sources forlint/complexity/noBannedTypeshave been updated to fix a few oversights.In addition to some general typo fixes:
The rule now recommends
Record<keyof any, never>instead ofRecord<string, never>(the latter of which incorrectly allows symbol-keyed properties).The rule mentions an alternate method to enforce object emptiness involving
unique symbol-based guards used bytype-festand many other packages:The rule's listed sources have been updated as well to reflect the original source rule (
ban-types) having been split into 3 separate rules circa April 2024.#8580
a3a1ad2Thanks @taga3s! - Added the nursery rulenoBeforeInteractiveScriptOutsideDocumentto the Next.js domain.This rule prevents usage of
next/script'sbeforeInteractivestrategy outside ofpages/_document.js.#8493
5fc24f4Thanks @ematipico! - Added support for parsing and formatting the Svelte{#each}syntax, whenhtml.experimentalFullSupportEnabledis set totrue.#8546
0196c0eThanks @Zaczero! - Hardened union static-member type flattening in edge cases (e.g. unions containingunknownor inferred expression types). This keeps inference conservative and avoids unstable type growth innode = node.parent-style loops.#8569
1022c76Thanks @ematipico! - Fixed an issue where the Biome HTML parser would emit a parse error when certain keywords are inside the text of HTML tags.#8606
f50723bThanks @dyc3! - Fixed #8563: fixed a bounds check on bogus regex literals that caused panics when doing type inference#7410
ab9af9aThanks @sgarcialaguna! - Added the new nursery rulenoJsxPropsBind. This rule disallows .bind(), arrow functions, or function expressions in JSX props.Invalid:
#8523
5f22f1cThanks @ematipico! - Improved the diagnostics of nursery rules. Added a message to diagnostics emitted by nursery rules, so that users are aware of nature of nursery rules.#8571
03666fdThanks @dyc3! - Improved the performance ofnoRedeclareby eliminating string allocations#8591
9dd9ca7Thanks @Netail! - Added the nursery ruleuseUniqueArgumentNames. Enforce unique arguments for GraphQL fields & directives.Invalid:
#8521
a704be9Thanks @ToBinio! - Update useVueDefineMacrosOrder to only run on <script setup> blocks.#8344
7b982baThanks @ematipico! - Reduced the system calls when running the CLI. The performances might be noticeable in big projects that have multiple libraries and enable project rules.#8588
958e24bThanks @Netail! - Added the nursery ruleuseUniqueVariableNames. Enforce unique variable names for GraphQL operations.Invalid:
#8529
8794883Thanks @mdevils! - Fixed #8499:useExhaustiveDependenciesproperly handles aliased destructured object keys when usingstableResultconfiguration.#8557
4df2f4dThanks @dyc3! - Fixed an issue with the HTML formatter where it wouldn't add a space before the/>in self closing elements. This brings the HTML formatter more in line with Prettier.#8509
574a909Thanks @ematipico! - Added support for parsing and formatting the Svelte{#snippet}syntax, whenhtml.experimentalFullSupportEnabledis set totrue.#8248
1231a5cThanks @emilyinure! - Added new nursery rulenoReturnAssign, which disallows assignments inside return statements.Invalid:
#8531
6b09620Thanks @taga3s! - Fixed #8472: The CSS parser can now accept multiple comma separated parameters in:active-view-transition-type.#8615
b9da66dThanks @taga3s! - Removenext/scriptcomponent name check fromnoBeforeInteractiveScriptOutsideDocumentsince it is a default export.#8536
efbfbe2Thanks @dyc3! - Fixed #8527: Improved type inference where analyzing code with repeated object property access and assignments (e.g.node = node.parent, a pattern common when traversing trees in a while loop) could hit an internal type limit. Biome now handles these cases without exceeding the type limit.#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidVCloak. Enforces that usages of thev-cloakdirective in Vue.js SFC are valid.#8583
83be210Thanks @dyc3! - Added the new nursery ruleuseVueValidVPre. Enforces that usages of thev-predirective in Vue.js SFC are valid.#8644
a3a27a7Thanks @JacquesLeupin! - Added the nursery ruleuseVueVaporto enforce<script setup vapor>in Vue SFCs. For example<script setup>is invalid.#8508
b86842cThanks @tt-a1i! - Fixed #6783: now, when a path is provided via--stdin-file-path, Biome checks whether the file exists on disk. If the path doesn't exist (virtual path), ignore checks (files.includesand VCS ignore rules) are skipped.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.