Commit 786675b
authored
chore(deps): update all non-major dependencies (#1257)
> ℹ️ **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) | | patch | `2.4.9`
→ `2.4.14` |

|

|
| [enumer](https://redirect.github.com/dmarkham/enumer) | | patch |
`1.6.1` → `1.6.3` |

|

|
| [esbuild](https://redirect.github.com/evanw/esbuild) | | minor |
`0.27.4` → `0.28.0` |

|

|
|
[github.com/alecthomas/chroma/v2](https://redirect.github.com/alecthomas/chroma)
| require | minor | `v2.23.1` → `v2.24.1` |

|

|
| [go](https://redirect.github.com/golang/go) | | patch | `1.26.1` →
`1.26.3` |

|

|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | patch |
`1.26.2` → `1.26.3` |

|

|
| [just](https://redirect.github.com/casey/just) | | minor | `1.48.0` →
`1.50.0` |

|

|
| [svu](https://redirect.github.com/caarlos0/svu) | | patch | `3.4.0` →
`3.4.1` |

|

|
| [tinygo](https://redirect.github.com/tinygo-org/tinygo) | | minor |
`0.40.1` → `0.41.1` |

|

|
| [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.11.1` →
`0.11.12` |

|

|
| [watchexec](https://redirect.github.com/watchexec/watchexec) | | patch
| `2.5.0` → `2.5.1` |

|

|
---
### Release Notes
<details>
<summary>biomejs/biome (biome)</summary>
###
[`v2.4.14`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.14):
Biome CLI v2.4.14
#### 2.4.14
##### Patch Changes
- [#​9393](https://redirect.github.com/biomejs/biome/pull/9393)
[`491b171`](https://redirect.github.com/biomejs/biome/commit/491b171e245aa1ad1063662d4408692b4fc11eae)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`useTestHooksOnTop`](https://biomejs.dev/linter/rules/use-test-hooks-on-top)
in the `test` domain. The rule flags lifecycle hooks (`beforeEach`,
`beforeAll`, `afterEach`, `afterAll`) that appear after test cases in
the same block, enforcing that hooks are defined before any test case.
- [#​10157](https://redirect.github.com/biomejs/biome/pull/10157)
[`eefc5ab`](https://redirect.github.com/biomejs/biome/commit/eefc5ab81709e78068774b0f5bc56af448a733d1)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​7882](https://redirect.github.com/biomejs/biome/issues/7882):
The HTML parser will now emit better diagnostics when it encounters a
void element with a closing tag, such as `<br></br>`. Previously, the
parser would emit multiple diagnostics with conflicting advice. Now it
emits a single diagnostic that clearly states that void elements should
not have closing tags.
- [#​10054](https://redirect.github.com/biomejs/biome/pull/10054)
[`0e9f569`](https://redirect.github.com/biomejs/biome/commit/0e9f5696b1f2dec6e0d1f81b39192bdb07ab0c1a)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
-
[`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/)
no longer misses widening from concrete object types, class instances,
object literals, tuples, functions, and regular expressions to `:
object`.
A function annotated `: object` returning an object literal:
```ts
function f(): object {
return { retry: true };
}
```
- [#​10116](https://redirect.github.com/biomejs/biome/pull/10116)
[`53269eb`](https://redirect.github.com/biomejs/biome/commit/53269ebe0a2f718213483444696b88c7e8d0e7c4)
Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed
[#​6201](https://redirect.github.com/biomejs/biome/issues/6201):
[`noUselessEscapeInRegex`](https://biomejs.dev/linter/rules/no-useless-escape-in-regex/)
no longer flags an escaped backslash followed by `-` as a useless
escape. Patterns like `/[\\-]/` are now considered valid because the
second `\` is the escaped backslash, not an unnecessary escape of the
trailing dash.
- [#​10092](https://redirect.github.com/biomejs/biome/pull/10092)
[`33d8543`](https://redirect.github.com/biomejs/biome/commit/33d8543da451e272000b84a8e29114d72923cdc1)
Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Fixed
[#​9097](https://redirect.github.com/biomejs/biome/issues/9097):
[`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/)
no longer adds a blank line between a never-matched group and a matched
group.
Given the following `organizeImports` options:
```json
{
"groups": [":NODE:", ":BLANK_LINE:", ":PACKAGE:", ":BLANK_LINE:",
":PATH:"]
}
```
The following code...
```js
// Comment
import "package";
import "./file.js";
```
...was organized as:
```diff
+
// Comment
import "package";
+
import "./file.js";
```
A blank line was added even though the group ':NODE:' doesn't match any
imports here.
`:BLANK_LINE:` between never-matched groups and matched groups are now
ignored.
The code is now organized as:
```diff
// Comment
import "package";
+
import "./file.js";
```
- [#​10138](https://redirect.github.com/biomejs/biome/pull/10138)
[`a10b6c1`](https://redirect.github.com/biomejs/biome/commit/a10b6c119d1f3862da918ce7617ee365bb534c6e)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed Vue
`v-for` handling for
[`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/)
and
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/).
Biome now recognizes variables declared by `v-for` directives and
references to iterated values in Vue templates.
- [#​10115](https://redirect.github.com/biomejs/biome/pull/10115)
[`d428d76`](https://redirect.github.com/biomejs/biome/commit/d428d76ba8be7131090c199cefa36613a332e75b)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
-
[`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/)
no longer reports false positives when a union return type's `boolean`
variant is covered by both `true` and `false` returns.
- [#​9922](https://redirect.github.com/biomejs/biome/pull/9922)
[`7acf1e0`](https://redirect.github.com/biomejs/biome/commit/7acf1e0890d1e52b1cfa940554f6ebbd1bae20b3)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the new
nursery rule
[`noReactStringRefs`](https://biomejs.dev/linter/rules/no-react-string-refs/),
which disallows legacy React string refs such as `ref="hello"` and
`this.refs.hello`.
Biome also reports template-literal refs such as ``ref={`hello`}``, so
React code can consistently migrate to callback refs, `createRef()`, or
`useRef()`.
- [#​10010](https://redirect.github.com/biomejs/biome/pull/10010)
[`f3e76ab`](https://redirect.github.com/biomejs/biome/commit/f3e76ab7befecca7cdc7a04edac1350de31029de)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed a bug
in the LSP file watcher registration so Biome now watches `.biome.json`
and `.biome.jsonc` configuration files and reloads workspace settings
when they change.
- [#​10176](https://redirect.github.com/biomejs/biome/pull/10176)
[`8a40ef8`](https://redirect.github.com/biomejs/biome/commit/8a40ef835db83277a15b4f0455b5b9b69c719ad3)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​10011](https://redirect.github.com/biomejs/biome/issues/10011):
The
[`noThisInStatic`](https://biomejs.dev/linter/rules/no-this-in-static/)
rule no longer reports `this` when it is used as the constructor target
in `new this(...)`, which is required for inherited static factory
methods.
- [#​10163](https://redirect.github.com/biomejs/biome/pull/10163)
[`6867e96`](https://redirect.github.com/biomejs/biome/commit/6867e96dacf0b96dfbefd51f95a29136d90b7bb4)
Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed
[#​9884](https://redirect.github.com/biomejs/biome/issues/9884):
The
[`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/)
auto-fix no longer corrupts source code when both an outer JSX element
and a nested JSX-valued attribute have unsorted attributes in the same
pass. Multiple unsorted groups separated by spread or shorthand
attributes within the same JSX element are now reported as a single
diagnostic.
- [#​10079](https://redirect.github.com/biomejs/biome/pull/10079)
[`d29dd19`](https://redirect.github.com/biomejs/biome/commit/d29dd1916bdfa4a13dba95cad57f61c65cb5739c)
Thanks [@​Damix48](https://redirect.github.com/Damix48)! - Fixed
false positive in `noAssignInExpressions` for Svelte `{@​const}`
blocks. Assignments in `{@​const name = value}` are now correctly
recognized as declarations rather than accidental assignments in
expressions.
- [#​10080](https://redirect.github.com/biomejs/biome/pull/10080)
[`5d8fdac`](https://redirect.github.com/biomejs/biome/commit/5d8fdac6d26987904130c2ef0db797c295922f08)
Thanks [@​Damix48](https://redirect.github.com/Damix48)! - Fixed
parsing of closing parentheses in Svelte `{#each}` block key
expressions. Biome now correctly parses method calls and other
parenthesised expressions used as keys.
For example, the following snippets are now parsed correctly:
```svelte
{#each numbers as number, index (number.toString())}
<p>{number}</p>
{/each}
{#each numbers as number (key(number))}
<p>{number}</p>
{/each}
```
- [#​10140](https://redirect.github.com/biomejs/biome/pull/10140)
[`e7024b9`](https://redirect.github.com/biomejs/biome/commit/e7024b92638090a9b8ccd064e0662f7994164621)
Thanks [@​solithcy](https://redirect.github.com/solithcy)! - Fixed
[#​10135](https://redirect.github.com/biomejs/biome/issues/10135):
Biome no longer crashes on missing Svelte template expressions.
The following code snippet longer panics:
```svelte
{#if }
<p>^ this would previously crash</p>
{/if}
{@​const }
<p> ^ this would also crash</p>
```
- [#​10111](https://redirect.github.com/biomejs/biome/pull/10111)
[`7818009`](https://redirect.github.com/biomejs/biome/commit/7818009e23e12758d00665be6faf8471ca0b0027)
Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed
[#​9997](https://redirect.github.com/biomejs/biome/issues/9997):
[`noDuplicateSelectors`](https://biomejs.dev/linter/rules/no-duplicate-selectors/)
no longer reports false positives for selectors inside `@scope` queries.
Biome now treats `@scope` as a separate at-rule context, like `@media`,
`@supports`, `@container`, and `@starting-style`.
The following snippet is no longer flagged as a duplicate:
```css
.Example {
padding: 0;
}
@​scope (.theme-dark) {
.Example {
color: white;
}
}
```
- [#​9926](https://redirect.github.com/biomejs/biome/pull/9926)
[`d62b331`](https://redirect.github.com/biomejs/biome/commit/d62b331726c1b730ca2d1c38325ce6196beee7a4)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the
nursery lint rule
[`useMathMinMax`](https://biomejs.dev/linter/rules/use-math-min-max/),
which prefers `Math.min()` and `Math.max()` over equivalent ternary
comparisons.
For example, this code:
```js
const min = a < b ? a : b;
```
is much more readable when rewritten as:
```js
const min = Math.min(a, b);
```
- [#​10115](https://redirect.github.com/biomejs/biome/pull/10115)
[`d428d76`](https://redirect.github.com/biomejs/biome/commit/d428d76ba8be7131090c199cefa36613a332e75b)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
-
[`useExhaustiveSwitchCases`](https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/)
now flags missing `true`/`false` cases for `boolean` discriminants,
including when `boolean` is a union variant.
- [#​10125](https://redirect.github.com/biomejs/biome/pull/10125)
[`a55a0b6`](https://redirect.github.com/biomejs/biome/commit/a55a0b6fe03f772316b76937b1292096cdc8a661)
Thanks [@​bmish](https://redirect.github.com/bmish)! - Fixed a
resolver bug where packages that define a typed entry point through
`package.json`'s `main` field but omit `types` were ignored during
type-aware resolution. Type-aware rules such as
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/)
can now inspect imports from those packages.
- [#​10117](https://redirect.github.com/biomejs/biome/pull/10117)
[`895e809`](https://redirect.github.com/biomejs/biome/commit/895e809dc799cd6aa70032fbb56dfe0f9c0f6f39)
Thanks [@​denizdogan](https://redirect.github.com/denizdogan)! -
Added support for the `corner-shape` family of CSS properties and the
`superellipse()`/`squircle()` value functions, so
[`noUnknownProperty`](https://biomejs.dev/linter/rules/no-unknown-property/)
and
[`noUnknownFunction`](https://biomejs.dev/linter/rules/no-unknown-function/)
no longer flag them as unknown.
New known properties: `corner-shape`, `corner-block-end-shape`,
`corner-block-start-shape`, `corner-bottom-left-shape`,
`corner-bottom-right-shape`, `corner-bottom-shape`,
`corner-end-end-shape`, `corner-end-start-shape`,
`corner-inline-end-shape`, `corner-inline-start-shape`,
`corner-left-shape`, `corner-right-shape`, `corner-start-end-shape`,
`corner-start-start-shape`, `corner-top-left-shape`,
`corner-top-right-shape`, `corner-top-shape`.
New known value functions: `superellipse()`, `squircle()`.
- [#​8620](https://redirect.github.com/biomejs/biome/pull/8620)
[`8df8f73`](https://redirect.github.com/biomejs/biome/commit/8df8f73ca1c18a688f64f304f0b9089797258a1e)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​8062](https://redirect.github.com/biomejs/biome/issues/8062):
Added support for parsing Vue `v-for` directives more accurately.
- [#​10191](https://redirect.github.com/biomejs/biome/pull/10191)
[`aa055cd`](https://redirect.github.com/biomejs/biome/commit/aa055cd74f82fac691dfa2f65dbfd255213cb884)
Thanks [@​guney](https://redirect.github.com/guney)! - Now the
rule
[`noStaticElementInteractions`](https://biomejs.dev/linter/rules/no-static-element-interactions/)
doesn't trigger custom elements.
- [#​9757](https://redirect.github.com/biomejs/biome/pull/9757)
[`2c62594`](https://redirect.github.com/biomejs/biome/commit/2c62594b84ae62fd5fa130adff917a1bcd8dfddd)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​9099](https://redirect.github.com/biomejs/biome/issues/9099):
the HTML formatter collapsing non-text children (inline elements, Svelte
expressions, comments) onto a single line when the source had them on
separate lines. Biome now preserves the user's intended line breaks for
exclusively non-text children.
For example, the following Svelte snippet is now preserved instead of
being collapsed to `<div>{name}<!-- comment --></div>`:
```svelte
<div>
{name}<!-- comment -->
</div>
```
Similarly, HTML elements like `<span>` inside a `<div>` are now
preserved when written on their own line:
```html
<div>
<span>text</span>
</div>
```
- [#​10105](https://redirect.github.com/biomejs/biome/pull/10105)
[`e7c1a6d`](https://redirect.github.com/biomejs/biome/commit/e7c1a6d5319908cf613f7fa80667e6981435508d)
Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed
[#​10039](https://redirect.github.com/biomejs/biome/issues/10039):
[`useReadonlyClassProperties`](https://biomejs.dev/linter/rules/use-readonly-class-properties/)
now detects unreassigned private members in class expressions and export
default classes, not only in class declarations.
The following patterns are now correctly flagged:
```ts
const AnonClass = class {
#prop = 123;
constructor() {
console.log(this.#prop);
}
};
export default class {
#prop = 123;
constructor() {
console.log(this.#prop);
}
}
```
- [#​10141](https://redirect.github.com/biomejs/biome/pull/10141)
[`46a77d0`](https://redirect.github.com/biomejs/biome/commit/46a77d0a35e8dbbcefeca264e8630af83b21f1d9)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Improved
[`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/)
to detect conditions that are always truthy because they check built-in
global class instances such as `Date`, `Map`, `Set`, `WeakMap`, and
`Error`.
- [#​10178](https://redirect.github.com/biomejs/biome/pull/10178)
[`7b05a89`](https://redirect.github.com/biomejs/biome/commit/7b05a893df8c9c950871b83ff1b3ae28113e8b15)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​10177](https://redirect.github.com/biomejs/biome/issues/10177):
The HTML parser no longer reports lowercase `html` or `doctype` text as
invalid after void elements such as `<br>`.
- [#​10155](https://redirect.github.com/biomejs/biome/pull/10155)
[`0d4595d`](https://redirect.github.com/biomejs/biome/commit/0d4595dae68b034bd6de3bdfd15437a34fa53cb2)
Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed
[#​10045](https://redirect.github.com/biomejs/biome/issues/10045):
the CSS formatter no longer compounds indentation inside nested
functional pseudo-classes such as `:not(:where(...))`,
`:is(:where(...))`, and similar combinations. The same fix also removes
one level of unnecessary indentation that was added inside any
pseudo-class function whose argument list wrapped onto multiple lines,
including `:nth-child(... of ...)`, `::part(...)`, and
`:active-view-transition-type(...)`.
The following snippet is now correctly formatted, matching Prettier.
```css
input:not(
:where(
[type="submit"],
[type="checkbox"],
[type="radio"],
[type="button"],
[type="reset"]
)
) {
inline-size: 100%;
}
```
- [#​10112](https://redirect.github.com/biomejs/biome/pull/10112)
[`6f0251e`](https://redirect.github.com/biomejs/biome/commit/6f0251ea12cddb6edcbf512e5608a7b502762423)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​10110](https://redirect.github.com/biomejs/biome/issues/10110):
Biome's parser now accepts surrogate code points in JavaScript string
`\u{...}` escapes.
- [#​10141](https://redirect.github.com/biomejs/biome/pull/10141)
[`46a77d0`](https://redirect.github.com/biomejs/biome/commit/46a77d0a35e8dbbcefeca264e8630af83b21f1d9)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Improved
[`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/)
to detect `object` return annotations that hide built-in global class
instances such as `Date`, `Map`, `Set`, `WeakMap`, and `Error`.
- [#​10083](https://redirect.github.com/biomejs/biome/pull/10083)
[`4a664c1`](https://redirect.github.com/biomejs/biome/commit/4a664c1c9ebee339ee4a8b971b0a345aa4dbbe70)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Added two new options to
[`noShadow`](https://biomejs.dev/linter/rules/no-shadow/), both
defaulting to `true` to match typescript-eslint's behavior.
Fixed
[#​9482](https://redirect.github.com/biomejs/biome/issues/9482):
Added `ignoreFunctionTypeParameterNameValueShadow` option. When enabled,
parameter names inside function type annotations (e.g. `(options:
unknown) => void`) are not flagged as shadowing outer variables.
Fixed
[#​7812](https://redirect.github.com/biomejs/biome/issues/7812):
Added `ignoreTypeValueShadow` option. When enabled, a value binding that
shares its name with a type-only declaration (type alias or interface)
is not flagged, since types and values occupy separate namespaces in
TypeScript.
- [#​9286](https://redirect.github.com/biomejs/biome/pull/9286)
[`52695cf`](https://redirect.github.com/biomejs/biome/commit/52695cf52b3ff42ddfcaef040cfaa00e9a93a4b7)
Thanks [@​Hugo-Polloli](https://redirect.github.com/Hugo-Polloli)!
- Fixed
[#​6316](https://redirect.github.com/biomejs/biome/issues/6316):
Biome now resolves Svelte `$store` references to the underlying `store`
binding in semantic analysis, preventing false `noUndeclaredVariables`
diagnostics when the store is declared.
- [#​10188](https://redirect.github.com/biomejs/biome/pull/10188)
[`ae659dd`](https://redirect.github.com/biomejs/biome/commit/ae659ddbd317753c4feb5e4d223b9159d272d01b)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added a new
nursery rule
[`noExcessiveNestedCallbacks`](https://biomejs.dev/linter/rules/no-excessive-nested-callbacks/),
which disallows callbacks nested deeper than the configured maximum.
- [#​9757](https://redirect.github.com/biomejs/biome/pull/9757)
[`2c62594`](https://redirect.github.com/biomejs/biome/commit/2c62594b84ae62fd5fa130adff917a1bcd8dfddd)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​9450](https://redirect.github.com/biomejs/biome/issues/9450):
the HTML formatter now correctly preserves multiline formatting for
nested `<template>` elements (e.g. `<template #body>`) when the source
has children on separate lines. Previously, the children were collapsed
onto a single line.
```diff
<template>
<UModal>
- <template #body> <p>content</p> </template>
+ <template #body>
+ <p>content</p>
+ </template>
</UModal>
</template>
```
- [#​10118](https://redirect.github.com/biomejs/biome/pull/10118)
[`c6edcb4`](https://redirect.github.com/biomejs/biome/commit/c6edcb493d42f05179167a8ff3be4549908e9d0b)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10024](https://redirect.github.com/biomejs/biome/issues/10024):
`biome migrate eslint` correctly migrates `eslint` rules that belong to
multiple Biome rules.
#### What's Changed
- chore(docs): minor updates for contributing and skills by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10098](https://redirect.github.com/biomejs/biome/pull/10098)
- fix(semantic): resolve Svelte $store references in semantic model by
[@​Hugo-Polloli](https://redirect.github.com/Hugo-Polloli) in
[#​9286](https://redirect.github.com/biomejs/biome/pull/9286)
- fix(format/html): preserve block indentation if already present in
some cases by [@​dyc3](https://redirect.github.com/dyc3) in
[#​9757](https://redirect.github.com/biomejs/biome/pull/9757)
- fix(md/formatter): nested italic by
[@​tidefield](https://redirect.github.com/tidefield) in
[#​10078](https://redirect.github.com/biomejs/biome/pull/10078)
- fix(deps): update
[@​biomejs](https://redirect.github.com/biomejs) packages by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10061](https://redirect.github.com/biomejs/biome/pull/10061)
- fix(analyzer): useReadonlyClassProperties detects non-declaration
class forms by [@​jiwon79](https://redirect.github.com/jiwon79) in
[#​10105](https://redirect.github.com/biomejs/biome/pull/10105)
- fix(noShadow): make sure it doesn't shadow types by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​10083](https://redirect.github.com/biomejs/biome/pull/10083)
- chore: prepare goverance for contractors by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​10087](https://redirect.github.com/biomejs/biome/pull/10087)
- feat(analyze/html): add some utilities to speed up lookups of multiple
attributes by [@​dyc3](https://redirect.github.com/dyc3) in
[#​10109](https://redirect.github.com/biomejs/biome/pull/10109)
- fix(lint): resolve false positive in noAssignInExpressions for Svelte
{[@​const](https://redirect.github.com/const)} blocks by
[@​Damix48](https://redirect.github.com/Damix48) in
[#​10079](https://redirect.github.com/biomejs/biome/pull/10079)
- fix(analyzer): noDuplicateSelectors false positives with scope at-rule
by [@​jiwon79](https://redirect.github.com/jiwon79) in
[#​10111](https://redirect.github.com/biomejs/biome/pull/10111)
- fix(parser): correctly consume closing parenthesis in Svelte each key
expression by [@​Damix48](https://redirect.github.com/Damix48) in
[#​10080](https://redirect.github.com/biomejs/biome/pull/10080)
- feat(lint/js): add `useTestHooksOnTop` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9393](https://redirect.github.com/biomejs/biome/pull/9393)
- fix(deps): update dependency prettier to v3.8.3 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10062](https://redirect.github.com/biomejs/biome/pull/10062)
- fix(parse/js): lex surrogate codepoints in string literal escapes by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10112](https://redirect.github.com/biomejs/biome/pull/10112)
- fix(analyzer): noUselessEscapeInRegex no longer flags `\\-` as useless
by [@​jiwon79](https://redirect.github.com/jiwon79) in
[#​10116](https://redirect.github.com/biomejs/biome/pull/10116)
- feat(css): support corner-shape, superellipse, and squircle by
[@​denizdogan](https://redirect.github.com/denizdogan) in
[#​10117](https://redirect.github.com/biomejs/biome/pull/10117)
- fix(lsp): inform clients that .biome.json(c) should also be watched by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10010](https://redirect.github.com/biomejs/biome/pull/10010)
- chore(deps): update rust crate jiff to 0.2.24 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10128](https://redirect.github.com/biomejs/biome/pull/10128)
- chore(deps): update dependency tombi to v0.9.22 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10127](https://redirect.github.com/biomejs/biome/pull/10127)
- fix(resolver): resolve typed package main entries by
[@​bmish](https://redirect.github.com/bmish) in
[#​10125](https://redirect.github.com/biomejs/biome/pull/10125)
- chore(deps): update dependency
[@​changesets/cli](https://redirect.github.com/changesets/cli) to
v2.31.0 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10132](https://redirect.github.com/biomejs/biome/pull/10132)
- chore(deps): update dependency dprint to v0.54.0 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10133](https://redirect.github.com/biomejs/biome/pull/10133)
- fix(deps): update
[@​biomejs](https://redirect.github.com/biomejs) packages by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10130](https://redirect.github.com/biomejs/biome/pull/10130)
- chore(deps): update rust crate libc to 0.2.186 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10129](https://redirect.github.com/biomejs/biome/pull/10129)
- chore(deps): update rust crate mimalloc to 0.1.50 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​10060](https://redirect.github.com/biomejs/biome/pull/10060)
- feat(parse/html/vue): parse v-for better by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​8620](https://redirect.github.com/biomejs/biome/pull/8620)
- feat(parse/html/vue): nested destructuring in v-for by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10136](https://redirect.github.com/biomejs/biome/pull/10136)
- fix(noCommaOperator): remove vue v-for hack by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10137](https://redirect.github.com/biomejs/biome/pull/10137)
- fix(10024): eslint generation by
[@​Netail](https://redirect.github.com/Netail) in
[#​10118](https://redirect.github.com/biomejs/biome/pull/10118)
- feat(markdown\_formatter): enable formatter ir debugger by
[@​tidefield](https://redirect.github.com/tidefield) in
[#​10144](https://redirect.github.com/biomejs/biome/pull/10144)
- fix(lint): detect misleading object returns for built-in class
instances by
[@​minseong0324](https://redirect.github.com/minseong0324) in
[#​10141](https://redirect.github.com/biomejs/biome/pull/10141)
- fix: svelte missing expression crash by
[@​solithcy](https://redirect.github.com/solithcy) in
[#​10140](https://redirect.github.com/biomejs/biome/pull/10140)
- fix(md/fmt/parser): bom, quotes, trimming by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​10040](https://redirect.github.com/biomejs/biome/pull/10040)
- fix(vue): recognize embedded bindings in v-for directives by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10138](https://redirect.github.com/biomejs/biome/pull/10138)
- feat(css\_formatter): improve SCSS include argument formatting by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10147](https://redirect.github.com/biomejs/biome/pull/10147)
- feat(css\_formatter): align SCSS map closing comments by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10149](https://redirect.github.com/biomejs/biome/pull/10149)
- fix(organizeImports): doesn't add a blank line between a never-matched
group and a matched group by
[@​Conaclos](https://redirect.github.com/Conaclos) in
[#​10092](https://redirect.github.com/biomejs/biome/pull/10092)
- fix(parser/md): handle vertical tab by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​10146](https://redirect.github.com/biomejs/biome/pull/10146)
- fix(lint): noMisleadingReturnType false positive on union with
exhausted boolean by
[@​minseong0324](https://redirect.github.com/minseong0324) in
[#​10115](https://redirect.github.com/biomejs/biome/pull/10115)
- feat(css\_formatter): include SCSS comments by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10150](https://redirect.github.com/biomejs/biome/pull/10150)
- refactor(css\_formatter): clarify SCSS include closing comments by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10153](https://redirect.github.com/biomejs/biome/pull/10153)
- fix(format/css): align selector list indentation with Prettier by
[@​jiwon79](https://redirect.github.com/jiwon79) in
[#​10155](https://redirect.github.com/biomejs/biome/pull/10155)
- fix(lint): noMisleadingReturnType false negative on object keyword by
[@​minseong0324](https://redirect.github.com/minseong0324) in
[#​10054](https://redirect.github.com/biomejs/biome/pull/10054)
- feat(css\_formatter): improve handling of SCSS trailing separator
comm… by [@​denbezrukov](https://redirect.github.com/denbezrukov)
in [#​10154](https://redirect.github.com/biomejs/biome/pull/10154)
- feat(css\_formatter): improve handling of SCSS list trailing separator
comments by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10156](https://redirect.github.com/biomejs/biome/pull/10156)
- feat(css\_formatter): improve handling of SCSS expression item line
comments by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10158](https://redirect.github.com/biomejs/biome/pull/10158)
- feat(css\_formatter): improve handling of SCSS `@at-root` selector
comments and formatting by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10160](https://redirect.github.com/biomejs/biome/pull/10160)
- feat(lint/js): add `noReactStringRefs` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9922](https://redirect.github.com/biomejs/biome/pull/9922)
- feat(lint/js): add `useMathMinMax` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9926](https://redirect.github.com/biomejs/biome/pull/9926)
- feat(css\_formatter): improve handling of SCSS `@if-else` comments and
formatting by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10162](https://redirect.github.com/biomejs/biome/pull/10162)
- feat(css\_formatter): improve handling of SCSS `@while` rule
formatting by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10164](https://redirect.github.com/biomejs/biome/pull/10164)
- feat(css\_formatter): improve handling of SCSS `@for` rule formatting
by [@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10165](https://redirect.github.com/biomejs/biome/pull/10165)
- feat(css\_formatter): improve handling of SCSS parenthesized binary
expressions formatting by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10167](https://redirect.github.com/biomejs/biome/pull/10167)
- fix(assist): useSortedAttributes no longer corrupts nested JSX
attributes by [@​jiwon79](https://redirect.github.com/jiwon79) in
[#​10163](https://redirect.github.com/biomejs/biome/pull/10163)
- feat(css\_formatter): improve handling of SCSS `@each` rule formatting
by [@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10169](https://redirect.github.com/biomejs/biome/pull/10169)
- fix(markdown\_parser): blockquote list splitting and tightness by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9990](https://redirect.github.com/biomejs/biome/pull/9990)
- chore(markdown\_parser): remove unused lexer contexts by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​10173](https://redirect.github.com/biomejs/biome/pull/10173)
- fix(parse/html): relex keywords as text in text contexts by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10178](https://redirect.github.com/biomejs/biome/pull/10178)
- feat(css\_formatter): improve handling of SCSS list with trailing
separator by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10172](https://redirect.github.com/biomejs/biome/pull/10172)
- fix(noThisInStatic): don't report `new this()` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10176](https://redirect.github.com/biomejs/biome/pull/10176)
- feat(css): support SCSS interpolated values by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10171](https://redirect.github.com/biomejs/biome/pull/10171)
- feat(css\_formatter): improve handling of SCSS `@use` and `@forward`
rule formatting by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10180](https://redirect.github.com/biomejs/biome/pull/10180)
- fix(markdown\_parser): stop nested lazy lists from swallowing fences
by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​10170](https://redirect.github.com/biomejs/biome/pull/10170)
- feat(css): add support for SCSS media query interpolation by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10181](https://redirect.github.com/biomejs/biome/pull/10181)
- feat(css\_formatter): improve handling of spacing for SCSS unary
expressions and functions by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10182](https://redirect.github.com/biomejs/biome/pull/10182)
- feat(lint/js): add `noExcessiveNestedCallbacks` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​10188](https://redirect.github.com/biomejs/biome/pull/10188)
- fix(markdown\_parser): keep lazy link references as text by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​10189](https://redirect.github.com/biomejs/biome/pull/10189)
- fix(lint/a11y/noStaticElementInteractions): exclude custom elements by
[@​guney](https://redirect.github.com/guney) in
[#​10191](https://redirect.github.com/biomejs/biome/pull/10191)
- fix(parse/html): improve the diagnostics when void elements have a
closing tag by [@​dyc3](https://redirect.github.com/dyc3) in
[#​10157](https://redirect.github.com/biomejs/biome/pull/10157)
- ci: release by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in [#​10100](https://redirect.github.com/biomejs/biome/pull/10100)
#### New Contributors
- [@​Hugo-Polloli](https://redirect.github.com/Hugo-Polloli) made
their first contribution in
[#​9286](https://redirect.github.com/biomejs/biome/pull/9286)
- [@​Damix48](https://redirect.github.com/Damix48) made their
first contribution in
[#​10079](https://redirect.github.com/biomejs/biome/pull/10079)
- [@​denizdogan](https://redirect.github.com/denizdogan) made
their first contribution in
[#​10117](https://redirect.github.com/biomejs/biome/pull/10117)
- [@​solithcy](https://redirect.github.com/solithcy) made their
first contribution in
[#​10140](https://redirect.github.com/biomejs/biome/pull/10140)
- [@​guney](https://redirect.github.com/guney) made their first
contribution in
[#​10191](https://redirect.github.com/biomejs/biome/pull/10191)
**Full Changelog**:
<https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.13...@​biomejs/biome@2.4.14>
###
[`v2.4.13`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.13):
Biome CLI v2.4.13
#### 2.4.13
##### Patch Changes
- [#​9969](https://redirect.github.com/biomejs/biome/pull/9969)
[`c5eb92b`](https://redirect.github.com/biomejs/biome/commit/c5eb92ba288ba13698b37e43617eed5339ad7007)
Thanks
[@​officialasishkumar](https://redirect.github.com/officialasishkumar)!
- Added the nursery rule
[`noUnnecessaryTemplateExpression`](https://biomejs.dev/linter/rules/no-unnecessary-template-expression/),
which disallows template literals that only contain string literal
expressions. These can be replaced with a simpler string literal.
For example, the following code triggers the rule:
```js
const a = `${"hello"}`; // can be 'hello'
const b = `${"prefix"}_suffix`; // can be 'prefix_suffix'
const c = `${"a"}${"b"}`; // can be 'ab'
```
- [#​10037](https://redirect.github.com/biomejs/biome/pull/10037)
[`f785e8c`](https://redirect.github.com/biomejs/biome/commit/f785e8c604879dd3dd17b53aae0e2feef4026c82)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Fixed
[#​9810](https://redirect.github.com/biomejs/biome/issues/9810):
[`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/)
no longer reports false positives on a getter with a matching setter in
the same namespace.
```ts
class Store {
get status(): string {
if (Math.random() > 0.5) return "loading";
return "idle";
}
set status(v: string) {}
}
```
- [#​10084](https://redirect.github.com/biomejs/biome/pull/10084)
[`5e2f90c`](https://redirect.github.com/biomejs/biome/commit/5e2f90c045b4bd7006c96a9df123303d6c24e1d8)
Thanks [@​jiwon79](https://redirect.github.com/jiwon79)! - Fixed
[#​10034](https://redirect.github.com/biomejs/biome/issues/10034):
[`noUselessEscapeInRegex`](https://biomejs.dev/linter/rules/no-useless-escape-in-regex/)
no longer flags escapes of `ClassSetReservedPunctuator` characters (`&`,
`!`, `#`, `%`, `,`, `:`, `;`, `<`, `=`, `>`, `@`, `` ` ``, `~`) inside
`v`-flag character classes as useless. These characters are reserved as
individual code points in `v`-mode, so the escape is required.
The following pattern is now considered valid:
```js
/[a-z\&]/v;
```
- [#​10063](https://redirect.github.com/biomejs/biome/pull/10063)
[`c9ffa16`](https://redirect.github.com/biomejs/biome/commit/c9ffa16491c9f8c003eb945796911564fc981b71)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Added
extra rule sources from ESLint CSS. `biome migrate eslint` should do a
bit better detecting rules in your eslint configurations.
- [#​10035](https://redirect.github.com/biomejs/biome/pull/10035)
[`946b50e`](https://redirect.github.com/biomejs/biome/commit/946b50e173e8c89a2d2b303cb159a05cbd068767)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Fixed
[#​10032](https://redirect.github.com/biomejs/biome/issues/10032):
[useIframeSandbox](https://biomejs.dev/linter/rules/use-iframe-sandbox/)
now flags if there's no initializer value.
- [#​9865](https://redirect.github.com/biomejs/biome/pull/9865)
[`68fb8d4`](https://redirect.github.com/biomejs/biome/commit/68fb8d468c01732c4283a336eca42223983df09b)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the new
nursery rule
[`useDomNodeTextContent`](https://biomejs.dev/linter/rules/use-dom-node-text-content/),
which prefers `textContent` over `innerText` for DOM node text access
and destructuring.
For example, the following snippet triggers the rule:
```js
const foo = node.innerText;
```
- [#​10023](https://redirect.github.com/biomejs/biome/pull/10023)
[`bd1e74f`](https://redirect.github.com/biomejs/biome/commit/bd1e74fd80b0cadafd091513950275e0ff75d80f)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Added a new nursery rule
[`noReactNativeDeepImports`](https://biomejs.dev/linter/rules/no-react-native-deep-imports/)
that disallows deep imports from the `react-native` package. Internal
paths like `react-native/Libraries/...` are not part of the public API
and may change between versions.
For example, the following code triggers the rule:
```js
import View from "react-native/Libraries/Components/View/View";
```
- [#​9885](https://redirect.github.com/biomejs/biome/pull/9885)
[`3dce737`](https://redirect.github.com/biomejs/biome/commit/3dce737e5050cfda7d2b9be8f809aee417f01196)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added a new
nursery rule
[`useDomQuerySelector`](https://biomejs.dev/linter/rules/use-dom-query-selector/)
that prefers `querySelector()` and `querySelectorAll()` over older DOM
query methods such as `getElementById()` and `getElementsByClassName()`.
- [#​9995](https://redirect.github.com/biomejs/biome/pull/9995)
[`4da9caf`](https://redirect.github.com/biomejs/biome/commit/4da9caf8281473177fac3332610c710b31e89546)
Thanks [@​siketyan](https://redirect.github.com/siketyan)! - Fixed
[#​9994](https://redirect.github.com/biomejs/biome/issues/9994):
Biome now parses nested CSS rules correctly when declarations follow
them inside embedded snippets.
- [#​10009](https://redirect.github.com/biomejs/biome/pull/10009)
[`b41cc5a`](https://redirect.github.com/biomejs/biome/commit/b41cc5a58c74fd6b237352c1772e64e74fcc7546)
Thanks [@​Jayllyz](https://redirect.github.com/Jayllyz)! - Fixed
[#​10004](https://redirect.github.com/biomejs/biome/issues/10004):
[`noComponentHookFactories`](https://biomejs.dev/linter/rules/no-component-hook-factories/)
no longer reports false positives for object methods and class methods.
- [#​9988](https://redirect.github.com/biomejs/biome/pull/9988)
[`eabf54a`](https://redirect.github.com/biomejs/biome/commit/eabf54ad03c6c1d63753a641c8ad1ef385e42d2b)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Tweaked
the diagnostics range for
[useAltText](https://biomejs.dev/linter/rules/use-alt-text),
[useButtonType](https://biomejs.dev/linter/rules/use-button-type),
[useHtmlLang](https://biomejs.dev/linter/rules/use-html-lang),
[useIframeTitle](https://biomejs.dev/linter/rules/use-iframe-title),
[useValidAriaRole](https://biomejs.dev/linter/rules/use-valid-aria-role)
& [useIfameSandbox](https://biomejs.dev/linter/rules/use-iframe-sandbox)
to report on the opening tag instead of the full tag.
- [#​10043](https://redirect.github.com/biomejs/biome/pull/10043)
[`fc65902`](https://redirect.github.com/biomejs/biome/commit/fc65902f17cd548ae38ff916462291b51a32e356)
Thanks [@​mujpao](https://redirect.github.com/mujpao)! - Fixed
[#​10003](https://redirect.github.com/biomejs/biome/issues/10003):
Biome no longer panics when parsing Svelte files containing `{#}`.
- [#​9815](https://redirect.github.com/biomejs/biome/pull/9815)
[`5cc83b1`](https://redirect.github.com/biomejs/biome/commit/5cc83b177830bc21dc4d6e18343f58eca4ee0de6)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Added the new
nursery rule
[`noLoopFunc`](https://biomejs.dev/linter/rules/no-loop-func/). When
enabled, it warns when a function declared inside a loop captures outer
variables that can change across iterations.
- [#​9702](https://redirect.github.com/biomejs/biome/pull/9702)
[`ef470ba`](https://redirect.github.com/biomejs/biome/commit/ef470ba2db119aa52c24f918bcef451cf2770ccb)
Thanks
[@​ryan-m-walker](https://redirect.github.com/ryan-m-walker)! -
Added the nursery rule
[`useRegexpTest`](https://biomejs.dev/linter/rules/use-regexp-test/)
that enforces `RegExp.prototype.test()` over `String.prototype.match()`
and `RegExp.prototype.exec()` in boolean contexts. `test()` returns a
boolean directly, avoiding unnecessary computation of match results.
**Invalid**
```js
if ("hello world".match(/hello/)) {
}
```
**Valid**
```js
if (/hello/.test("hello world")) {
}
```
- [#​9743](https://redirect.github.com/biomejs/biome/pull/9743)
[`245307d`](https://redirect.github.com/biomejs/biome/commit/245307dc4ee7af87f62873162107b608084d40f3)
Thanks [@​leetdavid](https://redirect.github.com/leetdavid)! -
Fixed
[#​2245](https://redirect.github.com/biomejs/biome/issues/2245):
Svelte `<script>` tag language detection when the `generics` attribute
contains `>` characters (e.g., `<script lang="ts" generics="T extends
Record<string, unknown>">`). Biome now correctly recognizes TypeScript
in such script blocks.
- [#​10046](https://redirect.github.com/biomejs/biome/pull/10046)
[`0707de7`](https://redirect.github.com/biomejs/biome/commit/0707de7d72f0c5e14f4d5c91524ad2a9d1f50b34)
Thanks [@​Conaclos](https://redirect.github.com/Conaclos)! - Fixed
[#​10038](https://redirect.github.com/biomejs/biome/issues/10038):
[`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/)
now sorts imports in TypeScript modules and declaration files.
```diff
declare module "mymodule" {
- import type { B } from "b";
import type { A } from "a";
+ import type { B } from "b";
}
```
- [#​10012](https://redirect.github.com/biomejs/biome/pull/10012)
[`94ccca9`](https://redirect.github.com/biomejs/biome/commit/94ccca96800e73732b3f26d7eb21a5e3e025e51e)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Added the nursery rule
[`noReactNativeLiteralColors`](https://biomejs.dev/linter/rules/no-react-native-literal-colors/),
which disallows color literals inside React Native styles.
The rule belongs to the `reactNative` domain. It reports properties
whose name contains `color` and whose value is a string literal when
they appear inside a `StyleSheet.create(...)` call or inside a JSX
attribute whose name contains `style`.
```jsx
// Invalid
const Hello = () => <Text style={{ backgroundColor: "#FFFFFF"
}}>hi</Text>;
const styles = StyleSheet.create({
text: { color: "red" },
});
```
```jsx
// Valid
const red = "#f00";
const styles = StyleSheet.create({
text: { color: red },
});
```
- [#​10005](https://redirect.github.com/biomejs/biome/pull/10005)
[`131019e`](https://redirect.github.com/biomejs/biome/commit/131019e161b69fd755742ba509b1c51fcb2af183)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Added the nursery rule
[`noReactNativeRawText`](https://biomejs.dev/linter/rules/no-react-native-raw-text/),
which disallows raw text outside of `<Text>` components in React Native.
The rule belongs to the new `reactNative` domain.
```jsx
// Invalid
<View>some text</View>
<View>{'some text'}</View>
```
```jsx
// Valid
<View>
<Text>some text</Text>
</View>
```
Additional components can be allowlisted through the `skip` option:
```json
{
"options": {
"skip": ["Title"]
}
}
```
- [#​9911](https://redirect.github.com/biomejs/biome/pull/9911)
[`1603f78`](https://redirect.github.com/biomejs/biome/commit/1603f7893c9e249439fc3c22c02ec1a363cc54b9)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Added the
nursery rule
[`noJsxLeakedDollar`](https://biomejs.dev/linter/rules/no-jsx-leaked-dollar),
which flags text nodes with a trailing `$` if the next sibling node is a
JSX expression. This could be an unintentional mistake, resulting in a
'$' being rendered as text in the output.
**Invalid**:
```jsx
function MyComponent({ user }) {
return <div>Hello ${user.name}</div>;
}
```
- [#​9999](https://redirect.github.com/biomejs/biome/pull/9999)
[`f42405f`](https://redirect.github.com/biomejs/biome/commit/f42405fca77302bbbca573474c59ae49f027f75d)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Fixed `noMisleadingReturnType` incorrectly flagging functions with
reassigned `let` variables.
- [#​10075](https://redirect.github.com/biomejs/biome/pull/10075)
[`295f97f`](https://redirect.github.com/biomejs/biome/commit/295f97fd538779eb9cc35b5bf54d37a90e0b5e9b)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed [`#9983`](https://redirect.github.com/biomejs/biome/issues/9983):
Biome now parses functions declared inside Svelte `#snippet` blocks
without throwing errors.
- [#​10006](https://redirect.github.com/biomejs/biome/pull/10006)
[`cf4c1c9`](https://redirect.github.com/biomejs/biome/commit/cf4c1c943a53612648d052d843aaf977652c79d6)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Fixed
[#​9810](https://redirect.github.com/biomejs/biome/issues/9810):
`noMisleadingReturnType` incorrectly flagging nested object literals
with widened properties.
- [#​10033](https://redirect.github.com/biomejs/biome/pull/10033)
[`11ddc05`](https://redirect.github.com/biomejs/biome/commit/11ddc05713a1cb85b6748c865ee9dda91235a5d1)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Added the nursery rule
[`useReactNativePlatformComponents`](https://biomejs.dev/linter/rules/use-react-native-platform-components/)
that ensures platform-specific React Native components (e.g.
`ProgressBarAndroid`, `ActivityIndicatorIOS`) are only imported in files
with a matching platform suffix. It also reports when Android and iOS
components are mixed in the same file.
The following code triggers the rule when the file does not have an
`.android.js` suffix:
```js
// file.js
import { ProgressBarAndroid } from "react-native";
```
#### What's Changed
- docs(orgnizeImports): revamp user-facing docs by
[@​Conaclos](https://redirect.github.com/Conaclos) in
[#​9987](https://redirect.github.com/biomejs/biome/pull/9987)
- fix(md): code info string, and fmt advancement by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9979](https://redirect.github.com/biomejs/biome/pull/9979)
- fix(service): detect script language in Svelte files with generics
attribute by [@​leetdavid](https://redirect.github.com/leetdavid)
in [#​9743](https://redirect.github.com/biomejs/biome/pull/9743)
- chore: abstract html tag matcher by
[@​Netail](https://redirect.github.com/Netail) in
[#​9988](https://redirect.github.com/biomejs/biome/pull/9988)
- chore(deps): update rustls-webpki to 0.103.12 by
[@​siketyan](https://redirect.github.com/siketyan) in
[#​9996](https://redirect.github.com/biomejs/biome/pull/9996)
- fix(parser/css): handle nested rules in embedded snippets by
[@​siketyan](https://redirect.github.com/siketyan) in
[#​9995](https://redirect.github.com/biomejs/biome/pull/9995)
- chore: fix some node vulnerabilities by
[@​Netail](https://redirect.github.com/Netail) in
[#​10001](https://redirect.github.com/biomejs/biome/pull/10001)
- chore: fix more node vulnerabilities by
[@​Netail](https://redirect.github.com/Netail) in
[#​10002](https://redirect.github.com/biomejs/biome/pull/10002)
- feat(lint): implement use useRegexpTest nursery rule by
[@​ryan-m-walker](https://redirect.github.com/ryan-m-walker) in
[#​9702](https://redirect.github.com/biomejs/biome/pull/9702)
- feat(css): implement shared CSS scanner for parsing SCSS
interpolations and URL bodies by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​9948](https://redirect.github.com/biomejs/biome/pull/9948)
- feat(fmt/md): ordered lists and space normalization by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9998](https://redirect.github.com/biomejs/biome/pull/9998)
- chore: update rand & thin-vec by
[@​Netail](https://redirect.github.com/Netail) in
[#​10008](https://redirect.github.com/biomejs/biome/pull/10008)
- fix(lint/js): false positives in `noComponentHookFactories` by
[@​Jayllyz](https://redirect.github.com/Jayllyz) in
[#​10009](https://redirect.github.com/biomejs/biome/pull/10009)
- feat(lint): add `noReactNativeRawText` by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​10005](https://redirect.github.com/biomejs/biome/pull/10005)
- refactor(css): rename scss declaration and module access syntax by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10014](https://redirect.github.com/biomejs/biome/pull/10014)
- fix(markdown\_parser): handle tab-separated container markers by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9965](https://redirect.github.com/biomejs/biome/pull/9965)
- chore: cleanup tests by
[@​Netail](https://redirect.github.com/Netail) in
[#​10016](https://redirect.github.com/biomejs/biome/pull/10016)
- feat(lint/js): add `useDomQuerySelector` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9885](https://redirect.github.com/biomejs/biome/pull/9885)
- test(formatter): retain formatter failures in prettier snapshots by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10018](https://redirect.github.com/biomejs/biome/pull/10018)
- feat(css): support unquoted concatenation in SCSS interpolation
expressions by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10020](https://redirect.github.com/biomejs/biome/pull/10020)
- test(css\_formatter): import prettier scss mirror by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10025](https://redirect.github.com/biomejs/biome/pull/10025)
- refactor(tests): reorganize SCSS test specs into standalone `scss`
module by [@​denbezrukov](https://redirect.github.com/denbezrukov)
in [#​10030](https://redirect.github.com/biomejs/biome/pull/10030)
- test(prettier-compare): add scss compare support by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​10031](https://redirect.github.com/biomejs/biome/pull/10031)
- fix(lint): fix false positive in noMisleadingReturnType for mutable
bindings by
[@​minseong0324](https://redirect.github.com/minseong0324) i
> ✂ **Note**
>
> PR body was truncated to here.
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- 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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] <!-- 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/alecthomas/chroma).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>1 parent 235590c commit 786675b
22 files changed
Lines changed: 15 additions & 15 deletions
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
0 commit comments