Biome @biomejs/[email protected]stable Released Nov 21, 2025
Impact Score: 5/10

Biome CLI v2.3.7

Source available โ€” automated, not human-reviewed

Component: @biomejs/biome ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
$ npm install --save-dev --save-exact @biomejs/[email protected]
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Biome @biomejs/[email protected]. Source highlight: Fixed #7999: Correctly place `await` after leading comment in auto-fix action from `noFloatingPromises` rule.

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (3)

  • feat(css): add support for parsing and formatting the CSS if function
  • chore: add regex globals
  • feat(lint/html/vue): add `useVueValidVText`

๐Ÿ”ง Bug Fixes & Patches (6)

  • Fixed #7999: Correctly place `await` after leading comment in auto-fix action from `noFloatingPromises` rule.
  • Fixed #8148. `noInvalidUseBeforeDeclaration` no longer reports some valid use before declarations.
  • Fixed #8174, where the HTML parser would parse 2 directives as a single directive because it would not reject whitespace in Vue directives. This would cause the formatter to erroneously merge the 2 directives into one, resulting in broken code.
  • Fixed #7876: The `noUnusedImports` rule now ignores imports that are used by @linkcode and @linkplain (previously supported @link and @see).
  • Improved the detection of the rule `noUnnecessaryConditions`. Now the rule isn't triggered for variables that are mutated inside a module.
  • Fixed #8144: Improve `noSyncScripts`, ignore script tags with `type="module"` as these are always non-blocking.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## 2.3.7 ### Patch Changes - [#8169](https://github.com/biomejs/biome/pull/8169) [`7fdcec8`](https://github.com/biomejs/biome/commit/7fdcec8eb4ce9f28784f823ef01bd923d2c5d1cb) Thanks [@arendjr](https://github.com/arendjr)! - Fixed [#7999](https://github.com/biomejs/biome/issues/7999): Correctly place `await` after leading comment in auto-fix action from `noFloatingPromises` rule. - [#8157](https://github.com/biomejs/biome/pull/8157) [`12d5b42`](https://github.com/biomejs/biome/commit/12d5b422e388a3f5a906930f2cf04b6835c05258) Thanks [@Conaclos](https://github.com/Conaclos)! - Fixed [#8148](https://github.com/biomejs/biome/issues/8148). [`noInvalidUseBeforeDeclaration`](https://biomejs.dev/linter/rules/no-invalid-use-before-declaration/) no longer reports some valid use before declarations. The following code is no longer reported as invalid: ```ts class classA { C = C; } const C = 0; ``` - [#8178](https://github.com/biomejs/biome/pull/8178) [`6ba4157`](https://github.com/biomejs/biome/commit/6ba41570e088765cab5b7075f55335296a005c94) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#8174](https://github.com/biomejs/biome/issues/8174), where the HTML parser would parse 2 directives as a single directive because it would not reject whitespace in Vue directives. This would cause the formatter to erroneously merge the 2 directives into one, resulting in broken code. ```diff - <Component v-else:property="123" /> + <Component v-else :property="123" /> ``` - [#8088](https://github.com/biomejs/biome/pull/8088) [`0eb08e8`](https://github.com/biomejs/biome/commit/0eb08e8e34f96b5a4fd8cc67f430b614736b6d4c) Thanks [@db295](https://github.com/db295)! - Fixed [#7876](https://github.com/biomejs/biome/issues/7876): The [`noUnusedImports`](https://biomejs.dev/linter/rules/no-unused-imports/) rule now ignores imports that are used by @linkcode and @linkplain (previously supported @link and @see). The following code will no longer be a false positive: ```js import type { a } from "a" /** * {@linkcode a} */ function func() {} ``` - [#8119](https://github.com/biomejs/biome/pull/8119) [`8d64655`](https://github.com/biomejs/biome/commit/8d6465554ef9cd97f017102892f948593b0f26f1) Thanks [@ematipico](https://github.com/ematipico)! - Improved the detection of the rule `noUnnecessaryConditions`. Now the rule isn't triggered for variables that are mutated inside a module. This logic deviates from the original rule, hence `noUnnecessaryConditions` is now marked as "inspired". In the following example, `hey` starts as `false`, but then it's assigned to a string. The rule isn't triggered inside the `if` check. ```js let hey = false; function test() { hey = "string"; } if (hey) { } ``` - [#8149](https://github.com/biomejs/biome/pull/8149) [`e0a02bf`](https://github.com/biomejs/biome/commit/e0a02bf2cda1b7d32a1ce756d2c8b7883a320488) Thanks [@Netail](https://github.com/Netail)! - Fixed [#8144](https://github.com/biomejs/biome/issues/8144): Improve [`noSyncScripts`](https://biomejs.dev/linter/rules/no-sync-scripts), ignore script tags with `type="module"` as these are always non-blocking. - [#8182](https://github.com/biomejs/biome/pull/8182) [`e9f068e`](https://github.com/biomejs/biome/commit/e9f068ece0db13fc37d19d1db7e43d7643b9209f) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Fixed [#7877](https://github.com/biomejs/biome/issues/7877): Range suppressions now handle suppressed categories properly. **Valid:** ```js // biome-ignore-start lint: explanation const foo = 1; // biome-ignore-end lint: explanation ``` - [#8111](https://github.com/biomejs/biome/pull/8111) [`bf1a836`](https://github.com/biomejs/biome/commit/bf1a8364a7191b8180c4dc3e61f1287e1058e1ec) Thanks [@ryan-m-walker](https://github.com/ryan-m-walker)! - Added support for parsing and formatting the [CSS if function](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/if). **_Example_** ```css .basic-style { color: if(style(--scheme: dark): #eeeeee; else: #000000;); } ``` - [#8173](https://github.com/biomejs/biome/pull/8173) [`7fc07c1`](https://github.com/biomejs/biome/commit/7fc07c12abe755cb813b188f5c821d356c2c67c9) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#8138](https://github.com/biomejs/biome/issues/8138) by reverting an internal refactor that caused a regression to the rule `noUnusedPrivateClassMembers`. - [#8119](https://github.com/biomejs/biome/pull/8119) [`8d64655`](https://github.com/biomejs/biome/commit/8d6465554ef9cd97f017102892f948593b0f26f1) Thanks [@ematipico](https://github.com/ematipico)! - Improved the type inference engine, by resolving types for variables that are assigned to multiple values. - [#8158](https://github.com/biomejs/biome/pull/8158) [`fb1458b`](https://github.com/biomejs/biome/commit/fb1458b33c1e871ae129e14cf23d76391129eb8d) Thanks [@dyc3](https://github.com/dyc3)! - Added the `useVueValidVText` lint rule to enforce valid `v-text` directives. The rule reports when `v-text` has an argument, has modifiers, or is missing a value. Invalid: ```vue <div v-text /> <!-- missing value --> <div v-text:aaa="foo" /> <!-- has argument --> <div v-text.bbb="foo" /> <!-- has modifier --> ``` - [#8158](https://github.com/biomejs/biome/pull/8158) [`fb1458b`](https://github.com/biomejs/biome/commit/fb1458b33c1e871ae129e14cf23d76391129eb8d) Thanks [@dyc3](https://github.com/dyc3)! - Fixed `useVueValidVHtml` so that it will now flag empty strings, e.g. `v-html=""` - [#7078](https://github.com/biomejs/biome/pull/7078) [`bb7a15c`](https://github.com/biomejs/biome/commit/bb7a15c3d8fba790ef6f32f070dff1d719c18c33) Thanks [@emilyinure](https://github.com/emilyinure)! - Fixed [#6675](https://github.com/biomejs/biome/issues/6675): Now only flags noAccumulatingSpread on Object.assign when a new object is being allocated on each iteration. Before, all cases using Object.assign with reduce parameters were warned despite not making new allocations. The following code will no longer be a false positive: ```js foo.reduce((acc, bar) => Object.assign(acc, bar), {}); ``` The following cases which **do** make new allocations will continue to warn: ```js foo.reduce((acc, bar) => Object.assign({}, acc, bar), {}); ``` - [#8175](https://github.com/biomejs/biome/pull/8175) [`0c8349e`](https://github.com/biomejs/biome/commit/0c8349e6869a5bc8fafdbf23f95dcee5b56c738e) Thanks [@ryan-m-walker](https://github.com/ryan-m-walker)! - Fixed CSS formatting of dimension units to use correct casing for `Q`, `Hz` and `kHz`. **Before:** ```css .cssUnits { a: 1Q; b: 1Hz; c: 1kHz; } ``` **After:** ```css .cssUnits { a: 1Q; b: 1Hz; c: 1kHz; } ``` ## What's Changed * chore: remove gold sponsor by @ematipico in https://github.com/biomejs/biome/pull/8135 * fix: next namespace by @Netail in https://github.com/biomejs/biome/pull/8142 * fix(schema): domains and feature kind by @ematipico in https://github.com/biomejs/biome/pull/8147 * docs(lint/html): fix some html rule docs that mess up markdown rendering on the website by @dyc3 in https://github.com/biomejs/biome/pull/8154 * fix(noInvalidUseBeforeDeclaration): ignore valid use before declarations by @Conaclos in https://github.com/biomejs/biome/pull/8157 * fix: noSyncScripts type="module" by @Netail in https://github.com/biomejs/biome/pull/8149 * feat(css): add support for parsing and formatting the CSS if function by @ryan-m-walker in https://github.com/biomejs/biome/pull/8111 * chore: add regex globals by @arendjr in https://github.com/biomejs/biome/pull/8166 * ci: triggers for github merge queue by @dyc3 in https://github.com/biomejs/biome/pull/8168 * fix: correctly place await after comment by @arendjr in https://github.com/biomejs/biome/pull/8169 * fix(noUnusedImports): parse also linkcode, and not only link by @db295 in https://github.com/biomejs/biome/pull/8088 * fix(inference): improved inference for assignment types by @ematipico in https://github.com/biomejs/biome/pull/8119 * feat(lint/html/vue): add `useVueValidVText` by @dyc3 in https://github.com/biomejs/biome/pull/8158 * fix(css): updating formatting of non-lowercase CSS dimension units by @ryan-m-walker in https://github.com/biomejs/biome/pull/8175 * fix(parse/html/vue): reject whitespace before vue directive arguments by @dyc3 in https://github.com/biomejs/biome/pull/8178 * fix(biome_analyze): handle suppressed categories properly for range suppressions by @hirokiokada77 in https://github.com/biomejs/biome/pull/8182 * fix: only flag object assign in accumulators, if it is allocating a new object for each iter by @emilyinure in https://github.com/biomejs/biome/pull/7078 * fix: revert #7684 by @ematipico in https://github.com/biomejs/biome/pull/8173 * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/8161 ## New Contributors * @db295 made their first contribution in https://github.com/biomejs/biome/pull/8088 **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]