Commit f5488be
Update dependency @biomejs/biome to v2.5.6 (#641)
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://redirect.github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`2.4.16` →
`2.5.6`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/2.4.16/2.5.6)
|

|

|
---
### Release Notes
<details>
<summary>biomejs/biome (@​biomejs/biome)</summary>
###
[`v2.5.6`](https://redirect.github.com/biomejs/biome/blob/HEAD/packages/@​biomejs/biome/CHANGELOG.md#256)
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.5...@biomejs/biome@2.5.6)
##### Patch Changes
- [#​11035](https://redirect.github.com/biomejs/biome/pull/11035)
[`0e4b03b`](https://redirect.github.com/biomejs/biome/commit/0e4b03be71b32120c6326e58e046260bcf5d3231)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed a performance regression in
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/)
that caused type inference to run repeatedly while linting a file.
- [#​11043](https://redirect.github.com/biomejs/biome/pull/11043)
[`22ec076`](https://redirect.github.com/biomejs/biome/commit/22ec076462d4590ea7c95f7693b69040c32a38aa)
Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed CSS formatting for multiline function arguments preceded by
comments:
```diff
.example {
value: outer(
1,
/* comment */
nested(
- first,
- second
- )
+ first,
+ second
+ )
);
}
```
- [#​11007](https://redirect.github.com/biomejs/biome/pull/11007)
[`c9acb25`](https://redirect.github.com/biomejs/biome/commit/c9acb25acbce7a6f632b5041ec546a604aea4343)
Thanks
[@​BTF-Kabir-2020](https://redirect.github.com/BTF-Kabir-2020)! -
Fixed
[#​9195](https://redirect.github.com/biomejs/biome/issues/9195):
[`useHookAtTopLevel`](https://biomejs.dev/linter/rules/use-hook-at-top-level/)
no longer reports hooks in named `forwardRef` components that receive a
`ref` parameter.
- [#​10152](https://redirect.github.com/biomejs/biome/pull/10152)
[`50a9bd8`](https://redirect.github.com/biomejs/biome/commit/50a9bd84df852de305e94a91fb57f6b3b1378187)
Thanks [@​Zelys-DFKH](https://redirect.github.com/Zelys-DFKH)! -
Fixed
[#​10131](https://redirect.github.com/biomejs/biome/issues/10131):
Biome now correctly parses curried arrow functions in ternary
consequents when the inner arrow's parameters use a destructuring
pattern, e.g. `cond ? (x) => ({ a, b }) => body : alt`.
- [#​11105](https://redirect.github.com/biomejs/biome/pull/11105)
[`8ffe2b9`](https://redirect.github.com/biomejs/biome/commit/8ffe2b9f2f9224921a0bad4a772e6611006351e5)
Thanks [@​dadavidtseng](https://redirect.github.com/dadavidtseng)!
- Fixed
[#​11092](https://redirect.github.com/biomejs/biome/issues/11092):
The
[`noUselessTernary`](https://biomejs.dev/linter/rules/no-useless-ternary/)
quick fix now preserves operator spacing when simplifying or inverting
boolean ternary expressions.
- [#​10533](https://redirect.github.com/biomejs/biome/pull/10533)
[`5809875`](https://redirect.github.com/biomejs/biome/commit/580987506a32cdde2f5498e0f712e3493ef9adde)
Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed
[#​10515](https://redirect.github.com/biomejs/biome/issues/10515):
`biome check --write` was not idempotent on Svelte files — multi-line
template literals in `<script>` blocks and block comments in `<style>`
blocks gained an extra indent level on every run.
- [#​11040](https://redirect.github.com/biomejs/biome/pull/11040)
[`0abb620`](https://redirect.github.com/biomejs/biome/commit/0abb620b2f0bd748bf272a2bc56aa02f5a6d0fee)
Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed an
issue where the HTML formatter would duplicate a comment placed directly
before a Svelte `{@​const ...}` or `{@​debug ...}` block.
The duplication compounded on every subsequent `--write`, causing the
file to grow exponentially.
- [#​10858](https://redirect.github.com/biomejs/biome/pull/10858)
[`6d18204`](https://redirect.github.com/biomejs/biome/commit/6d182043b1de76f8668464bfa5c295161135ee0e)
Thanks [@​ruidosujeira](https://redirect.github.com/ruidosujeira)!
- Fixed
[#​10839](https://redirect.github.com/biomejs/biome/issues/10839):
Svelte `{#each}` array destructuring no longer includes spaces inside
square brackets, and multiline bind function expressions now indent
their getter, setter, and function body correctly.
- [#​11009](https://redirect.github.com/biomejs/biome/pull/11009)
[`2c36626`](https://redirect.github.com/biomejs/biome/commit/2c36626bed58e63e49ecca8a40c717adae4c91ac)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Improved the accuracy of type-aware lint rules by resolving more
inferred types. For example,
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/)
now detects floating Promises returned by aliased callbacks and arrays
of Promises created by async mapping callbacks.
The following statements are now reported:
```ts
type AsyncCallback = () => Promise<void>;
declare const callback: AsyncCallback;
callback();
[1, 2, 3].map(async (value) => value);
```
- [#​10973](https://redirect.github.com/biomejs/biome/pull/10973)
[`9cb044c`](https://redirect.github.com/biomejs/biome/commit/9cb044cf2c8971642942c302a6d2b0000964c2f0)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed false positives in
[`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/)
when generic-constraint, normalization, substitution, or structural
return-type comparison cannot complete. The rule now suppresses
diagnostics rather than suggesting a return type derived from partial
information. For example, this unresolved return type is no longer
reported:
```ts
function unresolvedReturnType(): MissingType {
return "value" as const;
}
```
- [#​11071](https://redirect.github.com/biomejs/biome/pull/11071)
[`15047a2`](https://redirect.github.com/biomejs/biome/commit/15047a2fff2aa2a5c0c096257b4718b0141431be)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - The HTML
parser now accepts mixed-case `doctype` declarations.
- [#​11030](https://redirect.github.com/biomejs/biome/pull/11030)
[`cc90e65`](https://redirect.github.com/biomejs/biome/commit/cc90e65a6b14388a5fab1d893f782055fac34f91)
Thanks [@​marschattha](https://redirect.github.com/marschattha)! -
The `rdjson` reporter now populates the
[severity](https://redirect.github.com/reviewdog/reviewdog/blob/master/proto/rdf/reviewdog.proto)
field of each diagnostic (`ERROR`, `WARNING`, or `INFO`), so tools
consuming Reviewdog Diagnostic Format output no longer need to assume a
default severity.
- [#​11009](https://redirect.github.com/biomejs/biome/pull/11009)
[`2c36626`](https://redirect.github.com/biomejs/biome/commit/2c36626bed58e63e49ecca8a40c717adae4c91ac)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed a performance regression in type-aware JavaScript lint rules by
inferring only requested types and memoizing export resolution.
- [#​11056](https://redirect.github.com/biomejs/biome/pull/11056)
[`903b177`](https://redirect.github.com/biomejs/biome/commit/903b1770528040484b5f8b71f652130a8e6bd960)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added support
for Svelte declaration tags using `let` and `const`. Biome can now
parse, format, and lint bindings declared in these tags.
- [#​11045](https://redirect.github.com/biomejs/biome/pull/11045)
[`89c27c6`](https://redirect.github.com/biomejs/biome/commit/89c27c62541d2b628247563441e48f2303e53f4b)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Improved the performance of Biome formatter up to \~7% across the board.
- [#​9806](https://redirect.github.com/biomejs/biome/pull/9806)
[`781d68d`](https://redirect.github.com/biomejs/biome/commit/781d68dae5df6ad188efc8afb0972112654614fe)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`noJsRestrictedProperties`](https://biomejs.dev/linter/rules/no-js-restricted-properties/),
which ports ESLint's `no-restricted-properties` rule. Biome now flags
restricted member access and object destructuring, and `biome migrate
eslint` preserves the rule's options.
###
[`v2.5.5`](https://redirect.github.com/biomejs/biome/blob/HEAD/packages/@​biomejs/biome/CHANGELOG.md#255)
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.4...@biomejs/biome@2.5.5)
##### Patch Changes
- [#​10972](https://redirect.github.com/biomejs/biome/pull/10972)
[`ab8c21b`](https://redirect.github.com/biomejs/biome/commit/ab8c21b35e81708276e4283a4a0ff86ea815e345)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[`useExhaustiveSwitchCases`](https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/)
for unions of bigint literals. The rule now reports missing bigint cases
and compares bigint literals by value, including binary, octal,
hexadecimal, and separator-containing spellings. For example, this
switch now reports the missing `2n` case:
```ts
declare const value: 1n | 2n;
switch (value) {
case 1n:
break;
}
```
- [#​10972](https://redirect.github.com/biomejs/biome/pull/10972)
[`ab8c21b`](https://redirect.github.com/biomejs/biome/commit/ab8c21b35e81708276e4283a4a0ff86ea815e345)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed false positives in
[`noBaseToString`](https://biomejs.dev/linter/rules/no-base-to-string/)
and
[`useNullishCoalescing`](https://biomejs.dev/linter/rules/use-nullish-coalescing/)
when member, stringification, or nullish inference cannot complete.
These rules now suppress diagnostics instead of reporting from partial
type information. For example, neither expression is reported when a
recursive type cannot be fully resolved:
```ts
type Recursive = Recursive;
declare const value: Recursive;
String(value);
value || "fallback";
```
- [#​10977](https://redirect.github.com/biomejs/biome/pull/10977)
[`0bf7486`](https://redirect.github.com/biomejs/biome/commit/0bf748653e488d0b959d39847641438cdb28188b)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​10922](https://redirect.github.com/biomejs/biome/issues/10922):
the action
[`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/)
no longer triggers for HTML instructions.
- [#​10957](https://redirect.github.com/biomejs/biome/pull/10957)
[`cf263c4`](https://redirect.github.com/biomejs/biome/commit/cf263c4700e9f24115e541d1f142934a9b2d878f)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/)
failing to detect `Object.fromEntries`, `Object.defineProperty`, and
`Reflect.defineProperty` calls with comments between their tokens.
- [#​10983](https://redirect.github.com/biomejs/biome/pull/10983)
[`edc0ed7`](https://redirect.github.com/biomejs/biome/commit/edc0ed738ab8da3d512d527196684bd668090854)
Thanks [@​ayaangazali](https://redirect.github.com/ayaangazali)! -
Fixed
[#​10980](https://redirect.github.com/biomejs/biome/issues/10980):
[`useAriaPropsSupportedByRole`](https://biomejs.dev/linter/rules/use-aria-props-supported-by-role/)
no longer reports false positives when the attribute that determines an
element's implicit ARIA role is written as a shorthand attribute, such
as `<a {href} aria-label="...">` in Astro and Svelte files.
Shorthand attributes are now taken into account when computing the
implicit role, so the anchor above correctly resolves to the `link` role
instead of `generic`.
- [#​10889](https://redirect.github.com/biomejs/biome/pull/10889)
[`89526e3`](https://redirect.github.com/biomejs/biome/commit/89526e3858c437408ec9ff192c35a866ad991d1b)
Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed CSS formatter casing for syntax-owned names while preserving
author-defined names, including scoped keyframes and container
scroll-state queries.
```diff
- A:HOVER { COLOR: INITIAL; }
+ A:hover { color: initial; }
- @​KEYFRAMES :GLOBAL KeepFrames { FROM { COLOR: RED; } }
+ @​keyframes :GLOBAL KeepFrames { from { color: RED; } }
- @​CONTAINER scroll-state((SCROLLED: TOP) AND (STUCK)) { A:HOVER
{ COLOR: RED; } }
+ @​container scroll-state((SCROLLED: TOP) AND (STUCK)) { A:hover
{ color: RED; } }
```
- [#​10964](https://redirect.github.com/biomejs/biome/pull/10964)
[`794ccd0`](https://redirect.github.com/biomejs/biome/commit/794ccd0528345c4eaa87af1d86f02475277a0a22)
Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed CSS formatting for comments between declaration values and
`!important`.
```diff
-a { color: /* before */ /* after */ red !important; }
+a { color: /* before */ red /* after */ !important; }
```
- [#​10993](https://redirect.github.com/biomejs/biome/pull/10993)
[`b7a9694`](https://redirect.github.com/biomejs/biome/commit/b7a969425d4292fc7c50440da7aea41ce5c9a9c2)
Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed the CSS formatter to preserve comments on the correct side of
selector combinators and before declaration blocks.
```diff
-.before > /* comment */ .after {}
+.before /* comment */ > .after {}
```
It now also keeps selectors with escaped newlines in attribute values
inline when they fit.
```diff
-div
- span[foo="bar\
+div span[foo="bar\
value"] {}
```
- [#​10978](https://redirect.github.com/biomejs/biome/pull/10978)
[`8ebafe1`](https://redirect.github.com/biomejs/biome/commit/8ebafe1c7489f1f7af379b8e52b8ad063c82d28a)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​10870](https://redirect.github.com/biomejs/biome/issues/10870):
[`noUnresolvedImports`](https://biomejs.dev/linter/rules/no-unresolved-imports/)
no longer reports false positives such as `import type { NextRequest }
from "next/server"`.
- [#​10901](https://redirect.github.com/biomejs/biome/pull/10901)
[`68c10e6`](https://redirect.github.com/biomejs/biome/commit/68c10e672fc886b31423b18be01e873d3bf77f43)
Thanks
[@​Socialpranker](https://redirect.github.com/Socialpranker)! -
Fixed
[#​10622](https://redirect.github.com/biomejs/biome/issues/10622):
the HTML/Vue parser no longer panics on the argument-less `v-bind`
shorthand (`:="props"`).
This syntax is valid Vue and equivalent to `v-bind="props"`, so the
parser now accepts it (along with the longhand `v-bind:="props"`)
instead of crashing while building a diagnostic for a missing argument.
- [#​10936](https://redirect.github.com/biomejs/biome/pull/10936)
[`7df46f5`](https://redirect.github.com/biomejs/biome/commit/7df46f5be0880a02cb37453f01b83c1ba59b1e44)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Improved generic tuple inference for
[`useIncludes`](https://biomejs.dev/linter/rules/use-includes/). The
rule now recognizes specialised tuple element types returned through
generic aliases.
- [#​10941](https://redirect.github.com/biomejs/biome/pull/10941)
[`f787725`](https://redirect.github.com/biomejs/biome/commit/f7877258271e20523d5c673e62912fce1d85cd56)
Thanks [@​siketyan](https://redirect.github.com/siketyan)! - Fixed
[`#10855`](https://redirect.github.com/biomejs/biome/issues/10855):
Biome now supports parsing and formatting CSS custom media queries
declared with
[`@custom-media`](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@​custom-media).
- [#​10969](https://redirect.github.com/biomejs/biome/pull/10969)
[`72d309b`](https://redirect.github.com/biomejs/biome/commit/72d309b655cee70473e20b061f5a45112139688c)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where Biome logs became too verbose, dumping information
not relevant to user's operations.
-
[`e62f6b6`](https://redirect.github.com/biomejs/biome/commit/e62f6b61461227bbfd57fdf1b50b2dc8c01ea5a0)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​10963](https://redirect.github.com/biomejs/biome/issues/10963):
Biome no longer panics when a type-aware rule such as
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/)
checks a call to a function with multiple call signatures imported from
another module.
- [#​10931](https://redirect.github.com/biomejs/biome/pull/10931)
[`899c60d`](https://redirect.github.com/biomejs/biome/commit/899c60d506115b3f62030236cbd0901bf294e6ab)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed `check --write` command. Now the command reports code frame of the
formatted code, if the formatter is enabled.
- [#​10904](https://redirect.github.com/biomejs/biome/pull/10904)
[`ceee4f4`](https://redirect.github.com/biomejs/biome/commit/ceee4f43dabf88d86b87c9a4ce6051b6738869c2)
Thanks [@​qzwxsaedc](https://redirect.github.com/qzwxsaedc)! -
Fixed
[#​10892](https://redirect.github.com/biomejs/biome/issues/10892):
[`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/)
no longer reports a false positive when checking a member of a
discriminated union that is accessed through a default type-only
namespace import. The following code is no longer flagged:
```ts
import type Types from "./types";
declare function parse(): Types.Result<string>;
const result = parse();
if (!result.success) {
}
```
- [#​10962](https://redirect.github.com/biomejs/biome/pull/10962)
[`f0a67f2`](https://redirect.github.com/biomejs/biome/commit/f0a67f2e56c0785595c5cf14a93dba5bb32acf2d)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Biome no longer removes embedded styles and scripts in HTML files.
- [#​11000](https://redirect.github.com/biomejs/biome/pull/11000)
[`5039a1e`](https://redirect.github.com/biomejs/biome/commit/5039a1ee35771d0193de65a6326781313ab77afb)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed a bug where closing one editor stopped a shared Biome daemon used
by other editors. LSP proxy processes now exit when either the editor or
daemon disconnects.
- [#​10957](https://redirect.github.com/biomejs/biome/pull/10957)
[`cf263c4`](https://redirect.github.com/biomejs/biome/commit/cf263c4700e9f24115e541d1f142934a9b2d878f)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Improved the
performance of the
[`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/)
lint rule by about 50%.
- [#​10992](https://redirect.github.com/biomejs/biome/pull/10992)
[`4bf9b21`](https://redirect.github.com/biomejs/biome/commit/4bf9b21319df240e2c5ef2e5a9cb2e9582a0e1d1)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/):
The rule now reports Promise-returning callbacks where a synchronous
callback is expected when calls use tuple spreads or tuple rest
parameters, including generic and deeply nested tuples, and when
constructor signatures come from interface or object types. Recursive or
excessively nested tuple spreads use a conservative fallback so analysis
terminates.
For example, the following callback is now reported.
```ts
declare function consume(...args: [number, () => void]): void;
const prefix: [number] = [1];
consume(...prefix, async () => {});
```
- [#​10915](https://redirect.github.com/biomejs/biome/pull/10915)
[`b3b12b3`](https://redirect.github.com/biomejs/biome/commit/b3b12b3fe390feabbd9ba097922d6c7e56823406)
Thanks [@​Functionhx](https://redirect.github.com/Functionhx)! -
Added the rule
[`noNegationInEqualityCheck`](https://biomejs.dev/linter/rules/no-negation-in-equality-check/).
The rule flags negated expressions on the left side of strict equality
checks like `!foo === bar` — due to operator precedence this evaluates
as `(!foo) === bar` which is almost always a mistake for `foo !== bar`.
The rule provides an unsafe fix that flips the operator.
```js
// Invalid
!foo === bar;
!foo !== bar;
// Valid
foo !== bar;
foo === bar;
```
- [#​10970](https://redirect.github.com/biomejs/biome/pull/10970)
[`bd1038b`](https://redirect.github.com/biomejs/biome/commit/bd1038be1ad110aae60bcdbe9a154c6a2fc85c14)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Improved overload selection for
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/).
Biome now handles overloaded calls, overloaded constructors, rest
parameters, union arguments, and generic constraints without selecting
an incompatible signature. For example, `noMisusedPromises` now reports
the async callback passed to the synchronous overload:
```ts
declare function consume(kind: "async", callback: () => Promise<void>):
void;
declare function consume(kind: "sync", callback: () => void): void;
consume("sync", async () => {});
```
- [#​10933](https://redirect.github.com/biomejs/biome/pull/10933)
[`48a4abb`](https://redirect.github.com/biomejs/biome/commit/48a4abb99d41b1241b2a5812a12247b671d0dfed)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed [`useArrayFind`](https://biomejs.dev/linter/rules/use-array-find/)
to recognize bigint zero indexes.
- [#​10931](https://redirect.github.com/biomejs/biome/pull/10931)
[`899c60d`](https://redirect.github.com/biomejs/biome/commit/899c60d506115b3f62030236cbd0901bf294e6ab)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed an orchestration issue that could lead to deadlocks when
type-aware rules are enabled.
- [#​10969](https://redirect.github.com/biomejs/biome/pull/10969)
[`72d309b`](https://redirect.github.com/biomejs/biome/commit/72d309b655cee70473e20b061f5a45112139688c)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Hardened the Biome Language Server by improving its synchronisation
logic.
- [#​10972](https://redirect.github.com/biomejs/biome/pull/10972)
[`ab8c21b`](https://redirect.github.com/biomejs/biome/commit/ab8c21b35e81708276e4283a4a0ff86ea815e345)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed false positives in
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/)
and
[`useAwaitThenable`](https://biomejs.dev/linter/rules/use-await-thenable/)
when Promise or thenable inference cannot complete. These rules now
suppress diagnostics instead of treating incomplete type information as
a definite result. For example, `useAwaitThenable` no longer reports
`await value` when the value's thenability is unknown:
```ts
declare const value: unknown;
async function consume() {
await value;
}
```
###
[`v2.5.4`](https://redirect.github.com/biomejs/biome/blob/HEAD/packages/@​biomejs/biome/CHANGELOG.md#254)
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.3...@biomejs/biome@2.5.4)
##### Patch Changes
- [#​10665](https://redirect.github.com/biomejs/biome/pull/10665)
[`55ff995`](https://redirect.github.com/biomejs/biome/commit/55ff995098148446b7e7fdfc19053902bb987122)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Improved the
performance of the HTML parser slightly in our synthetic benchmarks.
- [#​10894](https://redirect.github.com/biomejs/biome/pull/10894)
[`f4fb10e`](https://redirect.github.com/biomejs/biome/commit/f4fb10e176e537e8ce2cac0c3fd4c38a77f91886)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​6392](https://redirect.github.com/biomejs/biome/issues/6392):
On-type formatting no longer moves comments before an `if` statement
into its body.
- [#​10939](https://redirect.github.com/biomejs/biome/pull/10939)
[`f2799db`](https://redirect.github.com/biomejs/biome/commit/f2799db38e3d8a644207d9b8f957abea6cb3d9fa)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10930](https://redirect.github.com/biomejs/biome/issues/10930):
[`noLabelWithoutControl`](https://biomejs.dev/linter/rules/no-label-without-control/)
now correctly detects text interpolation in Astro, Svelte & Vue as valid
accessible content.
- [#​10945](https://redirect.github.com/biomejs/biome/pull/10945)
[`ae15d98`](https://redirect.github.com/biomejs/biome/commit/ae15d98bbf2222fbb34e3e31832cba9676a6d01c)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10942](https://redirect.github.com/biomejs/biome/issues/10942):
Svelte directives don't throw an accidental debug log anymore.
- [#​10842](https://redirect.github.com/biomejs/biome/pull/10842)
[`5e1abfe`](https://redirect.github.com/biomejs/biome/commit/5e1abfee59155b5fdca8813314371ed54c06acfb)
Thanks
[@​JamBalaya56562](https://redirect.github.com/JamBalaya56562)! -
Fixed
[#​9196](https://redirect.github.com/biomejs/biome/issues/9196):
`biome check --write --unsafe` no longer hangs forever when applying the
[`noCommentText`](https://biomejs.dev/linter/rules/no-comment-text/)
code fix.
The rule's fix now wraps the comment in a real JSX expression container
(`{/* comment */}`) instead of re-inserting the braces as plain JSX
text, so the fixed code is no longer reported again by the same rule.
- [#​10891](https://redirect.github.com/biomejs/biome/pull/10891)
[`ecca79e`](https://redirect.github.com/biomejs/biome/commit/ecca79e8ff10f40aa676212c0db0a970c6091615)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[`#10885`](https://redirect.github.com/biomejs/biome/issues/10885):
prevented a module-inference regression introduced by a housekeeping
change.
- [#​10886](https://redirect.github.com/biomejs/biome/pull/10886)
[`60c8043`](https://redirect.github.com/biomejs/biome/commit/60c8043527f7ccc7b505471e1042f2a4324e4d31)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​10727](https://redirect.github.com/biomejs/biome/issues/10727):
Biome now breaks the arguments of curried `test.each`, `it.each`,
`describe.each`, and `test.for` calls when they exceed the configured
line width.
```diff
- test.each([[1, 2]])("a description that is long enough to push the
hugged opening line beyond the print width", (a, b) => {
- expect(a).toBe(b);
- });
+ test.each([[1, 2]])(
+ "a description that is long enough to push the hugged opening line
beyond the print width",
+ (a, b) => {
+ expect(a).toBe(b);
+ },
+ );
```
- [#​10895](https://redirect.github.com/biomejs/biome/pull/10895)
[`01a85f0`](https://redirect.github.com/biomejs/biome/commit/01a85f04b09f0af05b16a15c137421e312ceada5)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Biome will now remove stale Unix daemon sockets from older Biome
versions when starting a newer daemon.
###
[`v2.5.3`](https://redirect.github.com/biomejs/biome/blob/HEAD/packages/@​biomejs/biome/CHANGELOG.md#253)
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.2...@biomejs/biome@2.5.3)
##### Patch Changes
- [#​10815](https://redirect.github.com/biomejs/biome/pull/10815)
[`86613d5`](https://redirect.github.com/biomejs/biome/commit/86613d5b01eb965b460ccefbf27f168d87774aaf)
Thanks
[@​WaterWhisperer](https://redirect.github.com/WaterWhisperer)! -
Fixed a parser panic reported in
[#​10708](https://redirect.github.com/biomejs/biome/issues/10708):
Biome now recovers when unsupported CSS Modules `@value` rules or scoped
`@keyframes` names end at EOF.
- [#​10534](https://redirect.github.com/biomejs/biome/pull/10534)
[`da9b403`](https://redirect.github.com/biomejs/biome/commit/da9b403b6bbacc8d75d56e327a46f4ed0285913e)
Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/)
false positives in Svelte files: Svelte store subscriptions (`$store`
references in templates now keep the underlying `store` binding from
being flagged), and `$bindable()` props that are only written to in the
script block (write-only is intentional for bindable props) are no
longer reported as unused.
- [#​10827](https://redirect.github.com/biomejs/biome/pull/10827)
[`098ba41`](https://redirect.github.com/biomejs/biome/commit/098ba41c99e6efaac8eb182eec258a567bb00123)
Thanks [@​Aqu1bp](https://redirect.github.com/Aqu1bp)! - Fixed
[#​10698](https://redirect.github.com/biomejs/biome/issues/10698):
The
[`noUnsafeOptionalChaining`](https://biomejs.dev/linter/rules/no-unsafe-optional-chaining/)
rule now reports unsafe optional chains wrapped in TypeScript `as`,
`satisfies`, type assertion, and instantiation expressions, such as `new
(value?.constructor as Constructor)()`.
- [#​10773](https://redirect.github.com/biomejs/biome/pull/10773)
[`3c6513d`](https://redirect.github.com/biomejs/biome/commit/3c6513d4e9a82a195785144caa9d96093c3861ff)
Thanks [@​otkrickey](https://redirect.github.com/otkrickey)! -
Fixed
[#​10772](https://redirect.github.com/biomejs/biome/issues/10772):
[`useVueValidVOn`](https://biomejs.dev/linter/rules/use-vue-valid-v-on/)
no longer reports a missing handler for v-on directives using a verb
modifier (`.stop` / `.prevent`) without an expression, e.g. `<div
@​click.stop></div>`. The rule also accepts the arg-less object
syntax `<div v-on="$listeners"></div>` instead of reporting a missing
event name.
- [#​10721](https://redirect.github.com/biomejs/biome/pull/10721)
[`d83c66b`](https://redirect.github.com/biomejs/biome/commit/d83c66b39a820703d94100f8a6502cc6dbad26a1)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Improved type-aware lint rule inference for built-in globals and
indexed function calls. Biome now resolves `Error(...)`, `new
Error(...)`, optional `Error#stack`, and calls through indexed function
values such as `handlers[0]()` more accurately.
- [#​10865](https://redirect.github.com/biomejs/biome/pull/10865)
[`6450276`](https://redirect.github.com/biomejs/biome/commit/6450276764ee4794a0fcb46c139f95b68d892427)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​10845](https://redirect.github.com/biomejs/biome/issues/10845).
Biome Language Server no longer goes in deadlock when the scanner is
enabled.
- [#​10853](https://redirect.github.com/biomejs/biome/pull/10853)
[`93d8e53`](https://redirect.github.com/biomejs/biome/commit/93d8e5352454bccfbd179db03b3155776599c52c)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10840](https://redirect.github.com/biomejs/biome/issues/10840):
Astro shorthand attribute syntax is now correctly being parsed from
embedded nodes.
- [#​10820](https://redirect.github.com/biomejs/biome/pull/10820)
[`bba3092`](https://redirect.github.com/biomejs/biome/commit/bba30920715920142e933939f6270feedca933a5)
Thanks
[@​JamBalaya56562](https://redirect.github.com/JamBalaya56562)! -
Fixed
[#​10619](https://redirect.github.com/biomejs/biome/issues/10619):
[`noProcessEnv`](https://biomejs.dev/linter/rules/no-process-env/) now
also reports computed (bracket) member access. Previously only dot
access was checked, so `process["env"]` and `env["NODE_ENV"]` (where
`env` is imported from `node:process`) were missed. Both static and
computed accesses are now reported.
- [#​10835](https://redirect.github.com/biomejs/biome/pull/10835)
[`3447b2f`](https://redirect.github.com/biomejs/biome/commit/3447b2f5a3c430efc8e917514260af5341c5509d)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​10824](https://redirect.github.com/biomejs/biome/issues/10824):
[`useDomQuerySelector`](https://biomejs.dev/linter/rules/use-dom-query-selector/)
now supports an `ignore` option for receiver identifiers that should not
be reported.
- [#​10875](https://redirect.github.com/biomejs/biome/pull/10875)
[`b12e486`](https://redirect.github.com/biomejs/biome/commit/b12e486d0f0b80d02d2208e239190f8756d39d48)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​10795](https://redirect.github.com/biomejs/biome/issues/10795):
`--profile-rules` now reports timings for each plugin separately as
`plugin/<pluginName>`, matching the naming used by plugin suppressions,
instead of aggregating all plugins under a single `plugin/plugin` entry.
- [#​10877](https://redirect.github.com/biomejs/biome/pull/10877)
[`d6bc447`](https://redirect.github.com/biomejs/biome/commit/d6bc4473a210758ee49f6cad41bc69587a7cf125)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[biome-zed#164](https://redirect.github.com/biomejs/biome-zed/issues/164):
Biome no longer inserts stray whitespace when format-on-type runs after
closing delimiters such as `)`, `]`, and `}`.
- [#​10867](https://redirect.github.com/biomejs/biome/pull/10867)
[`a21463e`](https://redirect.github.com/biomejs/biome/commit/a21463e5f616a2db5035b470cd206ac9da4d9423)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​10864](https://redirect.github.com/biomejs/biome/issues/10864):
Biome no longer crashes when checking or linting HTML files with
unquoted attribute values such as `<textarea rows=4></textarea>`.
###
[`v2.5.2`](https://redirect.github.com/biomejs/biome/blob/HEAD/packages/@​biomejs/biome/CHANGELOG.md#252)
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.1...@biomejs/biome@2.5.2)
##### Patch Changes
- [#​10595](https://redirect.github.com/biomejs/biome/pull/10595)
[`f458028`](https://redirect.github.com/biomejs/biome/commit/f4580289094a8fe5c85252adc3399c060bab811e)
Thanks [@​pkallos](https://redirect.github.com/pkallos)! - Added
the option `ignoreBooleanCoercion` to
[useNullishCoalescing](https://biomejs.dev/linter/rules/use-nullish-coalescing/).
When enabled, Biome ignores `||` and `||=` used inside a `Boolean()`
call, where coalescing on falsy values is intentional.
- [#​10798](https://redirect.github.com/biomejs/biome/pull/10798)
[`4a32b63`](https://redirect.github.com/biomejs/biome/commit/4a32b63eb41f144dc8faf6b5cdb05e1de5dbcb63)
Thanks [@​pkallos](https://redirect.github.com/pkallos)! - Added
the option `ignorePrimitives` to
[useNullishCoalescing](https://biomejs.dev/linter/rules/use-nullish-coalescing/).
When enabled, Biome ignores `||`, `||=`, and ternary expressions whose
non-nullish operands are all primitives the option opts out of. Use
`true` to ignore all primitives, or an object selecting `string`,
`number`, `boolean`, or `bigint`.
- [#​10545](https://redirect.github.com/biomejs/biome/pull/10545)
[`f3d4c00`](https://redirect.github.com/biomejs/biome/commit/f3d4c0082676c5188e9a6aa516318c7e3d59bda6)
Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Added the
new nursery rule
[`noSvelteUnnecessaryStateWrap`](https://biomejs.dev/linter/rules/no-svelte-unnecessary-state-wrap/),
which reports unnecessary `$state()` wrapping of classes from
`svelte/reactivity` that are already reactive.
```svelte
<script>
import { SvelteMap } from "svelte/reactivity";
const map = $state(new SvelteMap()); // redundant
</script>
```
- [#​10752](https://redirect.github.com/biomejs/biome/pull/10752)
[`f62fb8b`](https://redirect.github.com/biomejs/biome/commit/f62fb8b53092fe85e16f9d4ea0e584fee7031ab5)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​10739](https://redirect.github.com/biomejs/biome/issues/10739).
Now the rule
[`useValidAutocomplete`](https://biomejs.dev/linter/rules/use-valid-autocomplete/)
correctly flags the `autoComplete` attribute.
- [#​10796](https://redirect.github.com/biomejs/biome/pull/10796)
[`f1b3ab2`](https://redirect.github.com/biomejs/biome/commit/f1b3ab2c09522a52c93f669ce679675237b96813)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​10768](https://redirect.github.com/biomejs/biome/issues/10768).
Improved the performance of the Biome Language Server by cancelling
certain in-flight operations when there are fast updates.
- [#​10719](https://redirect.github.com/biomejs/biome/pull/10719)
[`aa649b5`](https://redirect.github.com/biomejs/biome/commit/aa649b586a2221bf058af7ce80af6faa11faf846)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Fixed
[`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/)
false positive on returns that use a widening type assertion: `"a" as
string` is no longer reported as misleading. The rule now also reports a
literal-pinning assertion such as `false as false`, matching the
existing `as const` behavior.
```ts
// No longer flagged (returns are `string`):
function getValue(b: boolean): string {
if (b) return "a" as string;
return "b" as string;
}
// Now also reported, like `as const` (returns `false`):
function isReady(): boolean {
return false as false;
}
```
- [#​10678](https://redirect.github.com/biomejs/biome/pull/10678)
[`8f073a7`](https://redirect.github.com/biomejs/biome/commit/8f073a7cd72b4cf46c2ebf2bc08f4068fc4b5e34)
Thanks
[@​PranavAchar01](https://redirect.github.com/PranavAchar01)! -
Fixed
[#​7718](https://redirect.github.com/biomejs/biome/issues/7718):
Biome now correctly parses CSS nesting selectors when `&` appears as a
trailing sub-selector after a type selector, e.g. `h1& { color: red; }`.
- [#​10756](https://redirect.github.com/biomejs/biome/pull/10756)
[`5ec965a`](https://redirect.github.com/biomejs/biome/commit/5ec965a2620dec7cb40aa4946ba1d41408b11fd9)
Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed CSS formatter output for selector lists with
`allowWrongLineComments` and `//` comments after a selector comma. Biome
now keeps the selector before the line comment inline instead of
breaking it across descendant combinators.
```diff
-.powerPathNavigator
- .helm
- button.pressedButton, // pressed
+.powerPathNavigator .helm button.pressedButton, // pressed
.powerPathNavigator .helm button:active:not(.disabledButton) {
}
```
- [#​10757](https://redirect.github.com/biomejs/biome/pull/10757)
[`6232fcd`](https://redirect.github.com/biomejs/biome/commit/6232fcdef77471e6a6a74bcc33ff7b2b2a9f85a2)
Thanks
[@​PranavAchar01](https://redirect.github.com/PranavAchar01)! -
Fixed
[#​8269](https://redirect.github.com/biomejs/biome/issues/8269):
the CSS parser now accepts Tailwind `@variant` and `@utility` names that
start with a digit, such as the `2xl` breakpoint.
```css
@​utility container {
@​variant 2xl {
max-width: 1400px;
}
}
```
- [#​10777](https://redirect.github.com/biomejs/biome/pull/10777)
[`575ced6`](https://redirect.github.com/biomejs/biome/commit/575ced6fd7fe3597fdec36e572763e4a5d590244)
Thanks
[@​WaterWhisperer](https://redirect.github.com/WaterWhisperer)! -
Fixed an issue reported in
[#​10708](https://redirect.github.com/biomejs/biome/issues/10708):
the GitLab reporter now handles `--verbose` diagnostics filtering
correctly.
- [#​10281](https://redirect.github.com/biomejs/biome/pull/10281)
[`0efe244`](https://redirect.github.com/biomejs/biome/commit/0efe2442e9b81d83f7332fd792ad6096678f8b2c)
Thanks [@​Zelys-DFKH](https://redirect.github.com/Zelys-DFKH)! -
Fixed a bug where GritQL patterns rejected positional (unkeyed)
arguments.
- [#​10758](https://redirect.github.com/biomejs/biome/pull/10758)
[`e36fd8a`](https://redirect.github.com/biomejs/biome/commit/e36fd8a9f1314744276df515a1137f21802d3aa5)
Thanks
[@​henrybrewer00-dotcom](https://redirect.github.com/henrybrewer00-dotcom)!
- Fixed
[#​10697](https://redirect.github.com/biomejs/biome/issues/10697):
The formatter no longer removes the parentheses around an `await` or
`yield` expression used as the target of a TypeScript instantiation
expression. For example, `(await makeFactory)<Value>` is no longer
reformatted to `await makeFactory<Value>`, which would change the
meaning of the code.
- [#​10586](https://redirect.github.com/biomejs/biome/pull/10586)
[`3617094`](https://redirect.github.com/biomejs/biome/commit/3617094f00e90f7167ff20baf3c12b5014188b35)
Thanks [@​IxxyDev](https://redirect.github.com/IxxyDev)! - Fixed
[#​9568](https://redirect.github.com/biomejs/biome/issues/9568):
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/)
no longer reports a false positive when calling an overloaded function
and the selected overload does not return a promise.
```ts
function bestEffort(cb: () => Promise<number>): Promise<number>;
function bestEffort(cb: () => number): number;
function bestEffort(
cb: () => number | Promise<number>,
): Promise<number> | number {
return cb() as Promise<number> | number;
}
// This resolves to the second overload, which returns `number`, so it
is no
// longer flagged as a floating promise.
bestEffort(() => 42);
```
- [#​10766](https://redirect.github.com/biomejs/biome/pull/10766)
[`7aff4c1`](https://redirect.github.com/biomejs/biome/commit/7aff4c11900579a62dc27ef4e02a4c4760fbbff4)
Thanks
[@​JamBalaya56562](https://redirect.github.com/JamBalaya56562)! -
Fixed
[#​2862](https://redirect.github.com/biomejs/biome/issues/2862):
[`noInteractiveElementToNoninteractiveRole`](https://biomejs.dev/linter/rules/no-interactive-element-to-noninteractive-role/)
no longer reports custom elements (a tag name containing a dash, e.g.
`<my-button role="img" />`). Per the [W3C HTML-ARIA
specification](https://www.w3.org/TR/html-aria/#el-autonomous-custom-element),
a custom element may be given any role or none.
- [#​10680](https://redirect.github.com/biomejs/biome/pull/10680)
[`771daa4`](https://redirect.github.com/biomejs/biome/commit/771daa4f7d229a8754f47923f03b899dc0fc5630)
Thanks
[@​WaterWhisperer](https://redirect.github.com/WaterWhisperer)! -
Fixed
[#​10635](https://redirect.github.com/biomejs/biome/issues/10635):
Biome now recognizes chained
table tests such as `test.concurrent.each()` and `it.concurrent.each()`
as test calls, fixing
`noMisplacedAssertion` false positives and improving formatting for
those test declarations.
- [#​10759](https://redirect.github.com/biomejs/biome/pull/10759)
[`34570b5`](https://redirect.github.com/biomejs/biome/commit/34570b5b793c44e978b12589dafcfda22dba7df1)
Thanks
[@​henrybrewer00-dotcom](https://redirect.github.com/henrybrewer00-dotcom)!
- Fixed
[#​10636](https://redirect.github.com/biomejs/biome/issues/10636):
[noStaticElementInteractions](https://biomejs.dev/linter/rules/no-static-element-interactions/)
no longer reports a false positive for event handlers on Svelte special
elements such as `<svelte:window>`, `<svelte:document>`, and
`<svelte:body>`. These are not real DOM elements, so they are now
ignored by the rule.
- [#​10741](https://redirect.github.com/biomejs/biome/pull/10741)
[`bd2364e`](https://redirect.github.com/biomejs/biome/commit/bd2364e3d077e3a77addcab6dbe127db38654e4a)
Thanks
[@​JamBalaya56562](https://redirect.github.com/JamBalaya56562)! -
Fixed
[#​6686](https://redirect.github.com/biomejs/biome/issues/6686):
the `rage` command now respects the `--config-path` option and the
`BIOME_CONFIG_PATH` environment variable when loading the Biome
configuration. Previously it always used the default configuration
resolution and reported the configuration as `Not set` when no
`biome.json` existed in the working directory.
- [#​10763](https://redirect.github.com/biomejs/biome/pull/10763)
[`2c3e82d`](https://redirect.github.com/biomejs/biome/commit/2c3e82d0235ad2f8331744aefc708d1b71f7177c)
Thanks [@​Aqu1bp](https://redirect.github.com/Aqu1bp)! - Fixed
[#​10742](https://redirect.github.com/biomejs/biome/issues/10742):
[`noSolidDestructuredProps`](https://biomejs.dev/linter/rules/no-solid-destructured-props)
now reports destructured props in Solid function components and JSX
children.
- [#​10606](https://redirect.github.com/biomejs/biome/pull/10606)
[`a4cc4ab`](https://redirect.github.com/biomejs/biome/commit/a4cc4ab0b01a8ef1731d37cb44bccc5522876f2e)
Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed false
positives in `noUnusedImports`, `noUnusedVariables`, and `useImportType`
for Svelte components that use both a `<script module>` and a `<script>`
block. The two blocks compile to a single module and share a top-level
scope, so a binding (import, function, or variable) declared in one
block and used only in the other is no longer reported as unused.
- [#​10767](https://redirect.github.com/biomejs/biome/pull/10767)
[`36d5aa7`](https://redirect.github.com/biomejs/biome/commit/36d5aa77d751bf33485cd2c92d89e4c5764e1e50)
Thanks [@​otkrickey](https://redirect.github.com/otkrickey)! -
Fixed
[#​10754](https://redirect.github.com/biomejs/biome/issues/10754):
[`useVueValidVBind`](https://biomejs.dev/linter/rules/use-vue-valid-v-bind/)
no longer reports the Vue 3.4+ same-name shorthand as missing a value.
`:foo` and `v-bind:foo` are now accepted as equivalent to `:foo="foo"`,
while `v-bind`, `v-bind:[dynamicArg]`, and `:[dynamicArg]` without a
value continue to be reported.
- [#​10775](https://redirect.github.com/biomejs/biome/pull/10775)
[`a918af0`](https://redirect.github.com/biomejs/biome/commit/a918af0ba827a7fd60a12c96b58daebc8af61db2)
Thanks
[@​WaterWhisperer](https://redirect.github.com/WaterWhisperer)! -
Fixed an issue reported in
[#​10708](https://redirect.github.com/biomejs/biome/issues/10708):
`biome rage` didn't detect running Biome daemon pipes on Windows.
- [#​10730](https://redirect.github.com/biomejs/biome/pull/10730)
[`5a2e65b`](https://redirect.github.com/biomejs/biome/commit/5a2e65b9929ef0f2294c20e028fd396d760d2b26)
Thanks [@​dinocosta](https://redirect.github.com/dinocosta)! -
Fixed an issue where Biome was resolving [the well-known Zed settings
file](https://biomejs.dev/guides/configure-biome/#well-known-files) from
the wrong location on macOS and Windows.
- [#​10807](https://redirect.github.com/biomejs/biome/pull/10807)
[`d97fffe`](https://redirect.github.com/biomejs/biome/commit/d97fffe0aba04cddec66943d6bff3e99d440b451)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where `.scss` files were incorrectly analyzed when
running `biome check`.
- [#​10672](https://redirect.github.com/biomejs/biome/pull/10672)
[`53c6efc`](https://redirect.github.com/biomejs/biome/commit/53c6efcd3e5e2769bf8edbe14b8c06ee9fda52d2)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed a bug where Biome incorrectly formatted snippets that have parsing
errors.
- [#​10719](https://redirect.github.com/biomejs/biome/pull/10719)
[`aa649b5`](https://redirect.github.com/biomejs/biome/commit/aa649b586a2221bf058af7ce80af6faa11faf846)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Fixed
[`useAwaitThenable`](https://biomejs.dev/linter/rules/use-await-thenable/)
false positive when awaiting a custom thenable that is not the global
`Promise`. A value with a callable `then` member is now recognized as
awaitable.
```ts
interface Thenable<T> {
then(onfulfilled: (value: T) => void): void;
}
declare const t: Thenable<number>;
async function f() {
await t;
}
```
- [#​10734](https://redirect.github.com/biomejs/biome/pull/10734)
[`4396496`](https://redirect.github.com/biomejs/biome/commit/43964961c88ca0f93ee83d10621844fa2dc7515c)
Thanks [@​BangDori](https://redirect.github.com/BangDori)! - Fixed
[#​10708](https://redirect.github.com/biomejs/biome/issues/10708):
`biome migrate` now preserves trivia when migrating the deprecated
`recommended` option to `preset`.
- [#​10683](https://redirect.github.com/biomejs/biome/pull/10683)
[`ae31a00`](https://redirect.github.com/biomejs/biome/commit/ae31a004a20ed33d6aa35d5ec8bb4c433273a517)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10657](https://redirect.github.com/biomejs/biome/issues/10657)
[#​10671](https://redirect.github.com/biomejs/biome/issues/10671)
[#​10661](https://redirect.github.com/biomejs/biome/issues/10661)
[#​10637](https://redirect.github.com/biomejs/biome/issues/10637)
[#​10718](https://redirect.github.com/biomejs/biome/issues/10718):
HTML rules now correctly handle dynamic attributes.
- [#​10746](https://redirect.github.com/biomejs/biome/pull/10746)
[`54e8239`](https://redirect.github.com/biomejs/biome/commit/54e8239bba3f598d7923ac1e446d658714ea7832)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where
[`noUndeclaredClasses`](https://biomejs.dev/linter/rules/no-undeclared-classes)
didn't correctly detect styles defined inside the Astro directive
`is:global`.
- [#​10770](https://redirect.github.com/biomejs/biome/pull/10770)
[`dd1429c`](https://redirect.github.com/biomejs/biome/commit/dd1429c604f58b89524a3f5329e2920d198e8d9f)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Improved the Biome Language Server DX by orchestrating certain
operations, so that they won't block the editor during typing. This
improvement is more visible in large documents.
- [#​10473](https://redirect.github.com/biomejs/biome/pull/10473)
[`d9b5133`](https://redirect.github.com/biomejs/biome/commit/d9b5133de7e211b22f4531fe220070690a18c8d1)
Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Improved
[`noUnusedImports`](https://biomejs.dev/linter/rules/no-unused-imports/),
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/),
[`noUnusedFunctionParameters`](https://biomejs.dev/linter/rules/no-unused-function-parameters/),
and [`useImportType`](https://biomejs.dev/linter/rules/use-import-type/)
for Svelte, Vue, and Astro files (with
`html.experimentalFullSupportEnabled`). Bindings used only in the
template — including component tags, attribute interpolations,
directives, `bind:` shorthand, and snippet parameters — are no longer
reported as unused, while genuinely unused ones still are.
- [#​10796](https://redirect.github.com/biomejs/biome/pull/10796)
[`f1b3ab2`](https://redirect.github.com/biomejs/biome/commit/f1b3ab2c09522a52c93f669ce679675237b96813)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where the Biome Language Server didn't enable project or
type-aware lint rules, even when they were explicitly enabled.
- [#​10746](https://redirect.github.com/biomejs/biome/pull/10746)
[`54e8239`](https://redirect.github.com/biomejs/biome/commit/54e8239bba3f598d7923ac1e446d658714ea7832)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where
[`noUndeclaredClasses`](https://biomejs.dev/linter/rules/no-undeclared-classes)
didn't detect styles declared inside HTML documents.
- [#​10774](https://redirect.github.com/biomejs/biome/pull/10774)
[`bde945b`](https://redirect.github.com/biomejs/biome/commit/bde945bee29cb566086828ad788153d9111a125a)
Thanks [@​pattrickrice](https://redirect.github.com/pattrickrice)!
- Fixed
[#​10268](https://redirect.github.com/biomejs/biome/issues/10268)
where a race condition resulted in internal errors such as: `The file
biome.json does not exist in the workspace`.
###
[`v2.5.1`](https://redirect.github.com/biomejs/biome/blob/HEAD/packages/@​biomejs/biome/CHANGELOG.md#251)
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.0...@biomejs/biome@2.5.1)
##### Patch Changes
- [#​10722](https://redirect.github.com/biomejs/biome/pull/10722)
[`f8a303d`](https://redirect.github.com/biomejs/biome/commit/f8a303d08b6b22f56edb8ff5e7caa665532d613a)
Thanks [@​denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed CSS formatter output for comments between import media queries.
```diff
-@​import url("print.css") print,
-/* comment */
-screen;
+@​import url("print.css") print, /* comment */ screen;
```
- [#​10738](https://redirect.github.com/biomejs/biome/pull/10738)
[`9fdc560`](https://redirect.github.com/biomejs/biome/commit/9fdc5600997ef59ca7ed55ac212473de9bdb0b2a)
Thanks
[@​JamBalaya56562](https://redirect.github.com/JamBalaya56562)! -
Fixed
[#​9899](https://redirect.github.com/biomejs/biome/issues/9899):
the `json` and `json-pretty` reporters now escape backslashes in a
diagnostic's `location.path`. Previously, paths containing backslashes
(such as Windows-style paths) were emitted unescaped, producing invalid
JSON.
```diff
- "path": "src\account\setup-passkey.tsx",
+ "path": "src\\account\\setup-passkey.tsx",
```
- [#​10626](https://redirect.github.com/biomejs/biome/pull/10626)
[`5f837df`](https://redirect.github.com/biomejs/biome/commit/5f837df033afc34d43b398aeddc06c1d4fa491d9)
Thanks [@​tom-groves](https://redirect.github.com/tom-groves)! -
Fixed
[#​10625](https://redirect.github.com/biomejs/biome/issues/10625):
`biome migrate` no longer emits an invalid trailing comma when a renamed
rule (such as `noConsoleLog` → `noConsole`) is the last member of its
rule group. Previously this produced malformed output that aborted the
migration of a strict-JSON `biome.json` with a parsing error.
- [#​10535](https://redirect.github.com/biomejs/biome/pull/10535)
[`c245f9d`](https://redirect.github.com/biomejs/biome/commit/c245f9d9e239471d5437cd08f9cfa4601a85abd5)
Thanks [@​Mokto](https://redirect.github.com/Mokto)! - Fixed a
false positive in
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/)
for Svelte files where variables referenced inside `{@​html expr}`
blocks were incorrectly reported as unused.
- [#​10668](https://redirect.github.com/biomejs/biome/pull/10668)
[`a0f197e`](https://redirect.github.com/biomejs/biome/commit/a0f197eb1a6974539927f105ff1dde1f51d07d74)
Thanks [@​Netail](https://redirect.github.com/Netail)! - The
`biome init` command has been updated to include a more up-to-date URL
to [the first-party extensions
page](https://biomejs.dev/editors/first-party-extensions/).
- [#​10667](https://redirect.github.com/biomejs/biome/pull/10667)
[`d8c3e87`](https://redirect.github.com/biomejs/biome/commit/d8c3e878d53515c02bd6c5cb899b2eaec046c542)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10664](https://redirect.github.com/biomejs/biome/issues/10664):
[useErrorCause](https://biomejs.dev/linter/rules/use-error-cause/) now
correctly detects a shorthand property.
- [#​10696](https://redirect.github.com/biomejs/biome/pull/10696)
[`ef2373f`](https://redirect.github.com/biomejs/biome/commit/ef2373f29be15673705884d345c9af189e30b581)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​9566](https://redirect.github.com/biomejs/biome/issues/9566).
Improved how the Biome Language Server loads multiple configuration
files inside a workspace.
- [#​10705](https://redirect.github.com/biomejs/biome/pull/10705)
[`4ccb410`](https://redirect.github.com/biomejs/biome/commit/4ccb410dc00a6fb243934dad2e8681a9d5d9529e)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​10652](https://redirect.github.com/biomejs/biome/issues/10652).
Biome plugins are now properly filtered when using `--only` and `--skip`
flags.
- [#​10669](https://redirect.github.com/biomejs/biome/pull/10669)
[`aa0a6eb`](https://redirect.github.com/biomejs/biome/commit/aa0a6eb8007493961cd578f04201248c15fd809a)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10651](https://redirect.github.com/biomejs/biome/issues/10651):
[useInlineScriptId](https://biomejs.dev/linter/rules/use-inline-script-id/)
now correctly trims trivia to detect if an id attribute has been set.
- [#​10689](https://redirect.github.com/biomejs/biome/pull/10689)
[`844b1be`](https://red
> ✂ **Note**
>
> PR body was truncated to here.
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- 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 becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/RobinTail/merge-sx).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjMuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Anna Bocharova <robin_tail@me.com>1 parent 483c7ef commit f5488be
3 files changed
Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
Loading
0 commit comments