1
0
mirror of https://github.com/alecthomas/chroma.git synced 2026-06-11 21:52:26 +02:00
Files
chroma/bin/python3.14-config
renovate[bot] e11ef85a2c chore(deps): update all non-major dependencies (#1211)
> ℹ️ **Note**
> 
> This PR body was truncated due to platform limits.

This PR contains the following updates:

| Package | Type | Update | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [biome](https://redirect.github.com/biomejs/biome) | | minor |
`2.3.12` → `2.4.7` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/biome/2.4.7?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/biome/2.3.12/2.4.7?slim=true)
|
| [caddy](https://redirect.github.com/caddyserver/caddy) | | minor |
`2.10.2` → `2.11.2` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/caddy/2.11.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/caddy/2.10.2/2.11.2?slim=true)
|
| [esbuild](https://redirect.github.com/evanw/esbuild) | | patch |
`0.27.2` → `0.27.4` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/esbuild/0.27.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/esbuild/0.27.2/0.27.4?slim=true)
|
|
[github.com/alecthomas/kong](https://redirect.github.com/alecthomas/kong)
| require | minor | `v1.13.0` → `v1.14.0` |
![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2falecthomas%2fkong/v1.14.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2falecthomas%2fkong/v1.13.0/v1.14.0?slim=true)
|
| [go](https://redirect.github.com/golang/go) | | minor | `1.25.6` →
`1.26.1` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/go/1.26.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/go/1.25.6/1.26.1?slim=true)
|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | minor |
`1.25.6` → `1.26.1` |
![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.26.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.25.6/1.26.1?slim=true)
|
| [just](https://redirect.github.com/casey/just) | | minor | `1.46.0` →
`1.47.0` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/just/1.47.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/just/1.46.0/1.47.0?slim=true)
|
|
[python3](https://redirect.github.com/indygreg/python-build-standalone)
| | minor | `3.13.2` → `3.14.3` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/python3/3.14.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/python3/3.13.2/3.14.3?slim=true)
|
| [reflex](https://redirect.github.com/cespare/reflex) | | patch |
`0.3.1` → `0.3.2` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/reflex/0.3.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/reflex/0.3.1/0.3.2?slim=true)
|
| [svu](https://redirect.github.com/caarlos0/svu) | | minor | `3.3.0` →
`3.4.0` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/svu/3.4.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/svu/3.3.0/3.4.0?slim=true)
|
| [uv](https://redirect.github.com/astral-sh/uv) | | minor | `0.9.26` →
`0.10.10` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/uv/0.10.10?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/uv/0.9.26/0.10.10?slim=true)
|
| [watchexec](https://redirect.github.com/watchexec/watchexec) | | minor
| `2.3.3` → `2.5.0` |
![age](https://developer.mend.io/api/mc/badges/age/hermit/watchexec/2.5.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/watchexec/2.3.3/2.5.0?slim=true)
|

---

### Release Notes

<details>
<summary>biomejs/biome (biome)</summary>

###
[`v2.4.7`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.7):
Biome CLI v2.4.7

#### 2.4.7

##### Patch Changes

- [#&#8203;9318](https://redirect.github.com/biomejs/biome/pull/9318)
[`3ac98eb`](https://redirect.github.com/biomejs/biome/commit/3ac98eb0fa492fce37e87e14c2c4b7016475195c)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Added new nursery lint rule `useBaseline` for CSS. The rule reports when
CSS properties, property values, at-rules, media conditions, functions,
or pseudo-selectors are not part of the configured
[Baseline](https://developer.mozilla.org/en-US/docs/Glossary/Baseline/Compatibility)
tier.

For example, *at the time of writing*, the rule will trigger for the use
of `accent-color` because it has limited availability:

  ```css
  a {
    accent-color: bar;
  }
  ```

- [#&#8203;9272](https://redirect.github.com/biomejs/biome/pull/9272)
[`2de8362`](https://redirect.github.com/biomejs/biome/commit/2de83626fb411e7468fdba6fae90609f9db42630)
Thanks [@&#8203;terror](https://redirect.github.com/terror)! - Added the
nursery rule
[`useImportsFirst`](https://biomejs.dev/linter/rules/use-imports-first/)
that enforces all import statements appear before any non-import
statements in a module. Inspired by the eslint-plugin-import
[`import/first`](https://redirect.github.com/import-js/eslint-plugin-import/blob/HEAD/docs/rules/first.md)
rule.

  ```js
  // Invalid
  import { foo } from "foo";
  const bar = 1;
  import { baz } from "baz"; // ← flagged

  // Valid
  import { foo } from "foo";
  import { baz } from "baz";
  const bar = 1;
  ```

- [#&#8203;9285](https://redirect.github.com/biomejs/biome/pull/9285)
[`93ea495`](https://redirect.github.com/biomejs/biome/commit/93ea495fa215d032d7b96ecc52a8e4c86a421805)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed
[`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/)
from erroneously flagging props only used in the template section in Vue
SFCs

- [#&#8203;9435](https://redirect.github.com/biomejs/biome/pull/9435)
[`6c5a8f2`](https://redirect.github.com/biomejs/biome/commit/6c5a8f2728dd21d58c164bcdf616e3c803eda475)
Thanks [@&#8203;siketyan](https://redirect.github.com/siketyan)! - Fixed
[#&#8203;9432](https://redirect.github.com/biomejs/biome/issues/9432):
Values referenced as a JSX element in Astro/Vue/Svelte templates are now
correctly detected; `noUnusedImports` and `useImportType` rules no
longer reports these values as false positives.

- [#&#8203;9362](https://redirect.github.com/biomejs/biome/pull/9362)
[`fc9ca4c`](https://redirect.github.com/biomejs/biome/commit/fc9ca4c03f484bfd90302269c4d577a3fd6c89d0)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Extra
rule source references. `biome migrate eslint` should do a bit better
detecting rules in your eslint configurations.

- [#&#8203;9392](https://redirect.github.com/biomejs/biome/pull/9392)
[`b881fea`](https://redirect.github.com/biomejs/biome/commit/b881fea44d93781ca1cac9db4e5fcfd81d35d777)
Thanks [@&#8203;g-ortuno](https://redirect.github.com/g-ortuno)! - Fixed
[biomejs/biome-vscode#959](https://redirect.github.com/biomejs/biome-vscode/issues/959):
LSP now correctly resolves project directory when `configurationPath`
points to a configuration file outside the workspace.

- [#&#8203;9420](https://redirect.github.com/biomejs/biome/pull/9420)
[`a1c46af`](https://redirect.github.com/biomejs/biome/commit/a1c46afd2567dded10e5e08e6e09fcba01bb757c)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;9385](https://redirect.github.com/biomejs/biome/issues/9385):
[`noUselessEscapeInString`](https://biomejs.dev/linter/rules/no-useless-escape-in-string/)
no longer incorrectly flags valid CSS hex escapes (e.g. `\e7bb`) as
useless. The rule now recognizes all hex digits (`0-9`, `a-f`, `A-F`) as
valid escape characters in CSS strings.

- [#&#8203;9416](https://redirect.github.com/biomejs/biome/pull/9416)
[`f2581b8`](https://redirect.github.com/biomejs/biome/commit/f2581b8eb1d2c1f3ba08c1237a7a6698128648f7)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;9131](https://redirect.github.com/biomejs/biome/issues/9131),
[#&#8203;9112](https://redirect.github.com/biomejs/biome/issues/9112),
[#&#8203;9166](https://redirect.github.com/biomejs/biome/issues/9166):
the formatter no longer crashes or produces corrupt output when a JS
file with `experimentalEmbeddedSnippetsEnabled` contains non-embedded
template literals alongside embedded ones (e.g.
`console.log(\`test\`)`next to`graphql(\`...\`)\`).

- [#&#8203;9344](https://redirect.github.com/biomejs/biome/pull/9344)
[`cb4d7d7`](https://redirect.github.com/biomejs/biome/commit/cb4d7d7a2cc518e3e815405189c1bc596a249e6c)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;6921](https://redirect.github.com/biomejs/biome/issues/6921):
`noShadow` no longer incorrectly flags destructured variable bindings in
sibling scopes as shadowing. Object destructuring, array destructuring,
nested patterns, and rest elements are now properly recognized as
declarations.

- [#&#8203;9360](https://redirect.github.com/biomejs/biome/pull/9360)
[`bc5dd99`](https://redirect.github.com/biomejs/biome/commit/bc5dd99a6a8973bd05b8ce2d129a8eea766a6926)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;7125](https://redirect.github.com/biomejs/biome/issues/7125):
The rule `noShadow` no longer incorrectly flags parameters in TypeScript
constructor and method overload signatures.

- [#&#8203;9371](https://redirect.github.com/biomejs/biome/pull/9371)
[`29cac17`](https://redirect.github.com/biomejs/biome/commit/29cac1775986e79d306fa7ed10323b196b013072)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;5279](https://redirect.github.com/biomejs/biome/issues/5279):
Tabs in diagnostic diff output are now rendered at a consistent width
across context and changed lines, fixing visual misalignment when source
files use tab indentation.

- [#&#8203;9043](https://redirect.github.com/biomejs/biome/pull/9043)
[`61e2a02`](https://redirect.github.com/biomejs/biome/commit/61e2a02aea782e41291465a016eca059c66ec6fe)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed
[#&#8203;8897](https://redirect.github.com/biomejs/biome/issues/8897):
Biome now parses `@utility` names containing `/` when Tailwind
directives are enabled.

- [#&#8203;9354](https://redirect.github.com/biomejs/biome/pull/9354)
[`930c858`](https://redirect.github.com/biomejs/biome/commit/930c858df43ef32c24cebebb4ce42f302f529f2c)
Thanks [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov)! -
Improved CSS parser recovery for invalid `unicode-range` values that mix
wildcard ranges with range intervals. For example, Biome now reports
clearer diagnostics for invalid syntax like:

  ```css
  unicode-range: U+11???-2??;
  unicode-range: U+11???-;
  ```

  with diagnostics such as:

  ```text
  × Wildcard ranges cannot be combined with a range interval.
    > unicode-range: U+11???-2??;
                              ^

  × Expected a codepoint but instead found ';'.
    > unicode-range: U+11???-;
                               ^
  ```

- [#&#8203;9355](https://redirect.github.com/biomejs/biome/pull/9355)
[`78e74a2`](https://redirect.github.com/biomejs/biome/commit/78e74a28e5966ccedacb22f840915b35f03a5474)
Thanks
[@&#8203;SchahinRohani](https://redirect.github.com/SchahinRohani)! -
Fixed
[#&#8203;9349](https://redirect.github.com/biomejs/biome/issues/9349):
Biome now correctly handles Vue dynamic `:alt` and `v-bind:alt` bindings
in `useAltText`, preventing false positives in `.vue` files.

- [#&#8203;9369](https://redirect.github.com/biomejs/biome/pull/9369)
[`b309dde`](https://redirect.github.com/biomejs/biome/commit/b309ddedc74506b162443589acde5b3ae59f6ed3)
Thanks [@&#8203;costajohnt](https://redirect.github.com/costajohnt)! -
Fixed
[#&#8203;9210](https://redirect.github.com/biomejs/biome/issues/9210):
[`useAnchorContent`](https://biomejs.dev/linter/rules/use-anchor-content/)
no longer reports an accessibility error for Astro `Image` components
inside links when they provide non-empty `alt` text.

- [#&#8203;9345](https://redirect.github.com/biomejs/biome/pull/9345)
[`70c2d4e`](https://redirect.github.com/biomejs/biome/commit/70c2d4e8758f9f3e494d04dc060e116eb2947540)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;7214](https://redirect.github.com/biomejs/biome/issues/7214):
[`useOptionalChain`](https://biomejs.dev/linter/rules/use-optional-chain/)
now detects optional chain patterns that don't start at the beginning of
a logical AND expression. For example, `bar && foo && foo.length` is now
correctly flagged and fixed to `bar && foo?.length`.

- [#&#8203;9311](https://redirect.github.com/biomejs/biome/pull/9311)
[`78c4e9b`](https://redirect.github.com/biomejs/biome/commit/78c4e9b2fcb44b7fcc0afff294b5c2a7739bf5e2)
Thanks [@&#8203;ruidosujeira](https://redirect.github.com/ruidosujeira)!
- Fixed
[#&#8203;9245](https://redirect.github.com/biomejs/biome/issues/9245):
the
[`useSemanticElements`](https://biomejs.dev/linter/rules/use-semantic-elements/)
rule no longer suggests `<output>` for `role="status"` and
`role="alert"`. The `<output>` element is only a `relatedConcept` of
these roles, not a direct semantic equivalent. These roles are now
excluded from suggestions, aligning with the intended behavior of the
upstream `prefer-tag-over-role` rule.

- [#&#8203;9363](https://redirect.github.com/biomejs/biome/pull/9363)
[`b2ffb4a`](https://redirect.github.com/biomejs/biome/commit/b2ffb4aa376f73d5eef6d011e1d4d9e191197b79)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;5212](https://redirect.github.com/biomejs/biome/issues/5212):
[`useSemanticElements`](https://biomejs.dev/linter/rules/use-semantic-elements/)
no longer reports a diagnostic when a semantic element already has its
corresponding role attribute (e.g. `<nav role="navigation">`, `<footer
role="contentinfo">`). These cases are now correctly left to
[`noRedundantRoles`](https://biomejs.dev/linter/rules/no-redundant-roles/).

- [#&#8203;9364](https://redirect.github.com/biomejs/biome/pull/9364)
[`1bb9edc`](https://redirect.github.com/biomejs/biome/commit/1bb9edc47fc3f9dca1b22e688401211ac87d3aa3)
Thanks [@&#8203;xvchris](https://redirect.github.com/xvchris)! - Fixed
[#&#8203;9357](https://redirect.github.com/biomejs/biome/issues/9357).
Improved the information emitted by some diagnostics.

- [#&#8203;9434](https://redirect.github.com/biomejs/biome/pull/9434)
[`bf12092`](https://redirect.github.com/biomejs/biome/commit/bf12092e6fd141eaaf85f30556da94643422cff5)
Thanks [@&#8203;siketyan](https://redirect.github.com/siketyan)! - Fixed
[#&#8203;9433](https://redirect.github.com/biomejs/biome/issues/9433):
[`noBlankTarget`](https://biomejs.dev/linter/rules/no-blank-target/) now
correctly handles dynamic href attributes, such as `<a
href={company?.website} target="_blank">`.

- [#&#8203;9351](https://redirect.github.com/biomejs/biome/pull/9351)
[`5046d2b`](https://redirect.github.com/biomejs/biome/commit/5046d2b4f04849a35ea3c5483f22178c1817f6da)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Expanded
the
[`noNegationElse`](https://biomejs.dev/linter/rules/no-negation-else/)
rule to cover the inequality & strict inequality operator.

- [#&#8203;9353](https://redirect.github.com/biomejs/biome/pull/9353)
[`2a29e0d`](https://redirect.github.com/biomejs/biome/commit/2a29e0d6aecf49e70b478dcef10460bd2da17429)
Thanks [@&#8203;Conaclos](https://redirect.github.com/Conaclos)! - Fixed
[#&#8203;7583](https://redirect.github.com/biomejs/biome/issues/7583):

[`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/)
now
  sorts named specifiers inside bare exports and merges bare exports.

  ```diff
  - export { b, a };
  - export { c };
  + export { a, b, c };
  ```

Also, `organizeImports` now correctly adds a blank line between an
import chunk
  and an export chunk.

  ```diff
    import { A } from "package";
  +
    export { A };
  ```

- [#&#8203;8658](https://redirect.github.com/biomejs/biome/pull/8658)
[`bdcc934`](https://redirect.github.com/biomejs/biome/commit/bdcc93431091e4e34f9d0ca9e9d3ca4c466eec6c)
Thanks [@&#8203;rksvc](https://redirect.github.com/rksvc)! - When the
`domains` field is set in the configuration file, domains is now
automatically enabled when Biome detects certain dependencies in
`package.json`.

- [#&#8203;9383](https://redirect.github.com/biomejs/biome/pull/9383)
[`f5c8bf0`](https://redirect.github.com/biomejs/biome/commit/f5c8bf018cbe49b5fb48a1adb443bd7c5f315769)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;6606](https://redirect.github.com/biomejs/biome/issues/6606):
The type inference engine now resolves `Record<K, V>` types,
synthesizing them as object types with index signatures. This improves
accuracy for type-aware lint rules such as `noFloatingPromises`,
`noMisusedPromises`, `useAwaitThenable`, and `useArraySortCompare` when
operating on Record-typed values.

- [#&#8203;9359](https://redirect.github.com/biomejs/biome/pull/9359)
[`701ddd3`](https://redirect.github.com/biomejs/biome/commit/701ddd381a5a4502d2087795a8a5e03c666fb109)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;7516](https://redirect.github.com/biomejs/biome/issues/7516):
`noUnusedImports` no longer reports a false positive when a local
variable shadows an imported type namespace that is still used in a type
annotation.

- [#&#8203;9473](https://redirect.github.com/biomejs/biome/pull/9473)
[`50e93bd`](https://redirect.github.com/biomejs/biome/commit/50e93bd0d32c319626e77b41a167e7c80f8a6079)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Improved the detection of variables inside Astro files. Now the rule
`noUnusedVariables` and others will trigger fewer false positives.

- [#&#8203;9459](https://redirect.github.com/biomejs/biome/pull/9459)
[`171b2ee`](https://redirect.github.com/biomejs/biome/commit/171b2ee3d108793e4cb03807863739d47fc2092d)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;9314](https://redirect.github.com/biomejs/biome/issues/9314).
Now Biome doesn't panic when `useAriaPropsForRole` is configured using
an object.

- [#&#8203;9465](https://redirect.github.com/biomejs/biome/pull/9465)
[`c8918d6`](https://redirect.github.com/biomejs/biome/commit/c8918d640a8897c2d5743988fce4dbb858ea64a5)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Fixed
[#&#8203;9464](https://redirect.github.com/biomejs/biome/issues/9464):
Temporal is now correctly detected as a global.

- [#&#8203;9367](https://redirect.github.com/biomejs/biome/pull/9367)
[`722f0da`](https://redirect.github.com/biomejs/biome/commit/722f0da12d4fadde6eaa09abe6053f9938408028)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the
nursery rule
[`noTopLevelLiterals`](https://biomejs.dev/linter/rules/no-top-level-literals/).
It requires the root-level value to be an array or object.

  **Invalid:**

  ```json
  "just a string"
  ```

- [#&#8203;9333](https://redirect.github.com/biomejs/biome/pull/9333)
[`a294b89`](https://redirect.github.com/biomejs/biome/commit/a294b89d283f997336419e81654c91330274e698)
Thanks [@&#8203;terror](https://redirect.github.com/terror)! - Fixed
[#&#8203;9310](https://redirect.github.com/biomejs/biome/issues/9310).
Now the HTML formatter doesn't mangle elements that are followed by
self-closing elements such as `<br>` or `<img>`.

- [#&#8203;9391](https://redirect.github.com/biomejs/biome/pull/9391)
[`4bffb66`](https://redirect.github.com/biomejs/biome/commit/4bffb66d2ccc3c0e6ccb5ab6bf5b3cf2a8300d19)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Slightly increased the performance of the CLI in projects that have more
than \~2K files.

- [#&#8203;9365](https://redirect.github.com/biomejs/biome/pull/9365)
[`776cb64`](https://redirect.github.com/biomejs/biome/commit/776cb646ccb8d3d6739051f68da1629b4e0124d7)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the
nursery rule
[`noEmptyObjectKeys`](https://biomejs.dev/linter/rules/no-empty-object-keys/),
which disallows the use of empty keys in JSON objects.

  **Invalid:**

  ```json
  {
    "": "value"
  }
  ```

#### What's Changed

- fix(useOptionalChain): correctly track prefix expression by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9345](https://redirect.github.com/biomejs/biome/pull/9345)
- feat(css): add support for SCSS binary expressions in lexer and parser
by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9343](https://redirect.github.com/biomejs/biome/pull/9343)
- fix(noShadow): detect destructured patterns in sibling scopes by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9344](https://redirect.github.com/biomejs/biome/pull/9344)
- feat(js\_analyze): noNegationElse support inequality & strict
inequality operator by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9351](https://redirect.github.com/biomejs/biome/pull/9351)
- feat(css): improve scss declaration modifier recovery by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9352](https://redirect.github.com/biomejs/biome/pull/9352)
- fix(css): improve unicode wildcard range recovery by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9354](https://redirect.github.com/biomejs/biome/pull/9354)
- chore: rust 1.94.0 by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9356](https://redirect.github.com/biomejs/biome/pull/9356)
- chore: improve internal skills by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9361](https://redirect.github.com/biomejs/biome/pull/9361)
- fix(organizeImports): sort specifiers in bare exports by
[@&#8203;Conaclos](https://redirect.github.com/Conaclos) in
[#&#8203;9353](https://redirect.github.com/biomejs/biome/pull/9353)
- chore: add extra eslint plugin sources by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9362](https://redirect.github.com/biomejs/biome/pull/9362)
- feat(md): formatter plumbing by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9331](https://redirect.github.com/biomejs/biome/pull/9331)
- fix(noUndeclaredVariables): track vue props as bindings by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;9285](https://redirect.github.com/biomejs/biome/pull/9285)
- fix(cli): tab printing by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9371](https://redirect.github.com/biomejs/biome/pull/9371)
- fix(noShadow): ts overloads by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9360](https://redirect.github.com/biomejs/biome/pull/9360)
- fix(html/useAltText): handle Vue dynamic :alt and v-bind:alt bindings
by [@&#8203;SchahinRohani](https://redirect.github.com/SchahinRohani) in
[#&#8203;9355](https://redirect.github.com/biomejs/biome/pull/9355)
- feat(json\_analyze): implement noTopLevelLiterals by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9367](https://redirect.github.com/biomejs/biome/pull/9367)
- fix(organizeImports): merge bare exports by
[@&#8203;Conaclos](https://redirect.github.com/Conaclos) in
[#&#8203;9373](https://redirect.github.com/biomejs/biome/pull/9373)
- chore: update rule count in readme by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;9374](https://redirect.github.com/biomejs/biome/pull/9374)
- fix(noUnusedImports): edge case ambient type by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9359](https://redirect.github.com/biomejs/biome/pull/9359)
- fix(useSemanticElements): don't flag elements and roles by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9363](https://redirect.github.com/biomejs/biome/pull/9363)
- test: iife inference by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9382](https://redirect.github.com/biomejs/biome/pull/9382)
- feat(json\_analyze): implement noEmptyObjectKeys by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9365](https://redirect.github.com/biomejs/biome/pull/9365)
- feat(biome\_service): include file path in NotFound diagnostic by
[@&#8203;xvchris](https://redirect.github.com/xvchris) in
[#&#8203;9364](https://redirect.github.com/biomejs/biome/pull/9364)
- feat(css): improve SCSS expression parsing by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9396](https://redirect.github.com/biomejs/biome/pull/9396)
- chore(deps): update dependency eslint to v9.39.3 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9403](https://redirect.github.com/biomejs/biome/pull/9403)
- chore(deps): update pnpm to v10.30.3 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9404](https://redirect.github.com/biomejs/biome/pull/9404)
- chore(deps): update rust crate jiff to 0.2.23 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9405](https://redirect.github.com/biomejs/biome/pull/9405)
- fix(deps): update
[@&#8203;biomejs](https://redirect.github.com/biomejs) packages by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9408](https://redirect.github.com/biomejs/biome/pull/9408)
- chore(deps): update rust crate libc to 0.2.183 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9406](https://redirect.github.com/biomejs/biome/pull/9406)
- chore(deps): update rust crate quote to 1.0.45 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9407](https://redirect.github.com/biomejs/biome/pull/9407)
- chore(deps): update dependency
[@&#8203;changesets/changelog-github](https://redirect.github.com/changesets/changelog-github)
to v0.6.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9409](https://redirect.github.com/biomejs/biome/pull/9409)
- chore(deps): update dependency
[@&#8203;changesets/cli](https://redirect.github.com/changesets/cli) to
v2.30.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9410](https://redirect.github.com/biomejs/biome/pull/9410)
- chore(deps): update dependency dprint to v0.52.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9413](https://redirect.github.com/biomejs/biome/pull/9413)
- chore(deps): update dependency
[@&#8203;types/node](https://redirect.github.com/types/node) to v24.11.2
by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;9412](https://redirect.github.com/biomejs/biome/pull/9412)
- feat(css): add support for `sass()` in SCSS conditional expressions by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9414](https://redirect.github.com/biomejs/biome/pull/9414)
- feat(css): add support for `@debug`, `@warn`, and `@error` SCSS
at-rules by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9415](https://redirect.github.com/biomejs/biome/pull/9415)
- refactor(markdown-parser): promote thematic break skipped trivia to
explicit CST nodes by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9337](https://redirect.github.com/biomejs/biome/pull/9337)
- feat(css): add support for SCSS `@if`, `@else`, and `@while` at-rules
by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9417](https://redirect.github.com/biomejs/biome/pull/9417)
- feat(css): add support for SCSS `@each` at-rule
([#&#8203;9418](https://redirect.github.com/biomejs/biome/issues/9418))
by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9419](https://redirect.github.com/biomejs/biome/pull/9419)
- fix(lint): enable rules via dependencies when setting domains in
config by [@&#8203;rksvc](https://redirect.github.com/rksvc) in
[#&#8203;8658](https://redirect.github.com/biomejs/biome/pull/8658)
- refactor(core): embed detectors by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9416](https://redirect.github.com/biomejs/biome/pull/9416)
- fix(noUselessEscapeInString): correctly flag chars by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9420](https://redirect.github.com/biomejs/biome/pull/9420)
- chore: accept snapshot on main by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;9422](https://redirect.github.com/biomejs/biome/pull/9422)
- feat(css): add support for SCSS `@for` at-rule by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9421](https://redirect.github.com/biomejs/biome/pull/9421)
- fix(parse/css): parse tailwind `@utility` with slash in the name by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;9043](https://redirect.github.com/biomejs/biome/pull/9043)
- feat(css): add support for SCSS `@mixin` at-rule by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9423](https://redirect.github.com/biomejs/biome/pull/9423)
- feat(css): add support for SCSS `@include` at-rule by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9424](https://redirect.github.com/biomejs/biome/pull/9424)
- feat(lint): add nursery rule `useImportsFirst` by
[@&#8203;terror](https://redirect.github.com/terror) in
[#&#8203;9272](https://redirect.github.com/biomejs/biome/pull/9272)
- feat(css): add support for SCSS `@content` at-rule by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9425](https://redirect.github.com/biomejs/biome/pull/9425)
- fix(useOptionalChain): regression by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9430](https://redirect.github.com/biomejs/biome/pull/9430)
- feat(css): add support for SCSS `@function` and `@return` at-rules by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9431](https://redirect.github.com/biomejs/biome/pull/9431)
- feat(inference): infer `Recored<K, V>` by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9383](https://redirect.github.com/biomejs/biome/pull/9383)
- feat(ast): increase `SyntaxKindSet` bitfield size to 6 elements for
extended node support by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9438](https://redirect.github.com/biomejs/biome/pull/9438)
- fix(a11y): only use baseConcepts in useSemanticElements rule
([#&#8203;9245](https://redirect.github.com/biomejs/biome/issues/9245))
by [@&#8203;ruidosujeira](https://redirect.github.com/ruidosujeira) in
[#&#8203;9311](https://redirect.github.com/biomejs/biome/pull/9311)
- fix(core): detect JSX reference identifiers in Astro/Vue/Svelte
templates by [@&#8203;siketyan](https://redirect.github.com/siketyan) in
[#&#8203;9435](https://redirect.github.com/biomejs/biome/pull/9435)
- fix(lint/noBlankTarget): still report when the href attribute is
dynamic by [@&#8203;siketyan](https://redirect.github.com/siketyan) in
[#&#8203;9434](https://redirect.github.com/biomejs/biome/pull/9434)
- ci: publish to pkg pr new before disatpch event by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9439](https://redirect.github.com/biomejs/biome/pull/9439)
- feat(css/lint): useBaseline by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9318](https://redirect.github.com/biomejs/biome/pull/9318)
- fix: compilation issue due to merge by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9442](https://redirect.github.com/biomejs/biome/pull/9442)
- refactor(markdown-parser): promote remaining skipped trivia to
explicit CST nodes by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9427](https://redirect.github.com/biomejs/biome/pull/9427)
- docs(markdown-parser): add code-version comments to ungram nodes by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9444](https://redirect.github.com/biomejs/biome/pull/9444)
- feat(css): add support for SCSS `@use` and `@forward` at-rules by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9440](https://redirect.github.com/biomejs/biome/pull/9440)
- refactor(markdown-parser): simplify inline newline handling by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9446](https://redirect.github.com/biomejs/biome/pull/9446)
- ci: trigger parser conformance tests on markdown crate changes by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9447](https://redirect.github.com/biomejs/biome/pull/9447)
- chore: new labels by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9448](https://redirect.github.com/biomejs/biome/pull/9448)
- perf(cli): lock-free storage, and reduce system calls by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9391](https://redirect.github.com/biomejs/biome/pull/9391)
- fix(html/formatter): preserve closing `>` before self-closing elements
by [@&#8203;terror](https://redirect.github.com/terror) in
[#&#8203;9333](https://redirect.github.com/biomejs/biome/pull/9333)
- perf(inference): reduce type widening by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;8374](https://redirect.github.com/biomejs/biome/pull/8374)
- refactor(markdown-parser): decompose parse\_link\_or\_image into phase
helpers by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell)
in [#&#8203;9452](https://redirect.github.com/biomejs/biome/pull/9452)
- refactor(markdown-parser): decompose handle\_blank\_lines into phase
helpers by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell)
in [#&#8203;9453](https://redirect.github.com/biomejs/biome/pull/9453)
- refactor(semantic): dual binding by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9451](https://redirect.github.com/biomejs/biome/pull/9451)
- fix(lsp): fix incorrect project dir when configurationPath points to
config outside of workspace by
[@&#8203;g-ortuno](https://redirect.github.com/g-ortuno) in
[#&#8203;9392](https://redirect.github.com/biomejs/biome/pull/9392)
- fix(biome\_html\_analyze): recognize Astro Image component in
useAnchorContent by
[@&#8203;costajohnt](https://redirect.github.com/costajohnt) in
[#&#8203;9369](https://redirect.github.com/biomejs/biome/pull/9369)
- feat(css): add support for SCSS `@import` and `@extend` at-rules by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9458](https://redirect.github.com/biomejs/biome/pull/9458)
- feat(css): add support for SCSS `@at-root` at-rule by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9461](https://redirect.github.com/biomejs/biome/pull/9461)
- fix(js\_analyze): temporal global by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9465](https://redirect.github.com/biomejs/biome/pull/9465)
- fix: bad options by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9459](https://redirect.github.com/biomejs/biome/pull/9459)
- docs: fix markdown rule wording by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9470](https://redirect.github.com/biomejs/biome/pull/9470)
- feat(css): parse scss interpolation expressions by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9472](https://redirect.github.com/biomejs/biome/pull/9472)
- fix(embeds): improve detection of bindings in Astro files by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9473](https://redirect.github.com/biomejs/biome/pull/9473)
- ci: release by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;9346](https://redirect.github.com/biomejs/biome/pull/9346)

#### New Contributors

- [@&#8203;SchahinRohani](https://redirect.github.com/SchahinRohani)
made their first contribution in
[#&#8203;9355](https://redirect.github.com/biomejs/biome/pull/9355)
- [@&#8203;xvchris](https://redirect.github.com/xvchris) made their
first contribution in
[#&#8203;9364](https://redirect.github.com/biomejs/biome/pull/9364)
- [@&#8203;rksvc](https://redirect.github.com/rksvc) made their first
contribution in
[#&#8203;8658](https://redirect.github.com/biomejs/biome/pull/8658)
- [@&#8203;terror](https://redirect.github.com/terror) made their first
contribution in
[#&#8203;9272](https://redirect.github.com/biomejs/biome/pull/9272)
- [@&#8203;g-ortuno](https://redirect.github.com/g-ortuno) made their
first contribution in
[#&#8203;9392](https://redirect.github.com/biomejs/biome/pull/9392)
- [@&#8203;costajohnt](https://redirect.github.com/costajohnt) made
their first contribution in
[#&#8203;9369](https://redirect.github.com/biomejs/biome/pull/9369)

**Full Changelog**:
<https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.6...@&#8203;biomejs/biome@2.4.7>

###
[`v2.4.6`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.6):
Biome CLI v2.4.6

#### 2.4.6

##### Patch Changes

- [#&#8203;9305](https://redirect.github.com/biomejs/biome/pull/9305)
[`40869b5`](https://redirect.github.com/biomejs/biome/commit/40869b5a698de5e0d2c06bc7587a9cad8c0389c5)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;4946](https://redirect.github.com/biomejs/biome/issues/4946):
`noUnreachable` no longer reports code inside `finally` blocks as
unreachable when there is a `break`, `continue`, or `return` in the
corresponding `try` body.

- [#&#8203;9303](https://redirect.github.com/biomejs/biome/pull/9303)
[`464910c`](https://redirect.github.com/biomejs/biome/commit/464910c06058454a0a0ed08998e1b32cb4a6ca67)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;2786](https://redirect.github.com/biomejs/biome/issues/2786):
The formatter no longer produces different output on subsequent runs
when a `case` clause has a trailing line comment followed by a single
block statement.

- [#&#8203;9324](https://redirect.github.com/biomejs/biome/pull/9324)
[`6294aa2`](https://redirect.github.com/biomejs/biome/commit/6294aa2e2710e90a05ed53edfc4dd80e3c4cbd9a)
Thanks [@&#8203;arendjr](https://redirect.github.com/arendjr)! - Fixed
[`#7730`](https://redirect.github.com/biomejs/biome/issues/7730):
[`useAnchorContent`](https://biomejs.dev/linter/rules/use-anchor-content/)
now recognises SolidJS's `innerHTML` the same way as React's
`dangerouslySetInnerHTML`.

- [#&#8203;9298](https://redirect.github.com/biomejs/biome/pull/9298)
[`1003229`](https://redirect.github.com/biomejs/biome/commit/1003229853c80569751137b6f52dcc1b08aed659)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Fixed
[`#9296`](https://redirect.github.com/biomejs/biome/issues/9296), so
comments are moved along with the attributes in the useSortedAttributes
assist rule code fix.

- [#&#8203;9329](https://redirect.github.com/biomejs/biome/pull/9329)
[`855b451`](https://redirect.github.com/biomejs/biome/commit/855b45125ad33933066eb363f706e1f00dc149d2)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved
performance of
[`noEmptyBlockStatements`](https://biomejs.dev/linter/rules/no-empty-block-statements/).
The rule is now smarter about short-circuiting its logic.

- [#&#8203;9326](https://redirect.github.com/biomejs/biome/pull/9326)
[`85dfe9b`](https://redirect.github.com/biomejs/biome/commit/85dfe9b00b820fee0ad936a54328491446e085f5)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved
performance for
[`noImportCycles`](https://biomejs.dev/linter/rules/no-import-cycles/)
by explicitly excluding node\_modules from the cycle detection. The
performance improvement is directly proportional to how big your
dependency tree is.

- [#&#8203;9323](https://redirect.github.com/biomejs/biome/pull/9323)
[`d5ee469`](https://redirect.github.com/biomejs/biome/commit/d5ee4690bba0a3bb8a97da029732afde56cd4cd7)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;9217](https://redirect.github.com/biomejs/biome/issues/9217)
and
[biomejs/biome-vscode#959](https://redirect.github.com/biomejs/biome-vscode/issues/959),
where the Biome language server didn't correctly resolve the editor
setting `configurationPath` when the provided value is a relative path.

- [#&#8203;9302](https://redirect.github.com/biomejs/biome/pull/9302)
[`86fbc70`](https://redirect.github.com/biomejs/biome/commit/86fbc70e8f5a63fd9ece11a99b2684c25c301dba)
Thanks [@&#8203;sepagian](https://redirect.github.com/sepagian)! - Fixed
[#&#8203;9300](https://redirect.github.com/biomejs/biome/issues/9300):
Lowercase component member expressions like `<form.Field>` in Svelte and
Astro files are now correctly formatted.

  ```diff
  -<form .Field></form.Field>
  +<form.Field></form.Field>
  ```

#### What's Changed

- fix(js\_analyze): move comments with useSortedAttributes action by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9298](https://redirect.github.com/biomejs/biome/pull/9298)
- fix(formatter): switch case comments by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9303](https://redirect.github.com/biomejs/biome/pull/9303)
- refactor(markdown-parser): promote list structural tokens from skipped
trivia to explicit CST nodes by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9274](https://redirect.github.com/biomejs/biome/pull/9274)
- fix(noUnreachable): handle dead implicit jumps in finally by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9305](https://redirect.github.com/biomejs/biome/pull/9305)
- refactor(markdown-parser): align newline/prescan paragraph-break
checks by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell)
in [#&#8203;9197](https://redirect.github.com/biomejs/biome/pull/9197)
- refactor(markdown-parser): promote blank lines between list items to
MdNewline nodes by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9313](https://redirect.github.com/biomejs/biome/pull/9313)
- fix(linter): support SolidJS's `innerHTML` in `useAnchorContent` by
[@&#8203;arendjr](https://redirect.github.com/arendjr) in
[#&#8203;9324](https://redirect.github.com/biomejs/biome/pull/9324)
- fix(lsp): correctly resolve `configurationPath` by
[@&#8203;ematipico](https://redirect.github.com/ematipico) in
[#&#8203;9323](https://redirect.github.com/biomejs/biome/pull/9323)
- perf(noImportCycles): exclude `node_modules` from cycle detection by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;9326](https://redirect.github.com/biomejs/biome/pull/9326)
- refactor(css\_parser): split function parser into modules by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9325](https://redirect.github.com/biomejs/biome/pull/9325)
- refactor(markdown-parser): promote fenced code block skipped trivia to
explicit CST nodes by
[@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#&#8203;9321](https://redirect.github.com/biomejs/biome/pull/9321)
- refactor(css): rename operator\_token field to operator by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9327](https://redirect.github.com/biomejs/biome/pull/9327)
- perf: add `.skip(1)` to `.ancestors()` calls in a bunch of places by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;9330](https://redirect.github.com/biomejs/biome/pull/9330)
- perf(noEmptyBlockStatements): short circuit to avoid traversing
descendants for comments by
[@&#8203;dyc3](https://redirect.github.com/dyc3) in
[#&#8203;9329](https://redirect.github.com/biomejs/biome/pull/9329)
- fix: lowercase component member expressions in Astro/Svelte by
[@&#8203;sepagian](https://redirect.github.com/sepagian) in
[#&#8203;9302](https://redirect.github.com/biomejs/biome/pull/9302)
- chore: align parser options struct name by
[@&#8203;Netail](https://redirect.github.com/Netail) in
[#&#8203;9332](https://redirect.github.com/biomejs/biome/pull/9332)
- feat(css): use ScssExpression in ScssNestingDeclaration and
CssGenericProperty by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9328](https://redirect.github.com/biomejs/biome/pull/9328)
- refactor(css): align scss expression node variants by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9340](https://redirect.github.com/biomejs/biome/pull/9340)
- feat(css): use expression in page by
[@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in
[#&#8203;9342](https://redirect.github.com/biomejs/biome/pull/9342)
- ci: release by
[@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot]
in [#&#8203;9301](https://redirect.github.com/biomejs/biome/pull/9301)

#### New Contributors

- [@&#8203;sepagian](https://redirect.github.com/sepagian) made their
first contribution in
[#&#8203;9302](https://redirect.github.com/biomejs/biome/pull/9302)

**Full Changelog**:
<https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.5...@&#8203;biomejs/biome@2.4.6>

###
[`v2.4.5`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.5):
Biome CLI v2.4.5

#### 2.4.5

##### Patch Changes

- [#&#8203;9185](https://redirect.github.com/biomejs/biome/pull/9185)
[`e43e730`](https://redirect.github.com/biomejs/biome/commit/e43e730f603bb360d2993842d1b883a787224c29)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule `useVueScopedStyles` for Vue SFCs. This rule enforces that
`<style>` blocks have the `scoped` attribute (or `module` for CSS
Modules), preventing style leakage and conflicts between components.

- [#&#8203;9184](https://redirect.github.com/biomejs/biome/pull/9184)
[`49c8fde`](https://redirect.github.com/biomejs/biome/commit/49c8fdecf69089e1be9e58fa52f6b72fd54ce08e)
Thanks [@&#8203;chocky335](https://redirect.github.com/chocky335)! -
Improved plugin performance by batching all plugins into a single syntax
visitor with a kind-to-plugin lookup map, reducing per-node dispatch
overhead from O(N) to O(1) where N is the number of plugins.

- [#&#8203;9283](https://redirect.github.com/biomejs/biome/pull/9283)
[`071c700`](https://redirect.github.com/biomejs/biome/commit/071c70053b63c60bccc170a9d84b8b3f08060a94)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed
[`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/)
erroneously flagging functions and variables defined in the `<script
setup>` section of Vue SFCs.

- [#&#8203;9221](https://redirect.github.com/biomejs/biome/pull/9221)
[`4612133`](https://redirect.github.com/biomejs/biome/commit/4612133cd9677cda3c2eedb52fd8b46be579410d)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where the JSON reporter didn't contain the duration of
the command.

- [#&#8203;9294](https://redirect.github.com/biomejs/biome/pull/9294)
[`1805c8f`](https://redirect.github.com/biomejs/biome/commit/1805c8fb18081e88d81da2a6a542f7d69cd317a2)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Extra
rule source reference. `biome migrate eslint` should do a bit better
detecting rules in your eslint configurations.

- [#&#8203;9178](https://redirect.github.com/biomejs/biome/pull/9178)
[`101b3bb`](https://redirect.github.com/biomejs/biome/commit/101b3bb2658dd2fb7ce562f82b784fd5d068df62)
Thanks [@&#8203;Bertie690](https://redirect.github.com/Bertie690)! -
Fixed
[#&#8203;9172](https://redirect.github.com/biomejs/biome/issues/9172)
and
[#&#8203;9168](https://redirect.github.com/biomejs/biome/issues/9168):
  Biome now considers more constructs as valid test assertions.

Previously, [`assert`](https://vitest.dev/api/assert.html),
[`expectTypeOf`](https://vitest.dev/api/expect-typeof.html) and
[`assertType`](https://vitest.dev/api/assert-type.html)
were not recognized as valid assertions by Biome's linting rules,
producing false positives in
[`lint/nursery/useExpect`](https://biomejs.dev/linter/rules/use-expect)
and other similar rules.

Now, these rules will no longer produce errors in test cases that used
these constructs instead of `expect`:

  ```ts
  import { expectTypeOf, assert, assertType } from "vitest";

  const myStr = "Hello from vitest!";
  it("should be a string", () => {
    expectTypeOf(myStr).toBeString();
  });
  test("should still be a string", () => {
    assertType<string>(myStr);
  });
  it.todo("should still still be a string", () => {
    assert(typeof myStr === "string");
  });
  ```

- [#&#8203;9173](https://redirect.github.com/biomejs/biome/pull/9173)
[`32dad2d`](https://redirect.github.com/biomejs/biome/commit/32dad2deb5373950ee52f0e1c544b3313bbe6b52)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added parsing
support for Svelte's new
[comments-in-tags](https://redirect.github.com/sveltejs/svelte/pull/17671)
feature.

The HTML parser will now accept JS style comments in tags in Svelte
files.

  ```svelte
  <button
    // single-line comment
    onclick={doTheThing}
  >click me</button>

  <div
    /* block comment */
    class="foo"
  >text</div>
  ```

- [#&#8203;8952](https://redirect.github.com/biomejs/biome/pull/8952)
[`1d2ca15`](https://redirect.github.com/biomejs/biome/commit/1d2ca15f85f6968b4e4ad262a65aadc76fc54f50)
Thanks [@&#8203;pkallos](https://redirect.github.com/pkallos)! - Added
the nursery rule
[`useNullishCoalescing`](https://biomejs.dev/linter/rules/use-nullish-coalescing/).
This rule suggests using the nullish coalescing operator (`??`) instead
of logical OR (`||`) when the left operand may be nullish. This prevents
bugs where falsy values like `0`, `''`, or `false` are incorrectly
treated as missing. Addresses
[#&#8203;8043](https://redirect.github.com/biomejs/biome/issues/8043)

  ```ts
  // Invalid
  declare const x: string | null;
  const value = x || "default";

  // Valid
  const value = x ?? "default";
  ```

- [#&#8203;9243](https://redirect.github.com/biomejs/biome/pull/9243)
[`1992a85`](https://redirect.github.com/biomejs/biome/commit/1992a852d83eb86bae4f6adb999cde284ffa9427)
Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Fixed
[#&#8203;7813](https://redirect.github.com/biomejs/biome/issues/7813):
improved the diagnostic of the rule
[`useExhaustiveDependencies`](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/).
The diagnostic now shows the name of the variable to add to the
dependency array.

- [#&#8203;9063](https://redirect.github.com/biomejs/biome/pull/9063)
[`3d0648f`](https://redirect.github.com/biomejs/biome/commit/3d0648f95a0f7a3fd8ddff58d57a239e68183fe1)
Thanks [@&#8203;taga3s](https://redirect.github.com/taga3s)! - Added the
nursery rule
[`noVueRefAsOperand`](https://biomejs.dev/linter/rules/no-vue-ref-as-operand/).
This rule disallows cases where a ref is used as an operand.

  The following code is now flagged:

  ```js
  import { ref } from "vue";

  const count = ref(0);
  count++; // Should be: count.value++
  ```

  ```js
  import { ref } from "vue";

  const ok = ref(false);
  if (ok) {
    // Should be: if (ok.value)
    //
  }
  ```

- [#&#8203;9273](https://redirect.github.com/biomejs/biome/pull/9273)
[`f239e20`](https://redirect.github.com/biomejs/biome/commit/f239e2053673fcd8ba9a0ab400420b514876f39c)
Thanks [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed
[#&#8203;9253](https://redirect.github.com/biomejs/biome/issues/9253):
parsing of `@container scroll-state(...)` queries.

  ```css
  @&#8203;container scroll-state(scrolled: bottom) {
  }
  @&#8203;container scroll-state(stuck) {
  }
  @&#8203;container scroll-state(not (stuck)) {
  }
  @&#8203;container scroll-state((stuck) and (scrolled: bottom)) {
  }
  @&#8203;container scroll-state((stuck) or (snapped: x)) {
  }
@&#8203;container main-layout scroll-state(not ((stuck) and (scrolled:
bottom))) {
  }
  ```

- [#&#8203;9259](https://redirect.github.com/biomejs/biome/pull/9259)
[`96939c0`](https://redirect.github.com/biomejs/biome/commit/96939c050e34d685c2ec7d603b9bc2478e476a8e)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed CSS formatter incorrectly collapsing selectors when a BOM (Byte
Order Mark) character is present at the start of the file. The formatter
now correctly preserves line breaks between comments and selectors in
BOM-prefixed CSS files, matching Prettier's behavior.

- [#&#8203;9251](https://redirect.github.com/biomejs/biome/pull/9251)
[`59e33fb`](https://redirect.github.com/biomejs/biome/commit/59e33fb90432fed33e349245a40d352c85f5b131)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;9249](https://redirect.github.com/biomejs/biome/issues/9249):
The CSS formatter no longer incorrectly breaks ratio values (like `1 /
-1`) across lines when followed by comments.

- [#&#8203;9284](https://redirect.github.com/biomejs/biome/pull/9284)
[`ec3a17f`](https://redirect.github.com/biomejs/biome/commit/ec3a17f321482ddb8ac2d67b701169a4b25df0b0)
Thanks [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed
[#&#8203;9253](https://redirect.github.com/biomejs/biome/issues/9253):
removed false-positive diagnostics for valid `@container`/`@supports`
general-enclosed queries.

  ```css
  @&#8203;container scroll-state(scrolled: bottom) {
  }
  @&#8203;supports foo(bar: baz) {
  }
  ```

- [#&#8203;9215](https://redirect.github.com/biomejs/biome/pull/9215)
[`b2619a1`](https://redirect.github.com/biomejs/biome/commit/b2619a1810f8c2dfc83f03ac2d810b1d34d658c5)
Thanks
[@&#8203;FrederickStempfle](https://redirect.github.com/FrederickStempfle)!
- Fixed
[#&#8203;9189](https://redirect.github.com/biomejs/biome/issues/9189):
`biome ci` in GitHub Actions now correctly disables colors so that
`::error`/`::warning` workflow commands are not wrapped in ANSI escape
codes.

- [#&#8203;9256](https://redirect.github.com/biomejs/biome/pull/9256)
[`65ae4c1`](https://redirect.github.com/biomejs/biome/commit/65ae4c12fe1d2ac1b1cb57547a42a083c15eeb35)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed JSON reporter escaping of special characters in diagnostic
messages. The JSON reporter now properly escapes double quotes,
backslashes, and control characters in error messages and advice text,
preventing invalid JSON output when diagnostics contain these
characters.

- [#&#8203;9223](https://redirect.github.com/biomejs/biome/pull/9223)
[`5b9da81`](https://redirect.github.com/biomejs/biome/commit/5b9da81189b09152d6a19b11c2911818ef812975)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where the JSON reporter didn't write output to a file
when `--reporter-file` was specified. The output is now correctly
written to the specified file instead of always going to stdout.

- [#&#8203;9154](https://redirect.github.com/biomejs/biome/pull/9154)
[`c487e54`](https://redirect.github.com/biomejs/biome/commit/c487e54ebea4b4aa110d5b87ecf0513d0b0c7c9b)
Thanks [@&#8203;abossenbroek](https://redirect.github.com/abossenbroek)!
- Fixed
[#&#8203;9115](https://redirect.github.com/biomejs/biome/issues/9115):
The
[`noPlaywrightMissingAwait`](https://biomejs.dev/linter/rules/no-playwright-missing-await/)
rule no longer produces false positives on jest-dom matchers like
`toBeVisible`, `toBeChecked`, `toHaveAttribute`, etc. For matchers
shared between Playwright and jest-dom, the rule now checks whether
`expect()`'s argument is a Playwright locator or page object before
flagging. Added semantic variable resolution so that extracted
Playwright locators (e.g. `const loc = page.locator('.item');
expect(loc).toBeVisible()`) are still correctly flagged.

- [#&#8203;9269](https://redirect.github.com/biomejs/biome/pull/9269)
[`33e5cdf`](https://redirect.github.com/biomejs/biome/commit/33e5cdfb65fb4c63c5b186d4bf4aced73900140f)
Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed a false
positive where `noUndeclaredVariables` reported bindings from Vue
`<script setup>` as undeclared when used in `<template>`.

This change ensures embedded bindings collected from script snippets
(like imports and `defineModel` results) are respected by the rule.

- [#&#8203;9267](https://redirect.github.com/biomejs/biome/pull/9267)
[`2c2e060`](https://redirect.github.com/biomejs/biome/commit/2c2e060207ccbe1b96fc9dd982cadff30fda259a)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;9143](https://redirect.github.com/biomejs/biome/issues/9143)
and
[#&#8203;8849](https://redirect.github.com/biomejs/biome/issues/8849):
The
[`noUnresolvedImports`](https://biomejs.dev/linter/rules/no-unresolved-imports/)
rule no longer reports false positives for several common patterns:
- `node:fs`, `node:path`, `node:url`, and other Node.js built-in modules
with the `node:` prefix are now accepted.
- Packages that declare their TypeScript entry point via `"typings"`
(instead of `"types"`) in `package.json` now resolve correctly.
- Named imports from aliased re-export chains (e.g. `export { x as y }
from "..."`) are now resolved correctly through the alias.
- Namespace re-exports (e.g. `export * as Ns from "..."`) are now
recognized as own exports of the barrel module.

- [#&#8203;9254](https://redirect.github.com/biomejs/biome/pull/9254)
[`f7bf12b`](https://redirect.github.com/biomejs/biome/commit/f7bf12bd53d783ce88650450603642f8034aeeeb)
Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#&#8203;8842](https://redirect.github.com/biomejs/biome/issues/8842):
The CSS formatter now correctly formats `@container scroll-state()`
without adding an unwanted space between the function name and opening
parenthesis.

- [#&#8203;9211](https://redirect.github.com/biomejs/biome/pull/9211)
[`2d0b8e6`](https://redirect.github.com/biomejs/biome/commit/2d0b8e62

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-15 20:24:58 +11:00

Symbolic link
1 line
19 B
Plaintext