Skip to content

Commit 786675b

Browse files
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` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/biome/2.4.14?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/biome/2.4.9/2.4.14?slim=true) | | [enumer](https://redirect.github.com/dmarkham/enumer) | | patch | `1.6.1` → `1.6.3` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/enumer/1.6.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/enumer/1.6.1/1.6.3?slim=true) | | [esbuild](https://redirect.github.com/evanw/esbuild) | | minor | `0.27.4` → `0.28.0` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/esbuild/0.28.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/esbuild/0.27.4/0.28.0?slim=true) | | [github.com/alecthomas/chroma/v2](https://redirect.github.com/alecthomas/chroma) | require | minor | `v2.23.1` → `v2.24.1` | ![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2falecthomas%2fchroma%2fv2/v2.24.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2falecthomas%2fchroma%2fv2/v2.23.1/v2.24.1?slim=true) | | [go](https://redirect.github.com/golang/go) | | patch | `1.26.1` → `1.26.3` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/go/1.26.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/go/1.26.1/1.26.3?slim=true) | | [go](https://go.dev/) ([source](https://redirect.github.com/golang/go)) | toolchain | patch | `1.26.2` → `1.26.3` | ![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.26.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.26.2/1.26.3?slim=true) | | [just](https://redirect.github.com/casey/just) | | minor | `1.48.0` → `1.50.0` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/just/1.50.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/just/1.48.0/1.50.0?slim=true) | | [svu](https://redirect.github.com/caarlos0/svu) | | patch | `3.4.0` → `3.4.1` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/svu/3.4.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/svu/3.4.0/3.4.1?slim=true) | | [tinygo](https://redirect.github.com/tinygo-org/tinygo) | | minor | `0.40.1` → `0.41.1` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/tinygo/0.41.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/tinygo/0.40.1/0.41.1?slim=true) | | [uv](https://redirect.github.com/astral-sh/uv) | | patch | `0.11.1` → `0.11.12` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/uv/0.11.12?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/uv/0.11.1/0.11.12?slim=true) | | [watchexec](https://redirect.github.com/watchexec/watchexec) | | patch | `2.5.0` → `2.5.1` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/watchexec/2.5.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/watchexec/2.5.0/2.5.1?slim=true) | --- ### 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 - [#&#8203;9393](https://redirect.github.com/biomejs/biome/pull/9393) [`491b171`](https://redirect.github.com/biomejs/biome/commit/491b171e245aa1ad1063662d4408692b4fc11eae) Thanks [@&#8203;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. - [#&#8203;10157](https://redirect.github.com/biomejs/biome/pull/10157) [`eefc5ab`](https://redirect.github.com/biomejs/biome/commit/eefc5ab81709e78068774b0f5bc56af448a733d1) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;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. - [#&#8203;10054](https://redirect.github.com/biomejs/biome/pull/10054) [`0e9f569`](https://redirect.github.com/biomejs/biome/commit/0e9f5696b1f2dec6e0d1f81b39192bdb07ab0c1a) Thanks [@&#8203;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 }; } ``` - [#&#8203;10116](https://redirect.github.com/biomejs/biome/pull/10116) [`53269eb`](https://redirect.github.com/biomejs/biome/commit/53269ebe0a2f718213483444696b88c7e8d0e7c4) Thanks [@&#8203;jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#&#8203;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. - [#&#8203;10092](https://redirect.github.com/biomejs/biome/pull/10092) [`33d8543`](https://redirect.github.com/biomejs/biome/commit/33d8543da451e272000b84a8e29114d72923cdc1) Thanks [@&#8203;Conaclos](https://redirect.github.com/Conaclos)! - Fixed [#&#8203;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"; ``` - [#&#8203;10138](https://redirect.github.com/biomejs/biome/pull/10138) [`a10b6c1`](https://redirect.github.com/biomejs/biome/commit/a10b6c119d1f3862da918ce7617ee365bb534c6e) Thanks [@&#8203;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. - [#&#8203;10115](https://redirect.github.com/biomejs/biome/pull/10115) [`d428d76`](https://redirect.github.com/biomejs/biome/commit/d428d76ba8be7131090c199cefa36613a332e75b) Thanks [@&#8203;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. - [#&#8203;9922](https://redirect.github.com/biomejs/biome/pull/9922) [`7acf1e0`](https://redirect.github.com/biomejs/biome/commit/7acf1e0890d1e52b1cfa940554f6ebbd1bae20b3) Thanks [@&#8203;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()`. - [#&#8203;10010](https://redirect.github.com/biomejs/biome/pull/10010) [`f3e76ab`](https://redirect.github.com/biomejs/biome/commit/f3e76ab7befecca7cdc7a04edac1350de31029de) Thanks [@&#8203;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. - [#&#8203;10176](https://redirect.github.com/biomejs/biome/pull/10176) [`8a40ef8`](https://redirect.github.com/biomejs/biome/commit/8a40ef835db83277a15b4f0455b5b9b69c719ad3) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;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. - [#&#8203;10163](https://redirect.github.com/biomejs/biome/pull/10163) [`6867e96`](https://redirect.github.com/biomejs/biome/commit/6867e96dacf0b96dfbefd51f95a29136d90b7bb4) Thanks [@&#8203;jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#&#8203;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. - [#&#8203;10079](https://redirect.github.com/biomejs/biome/pull/10079) [`d29dd19`](https://redirect.github.com/biomejs/biome/commit/d29dd1916bdfa4a13dba95cad57f61c65cb5739c) Thanks [@&#8203;Damix48](https://redirect.github.com/Damix48)! - Fixed false positive in `noAssignInExpressions` for Svelte `{@&#8203;const}` blocks. Assignments in `{@&#8203;const name = value}` are now correctly recognized as declarations rather than accidental assignments in expressions. - [#&#8203;10080](https://redirect.github.com/biomejs/biome/pull/10080) [`5d8fdac`](https://redirect.github.com/biomejs/biome/commit/5d8fdac6d26987904130c2ef0db797c295922f08) Thanks [@&#8203;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} ``` - [#&#8203;10140](https://redirect.github.com/biomejs/biome/pull/10140) [`e7024b9`](https://redirect.github.com/biomejs/biome/commit/e7024b92638090a9b8ccd064e0662f7994164621) Thanks [@&#8203;solithcy](https://redirect.github.com/solithcy)! - Fixed [#&#8203;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} {@&#8203;const } <p> ^ this would also crash</p> ``` - [#&#8203;10111](https://redirect.github.com/biomejs/biome/pull/10111) [`7818009`](https://redirect.github.com/biomejs/biome/commit/7818009e23e12758d00665be6faf8471ca0b0027) Thanks [@&#8203;jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#&#8203;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; } @&#8203;scope (.theme-dark) { .Example { color: white; } } ``` - [#&#8203;9926](https://redirect.github.com/biomejs/biome/pull/9926) [`d62b331`](https://redirect.github.com/biomejs/biome/commit/d62b331726c1b730ca2d1c38325ce6196beee7a4) Thanks [@&#8203;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); ``` - [#&#8203;10115](https://redirect.github.com/biomejs/biome/pull/10115) [`d428d76`](https://redirect.github.com/biomejs/biome/commit/d428d76ba8be7131090c199cefa36613a332e75b) Thanks [@&#8203;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. - [#&#8203;10125](https://redirect.github.com/biomejs/biome/pull/10125) [`a55a0b6`](https://redirect.github.com/biomejs/biome/commit/a55a0b6fe03f772316b76937b1292096cdc8a661) Thanks [@&#8203;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. - [#&#8203;10117](https://redirect.github.com/biomejs/biome/pull/10117) [`895e809`](https://redirect.github.com/biomejs/biome/commit/895e809dc799cd6aa70032fbb56dfe0f9c0f6f39) Thanks [@&#8203;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()`. - [#&#8203;8620](https://redirect.github.com/biomejs/biome/pull/8620) [`8df8f73`](https://redirect.github.com/biomejs/biome/commit/8df8f73ca1c18a688f64f304f0b9089797258a1e) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;8062](https://redirect.github.com/biomejs/biome/issues/8062): Added support for parsing Vue `v-for` directives more accurately. - [#&#8203;10191](https://redirect.github.com/biomejs/biome/pull/10191) [`aa055cd`](https://redirect.github.com/biomejs/biome/commit/aa055cd74f82fac691dfa2f65dbfd255213cb884) Thanks [@&#8203;guney](https://redirect.github.com/guney)! - Now the rule [`noStaticElementInteractions`](https://biomejs.dev/linter/rules/no-static-element-interactions/) doesn't trigger custom elements. - [#&#8203;9757](https://redirect.github.com/biomejs/biome/pull/9757) [`2c62594`](https://redirect.github.com/biomejs/biome/commit/2c62594b84ae62fd5fa130adff917a1bcd8dfddd) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;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> ``` - [#&#8203;10105](https://redirect.github.com/biomejs/biome/pull/10105) [`e7c1a6d`](https://redirect.github.com/biomejs/biome/commit/e7c1a6d5319908cf613f7fa80667e6981435508d) Thanks [@&#8203;jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#&#8203;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); } } ``` - [#&#8203;10141](https://redirect.github.com/biomejs/biome/pull/10141) [`46a77d0`](https://redirect.github.com/biomejs/biome/commit/46a77d0a35e8dbbcefeca264e8630af83b21f1d9) Thanks [@&#8203;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`. - [#&#8203;10178](https://redirect.github.com/biomejs/biome/pull/10178) [`7b05a89`](https://redirect.github.com/biomejs/biome/commit/7b05a893df8c9c950871b83ff1b3ae28113e8b15) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;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>`. - [#&#8203;10155](https://redirect.github.com/biomejs/biome/pull/10155) [`0d4595d`](https://redirect.github.com/biomejs/biome/commit/0d4595dae68b034bd6de3bdfd15437a34fa53cb2) Thanks [@&#8203;jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#&#8203;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%; } ``` - [#&#8203;10112](https://redirect.github.com/biomejs/biome/pull/10112) [`6f0251e`](https://redirect.github.com/biomejs/biome/commit/6f0251ea12cddb6edcbf512e5608a7b502762423) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;10110](https://redirect.github.com/biomejs/biome/issues/10110): Biome's parser now accepts surrogate code points in JavaScript string `\u{...}` escapes. - [#&#8203;10141](https://redirect.github.com/biomejs/biome/pull/10141) [`46a77d0`](https://redirect.github.com/biomejs/biome/commit/46a77d0a35e8dbbcefeca264e8630af83b21f1d9) Thanks [@&#8203;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`. - [#&#8203;10083](https://redirect.github.com/biomejs/biome/pull/10083) [`4a664c1`](https://redirect.github.com/biomejs/biome/commit/4a664c1c9ebee339ee4a8b971b0a345aa4dbbe70) Thanks [@&#8203;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 [#&#8203;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 [#&#8203;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. - [#&#8203;9286](https://redirect.github.com/biomejs/biome/pull/9286) [`52695cf`](https://redirect.github.com/biomejs/biome/commit/52695cf52b3ff42ddfcaef040cfaa00e9a93a4b7) Thanks [@&#8203;Hugo-Polloli](https://redirect.github.com/Hugo-Polloli)! - Fixed [#&#8203;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. - [#&#8203;10188](https://redirect.github.com/biomejs/biome/pull/10188) [`ae659dd`](https://redirect.github.com/biomejs/biome/commit/ae659ddbd317753c4feb5e4d223b9159d272d01b) Thanks [@&#8203;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. - [#&#8203;9757](https://redirect.github.com/biomejs/biome/pull/9757) [`2c62594`](https://redirect.github.com/biomejs/biome/commit/2c62594b84ae62fd5fa130adff917a1bcd8dfddd) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;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> ``` - [#&#8203;10118](https://redirect.github.com/biomejs/biome/pull/10118) [`c6edcb4`](https://redirect.github.com/biomejs/biome/commit/c6edcb493d42f05179167a8ff3be4549908e9d0b) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Fixed [#&#8203;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 [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10098](https://redirect.github.com/biomejs/biome/pull/10098) - fix(semantic): resolve Svelte $store references in semantic model by [@&#8203;Hugo-Polloli](https://redirect.github.com/Hugo-Polloli) in [#&#8203;9286](https://redirect.github.com/biomejs/biome/pull/9286) - fix(format/html): preserve block indentation if already present in some cases by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9757](https://redirect.github.com/biomejs/biome/pull/9757) - fix(md/formatter): nested italic by [@&#8203;tidefield](https://redirect.github.com/tidefield) in [#&#8203;10078](https://redirect.github.com/biomejs/biome/pull/10078) - fix(deps): update [@&#8203;biomejs](https://redirect.github.com/biomejs) packages by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10061](https://redirect.github.com/biomejs/biome/pull/10061) - fix(analyzer): useReadonlyClassProperties detects non-declaration class forms by [@&#8203;jiwon79](https://redirect.github.com/jiwon79) in [#&#8203;10105](https://redirect.github.com/biomejs/biome/pull/10105) - fix(noShadow): make sure it doesn't shadow types by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;10083](https://redirect.github.com/biomejs/biome/pull/10083) - chore: prepare goverance for contractors by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;10087](https://redirect.github.com/biomejs/biome/pull/10087) - feat(analyze/html): add some utilities to speed up lookups of multiple attributes by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10109](https://redirect.github.com/biomejs/biome/pull/10109) - fix(lint): resolve false positive in noAssignInExpressions for Svelte {[@&#8203;const](https://redirect.github.com/const)} blocks by [@&#8203;Damix48](https://redirect.github.com/Damix48) in [#&#8203;10079](https://redirect.github.com/biomejs/biome/pull/10079) - fix(analyzer): noDuplicateSelectors false positives with scope at-rule by [@&#8203;jiwon79](https://redirect.github.com/jiwon79) in [#&#8203;10111](https://redirect.github.com/biomejs/biome/pull/10111) - fix(parser): correctly consume closing parenthesis in Svelte each key expression by [@&#8203;Damix48](https://redirect.github.com/Damix48) in [#&#8203;10080](https://redirect.github.com/biomejs/biome/pull/10080) - feat(lint/js): add `useTestHooksOnTop` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9393](https://redirect.github.com/biomejs/biome/pull/9393) - fix(deps): update dependency prettier to v3.8.3 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10062](https://redirect.github.com/biomejs/biome/pull/10062) - fix(parse/js): lex surrogate codepoints in string literal escapes by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10112](https://redirect.github.com/biomejs/biome/pull/10112) - fix(analyzer): noUselessEscapeInRegex no longer flags `\\-` as useless by [@&#8203;jiwon79](https://redirect.github.com/jiwon79) in [#&#8203;10116](https://redirect.github.com/biomejs/biome/pull/10116) - feat(css): support corner-shape, superellipse, and squircle by [@&#8203;denizdogan](https://redirect.github.com/denizdogan) in [#&#8203;10117](https://redirect.github.com/biomejs/biome/pull/10117) - fix(lsp): inform clients that .biome.json(c) should also be watched by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10010](https://redirect.github.com/biomejs/biome/pull/10010) - chore(deps): update rust crate jiff to 0.2.24 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10128](https://redirect.github.com/biomejs/biome/pull/10128) - chore(deps): update dependency tombi to v0.9.22 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10127](https://redirect.github.com/biomejs/biome/pull/10127) - fix(resolver): resolve typed package main entries by [@&#8203;bmish](https://redirect.github.com/bmish) in [#&#8203;10125](https://redirect.github.com/biomejs/biome/pull/10125) - chore(deps): update dependency [@&#8203;changesets/cli](https://redirect.github.com/changesets/cli) to v2.31.0 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10132](https://redirect.github.com/biomejs/biome/pull/10132) - chore(deps): update dependency dprint to v0.54.0 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10133](https://redirect.github.com/biomejs/biome/pull/10133) - fix(deps): update [@&#8203;biomejs](https://redirect.github.com/biomejs) packages by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10130](https://redirect.github.com/biomejs/biome/pull/10130) - chore(deps): update rust crate libc to 0.2.186 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10129](https://redirect.github.com/biomejs/biome/pull/10129) - chore(deps): update rust crate mimalloc to 0.1.50 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;10060](https://redirect.github.com/biomejs/biome/pull/10060) - feat(parse/html/vue): parse v-for better by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;8620](https://redirect.github.com/biomejs/biome/pull/8620) - feat(parse/html/vue): nested destructuring in v-for by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10136](https://redirect.github.com/biomejs/biome/pull/10136) - fix(noCommaOperator): remove vue v-for hack by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10137](https://redirect.github.com/biomejs/biome/pull/10137) - fix(10024): eslint generation by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;10118](https://redirect.github.com/biomejs/biome/pull/10118) - feat(markdown\_formatter): enable formatter ir debugger by [@&#8203;tidefield](https://redirect.github.com/tidefield) in [#&#8203;10144](https://redirect.github.com/biomejs/biome/pull/10144) - fix(lint): detect misleading object returns for built-in class instances by [@&#8203;minseong0324](https://redirect.github.com/minseong0324) in [#&#8203;10141](https://redirect.github.com/biomejs/biome/pull/10141) - fix: svelte missing expression crash by [@&#8203;solithcy](https://redirect.github.com/solithcy) in [#&#8203;10140](https://redirect.github.com/biomejs/biome/pull/10140) - fix(md/fmt/parser): bom, quotes, trimming by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;10040](https://redirect.github.com/biomejs/biome/pull/10040) - fix(vue): recognize embedded bindings in v-for directives by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10138](https://redirect.github.com/biomejs/biome/pull/10138) - feat(css\_formatter): improve SCSS include argument formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10147](https://redirect.github.com/biomejs/biome/pull/10147) - feat(css\_formatter): align SCSS map closing comments by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;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 [@&#8203;Conaclos](https://redirect.github.com/Conaclos) in [#&#8203;10092](https://redirect.github.com/biomejs/biome/pull/10092) - fix(parser/md): handle vertical tab by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;10146](https://redirect.github.com/biomejs/biome/pull/10146) - fix(lint): noMisleadingReturnType false positive on union with exhausted boolean by [@&#8203;minseong0324](https://redirect.github.com/minseong0324) in [#&#8203;10115](https://redirect.github.com/biomejs/biome/pull/10115) - feat(css\_formatter): include SCSS comments by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10150](https://redirect.github.com/biomejs/biome/pull/10150) - refactor(css\_formatter): clarify SCSS include closing comments by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10153](https://redirect.github.com/biomejs/biome/pull/10153) - fix(format/css): align selector list indentation with Prettier by [@&#8203;jiwon79](https://redirect.github.com/jiwon79) in [#&#8203;10155](https://redirect.github.com/biomejs/biome/pull/10155) - fix(lint): noMisleadingReturnType false negative on object keyword by [@&#8203;minseong0324](https://redirect.github.com/minseong0324) in [#&#8203;10054](https://redirect.github.com/biomejs/biome/pull/10054) - feat(css\_formatter): improve handling of SCSS trailing separator comm… by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10154](https://redirect.github.com/biomejs/biome/pull/10154) - feat(css\_formatter): improve handling of SCSS list trailing separator comments by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10156](https://redirect.github.com/biomejs/biome/pull/10156) - feat(css\_formatter): improve handling of SCSS expression item line comments by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10158](https://redirect.github.com/biomejs/biome/pull/10158) - feat(css\_formatter): improve handling of SCSS `@at-root` selector comments and formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10160](https://redirect.github.com/biomejs/biome/pull/10160) - feat(lint/js): add `noReactStringRefs` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9922](https://redirect.github.com/biomejs/biome/pull/9922) - feat(lint/js): add `useMathMinMax` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9926](https://redirect.github.com/biomejs/biome/pull/9926) - feat(css\_formatter): improve handling of SCSS `@if-else` comments and formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10162](https://redirect.github.com/biomejs/biome/pull/10162) - feat(css\_formatter): improve handling of SCSS `@while` rule formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10164](https://redirect.github.com/biomejs/biome/pull/10164) - feat(css\_formatter): improve handling of SCSS `@for` rule formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10165](https://redirect.github.com/biomejs/biome/pull/10165) - feat(css\_formatter): improve handling of SCSS parenthesized binary expressions formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10167](https://redirect.github.com/biomejs/biome/pull/10167) - fix(assist): useSortedAttributes no longer corrupts nested JSX attributes by [@&#8203;jiwon79](https://redirect.github.com/jiwon79) in [#&#8203;10163](https://redirect.github.com/biomejs/biome/pull/10163) - feat(css\_formatter): improve handling of SCSS `@each` rule formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10169](https://redirect.github.com/biomejs/biome/pull/10169) - fix(markdown\_parser): blockquote list splitting and tightness by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9990](https://redirect.github.com/biomejs/biome/pull/9990) - chore(markdown\_parser): remove unused lexer contexts by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;10173](https://redirect.github.com/biomejs/biome/pull/10173) - fix(parse/html): relex keywords as text in text contexts by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10178](https://redirect.github.com/biomejs/biome/pull/10178) - feat(css\_formatter): improve handling of SCSS list with trailing separator by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10172](https://redirect.github.com/biomejs/biome/pull/10172) - fix(noThisInStatic): don't report `new this()` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10176](https://redirect.github.com/biomejs/biome/pull/10176) - feat(css): support SCSS interpolated values by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10171](https://redirect.github.com/biomejs/biome/pull/10171) - feat(css\_formatter): improve handling of SCSS `@use` and `@forward` rule formatting by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10180](https://redirect.github.com/biomejs/biome/pull/10180) - fix(markdown\_parser): stop nested lazy lists from swallowing fences by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;10170](https://redirect.github.com/biomejs/biome/pull/10170) - feat(css): add support for SCSS media query interpolation by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10181](https://redirect.github.com/biomejs/biome/pull/10181) - feat(css\_formatter): improve handling of spacing for SCSS unary expressions and functions by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10182](https://redirect.github.com/biomejs/biome/pull/10182) - feat(lint/js): add `noExcessiveNestedCallbacks` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10188](https://redirect.github.com/biomejs/biome/pull/10188) - fix(markdown\_parser): keep lazy link references as text by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;10189](https://redirect.github.com/biomejs/biome/pull/10189) - fix(lint/a11y/noStaticElementInteractions): exclude custom elements by [@&#8203;guney](https://redirect.github.com/guney) in [#&#8203;10191](https://redirect.github.com/biomejs/biome/pull/10191) - fix(parse/html): improve the diagnostics when void elements have a closing tag by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;10157](https://redirect.github.com/biomejs/biome/pull/10157) - ci: release by [@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot] in [#&#8203;10100](https://redirect.github.com/biomejs/biome/pull/10100) #### New Contributors - [@&#8203;Hugo-Polloli](https://redirect.github.com/Hugo-Polloli) made their first contribution in [#&#8203;9286](https://redirect.github.com/biomejs/biome/pull/9286) - [@&#8203;Damix48](https://redirect.github.com/Damix48) made their first contribution in [#&#8203;10079](https://redirect.github.com/biomejs/biome/pull/10079) - [@&#8203;denizdogan](https://redirect.github.com/denizdogan) made their first contribution in [#&#8203;10117](https://redirect.github.com/biomejs/biome/pull/10117) - [@&#8203;solithcy](https://redirect.github.com/solithcy) made their first contribution in [#&#8203;10140](https://redirect.github.com/biomejs/biome/pull/10140) - [@&#8203;guney](https://redirect.github.com/guney) made their first contribution in [#&#8203;10191](https://redirect.github.com/biomejs/biome/pull/10191) **Full Changelog**: <https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.13...@&#8203;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 - [#&#8203;9969](https://redirect.github.com/biomejs/biome/pull/9969) [`c5eb92b`](https://redirect.github.com/biomejs/biome/commit/c5eb92ba288ba13698b37e43617eed5339ad7007) Thanks [@&#8203;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' ``` - [#&#8203;10037](https://redirect.github.com/biomejs/biome/pull/10037) [`f785e8c`](https://redirect.github.com/biomejs/biome/commit/f785e8c604879dd3dd17b53aae0e2feef4026c82) Thanks [@&#8203;minseong0324](https://redirect.github.com/minseong0324)! - Fixed [#&#8203;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) {} } ``` - [#&#8203;10084](https://redirect.github.com/biomejs/biome/pull/10084) [`5e2f90c`](https://redirect.github.com/biomejs/biome/commit/5e2f90c045b4bd7006c96a9df123303d6c24e1d8) Thanks [@&#8203;jiwon79](https://redirect.github.com/jiwon79)! - Fixed [#&#8203;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; ``` - [#&#8203;10063](https://redirect.github.com/biomejs/biome/pull/10063) [`c9ffa16`](https://redirect.github.com/biomejs/biome/commit/c9ffa16491c9f8c003eb945796911564fc981b71) Thanks [@&#8203;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. - [#&#8203;10035](https://redirect.github.com/biomejs/biome/pull/10035) [`946b50e`](https://redirect.github.com/biomejs/biome/commit/946b50e173e8c89a2d2b303cb159a05cbd068767) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Fixed [#&#8203;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. - [#&#8203;9865](https://redirect.github.com/biomejs/biome/pull/9865) [`68fb8d4`](https://redirect.github.com/biomejs/biome/commit/68fb8d468c01732c4283a336eca42223983df09b) Thanks [@&#8203;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; ``` - [#&#8203;10023](https://redirect.github.com/biomejs/biome/pull/10023) [`bd1e74f`](https://redirect.github.com/biomejs/biome/commit/bd1e74fd80b0cadafd091513950275e0ff75d80f) Thanks [@&#8203;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"; ``` - [#&#8203;9885](https://redirect.github.com/biomejs/biome/pull/9885) [`3dce737`](https://redirect.github.com/biomejs/biome/commit/3dce737e5050cfda7d2b9be8f809aee417f01196) Thanks [@&#8203;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()`. - [#&#8203;9995](https://redirect.github.com/biomejs/biome/pull/9995) [`4da9caf`](https://redirect.github.com/biomejs/biome/commit/4da9caf8281473177fac3332610c710b31e89546) Thanks [@&#8203;siketyan](https://redirect.github.com/siketyan)! - Fixed [#&#8203;9994](https://redirect.github.com/biomejs/biome/issues/9994): Biome now parses nested CSS rules correctly when declarations follow them inside embedded snippets. - [#&#8203;10009](https://redirect.github.com/biomejs/biome/pull/10009) [`b41cc5a`](https://redirect.github.com/biomejs/biome/commit/b41cc5a58c74fd6b237352c1772e64e74fcc7546) Thanks [@&#8203;Jayllyz](https://redirect.github.com/Jayllyz)! - Fixed [#&#8203;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. - [#&#8203;9988](https://redirect.github.com/biomejs/biome/pull/9988) [`eabf54a`](https://redirect.github.com/biomejs/biome/commit/eabf54ad03c6c1d63753a641c8ad1ef385e42d2b) Thanks [@&#8203;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. - [#&#8203;10043](https://redirect.github.com/biomejs/biome/pull/10043) [`fc65902`](https://redirect.github.com/biomejs/biome/commit/fc65902f17cd548ae38ff916462291b51a32e356) Thanks [@&#8203;mujpao](https://redirect.github.com/mujpao)! - Fixed [#&#8203;10003](https://redirect.github.com/biomejs/biome/issues/10003): Biome no longer panics when parsing Svelte files containing `{#}`. - [#&#8203;9815](https://redirect.github.com/biomejs/biome/pull/9815) [`5cc83b1`](https://redirect.github.com/biomejs/biome/commit/5cc83b177830bc21dc4d6e18343f58eca4ee0de6) Thanks [@&#8203;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. - [#&#8203;9702](https://redirect.github.com/biomejs/biome/pull/9702) [`ef470ba`](https://redirect.github.com/biomejs/biome/commit/ef470ba2db119aa52c24f918bcef451cf2770ccb) Thanks [@&#8203;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")) { } ``` - [#&#8203;9743](https://redirect.github.com/biomejs/biome/pull/9743) [`245307d`](https://redirect.github.com/biomejs/biome/commit/245307dc4ee7af87f62873162107b608084d40f3) Thanks [@&#8203;leetdavid](https://redirect.github.com/leetdavid)! - Fixed [#&#8203;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. - [#&#8203;10046](https://redirect.github.com/biomejs/biome/pull/10046) [`0707de7`](https://redirect.github.com/biomejs/biome/commit/0707de7d72f0c5e14f4d5c91524ad2a9d1f50b34) Thanks [@&#8203;Conaclos](https://redirect.github.com/Conaclos)! - Fixed [#&#8203;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"; } ``` - [#&#8203;10012](https://redirect.github.com/biomejs/biome/pull/10012) [`94ccca9`](https://redirect.github.com/biomejs/biome/commit/94ccca96800e73732b3f26d7eb21a5e3e025e51e) Thanks [@&#8203;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 }, }); ``` - [#&#8203;10005](https://redirect.github.com/biomejs/biome/pull/10005) [`131019e`](https://redirect.github.com/biomejs/biome/commit/131019e161b69fd755742ba509b1c51fcb2af183) Thanks [@&#8203;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"] } } ``` - [#&#8203;9911](https://redirect.github.com/biomejs/biome/pull/9911) [`1603f78`](https://redirect.github.com/biomejs/biome/commit/1603f7893c9e249439fc3c22c02ec1a363cc54b9) Thanks [@&#8203;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>; } ``` - [#&#8203;9999](https://redirect.github.com/biomejs/biome/pull/9999) [`f42405f`](https://redirect.github.com/biomejs/biome/commit/f42405fca77302bbbca573474c59ae49f027f75d) Thanks [@&#8203;minseong0324](https://redirect.github.com/minseong0324)! - Fixed `noMisleadingReturnType` incorrectly flagging functions with reassigned `let` variables. - [#&#8203;10075](https://redirect.github.com/biomejs/biome/pull/10075) [`295f97f`](https://redirect.github.com/biomejs/biome/commit/295f97fd538779eb9cc35b5bf54d37a90e0b5e9b) Thanks [@&#8203;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. - [#&#8203;10006](https://redirect.github.com/biomejs/biome/pull/10006) [`cf4c1c9`](https://redirect.github.com/biomejs/biome/commit/cf4c1c943a53612648d052d843aaf977652c79d6) Thanks [@&#8203;minseong0324](https://redirect.github.com/minseong0324)! - Fixed [#&#8203;9810](https://redirect.github.com/biomejs/biome/issues/9810): `noMisleadingReturnType` incorrectly flagging nested object literals with widened properties. - [#&#8203;10033](https://redirect.github.com/biomejs/biome/pull/10033) [`11ddc05`](https://redirect.github.com/biomejs/biome/commit/11ddc05713a1cb85b6748c865ee9dda91235a5d1) Thanks [@&#8203;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 [@&#8203;Conaclos](https://redirect.github.com/Conaclos) in [#&#8203;9987](https://redirect.github.com/biomejs/biome/pull/9987) - fix(md): code info string, and fmt advancement by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9979](https://redirect.github.com/biomejs/biome/pull/9979) - fix(service): detect script language in Svelte files with generics attribute by [@&#8203;leetdavid](https://redirect.github.com/leetdavid) in [#&#8203;9743](https://redirect.github.com/biomejs/biome/pull/9743) - chore: abstract html tag matcher by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;9988](https://redirect.github.com/biomejs/biome/pull/9988) - chore(deps): update rustls-webpki to 0.103.12 by [@&#8203;siketyan](https://redirect.github.com/siketyan) in [#&#8203;9996](https://redirect.github.com/biomejs/biome/pull/9996) - fix(parser/css): handle nested rules in embedded snippets by [@&#8203;siketyan](https://redirect.github.com/siketyan) in [#&#8203;9995](https://redirect.github.com/biomejs/biome/pull/9995) - chore: fix some node vulnerabilities by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;10001](https://redirect.github.com/biomejs/biome/pull/10001) - chore: fix more node vulnerabilities by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;10002](https://redirect.github.com/biomejs/biome/pull/10002) - feat(lint): implement use useRegexpTest nursery rule by [@&#8203;ryan-m-walker](https://redirect.github.com/ryan-m-walker) in [#&#8203;9702](https://redirect.github.com/biomejs/biome/pull/9702) - feat(css): implement shared CSS scanner for parsing SCSS interpolations and URL bodies by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;9948](https://redirect.github.com/biomejs/biome/pull/9948) - feat(fmt/md): ordered lists and space normalization by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9998](https://redirect.github.com/biomejs/biome/pull/9998) - chore: update rand & thin-vec by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;10008](https://redirect.github.com/biomejs/biome/pull/10008) - fix(lint/js): false positives in `noComponentHookFactories` by [@&#8203;Jayllyz](https://redirect.github.com/Jayllyz) in [#&#8203;10009](https://redirect.github.com/biomejs/biome/pull/10009) - feat(lint): add `noReactNativeRawText` by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;10005](https://redirect.github.com/biomejs/biome/pull/10005) - refactor(css): rename scss declaration and module access syntax by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10014](https://redirect.github.com/biomejs/biome/pull/10014) - fix(markdown\_parser): handle tab-separated container markers by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9965](https://redirect.github.com/biomejs/biome/pull/9965) - chore: cleanup tests by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;10016](https://redirect.github.com/biomejs/biome/pull/10016) - feat(lint/js): add `useDomQuerySelector` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9885](https://redirect.github.com/biomejs/biome/pull/9885) - test(formatter): retain formatter failures in prettier snapshots by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10018](https://redirect.github.com/biomejs/biome/pull/10018) - feat(css): support unquoted concatenation in SCSS interpolation expressions by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10020](https://redirect.github.com/biomejs/biome/pull/10020) - test(css\_formatter): import prettier scss mirror by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10025](https://redirect.github.com/biomejs/biome/pull/10025) - refactor(tests): reorganize SCSS test specs into standalone `scss` module by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10030](https://redirect.github.com/biomejs/biome/pull/10030) - test(prettier-compare): add scss compare support by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;10031](https://redirect.github.com/biomejs/biome/pull/10031) - fix(lint): fix false positive in noMisleadingReturnType for mutable bindings by [@&#8203;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.

bin/biome

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.biome-2.4.9.pkg
1+
.biome-2.4.14.pkg

0 commit comments

Comments
 (0)