Skip to content

Commit 2218de6

Browse files
chore(deps): update all non-major dependencies (#1236)
> ℹ️ **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.13` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/biome/2.4.13?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/biome/2.4.9/2.4.13?slim=true) | | [bit](https://redirect.github.com/alecthomas/bit) | | minor | `0.5.2` → `0.16.0` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/bit/0.16.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/bit/0.5.2/0.16.0?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/kong](https://redirect.github.com/alecthomas/kong) | require | minor | `v1.14.0` → `v1.15.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2falecthomas%2fkong/v1.15.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2falecthomas%2fkong/v1.14.0/v1.15.0?slim=true) | | [github.com/dlclark/regexp2](https://redirect.github.com/dlclark/regexp2) | require | minor | `v1.11.5` → `v1.12.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdlclark%2fregexp2/v1.12.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdlclark%2fregexp2/v1.11.5/v1.12.0?slim=true) | | [github.com/mattn/go-isatty](https://redirect.github.com/mattn/go-isatty) | require | patch | `v0.0.20` → `v0.0.22` | ![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fmattn%2fgo-isatty/v0.0.22?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fmattn%2fgo-isatty/v0.0.20/v0.0.22?slim=true) | | [go](https://redirect.github.com/golang/go) | | patch | `1.26.1` → `1.26.2` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/go/1.26.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/go/1.26.1/1.26.2?slim=true) | | [go](https://go.dev/) ([source](https://redirect.github.com/golang/go)) | toolchain | patch | `1.26.1` → `1.26.2` | ![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.26.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.26.1/1.26.2?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) | | [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.7` | ![age](https://developer.mend.io/api/mc/badges/age/hermit/uv/0.11.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/uv/0.11.1/0.11.7?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.13`](https://redirect.github.com/biomejs/biome/compare/baaacfc4cc000070742ac54d6394ed74152a204c...e31615035808fc71d47c3a8ebf1235005d999f78) ### [`v2.4.12`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.12): Biome CLI v2.4.12 #### 2.4.12 ##### Patch Changes - [#&#8203;9376](https://redirect.github.com/biomejs/biome/pull/9376) [`9701a33`](https://redirect.github.com/biomejs/biome/commit/9701a336af701c36d0fe4892f53de049f63f46f4) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the [`nursery/noIdenticalTestTitle`](https://biomejs.dev/linter/rules/no-identical-test-title) lint rule. This rule disallows using the same title for two `describe` blocks or two test cases at the same nesting level. ```js describe("foo", () => {}); describe("foo", () => { // invalid: same title as previous describe block test("baz", () => {}); test("baz", () => {}); // invalid: same title as previous test case }); ``` - [#&#8203;9889](https://redirect.github.com/biomejs/biome/pull/9889) [`7ae83f2`](https://redirect.github.com/biomejs/biome/commit/7ae83f2f60dc83eae6ef72e4cb1d6f06f3a882de) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the diagnostics for [`useForOf`](https://biomejs.dev/linter/rules/use-for-of/) to better explain the problem, why it matters, and how to fix it. - [#&#8203;9916](https://redirect.github.com/biomejs/biome/pull/9916) [`27dd7b1`](https://redirect.github.com/biomejs/biome/commit/27dd7b156b3bf9c461051b9997b277e1fee6fcb2) Thanks [@&#8203;Jayllyz](https://redirect.github.com/Jayllyz)! - Added a new nursery rule [`noComponentHookFactories`](https://biomejs.dev/linter/rules/no-component-hook-factories/), that disallows defining React components or custom hooks inside other functions. For example, the following snippets trigger the rule: ```jsx function createComponent(label) { function MyComponent() { return <div>{label}</div>; } return MyComponent; } ``` ```jsx function Parent() { function Child() { return <div />; } return <Child />; } ``` - [#&#8203;9980](https://redirect.github.com/biomejs/biome/pull/9980) [`098f1ff`](https://redirect.github.com/biomejs/biome/commit/098f1fff71e2500da57200a28870f6d6e3d4201d) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9941](https://redirect.github.com/biomejs/biome/issues/9941): Biome now emits a `warning` diagnostic when a file exceed the `files.maxSize` limit. - [#&#8203;9942](https://redirect.github.com/biomejs/biome/pull/9942) [`9956f1d`](https://redirect.github.com/biomejs/biome/commit/9956f1d1b53168f8b33792c004f741368c883ff7) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;9918](https://redirect.github.com/biomejs/biome/issues/9918): [`useConsistentTestIt`](https://biomejs.dev/linter/rules/use-consistent-test-it/) no longer panics when applying fixes to chained calls such as `test.for([])("x", () => {});`. - [#&#8203;9891](https://redirect.github.com/biomejs/biome/pull/9891) [`4d9ac51`](https://redirect.github.com/biomejs/biome/commit/4d9ac51352482d72d3438f2d514dbeef0edc63e0) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noGlobalObjectCalls` diagnostic to better explain why calling global objects like `Math` or `JSON` is invalid and how to fix it. - [#&#8203;9902](https://redirect.github.com/biomejs/biome/pull/9902) [`3f4d103`](https://redirect.github.com/biomejs/biome/commit/3f4d1033f7f672be2adba11bb8b7de5d8d3532fc) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9901](https://redirect.github.com/biomejs/biome/issues/9901): the command `lint --write` is now idempotent when it's run against HTML-ish files that contains scripts and styles. - [#&#8203;9891](https://redirect.github.com/biomejs/biome/pull/9891) [`4d9ac51`](https://redirect.github.com/biomejs/biome/commit/4d9ac51352482d72d3438f2d514dbeef0edc63e0) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noMultiStr` diagnostic to explain why escaped multiline strings are discouraged and what to use instead. - [#&#8203;9966](https://redirect.github.com/biomejs/biome/pull/9966) [`322675e`](https://redirect.github.com/biomejs/biome/commit/322675ed97b10b088f6af3ad7843326d2888e9d8) Thanks [@&#8203;siketyan](https://redirect.github.com/siketyan)! - Fixed [#&#8203;9113](https://redirect.github.com/biomejs/biome/issues/9113): Biome now parses and formats `@media` and other conditional blocks correctly inside embedded CSS snippets. - [#&#8203;9835](https://redirect.github.com/biomejs/biome/pull/9835) [`f8d49d9`](https://redirect.github.com/biomejs/biome/commit/f8d49d9ea27ffcfefc993449f56dd2b6572a77d6) Thanks [@&#8203;bmish](https://redirect.github.com/bmish)! - The [`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/) rule now detects floating promises through cross-module generic wrapper functions. Previously, patterns like `export const fn = trace(asyncFn)` — where `trace` preserves the function signature via a generic `<F>(fn: F): F` — were invisible to the rule when the wrapper was defined in a different file. - [#&#8203;9981](https://redirect.github.com/biomejs/biome/pull/9981) [`02bd8dd`](https://redirect.github.com/biomejs/biome/commit/02bd8dd97163281b78b840d7ae79361e26637de9) Thanks [@&#8203;siketyan](https://redirect.github.com/siketyan)! - Fixed [#&#8203;9975](https://redirect.github.com/biomejs/biome/issues/9975): Biome now parses nested CSS selectors correctly inside embedded snippets without requiring an explicit `&`. - [#&#8203;9949](https://redirect.github.com/biomejs/biome/pull/9949) [`e0ba71d`](https://redirect.github.com/biomejs/biome/commit/e0ba71d9dceec6db371c79833855e0ca4ce44a61) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the nursery rule [`useIframeSandbox`](https://biomejs.dev/linter/rules/use-iframe-sandbox), which enforces the `sandbox` attribute for `iframe` tags. **Invalid**: ```html <iframe></iframe> ``` - [#&#8203;9913](https://redirect.github.com/biomejs/biome/pull/9913) [`d417803`](https://redirect.github.com/biomejs/biome/commit/d417803eb451f3423deb8f3bf6925d76629d271f) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the nursery rule [`noJsxNamespace`](https://biomejs.dev/linter/rules/no-jsx-namespace), which disallows JSX namespace syntax. **Invalid**: ```jsx <ns:testcomponent /> ``` - [#&#8203;9892](https://redirect.github.com/biomejs/biome/pull/9892) [`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noSelfCompare` diagnostic to better explain why comparing a value to itself is suspicious and what to use for NaN checks. - [#&#8203;9861](https://redirect.github.com/biomejs/biome/pull/9861) [`2cff700`](https://redirect.github.com/biomejs/biome/commit/2cff7004182d21fb2f39b218f9fecf351210f938) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the new nursery rule [`useVarsOnTop`](https://biomejs.dev/linter/rules/use-vars-on-top/), which requires `var` declarations to appear at the top of their containing scope. For example, the following code now triggers the rule: ```js function f() { doSomething(); var value = 1; } ``` - [#&#8203;9892](https://redirect.github.com/biomejs/biome/pull/9892) [`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noThenProperty` diagnostic to better explain why exposing `then` can create thenable behavior and how to avoid it. - [#&#8203;9892](https://redirect.github.com/biomejs/biome/pull/9892) [`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noShorthandPropertyOverrides` diagnostic to explain why later shorthand declarations can unintentionally overwrite earlier longhand properties. - [#&#8203;9978](https://redirect.github.com/biomejs/biome/pull/9978) [`4847715`](https://redirect.github.com/biomejs/biome/commit/484771541c1a27747012f6f27809a30b0e0eec08) Thanks [@&#8203;mdevils](https://redirect.github.com/mdevils)! - Fixed [#&#8203;9744](https://redirect.github.com/biomejs/biome/issues/9744): [`useExhaustiveDependencies`](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/) no longer reports false positives for variables obtained via object destructuring with computed keys, e.g. `const { [KEY]: key1 } = props`. - [#&#8203;9892](https://redirect.github.com/biomejs/biome/pull/9892) [`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noRootType` diagnostic to better explain that the reported root type is disallowed by project configuration and how to proceed. - [#&#8203;9927](https://redirect.github.com/biomejs/biome/pull/9927) [`7974ab7`](https://redirect.github.com/biomejs/biome/commit/7974ab71d298b04f12c7536e1f4e0b14a9f0a74a) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added eslint-plugin-unicorn's `no-nested-ternary` as a rule source for [`noNestedTernary`](https://biomejs.dev/linter/rules/no-nested-ternary/) - [#&#8203;9873](https://redirect.github.com/biomejs/biome/pull/9873) [`19ff706`](https://redirect.github.com/biomejs/biome/commit/19ff70667001258104645abdc6015958bc8826ec) Thanks [@&#8203;minseong0324](https://redirect.github.com/minseong0324)! - [`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/) now checks class methods, object methods, and getters in addition to functions. - [#&#8203;9888](https://redirect.github.com/biomejs/biome/pull/9888) [`362b638`](https://redirect.github.com/biomejs/biome/commit/362b638b99d09c09456943668c7627a81c40b644) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Updated metadata for `biome migrate eslint` to better reflect which ESLint rules are redundant versus unsupported versus unimplemented. - [#&#8203;9892](https://redirect.github.com/biomejs/biome/pull/9892) [`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noAutofocus` diagnostic to better explain why autofocus harms accessibility outside allowed modal contexts. - [#&#8203;9982](https://redirect.github.com/biomejs/biome/pull/9982) [`d6bdf4a`](https://redirect.github.com/biomejs/biome/commit/d6bdf4a91df0cf638946009d97d7555b11f2fd8c) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved performance of [noMagicNumbers](https://biomejs.dev/linter/rules/no-magic-numbers/). Biome now maps ESLint `no-magic-numbers` sources more accurately during `biome migrate eslint`. - [#&#8203;9889](https://redirect.github.com/biomejs/biome/pull/9889) [`7ae83f2`](https://redirect.github.com/biomejs/biome/commit/7ae83f2f60dc83eae6ef72e4cb1d6f06f3a882de) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the diagnostics for [`noConstantCondition`](https://biomejs.dev/linter/rules/no-constant-condition/) to better explain the problem, why it matters, and how to fix it. - [#&#8203;9866](https://redirect.github.com/biomejs/biome/pull/9866) [`40bd180`](https://redirect.github.com/biomejs/biome/commit/40bd18090895046c34105c4d5671f7c27461e18a) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added a new nursery rule [`noExcessiveSelectorClasses`](https://biomejs.dev/linter/rules/no-excessive-selector-classes/), which limits how many class selectors can appear in a single CSS selector. - [#&#8203;9796](https://redirect.github.com/biomejs/biome/pull/9796) [`f1c1363`](https://redirect.github.com/biomejs/biome/commit/f1c136340f46e5c749337a4600a560c11612d789) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added a new nursery rule [`useStringStartsEndsWith`](https://biomejs.dev/linter/rules/use-string-starts-ends-with/), which prefers `startsWith()` and `endsWith()` over verbose string prefix and suffix checks. The rule uses type information, so it only reports on strings and skips array lookups such as `items[0] === "a"`. - [#&#8203;9942](https://redirect.github.com/biomejs/biome/pull/9942) [`9956f1d`](https://redirect.github.com/biomejs/biome/commit/9956f1d1b53168f8b33792c004f741368c883ff7) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed the safe fix for [`noSkippedTests`](https://biomejs.dev/linter/rules/no-skipped-tests/) so it no longer panics when rewriting skipped test function names such as `xit()`, `xtest()`, and `xdescribe()`. - [#&#8203;9874](https://redirect.github.com/biomejs/biome/pull/9874) [`9e570d1`](https://redirect.github.com/biomejs/biome/commit/9e570d1b431d3326f6b6e9062dd8fdcf28bf0d84) Thanks [@&#8203;minseong0324](https://redirect.github.com/minseong0324)! - Type-aware lint rules now resolve members through `Pick<T, K>` and `Omit<T, K>` utility types. - [#&#8203;9909](https://redirect.github.com/biomejs/biome/pull/9909) [`0d0e611`](https://redirect.github.com/biomejs/biome/commit/0d0e6118ff1ffb93d0c5d59c10abf57cecf46ccd) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the nursery rule [`useReactAsyncServerFunction`](https://biomejs.dev/linter/rules/use-react-async-server-function), which requires React server actions to be async. **Invalid:** ```js function serverFunction() { "use server"; // ... } ``` - [#&#8203;9925](https://redirect.github.com/biomejs/biome/pull/9925) [`29accb3`](https://redirect.github.com/biomejs/biome/commit/29accb3e455c7d833e3fd179c3a5400eb972b339) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9910](https://redirect.github.com/biomejs/biome/issues/9910): added support for parsing member expressions in Svelte directive properties. Biome now correctly parses directives like `in:renderer.in|global`, `use:obj.action`, and deeply nested forms like `in:a.b.c|global`. - [#&#8203;9904](https://redirect.github.com/biomejs/biome/pull/9904) [`e7775a5`](https://redirect.github.com/biomejs/biome/commit/e7775a5c7f26bc808302e6646a1ffd702ec59fce) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9626](https://redirect.github.com/biomejs/biome/issues/9626): [`noUnresolvedImports`](https://biomejs.dev/linter/rules/no-unresolved-imports/) no longer reports false positives for named imports from packages that have a corresponding `@types/*` package installed. For example, `import { useState } from "react"` with `@types/react` installed is now correctly recognised. - [#&#8203;9942](https://redirect.github.com/biomejs/biome/pull/9942) [`9956f1d`](https://redirect.github.com/biomejs/biome/commit/9956f1d1b53168f8b33792c004f741368c883ff7) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed the safe fix for [`noFocusedTests`](https://biomejs.dev/linter/rules/no-focused-tests/) so it no longer panics when rewriting focused test function names such as `fit()` and `fdescribe()`. - [#&#8203;9577](https://redirect.github.com/biomejs/biome/pull/9577) [`c499f46`](https://redirect.github.com/biomejs/biome/commit/c499f4609912b76fb5a7071a9e9c6a35bb26827a) Thanks [@&#8203;tt-a1i](https://redirect.github.com/tt-a1i)! - Added the nursery rule [`useReduceTypeParameter`](https://biomejs.dev/linter/rules/use-reduce-type-parameter/). It flags type assertions on the initial value passed to `Array#reduce` and `Array#reduceRight` and recommends using a type parameter instead. ```ts // before: type assertion on initial value arr.reduce((sum, num) => sum + num, [] as number[]); // after: type parameter on the call arr.reduce<number[]>((sum, num) => sum + num, []); ``` - [#&#8203;9895](https://redirect.github.com/biomejs/biome/pull/9895) [`1c8e1ef`](https://redirect.github.com/biomejs/biome/commit/1c8e1ef86882faabe4a461d29ab8643c18bfa83f) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added extra rule sources from react-xyz. `biome migrate eslint` should do a bit better detecting rules in your eslint configurations. - [#&#8203;9891](https://redirect.github.com/biomejs/biome/pull/9891) [`4d9ac51`](https://redirect.github.com/biomejs/biome/commit/4d9ac51352482d72d3438f2d514dbeef0edc63e0) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the `noInvalidUseBeforeDeclaration` diagnostic to better explain why using a declaration too early is problematic and how to fix it. - [#&#8203;9889](https://redirect.github.com/biomejs/biome/pull/9889) [`7ae83f2`](https://redirect.github.com/biomejs/biome/commit/7ae83f2f60dc83eae6ef72e4cb1d6f06f3a882de) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the diagnostics for [`noRedeclare`](https://biomejs.dev/linter/rules/no-redeclare/) to better explain the problem, why it matters, and how to fix it. - [#&#8203;9875](https://redirect.github.com/biomejs/biome/pull/9875) [`a951586`](https://redirect.github.com/biomejs/biome/commit/a951586fa9cfc0a1826b1c695f12b5cfdd921245) Thanks [@&#8203;minseong0324](https://redirect.github.com/minseong0324)! - Type-aware lint rules now resolve members through `Partial<T>`, `Required<T>`, and `Readonly<T>` utility types, preserving optional, readonly, and nullable member flags. #### What's Changed - fix(migrate): update some more rule metadata by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9888](https://redirect.github.com/biomejs/biome/pull/9888) - chore: extra rule sources by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;9895](https://redirect.github.com/biomejs/biome/pull/9895) - fix(core): idempotent lint write by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9902](https://redirect.github.com/biomejs/biome/pull/9902) - chore: just a small harness to prevent markdown leaking by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9906](https://redirect.github.com/biomejs/biome/pull/9906) - fix(lint/js): improve diagnostics for `noConstantCondition`, `useForOf`, `noRedeclare` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9889](https://redirect.github.com/biomejs/biome/pull/9889) - fix(resolver): resolution of namespace members by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9904](https://redirect.github.com/biomejs/biome/pull/9904) - feat(lint/js): add `noExcessiveSelectorClasses` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9866](https://redirect.github.com/biomejs/biome/pull/9866) - fix(lint/js): improve diagnostics for `noSelfCompare`, `noThenProperty`, `noShorthandPropertyOverrides`, `noRootType`, `noAutofocus` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9892](https://redirect.github.com/biomejs/biome/pull/9892) - fix(lint/js): improve diagnostics for `noGlobalObjectCalls`, `noMultiStr`, `noInvalidUseBeforeDeclaration` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9891](https://redirect.github.com/biomejs/biome/pull/9891) - feat(lint): implement useReduceTypeParameter nursery rule by [@&#8203;tt-a1i](https://redirect.github.com/tt-a1i) in [#&#8203;9577](https://redirect.github.com/biomejs/biome/pull/9577) - feat(css): extend SCSS parsing with function names, interpolated values by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;9837](https://redirect.github.com/biomejs/biome/pull/9837) - chore: ignore rand unsoundness advisory by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9923](https://redirect.github.com/biomejs/biome/pull/9923) - feat(lint/js): add `noIdenticalTestTitle` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9376](https://redirect.github.com/biomejs/biome/pull/9376) - feat(js\_analyze): implement noJsxNamespace by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;9913](https://redirect.github.com/biomejs/biome/pull/9913) - fix: main release by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;9924](https://redirect.github.com/biomejs/biome/pull/9924) - feat(lint/js): add `useStringStartsEndsWith` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9796](https://redirect.github.com/biomejs/biome/pull/9796) - feat(md/fmt): better formatting for some cases by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9917](https://redirect.github.com/biomejs/biome/pull/9917) - fix(parse/html): svelte directive member expression by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9925](https://redirect.github.com/biomejs/biome/pull/9925) - feat(js\_analyze): implement useReactAsyncServerFunction by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;9909](https://redirect.github.com/biomejs/biome/pull/9909) - feat(react/js): add noComponentHookFactories by [@&#8203;Jayllyz](https://redirect.github.com/Jayllyz) in [#&#8203;9916](https://redirect.github.com/biomejs/biome/pull/9916) - chore: add rule source for noNestedTernary by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9927](https://redirect.github.com/biomejs/biome/pull/9927) - refactor(conf): opt-in bpaf by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9920](https://redirect.github.com/biomejs/biome/pull/9920) - feat(lint): support class methods, object methods, and getters in noMisleadingReturnType by [@&#8203;minseong0324](https://redirect.github.com/minseong0324) in [#&#8203;9873](https://redirect.github.com/biomejs/biome/pull/9873) - fix(markdown\_parser): paragraph with trailing hard break absorbs following blank line by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9931](https://redirect.github.com/biomejs/biome/pull/9931) - fix(markdown\_parser): mixed bullet markers and lazy continuation in lists by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9933](https://redirect.github.com/biomejs/biome/pull/9933) - fix(useConsistentTestIt): fix panic when applying code fix by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9942](https://redirect.github.com/biomejs/biome/pull/9942) - fix(markdown\_parser): restore leading-space stripping after hard line breaks by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9934](https://redirect.github.com/biomejs/biome/pull/9934) - chore(deps): update dependency [@&#8203;types/node](https://redirect.github.com/types/node) to v24.12.2 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9954](https://redirect.github.com/biomejs/biome/pull/9954) - chore(deps): update dependency tombi to v0.9.16 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9955](https://redirect.github.com/biomejs/biome/pull/9955) - feat(type-info): add Partial, Required, and Readonly type synthesis by [@&#8203;minseong0324](https://redirect.github.com/minseong0324) in [#&#8203;9875](https://redirect.github.com/biomejs/biome/pull/9875) - chore(deps): update docker/dockerfile:1 docker digest to [`2780b5c`](https://redirect.github.com/biomejs/biome/commit/2780b5c) by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9951](https://redirect.github.com/biomejs/biome/pull/9951) - chore(deps): update rust:1.94.1-bullseye docker digest to [`f4f82b8`](https://redirect.github.com/biomejs/biome/commit/f4f82b8) by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9952](https://redirect.github.com/biomejs/biome/pull/9952) - chore(deps): update rust:1.94.1-trixie docker digest to [`e8e2bb5`](https://redirect.github.com/biomejs/biome/commit/e8e2bb5) by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9953](https://redirect.github.com/biomejs/biome/pull/9953) - chore(deps): update github-actions by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9956](https://redirect.github.com/biomejs/biome/pull/9956) - chore(deps): update rust crate tokio to 1.51.1 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9957](https://redirect.github.com/biomejs/biome/pull/9957) - chore(deps): update rust crate ureq to 3.3.0 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9958](https://redirect.github.com/biomejs/biome/pull/9958) - refactor(core): semantic model in collector by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9905](https://redirect.github.com/biomejs/biome/pull/9905) - feat(type-info): add Pick and Omit type synthesis by [@&#8203;minseong0324](https://redirect.github.com/minseong0324) in [#&#8203;9874](https://redirect.github.com/biomejs/biome/pull/9874) - chore: combine attribute impl by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;9950](https://redirect.github.com/biomejs/biome/pull/9950) - ci: combine benchmark jobs back into one workflow by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9963](https://redirect.github.com/biomejs/biome/pull/9963) - fix(parser/css): parse conditional block correctly inside embedded snippets by [@&#8203;siketyan](https://redirect.github.com/siketyan) in [#&#8203;9966](https://redirect.github.com/biomejs/biome/pull/9966) - feat(lint/js): add `useVarsOnTop` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9861](https://redirect.github.com/biomejs/biome/pull/9861) - fix(ci): checkout repository before benchmark path filtering on push by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9973](https://redirect.github.com/biomejs/biome/pull/9973) - fix(linter): detect floating promises through cross-module generic wrappers by [@&#8203;bmish](https://redirect.github.com/bmish) in [#&#8203;9835](https://redirect.github.com/biomejs/biome/pull/9835) - feat(md/fmt): autolink, setext header by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9929](https://redirect.github.com/biomejs/biome/pull/9929) - fix(core): file size diagnostic severity by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9980](https://redirect.github.com/biomejs/biome/pull/9980) - chore(skills): common mistakes in lint rules by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9972](https://redirect.github.com/biomejs/biome/pull/9972) - perf(noMagicNumbers): reduce allocations by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9982](https://redirect.github.com/biomejs/biome/pull/9982) - feat: implement useIframeSandbox by [@&#8203;Netail](https://redirect.github.com/Netail) in [#&#8203;9949](https://redirect.github.com/biomejs/biome/pull/9949) - fix(parser/css): nested selectors in embedded snippets by [@&#8203;siketyan](https://redirect.github.com/siketyan) in [#&#8203;9981](https://redirect.github.com/biomejs/biome/pull/9981) - fix(linter): `useExhaustiveDependencies` proper handling of computed keys when destructuring, fixes [#&#8203;9744](https://redirect.github.com/biomejs/biome/issues/9744) by [@&#8203;mdevils](https://redirect.github.com/mdevils) in [#&#8203;9978](https://redirect.github.com/biomejs/biome/pull/9978) - ci: release by [@&#8203;github-actions](https://redirect.github.com/github-actions)\[bot] in [#&#8203;9890](https://redirect.github.com/biomejs/biome/pull/9890) #### New Contributors - [@&#8203;bmish](https://redirect.github.com/bmish) made their first contribution in [#&#8203;9835](https://redirect.github.com/biomejs/biome/pull/9835) **Full Changelog**: <https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.11...@&#8203;biomejs/biome@2.4.12> ### [`v2.4.11`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.4.11): Biome CLI v2.4.11 #### 2.4.11 ##### Patch Changes - [#&#8203;9350](https://redirect.github.com/biomejs/biome/pull/9350) [`4af4a3a`](https://redirect.github.com/biomejs/biome/commit/4af4a3a9ca31a598e9836997b7811992eae53387) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the new nursery rule [useConsistentTestIt](https://biomejs.dev/linter/rules/use-consistent-test-it/) in the `test` domain. The rule enforces consistent use of either `it` or `test` for test functions in Jest/Vitest suites, with separate control for top-level tests and tests inside `describe` blocks. Invalid: ```js test("should fly", () => {}); // Top-level test using 'test' flagged, convert to 'it' describe("pig", () => { test("should fly", () => {}); // Test inside 'describe' using 'test' flagged, convert to 'it' }); ``` - [#&#8203;9429](https://redirect.github.com/biomejs/biome/pull/9429) [`a2f3f7e`](https://redirect.github.com/biomejs/biome/commit/a2f3f7eb3a134ccc6851ed0eec19d1ff1636ec72) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Added the new nursery lint rule [`useExplicitReturnType`](https://biomejs.dev/linter/rules/use-explicit-return-type). It reports TypeScript functions and methods that omit an explicit return type. ```ts function toString(x: any) { // rule triggered, it doesn't declare a return type return x.toString(); } ``` - [#&#8203;9828](https://redirect.github.com/biomejs/biome/pull/9828) [`9e40844`](https://redirect.github.com/biomejs/biome/commit/9e40844261cf7b8c573e340e11e3297ef08bcd60) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9484](https://redirect.github.com/biomejs/biome/issues/9484): the formatter no longer panics when formatting files that contain `graphql` tagged template literals combined with parenthesized expressions. - [#&#8203;9886](https://redirect.github.com/biomejs/biome/pull/9886) [`e7c681e`](https://redirect.github.com/biomejs/biome/commit/e7c681ecbb6aed471c914167f5d067d327792f44) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed an issue where, occasionally, some bindings and references were not properly tracked, causing false positives from [`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/) and [`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/) in Svelte, Vue, and Astro files. - [#&#8203;9760](https://redirect.github.com/biomejs/biome/pull/9760) [`5b16d18`](https://redirect.github.com/biomejs/biome/commit/5b16d187ba63800f4b6ea5057d551ae3f2fbc68c) Thanks [@&#8203;myx0m0p](https://redirect.github.com/myx0m0p)! - Fixed [#&#8203;4093](https://redirect.github.com/biomejs/biome/issues/4093): the [`noDelete`](https://biomejs.dev/linter/rules/no-delete/) rule no longer triggers for `delete process.env.FOO`, since `delete` is the documented way to remove environment variables in Node.js. - [#&#8203;9799](https://redirect.github.com/biomejs/biome/pull/9799) [`2af8efd`](https://redirect.github.com/biomejs/biome/commit/2af8efd348cfa992bc7d35683de55bb8cc583260) Thanks [@&#8203;minseong0324](https://redirect.github.com/minseong0324)! - Added the rule [`noMisleadingReturnType`](https://biomejs.dev/linter/rules/no-misleading-return-type/). The rule detects when a function's return type annotation is wider than what the implementation actually returns. ```ts // Flagged: `: string` is wider than `"loading" | "idle"` function getStatus(b: boolean): string { if (b) return "loading"; return "idle"; } ``` - [#&#8203;9880](https://redirect.github.com/biomejs/biome/pull/9880) [`7f67749`](https://redirect.github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the diagnostics for [`useFind`](https://biomejs.dev/linter/rules/use-find/) to better explain the problem, why it matters, and how to fix it. - [#&#8203;9755](https://redirect.github.com/biomejs/biome/pull/9755) [`bff7bdb`](https://redirect.github.com/biomejs/biome/commit/bff7bdb1355cdf7d219a288e31c5c5a0357e3aad) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Improved performance of fix-all operations (`--write`). Biome is now smarter when it runs lint rules and assist actions. First, it runs only rules that have code fixes, and then runs the rest of the rules. - [#&#8203;8651](https://redirect.github.com/biomejs/biome/pull/8651) [`aafca2d`](https://redirect.github.com/biomejs/biome/commit/aafca2d086eb24226a9cf1a69179561f70d02773) Thanks [@&#8203;siketyan](https://redirect.github.com/siketyan)! - Add a new lint rule `useDisposables` for JavaScript, which detects disposable objects assigned to variables without `using` or `await using` syntax. Disposable objects that implement the `Disposable` or `AsyncDisposable` interface are intended to be disposed of after use. Not disposing them can lead to resource or memory leaks, depending on the implementation. **Invalid:** ```js function createDisposable(): Disposable { return { [Symbol.dispose]() { // do something }, }; } const disposable = createDisposable(); ``` **Valid:** ```js function createDisposable(): Disposable { return { [Symbol.dispose]() { // do something }, }; } using disposable = createDisposable(); ``` - [#&#8203;9788](https://redirect.github.com/biomejs/biome/pull/9788) [`53b8e57`](https://redirect.github.com/biomejs/biome/commit/53b8e5768e33b87298f8e0e4c896957dee6f2eb6) Thanks [@&#8203;MeGaNeKoS](https://redirect.github.com/MeGaNeKoS)! - Fixed [#&#8203;7760](https://redirect.github.com/biomejs/biome/issues/7760): Added support for CSS scroll-driven animation `timeline-range-name` keyframe selectors (`cover`, `contain`, `entry`, `exit`, `entry-crossing`, `exit-crossing`). Biome no longer reports parse errors on keyframes like `entry 0% { ... }` or `exit 100% { ... }`. - [#&#8203;9728](https://redirect.github.com/biomejs/biome/pull/9728) [`5085424`](https://redirect.github.com/biomejs/biome/commit/5085424db427c7874eef7ca732f237febb49fdb1) Thanks [@&#8203;mkosei](https://redirect.github.com/mkosei)! - Fixed [#&#8203;9696](https://redirect.github.com/biomejs/biome/issues/9696): Astro frontmatter now correctly parses regular expression literals like `/\d{4}/`. - [#&#8203;9261](https://redirect.github.com/biomejs/biome/pull/9261) [`16b6c49`](https://redirect.github.com/biomejs/biome/commit/16b6c4951793c820d109a9b502e1812fcbfca764) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;8409](https://redirect.github.com/biomejs/biome/issues/8409): CSS formatter now correctly places comments after the colon in property declarations. Previously, comments that appeared after the colon in CSS property values were incorrectly moved before the property name: ```diff [lang]:lang(ja) { - /* system-ui,*/ font-family: + font-family: /* system-ui,*/ Hiragino Sans, sans-serif; } ``` - [#&#8203;9441](https://redirect.github.com/biomejs/biome/pull/9441) [`957ea4c`](https://redirect.github.com/biomejs/biome/commit/957ea4c8ebe75083ba68a98f70616c88368883c5) Thanks [@&#8203;soconnor-seeq](https://redirect.github.com/soconnor-seeq)! - Fixed [#&#8203;1630](https://redirect.github.com/biomejs/biome/issues/1630): LSP project selection now prefers the most specific project root in nested workspaces. - [#&#8203;9878](https://redirect.github.com/biomejs/biome/pull/9878) [`de6210f`](https://redirect.github.com/biomejs/biome/commit/de6210f80fa6d1dc0ca3edd395e9d8e571766bb8) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9118](https://redirect.github.com/biomejs/biome/issues/9118): [`noUnusedImports`](https://biomejs.dev/linter/rules/no-unused-imports/) no longer reports false positives for default imports used inside Svelte, Vue and Astro components. - [#&#8203;9879](https://redirect.github.com/biomejs/biome/pull/9879) [`ce7e2b7`](https://redirect.github.com/biomejs/biome/commit/ce7e2b762bc82319c39027d15e84a26f8708fc92) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed a parser diagnostic's message when vue syntax is disabled so that it no longer references the non-existant `html.parser.vue` option. This option will become available in 2.5. - [#&#8203;9880](https://redirect.github.com/biomejs/biome/pull/9880) [`7f67749`](https://redirect.github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the diagnostics for [`useRegexpExec`](https://biomejs.dev/linter/rules/use-regexp-exec/) to better explain the problem, why it matters, and how to fix it. - [#&#8203;9846](https://redirect.github.com/biomejs/biome/pull/9846) [`b7134d9`](https://redirect.github.com/biomejs/biome/commit/b7134d92413991c4394574353b76b1891160bc38) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9140](https://redirect.github.com/biomejs/biome/issues/9140): Biome now parses Astro's attribute shorthand inside `.astro` files. The following snippet no longer reports a parse error: ```astro --- const items = ['a', 'b']; --- <ul> {items.map((item) => <li {item}>row</li>)} </ul> ``` - [#&#8203;9790](https://redirect.github.com/biomejs/biome/pull/9790) [`67df09d`](https://redirect.github.com/biomejs/biome/commit/67df09d524fe49d3bb08dc45b7dfb99771e25bdd) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed [#&#8203;9781](https://redirect.github.com/biomejs/biome/issues/9781): Trailing comments after a top-level `biome-ignore-all format` suppression are now preserved instead of being dropped. This applies to JavaScript, CSS, HTML, JSONC, GraphQL, and Grit files. - [#&#8203;9745](https://redirect.github.com/biomejs/biome/pull/9745) [`d87073e`](https://redirect.github.com/biomejs/biome/commit/d87073ef5586f0cf7eb74fd0d7390a3444c591ff) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9741](https://redirect.github.com/biomejs/biome/issues/9741): the LSP server now correctly returns the [`organizeImports`](https://biomejs.dev/assist/actions/organize-imports/) code action when the client requests it via `source.organizeImports.biome` in the `only` filter. Previously, editors with `codeAction/resolve` support (e.g. Zed) received an empty response because the action was serialized with the wrong kind (`source.biome.organizeImports` instead of `source.organizeImports.biome`). - [#&#8203;9880](https://redirect.github.com/biomejs/biome/pull/9880) [`7f67749`](https://redirect.github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Improved the diagnostics for [`useArraySome`](https://biomejs.dev/linter/rules/use-array-some/) to better explain the problem, why it matters, and how to fix it. - [#&#8203;9795](https://redirect.github.com/biomejs/biome/pull/9795) [`1d09f0f`](https://redirect.github.com/biomejs/biome/commit/1d09f0fae1d0270ad603e7b494d8dffb979125aa) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Relaxed [`useExplicitType`](https://biomejs.dev/linter/rules/use-explicit-type/) for trivially inferrable types. Type annotations can now be omitted when types are trivially inferrable from: - Binary expressions (`const sum = 1 + 1`) - Comparison expressions (`const isEqual = 'a' === 'b'`, `const isTest = process.env.NODE_ENV === 'test'`) - Logical expressions (`const and = true && false`) - Class instantiation (`const date = new Date()`) - Array literals (`const arr = [1, 2, 3]`) - Conditional expressions (`const val = true ? 'yes' : 'no'`) - Function calls (`const num = Math.random()`) - Parameter defaults - any expression is now allowed (`const fn = (max = MAX_ATTEMPTS) => ...`) Comparison expressions always return `boolean`, so any operands are now allowed (including property access like `process.env.NODE_ENV`). Parameters with default values no longer require type annotations, as TypeScript can infer the type from the default value (even when referencing variables). Also removed the redundant `any` type validation from this rule. The `any` type is now only validated by the dedicated `noExplicitAny` rule, following the Single Responsibility Principle. - [#&#8203;9809](https://redirect.github.com/biomejs/biome/pull/9809) [`e8cad58`](https://redirect.github.com/biomejs/biome/commit/e8cad58a1baf8f8c935e8547da88905cfbfb05be) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Added the new nursery rule [`useQwikLoaderLocation`](https://biomejs.dev/linter/rules/use-qwik-loader-location/), which enforces that Qwik loader functions are declared in the correct location. - [#&#8203;9877](https://redirect.github.com/biomejs/biome/pull/9877) [`fc9d715`](https://redirect.github.com/biomejs/biome/commit/fc9d715a904d382fcd7fb932a05896cfbafaaa44) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9136](https://redirect.github.com/biomejs/biome/issues/9136) and [#&#8203;9653](https://redirect.github.com/biomejs/biome/issues/9653): [`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/) and [`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/) no longer report false positives on several Svelte template constructs that declare or reference bindings in the host grammar: - `{#snippet name(params)}` — the snippet name and its parameters (including object, array, rest, and nested destructuring) are now tracked. - `{@&#8203;render name(args)}` — the snippet name used at the render site is now resolved against the snippet declaration. - `{#each items as item, index (key)}` — the `item` binding (plain identifier or destructured), the optional `index`, and the optional `key` expression are now tracked. - `{@&#8203;const name = value}` — the declared name is now tracked as a binding and the initializer is analyzed for undeclared references. - `{@&#8203;debug a, b, c}` — each debugged identifier is now analyzed and reported if undeclared. - Shorthand attributes `<img {src} />` — the curly-shorthand attribute is now analyzed as an expression, so undeclared references inside it are reported. For example, the following template no longer triggers either rule: ```svelte <script> let items = []; let total = 0; </script> {#snippet figure(image)} <figure> <img src={image.src} alt={image.caption} /> <figcaption>{image.caption}</figcaption> </figure> {/snippet} {#each items as item} {@&#8203;const price = item.price} {@&#8203;render figure(item)} <span>{price}</span> {/each} {@&#8203;debug items, total} ``` - [#&#8203;9869](https://redirect.github.com/biomejs/biome/pull/9869) [`78bce77`](https://redirect.github.com/biomejs/biome/commit/78bce773a2d8776991c93a239d462fd42bf24cc4) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Updated [`noDuplicateFieldDefinitionNames`](https://biomejs.dev/linter/rules/no-duplicate-field-definition-names/) to also flag duplicate fields within type extensions, interface extensions & input extensions. - [#&#8203;9739](https://redirect.github.com/biomejs/biome/pull/9739) [`0bc2198`](https://redirect.github.com/biomejs/biome/commit/0bc2198735230c3bad14a831652543bd304fa0d6) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Fixed Grit queries that use native Biome AST node names with the native field names that are in our `.ungram` grammar files. Queries such as `JsConditionalExpression(consequent = $cons, alternate = $alt)` now compile successfully in `biome search` and grit plugins. - [#&#8203;9811](https://redirect.github.com/biomejs/biome/pull/9811) [`2dddca3`](https://redirect.github.com/biomejs/biome/commit/2dddca3f09bda92f7f43bbaf482796f5aec7a970) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Updated `noImpliedEval` to flag `new Function()` usages, as its a form of indirect `eval`, and to include `no-new-func` as a rule source. - [#&#8203;9870](https://redirect.github.com/biomejs/biome/pull/9870) [`ccf9770`](https://redirect.github.com/biomejs/biome/commit/ccf9770b37cf2d04205a5914db72c86137bca50f) Thanks [@&#8203;Netail](https://redirect.github.com/Netail)! - Marked eslint-qwik-plugin's `unused-server` as redundant since it was covered by `noUnusedVariables`. - [#&#8203;9701](https://redirect.github.com/biomejs/biome/pull/9701) [`1417c3b`](https://redirect.github.com/biomejs/biome/commit/1417c3b4ece262b1500b12c9f1da1429e4d53fc4) Thanks [@&#8203;dyc3](https://redirect.github.com/dyc3)! - Added the new nursery rule [`noUselessTypeConversion`](https://biomejs.dev/linter/rules/no-useless-type-conversion/), which reports redundant primitive conversion patterns such as `String(value)` when `value` is already a string. - [#&#8203;9248](https://redirect.github.com/biomejs/biome/pull/9248) [`49f00a3`](https://redirect.github.com/biomejs/biome/commit/49f00a38d64af131178ba4e096155d22055aa1c4) Thanks [@&#8203;pkallos](https://redirect.github.com/pkallos)! - `useNullishCoalescing` now also detects ternary expressions that check for `null` or `undefined` and suggests rewriting them with `??`. A new `ignoreTernaryTests` option allows disabling this behavior. - [#&#8203;9863](https://redirect.github.com/biomejs/biome/pull/9863) [`6a44619`](https://redirect.github.com/biomejs/biome/commit/6a4461915f1f5f161795081706b84cc8992b12dd) Thanks [@&#8203;ematipico](https://redirect.github.com/ematipico)! - Fixed [#&#8203;9690](https://redirect.github.com/biomejs/biome/issues/9690): `biome check --write` is now idempotent on HTML files that contain embedded `<style>` or `<script>` blocks. Previously, each run reported "Fixed 1 file" even when the file content did not actually change, because the embedded language formatter's output was not re-indented to match the surrounding HTML block. #### What's Changed - feat(md/fmt): format more nodes by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9713](https://redirect.github.com/biomejs/biome/pull/9713) - fix(markdown): preserve nested list indent tokens by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9717](https://redirect.github.com/biomejs/biome/pull/9717) - fix(html): handle escaped regex literals in astro frontmatter by [@&#8203;mkosei](https://redirect.github.com/mkosei) in [#&#8203;9728](https://redirect.github.com/biomejs/biome/pull/9728) - test(markdown): add regression tests for mixed list markers across blank lines by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9732](https://redirect.github.com/biomejs/biome/pull/9732) - fix(lsp): prefer most specific project root by [@&#8203;soconnor-seeq](https://redirect.github.com/soconnor-seeq) in [#&#8203;9441](https://redirect.github.com/biomejs/biome/pull/9441) - fix(markdown): fix fenced code block closing inside list items by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9730](https://redirect.github.com/biomejs/biome/pull/9730) - fix(markdown): fix HTML block parsing inside list item continuations by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9740](https://redirect.github.com/biomejs/biome/pull/9740) - fix(markdown): fix panic on multi-byte characters in emphasis context by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9735](https://redirect.github.com/biomejs/biome/pull/9735) - refactor(markdown): replace skipped trivia with formatter-safe recovery by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9746](https://redirect.github.com/biomejs/biome/pull/9746) - refactor(markdown): cleanup nits from [#&#8203;9746](https://redirect.github.com/biomejs/biome/issues/9746) by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9751](https://redirect.github.com/biomejs/biome/pull/9751) - fix(lsp): regression codeAction/resolve by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9745](https://redirect.github.com/biomejs/biome/pull/9745) - feat(lint/js): add `noUselessTypeConversion` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9701](https://redirect.github.com/biomejs/biome/pull/9701) - fix(markdown): replace panicking code with safe fallbacks in lexer by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9753](https://redirect.github.com/biomejs/biome/pull/9753) - refactor(markdown): emit continuation indent as structural CST node by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9737](https://redirect.github.com/biomejs/biome/pull/9737) - fix(markdown): fix false diagnostic on nested lists with double blank lines by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9764](https://redirect.github.com/biomejs/biome/pull/9764) - feat(css): add support for SCSS string interpolation by [@&#8203;denbezrukov](https://redirect.github.com/denbezrukov) in [#&#8203;9756](https://redirect.github.com/biomejs/biome/pull/9756) - refactor(markdown): deduplicate shared helper functions by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9766](https://redirect.github.com/biomejs/biome/pull/9766) - fix(markdown): remove debug scaffolding and parser cleanup by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9765](https://redirect.github.com/biomejs/biome/pull/9765) - refactor(flags): make variables predictable by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9769](https://redirect.github.com/biomejs/biome/pull/9769) - fix(markdown\_parser): emit MdIndentTokenList for headers inside list items by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9774](https://redirect.github.com/biomejs/biome/pull/9774) - fix(markdown\_parser): fix lazy continuation at nested list marker indent by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9776](https://redirect.github.com/biomejs/biome/pull/9776) - docs: clarify that elements in scope for useAltText is not configurable by [@&#8203;yogaraptor](https://redirect.github.com/yogaraptor) in [#&#8203;9773](https://redirect.github.com/biomejs/biome/pull/9773) - fix(markdown\_parser): fix multi-byte character panic in emphasis context by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9775](https://redirect.github.com/biomejs/biome/pull/9775) - perf(core): refactor fix-all logic by [@&#8203;ematipico](https://redirect.github.com/ematipico) in [#&#8203;9755](https://redirect.github.com/biomejs/biome/pull/9755) - feat(css): add support for scroll-driven animation keyframe selectors by [@&#8203;MeGaNeKoS](https://redirect.github.com/MeGaNeKoS) in [#&#8203;9788](https://redirect.github.com/biomejs/biome/pull/9788) - fix(format): don't remove trailing comments when formatting is suppressed by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9790](https://redirect.github.com/biomejs/biome/pull/9790) - test(markdown\_parser): add reference HTML validation and structural invariants by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9779](https://redirect.github.com/biomejs/biome/pull/9779) - fix(markdown\_parser): reject multiline inline HTML open tag when > at line start is blockquote marker by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9783](https://redirect.github.com/biomejs/biome/pull/9783) - fix: noDelete should not suggest undefined assignment for process.env by [@&#8203;myx0m0p](https://redirect.github.com/myx0m0p) in [#&#8203;9760](https://redirect.github.com/biomejs/biome/pull/9760) - feat(lint/js): add `useConsistentTestIt` by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9350](https://redirect.github.com/biomejs/biome/pull/9350) - feat(useExplicitType): relax rule for trivially inferrable types by [@&#8203;dyc3](https://redirect.github.com/dyc3) in [#&#8203;9795](https://redirect.github.com/biomejs/biome/pull/9795) - chore(deps): update dependency tombi to v0.9.13 by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9819](https://redirect.github.com/biomejs/biome/pull/9819) - fix(markdown\_parser): split bullet lists when marker type changes across blank lines by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9785](https://redirect.github.com/biomejs/biome/pull/9785) - fix(markdown\_parser): recognize setext heading inside blockquote by [@&#8203;jfmcdowell](https://redirect.github.com/jfmcdowell) in [#&#8203;9782](https://redirect.github.com/biomejs/biome/pull/9782) - chore(deps): update github-actions by [@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in [#&#8203;9823](https://redirect.github.com/biomejs/biome/pull/982 </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:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuMTQxLjMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 parent 2099887 commit 2218de6

6 files changed

Lines changed: 14 additions & 6 deletions

File tree

cmd/chroma/go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ module github.com/alecthomas/chroma/v2/cmd/chroma
22

33
go 1.22
44

5-
toolchain go1.26.1
5+
toolchain go1.26.2
66

77
replace github.com/alecthomas/chroma/v2 => ../../
88

99
require (
1010
github.com/alecthomas/chroma/v2 v2.23.1
11-
github.com/alecthomas/kong v1.14.0
11+
github.com/alecthomas/kong v1.15.0
1212
github.com/mattn/go-colorable v0.1.14
13-
github.com/mattn/go-isatty v0.0.20
13+
github.com/mattn/go-isatty v0.0.22
1414
)
1515

1616
require (

cmd/chroma/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ github.com/alecthomas/kong v1.13.0 h1:5e/7XC3ugvhP1DQBmTS+WuHtCbcv44hsohMgcvVxSr
44
github.com/alecthomas/kong v1.13.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
55
github.com/alecthomas/kong v1.14.0 h1:gFgEUZWu2ZmZ+UhyZ1bDhuutbKN1nTtJTwh19Wsn21s=
66
github.com/alecthomas/kong v1.14.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
7+
github.com/alecthomas/kong v1.15.0 h1:BVJstKbpO73zKpmIu+m/aLRrNmWwxXPIGTNin9VmLVI=
8+
github.com/alecthomas/kong v1.15.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
79
github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs=
810
github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
911
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
@@ -14,6 +16,8 @@ github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHP
1416
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
1517
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
1618
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
19+
github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
20+
github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
1721
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1822
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
1923
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=

cmd/chromad/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ module github.com/alecthomas/chroma/v2/cmd/chromad
22

33
go 1.22
44

5-
toolchain go1.26.1
5+
toolchain go1.26.2
66

77
require (
88
github.com/alecthomas/chroma/v2 v2.23.1
9-
github.com/alecthomas/kong v1.14.0
9+
github.com/alecthomas/kong v1.15.0
1010
github.com/alecthomas/kong-hcl v1.0.1
1111
github.com/gorilla/csrf v1.7.2
1212
github.com/gorilla/handlers v1.5.2

cmd/chromad/go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ github.com/alecthomas/kong v1.13.0 h1:5e/7XC3ugvhP1DQBmTS+WuHtCbcv44hsohMgcvVxSr
3232
github.com/alecthomas/kong v1.13.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
3333
github.com/alecthomas/kong v1.14.0 h1:gFgEUZWu2ZmZ+UhyZ1bDhuutbKN1nTtJTwh19Wsn21s=
3434
github.com/alecthomas/kong v1.14.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
35+
github.com/alecthomas/kong v1.15.0 h1:BVJstKbpO73zKpmIu+m/aLRrNmWwxXPIGTNin9VmLVI=
36+
github.com/alecthomas/kong v1.15.0/go.mod h1:wrlbXem1CWqUV5Vbmss5ISYhsVPkBb1Yo7YKJghju2I=
3537
github.com/alecthomas/kong-hcl v1.0.1 h1:f4svdFpEoNUwlpZj57CvfhzSnSfP/KBzMDETlwamd/s=
3638
github.com/alecthomas/kong-hcl v1.0.1/go.mod h1:6Y+MaMTZ/KQe9Qme6aSlKtql65FJE0/1O+Mu56C6UgQ=
3739
github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk=

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.22
55
require (
66
github.com/alecthomas/assert/v2 v2.11.0
77
github.com/alecthomas/repr v0.5.2
8-
github.com/dlclark/regexp2 v1.11.5
8+
github.com/dlclark/regexp2 v1.12.0
99
)
1010

1111
require github.com/hexops/gotextdiff v1.0.3 // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@ github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs
66
github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
77
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
88
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
9+
github.com/dlclark/regexp2 v1.12.0 h1:0j4c5qQmnC6XOWNjP3PIXURXN2gWx76rd3KvgdPkCz8=
10+
github.com/dlclark/regexp2 v1.12.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
911
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
1012
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=

0 commit comments

Comments
 (0)