Commit 2218de6
authored
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` |

|

|
| [bit](https://redirect.github.com/alecthomas/bit) | | minor | `0.5.2`
→ `0.16.0` |

|

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

|

|
|
[github.com/alecthomas/kong](https://redirect.github.com/alecthomas/kong)
| require | minor | `v1.14.0` → `v1.15.0` |

|

|
|
[github.com/dlclark/regexp2](https://redirect.github.com/dlclark/regexp2)
| require | minor | `v1.11.5` → `v1.12.0` |

|

|
|
[github.com/mattn/go-isatty](https://redirect.github.com/mattn/go-isatty)
| require | patch | `v0.0.20` → `v0.0.22` |

|

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

|

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

|

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

|

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

|

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

|

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

|

|
---
### 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
- [#​9376](https://redirect.github.com/biomejs/biome/pull/9376)
[`9701a33`](https://redirect.github.com/biomejs/biome/commit/9701a336af701c36d0fe4892f53de049f63f46f4)
Thanks [@​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
});
```
- [#​9889](https://redirect.github.com/biomejs/biome/pull/9889)
[`7ae83f2`](https://redirect.github.com/biomejs/biome/commit/7ae83f2f60dc83eae6ef72e4cb1d6f06f3a882de)
Thanks [@​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.
- [#​9916](https://redirect.github.com/biomejs/biome/pull/9916)
[`27dd7b1`](https://redirect.github.com/biomejs/biome/commit/27dd7b156b3bf9c461051b9997b277e1fee6fcb2)
Thanks [@​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 />;
}
```
- [#​9980](https://redirect.github.com/biomejs/biome/pull/9980)
[`098f1ff`](https://redirect.github.com/biomejs/biome/commit/098f1fff71e2500da57200a28870f6d6e3d4201d)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​9941](https://redirect.github.com/biomejs/biome/issues/9941):
Biome now emits a `warning` diagnostic when a file exceed the
`files.maxSize` limit.
- [#​9942](https://redirect.github.com/biomejs/biome/pull/9942)
[`9956f1d`](https://redirect.github.com/biomejs/biome/commit/9956f1d1b53168f8b33792c004f741368c883ff7)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​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", () => {});`.
- [#​9891](https://redirect.github.com/biomejs/biome/pull/9891)
[`4d9ac51`](https://redirect.github.com/biomejs/biome/commit/4d9ac51352482d72d3438f2d514dbeef0edc63e0)
Thanks [@​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.
- [#​9902](https://redirect.github.com/biomejs/biome/pull/9902)
[`3f4d103`](https://redirect.github.com/biomejs/biome/commit/3f4d1033f7f672be2adba11bb8b7de5d8d3532fc)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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.
- [#​9891](https://redirect.github.com/biomejs/biome/pull/9891)
[`4d9ac51`](https://redirect.github.com/biomejs/biome/commit/4d9ac51352482d72d3438f2d514dbeef0edc63e0)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Improved the
`noMultiStr` diagnostic to explain why escaped multiline strings are
discouraged and what to use instead.
- [#​9966](https://redirect.github.com/biomejs/biome/pull/9966)
[`322675e`](https://redirect.github.com/biomejs/biome/commit/322675ed97b10b088f6af3ad7843326d2888e9d8)
Thanks [@​siketyan](https://redirect.github.com/siketyan)! - Fixed
[#​9113](https://redirect.github.com/biomejs/biome/issues/9113):
Biome now parses and formats `@media` and other conditional blocks
correctly inside embedded CSS snippets.
- [#​9835](https://redirect.github.com/biomejs/biome/pull/9835)
[`f8d49d9`](https://redirect.github.com/biomejs/biome/commit/f8d49d9ea27ffcfefc993449f56dd2b6572a77d6)
Thanks [@​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.
- [#​9981](https://redirect.github.com/biomejs/biome/pull/9981)
[`02bd8dd`](https://redirect.github.com/biomejs/biome/commit/02bd8dd97163281b78b840d7ae79361e26637de9)
Thanks [@​siketyan](https://redirect.github.com/siketyan)! - Fixed
[#​9975](https://redirect.github.com/biomejs/biome/issues/9975):
Biome now parses nested CSS selectors correctly inside embedded snippets
without requiring an explicit `&`.
- [#​9949](https://redirect.github.com/biomejs/biome/pull/9949)
[`e0ba71d`](https://redirect.github.com/biomejs/biome/commit/e0ba71d9dceec6db371c79833855e0ca4ce44a61)
Thanks [@​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>
```
- [#​9913](https://redirect.github.com/biomejs/biome/pull/9913)
[`d417803`](https://redirect.github.com/biomejs/biome/commit/d417803eb451f3423deb8f3bf6925d76629d271f)
Thanks [@​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 />
```
- [#​9892](https://redirect.github.com/biomejs/biome/pull/9892)
[`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38)
Thanks [@​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.
- [#​9861](https://redirect.github.com/biomejs/biome/pull/9861)
[`2cff700`](https://redirect.github.com/biomejs/biome/commit/2cff7004182d21fb2f39b218f9fecf351210f938)
Thanks [@​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;
}
```
- [#​9892](https://redirect.github.com/biomejs/biome/pull/9892)
[`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38)
Thanks [@​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.
- [#​9892](https://redirect.github.com/biomejs/biome/pull/9892)
[`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Improved the
`noShorthandPropertyOverrides` diagnostic to explain why later shorthand
declarations can unintentionally overwrite earlier longhand properties.
- [#​9978](https://redirect.github.com/biomejs/biome/pull/9978)
[`4847715`](https://redirect.github.com/biomejs/biome/commit/484771541c1a27747012f6f27809a30b0e0eec08)
Thanks [@​mdevils](https://redirect.github.com/mdevils)! - Fixed
[#​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`.
- [#​9892](https://redirect.github.com/biomejs/biome/pull/9892)
[`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38)
Thanks [@​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.
- [#​9927](https://redirect.github.com/biomejs/biome/pull/9927)
[`7974ab7`](https://redirect.github.com/biomejs/biome/commit/7974ab71d298b04f12c7536e1f4e0b14a9f0a74a)
Thanks [@​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/)
- [#​9873](https://redirect.github.com/biomejs/biome/pull/9873)
[`19ff706`](https://redirect.github.com/biomejs/biome/commit/19ff70667001258104645abdc6015958bc8826ec)
Thanks [@​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.
- [#​9888](https://redirect.github.com/biomejs/biome/pull/9888)
[`362b638`](https://redirect.github.com/biomejs/biome/commit/362b638b99d09c09456943668c7627a81c40b644)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Updated
metadata for `biome migrate eslint` to better reflect which ESLint rules
are redundant versus unsupported versus unimplemented.
- [#​9892](https://redirect.github.com/biomejs/biome/pull/9892)
[`e75d70e`](https://redirect.github.com/biomejs/biome/commit/e75d70ef48297604b9371db5c281f6ef6a8d2a38)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Improved the
`noAutofocus` diagnostic to better explain why autofocus harms
accessibility outside allowed modal contexts.
- [#​9982](https://redirect.github.com/biomejs/biome/pull/9982)
[`d6bdf4a`](https://redirect.github.com/biomejs/biome/commit/d6bdf4a91df0cf638946009d97d7555b11f2fd8c)
Thanks [@​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`.
- [#​9889](https://redirect.github.com/biomejs/biome/pull/9889)
[`7ae83f2`](https://redirect.github.com/biomejs/biome/commit/7ae83f2f60dc83eae6ef72e4cb1d6f06f3a882de)
Thanks [@​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.
- [#​9866](https://redirect.github.com/biomejs/biome/pull/9866)
[`40bd180`](https://redirect.github.com/biomejs/biome/commit/40bd18090895046c34105c4d5671f7c27461e18a)
Thanks [@​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.
- [#​9796](https://redirect.github.com/biomejs/biome/pull/9796)
[`f1c1363`](https://redirect.github.com/biomejs/biome/commit/f1c136340f46e5c749337a4600a560c11612d789)
Thanks [@​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"`.
- [#​9942](https://redirect.github.com/biomejs/biome/pull/9942)
[`9956f1d`](https://redirect.github.com/biomejs/biome/commit/9956f1d1b53168f8b33792c004f741368c883ff7)
Thanks [@​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()`.
- [#​9874](https://redirect.github.com/biomejs/biome/pull/9874)
[`9e570d1`](https://redirect.github.com/biomejs/biome/commit/9e570d1b431d3326f6b6e9062dd8fdcf28bf0d84)
Thanks [@​minseong0324](https://redirect.github.com/minseong0324)!
- Type-aware lint rules now resolve members through `Pick<T, K>` and
`Omit<T, K>` utility types.
- [#​9909](https://redirect.github.com/biomejs/biome/pull/9909)
[`0d0e611`](https://redirect.github.com/biomejs/biome/commit/0d0e6118ff1ffb93d0c5d59c10abf57cecf46ccd)
Thanks [@​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";
// ...
}
```
- [#​9925](https://redirect.github.com/biomejs/biome/pull/9925)
[`29accb3`](https://redirect.github.com/biomejs/biome/commit/29accb3e455c7d833e3fd179c3a5400eb972b339)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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`.
- [#​9904](https://redirect.github.com/biomejs/biome/pull/9904)
[`e7775a5`](https://redirect.github.com/biomejs/biome/commit/e7775a5c7f26bc808302e6646a1ffd702ec59fce)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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.
- [#​9942](https://redirect.github.com/biomejs/biome/pull/9942)
[`9956f1d`](https://redirect.github.com/biomejs/biome/commit/9956f1d1b53168f8b33792c004f741368c883ff7)
Thanks [@​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()`.
- [#​9577](https://redirect.github.com/biomejs/biome/pull/9577)
[`c499f46`](https://redirect.github.com/biomejs/biome/commit/c499f4609912b76fb5a7071a9e9c6a35bb26827a)
Thanks [@​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, []);
```
- [#​9895](https://redirect.github.com/biomejs/biome/pull/9895)
[`1c8e1ef`](https://redirect.github.com/biomejs/biome/commit/1c8e1ef86882faabe4a461d29ab8643c18bfa83f)
Thanks [@​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.
- [#​9891](https://redirect.github.com/biomejs/biome/pull/9891)
[`4d9ac51`](https://redirect.github.com/biomejs/biome/commit/4d9ac51352482d72d3438f2d514dbeef0edc63e0)
Thanks [@​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.
- [#​9889](https://redirect.github.com/biomejs/biome/pull/9889)
[`7ae83f2`](https://redirect.github.com/biomejs/biome/commit/7ae83f2f60dc83eae6ef72e4cb1d6f06f3a882de)
Thanks [@​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.
- [#​9875](https://redirect.github.com/biomejs/biome/pull/9875)
[`a951586`](https://redirect.github.com/biomejs/biome/commit/a951586fa9cfc0a1826b1c695f12b5cfdd921245)
Thanks [@​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
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9888](https://redirect.github.com/biomejs/biome/pull/9888)
- chore: extra rule sources by
[@​Netail](https://redirect.github.com/Netail) in
[#​9895](https://redirect.github.com/biomejs/biome/pull/9895)
- fix(core): idempotent lint write by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9902](https://redirect.github.com/biomejs/biome/pull/9902)
- chore: just a small harness to prevent markdown leaking by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9906](https://redirect.github.com/biomejs/biome/pull/9906)
- fix(lint/js): improve diagnostics for `noConstantCondition`,
`useForOf`, `noRedeclare` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9889](https://redirect.github.com/biomejs/biome/pull/9889)
- fix(resolver): resolution of namespace members by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9904](https://redirect.github.com/biomejs/biome/pull/9904)
- feat(lint/js): add `noExcessiveSelectorClasses` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9866](https://redirect.github.com/biomejs/biome/pull/9866)
- fix(lint/js): improve diagnostics for `noSelfCompare`,
`noThenProperty`, `noShorthandPropertyOverrides`, `noRootType`,
`noAutofocus` by [@​dyc3](https://redirect.github.com/dyc3) in
[#​9892](https://redirect.github.com/biomejs/biome/pull/9892)
- fix(lint/js): improve diagnostics for `noGlobalObjectCalls`,
`noMultiStr`, `noInvalidUseBeforeDeclaration` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9891](https://redirect.github.com/biomejs/biome/pull/9891)
- feat(lint): implement useReduceTypeParameter nursery rule by
[@​tt-a1i](https://redirect.github.com/tt-a1i) in
[#​9577](https://redirect.github.com/biomejs/biome/pull/9577)
- feat(css): extend SCSS parsing with function names, interpolated
values by [@​denbezrukov](https://redirect.github.com/denbezrukov)
in [#​9837](https://redirect.github.com/biomejs/biome/pull/9837)
- chore: ignore rand unsoundness advisory by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9923](https://redirect.github.com/biomejs/biome/pull/9923)
- feat(lint/js): add `noIdenticalTestTitle` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9376](https://redirect.github.com/biomejs/biome/pull/9376)
- feat(js\_analyze): implement noJsxNamespace by
[@​Netail](https://redirect.github.com/Netail) in
[#​9913](https://redirect.github.com/biomejs/biome/pull/9913)
- fix: main release by
[@​Netail](https://redirect.github.com/Netail) in
[#​9924](https://redirect.github.com/biomejs/biome/pull/9924)
- feat(lint/js): add `useStringStartsEndsWith` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9796](https://redirect.github.com/biomejs/biome/pull/9796)
- feat(md/fmt): better formatting for some cases by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9917](https://redirect.github.com/biomejs/biome/pull/9917)
- fix(parse/html): svelte directive member expression by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9925](https://redirect.github.com/biomejs/biome/pull/9925)
- feat(js\_analyze): implement useReactAsyncServerFunction by
[@​Netail](https://redirect.github.com/Netail) in
[#​9909](https://redirect.github.com/biomejs/biome/pull/9909)
- feat(react/js): add noComponentHookFactories by
[@​Jayllyz](https://redirect.github.com/Jayllyz) in
[#​9916](https://redirect.github.com/biomejs/biome/pull/9916)
- chore: add rule source for noNestedTernary by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9927](https://redirect.github.com/biomejs/biome/pull/9927)
- refactor(conf): opt-in bpaf by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9920](https://redirect.github.com/biomejs/biome/pull/9920)
- feat(lint): support class methods, object methods, and getters in
noMisleadingReturnType by
[@​minseong0324](https://redirect.github.com/minseong0324) in
[#​9873](https://redirect.github.com/biomejs/biome/pull/9873)
- fix(markdown\_parser): paragraph with trailing hard break absorbs
following blank line by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9931](https://redirect.github.com/biomejs/biome/pull/9931)
- fix(markdown\_parser): mixed bullet markers and lazy continuation in
lists by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9933](https://redirect.github.com/biomejs/biome/pull/9933)
- fix(useConsistentTestIt): fix panic when applying code fix by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9942](https://redirect.github.com/biomejs/biome/pull/9942)
- fix(markdown\_parser): restore leading-space stripping after hard line
breaks by [@​jfmcdowell](https://redirect.github.com/jfmcdowell)
in [#​9934](https://redirect.github.com/biomejs/biome/pull/9934)
- chore(deps): update dependency
[@​types/node](https://redirect.github.com/types/node) to v24.12.2
by [@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​9954](https://redirect.github.com/biomejs/biome/pull/9954)
- chore(deps): update dependency tombi to v0.9.16 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​9955](https://redirect.github.com/biomejs/biome/pull/9955)
- feat(type-info): add Partial, Required, and Readonly type synthesis by
[@​minseong0324](https://redirect.github.com/minseong0324) in
[#​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
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​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
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​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
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​9953](https://redirect.github.com/biomejs/biome/pull/9953)
- chore(deps): update github-actions by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​9956](https://redirect.github.com/biomejs/biome/pull/9956)
- chore(deps): update rust crate tokio to 1.51.1 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​9957](https://redirect.github.com/biomejs/biome/pull/9957)
- chore(deps): update rust crate ureq to 3.3.0 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​9958](https://redirect.github.com/biomejs/biome/pull/9958)
- refactor(core): semantic model in collector by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9905](https://redirect.github.com/biomejs/biome/pull/9905)
- feat(type-info): add Pick and Omit type synthesis by
[@​minseong0324](https://redirect.github.com/minseong0324) in
[#​9874](https://redirect.github.com/biomejs/biome/pull/9874)
- chore: combine attribute impl by
[@​Netail](https://redirect.github.com/Netail) in
[#​9950](https://redirect.github.com/biomejs/biome/pull/9950)
- ci: combine benchmark jobs back into one workflow by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9963](https://redirect.github.com/biomejs/biome/pull/9963)
- fix(parser/css): parse conditional block correctly inside embedded
snippets by [@​siketyan](https://redirect.github.com/siketyan) in
[#​9966](https://redirect.github.com/biomejs/biome/pull/9966)
- feat(lint/js): add `useVarsOnTop` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9861](https://redirect.github.com/biomejs/biome/pull/9861)
- fix(ci): checkout repository before benchmark path filtering on push
by [@​dyc3](https://redirect.github.com/dyc3) in
[#​9973](https://redirect.github.com/biomejs/biome/pull/9973)
- fix(linter): detect floating promises through cross-module generic
wrappers by [@​bmish](https://redirect.github.com/bmish) in
[#​9835](https://redirect.github.com/biomejs/biome/pull/9835)
- feat(md/fmt): autolink, setext header by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9929](https://redirect.github.com/biomejs/biome/pull/9929)
- fix(core): file size diagnostic severity by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9980](https://redirect.github.com/biomejs/biome/pull/9980)
- chore(skills): common mistakes in lint rules by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9972](https://redirect.github.com/biomejs/biome/pull/9972)
- perf(noMagicNumbers): reduce allocations by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9982](https://redirect.github.com/biomejs/biome/pull/9982)
- feat: implement useIframeSandbox by
[@​Netail](https://redirect.github.com/Netail) in
[#​9949](https://redirect.github.com/biomejs/biome/pull/9949)
- fix(parser/css): nested selectors in embedded snippets by
[@​siketyan](https://redirect.github.com/siketyan) in
[#​9981](https://redirect.github.com/biomejs/biome/pull/9981)
- fix(linter): `useExhaustiveDependencies` proper handling of computed
keys when destructuring, fixes
[#​9744](https://redirect.github.com/biomejs/biome/issues/9744) by
[@​mdevils](https://redirect.github.com/mdevils) in
[#​9978](https://redirect.github.com/biomejs/biome/pull/9978)
- ci: release by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in [#​9890](https://redirect.github.com/biomejs/biome/pull/9890)
#### New Contributors
- [@​bmish](https://redirect.github.com/bmish) made their first
contribution in
[#​9835](https://redirect.github.com/biomejs/biome/pull/9835)
**Full Changelog**:
<https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.11...@​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
- [#​9350](https://redirect.github.com/biomejs/biome/pull/9350)
[`4af4a3a`](https://redirect.github.com/biomejs/biome/commit/4af4a3a9ca31a598e9836997b7811992eae53387)
Thanks [@​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'
});
```
- [#​9429](https://redirect.github.com/biomejs/biome/pull/9429)
[`a2f3f7e`](https://redirect.github.com/biomejs/biome/commit/a2f3f7eb3a134ccc6851ed0eec19d1ff1636ec72)
Thanks [@​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();
}
```
- [#​9828](https://redirect.github.com/biomejs/biome/pull/9828)
[`9e40844`](https://redirect.github.com/biomejs/biome/commit/9e40844261cf7b8c573e340e11e3297ef08bcd60)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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.
- [#​9886](https://redirect.github.com/biomejs/biome/pull/9886)
[`e7c681e`](https://redirect.github.com/biomejs/biome/commit/e7c681ecbb6aed471c914167f5d067d327792f44)
Thanks [@​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.
- [#​9760](https://redirect.github.com/biomejs/biome/pull/9760)
[`5b16d18`](https://redirect.github.com/biomejs/biome/commit/5b16d187ba63800f4b6ea5057d551ae3f2fbc68c)
Thanks [@​myx0m0p](https://redirect.github.com/myx0m0p)! - Fixed
[#​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.
- [#​9799](https://redirect.github.com/biomejs/biome/pull/9799)
[`2af8efd`](https://redirect.github.com/biomejs/biome/commit/2af8efd348cfa992bc7d35683de55bb8cc583260)
Thanks [@​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";
}
```
- [#​9880](https://redirect.github.com/biomejs/biome/pull/9880)
[`7f67749`](https://redirect.github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e)
Thanks [@​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.
- [#​9755](https://redirect.github.com/biomejs/biome/pull/9755)
[`bff7bdb`](https://redirect.github.com/biomejs/biome/commit/bff7bdb1355cdf7d219a288e31c5c5a0357e3aad)
Thanks [@​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.
- [#​8651](https://redirect.github.com/biomejs/biome/pull/8651)
[`aafca2d`](https://redirect.github.com/biomejs/biome/commit/aafca2d086eb24226a9cf1a69179561f70d02773)
Thanks [@​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();
```
- [#​9788](https://redirect.github.com/biomejs/biome/pull/9788)
[`53b8e57`](https://redirect.github.com/biomejs/biome/commit/53b8e5768e33b87298f8e0e4c896957dee6f2eb6)
Thanks [@​MeGaNeKoS](https://redirect.github.com/MeGaNeKoS)! -
Fixed
[#​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% { ... }`.
- [#​9728](https://redirect.github.com/biomejs/biome/pull/9728)
[`5085424`](https://redirect.github.com/biomejs/biome/commit/5085424db427c7874eef7ca732f237febb49fdb1)
Thanks [@​mkosei](https://redirect.github.com/mkosei)! - Fixed
[#​9696](https://redirect.github.com/biomejs/biome/issues/9696):
Astro frontmatter now correctly parses regular expression literals like
`/\d{4}/`.
- [#​9261](https://redirect.github.com/biomejs/biome/pull/9261)
[`16b6c49`](https://redirect.github.com/biomejs/biome/commit/16b6c4951793c820d109a9b502e1812fcbfca764)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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;
}
```
- [#​9441](https://redirect.github.com/biomejs/biome/pull/9441)
[`957ea4c`](https://redirect.github.com/biomejs/biome/commit/957ea4c8ebe75083ba68a98f70616c88368883c5)
Thanks
[@​soconnor-seeq](https://redirect.github.com/soconnor-seeq)! -
Fixed
[#​1630](https://redirect.github.com/biomejs/biome/issues/1630):
LSP project selection now prefers the most specific project root in
nested workspaces.
- [#​9878](https://redirect.github.com/biomejs/biome/pull/9878)
[`de6210f`](https://redirect.github.com/biomejs/biome/commit/de6210f80fa6d1dc0ca3edd395e9d8e571766bb8)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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.
- [#​9879](https://redirect.github.com/biomejs/biome/pull/9879)
[`ce7e2b7`](https://redirect.github.com/biomejs/biome/commit/ce7e2b762bc82319c39027d15e84a26f8708fc92)
Thanks [@​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.
- [#​9880](https://redirect.github.com/biomejs/biome/pull/9880)
[`7f67749`](https://redirect.github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e)
Thanks [@​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.
- [#​9846](https://redirect.github.com/biomejs/biome/pull/9846)
[`b7134d9`](https://redirect.github.com/biomejs/biome/commit/b7134d92413991c4394574353b76b1891160bc38)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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>
```
- [#​9790](https://redirect.github.com/biomejs/biome/pull/9790)
[`67df09d`](https://redirect.github.com/biomejs/biome/commit/67df09d524fe49d3bb08dc45b7dfb99771e25bdd)
Thanks [@​dyc3](https://redirect.github.com/dyc3)! - Fixed
[#​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.
- [#​9745](https://redirect.github.com/biomejs/biome/pull/9745)
[`d87073e`](https://redirect.github.com/biomejs/biome/commit/d87073ef5586f0cf7eb74fd0d7390a3444c591ff)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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`).
- [#​9880](https://redirect.github.com/biomejs/biome/pull/9880)
[`7f67749`](https://redirect.github.com/biomejs/biome/commit/7f67749e77af6e5af3dfc72a02bb99718695612e)
Thanks [@​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.
- [#​9795](https://redirect.github.com/biomejs/biome/pull/9795)
[`1d09f0f`](https://redirect.github.com/biomejs/biome/commit/1d09f0fae1d0270ad603e7b494d8dffb979125aa)
Thanks [@​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.
- [#​9809](https://redirect.github.com/biomejs/biome/pull/9809)
[`e8cad58`](https://redirect.github.com/biomejs/biome/commit/e8cad58a1baf8f8c935e8547da88905cfbfb05be)
Thanks [@​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.
- [#​9877](https://redirect.github.com/biomejs/biome/pull/9877)
[`fc9d715`](https://redirect.github.com/biomejs/biome/commit/fc9d715a904d382fcd7fb932a05896cfbafaaa44)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​9136](https://redirect.github.com/biomejs/biome/issues/9136)
and
[#​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.
- `{@​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.
- `{@​const name = value}` — the declared name is now tracked as a
binding and the initializer is analyzed for undeclared references.
- `{@​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}
{@​const price = item.price}
{@​render figure(item)}
<span>{price}</span>
{/each}
{@​debug items, total}
```
- [#​9869](https://redirect.github.com/biomejs/biome/pull/9869)
[`78bce77`](https://redirect.github.com/biomejs/biome/commit/78bce773a2d8776991c93a239d462fd42bf24cc4)
Thanks [@​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.
- [#​9739](https://redirect.github.com/biomejs/biome/pull/9739)
[`0bc2198`](https://redirect.github.com/biomejs/biome/commit/0bc2198735230c3bad14a831652543bd304fa0d6)
Thanks [@​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.
- [#​9811](https://redirect.github.com/biomejs/biome/pull/9811)
[`2dddca3`](https://redirect.github.com/biomejs/biome/commit/2dddca3f09bda92f7f43bbaf482796f5aec7a970)
Thanks [@​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.
- [#​9870](https://redirect.github.com/biomejs/biome/pull/9870)
[`ccf9770`](https://redirect.github.com/biomejs/biome/commit/ccf9770b37cf2d04205a5914db72c86137bca50f)
Thanks [@​Netail](https://redirect.github.com/Netail)! - Marked
eslint-qwik-plugin's `unused-server` as redundant since it was covered
by `noUnusedVariables`.
- [#​9701](https://redirect.github.com/biomejs/biome/pull/9701)
[`1417c3b`](https://redirect.github.com/biomejs/biome/commit/1417c3b4ece262b1500b12c9f1da1429e4d53fc4)
Thanks [@​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.
- [#​9248](https://redirect.github.com/biomejs/biome/pull/9248)
[`49f00a3`](https://redirect.github.com/biomejs/biome/commit/49f00a38d64af131178ba4e096155d22055aa1c4)
Thanks [@​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.
- [#​9863](https://redirect.github.com/biomejs/biome/pull/9863)
[`6a44619`](https://redirect.github.com/biomejs/biome/commit/6a4461915f1f5f161795081706b84cc8992b12dd)
Thanks [@​ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#​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
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9713](https://redirect.github.com/biomejs/biome/pull/9713)
- fix(markdown): preserve nested list indent tokens by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9717](https://redirect.github.com/biomejs/biome/pull/9717)
- fix(html): handle escaped regex literals in astro frontmatter by
[@​mkosei](https://redirect.github.com/mkosei) in
[#​9728](https://redirect.github.com/biomejs/biome/pull/9728)
- test(markdown): add regression tests for mixed list markers across
blank lines by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9732](https://redirect.github.com/biomejs/biome/pull/9732)
- fix(lsp): prefer most specific project root by
[@​soconnor-seeq](https://redirect.github.com/soconnor-seeq) in
[#​9441](https://redirect.github.com/biomejs/biome/pull/9441)
- fix(markdown): fix fenced code block closing inside list items by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9730](https://redirect.github.com/biomejs/biome/pull/9730)
- fix(markdown): fix HTML block parsing inside list item continuations
by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9740](https://redirect.github.com/biomejs/biome/pull/9740)
- fix(markdown): fix panic on multi-byte characters in emphasis context
by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9735](https://redirect.github.com/biomejs/biome/pull/9735)
- refactor(markdown): replace skipped trivia with formatter-safe
recovery by [@​jfmcdowell](https://redirect.github.com/jfmcdowell)
in [#​9746](https://redirect.github.com/biomejs/biome/pull/9746)
- refactor(markdown): cleanup nits from
[#​9746](https://redirect.github.com/biomejs/biome/issues/9746) by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9751](https://redirect.github.com/biomejs/biome/pull/9751)
- fix(lsp): regression codeAction/resolve by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9745](https://redirect.github.com/biomejs/biome/pull/9745)
- feat(lint/js): add `noUselessTypeConversion` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9701](https://redirect.github.com/biomejs/biome/pull/9701)
- fix(markdown): replace panicking code with safe fallbacks in lexer by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9753](https://redirect.github.com/biomejs/biome/pull/9753)
- refactor(markdown): emit continuation indent as structural CST node by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9737](https://redirect.github.com/biomejs/biome/pull/9737)
- fix(markdown): fix false diagnostic on nested lists with double blank
lines by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9764](https://redirect.github.com/biomejs/biome/pull/9764)
- feat(css): add support for SCSS string interpolation by
[@​denbezrukov](https://redirect.github.com/denbezrukov) in
[#​9756](https://redirect.github.com/biomejs/biome/pull/9756)
- refactor(markdown): deduplicate shared helper functions by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9766](https://redirect.github.com/biomejs/biome/pull/9766)
- fix(markdown): remove debug scaffolding and parser cleanup by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9765](https://redirect.github.com/biomejs/biome/pull/9765)
- refactor(flags): make variables predictable by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9769](https://redirect.github.com/biomejs/biome/pull/9769)
- fix(markdown\_parser): emit MdIndentTokenList for headers inside list
items by [@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9774](https://redirect.github.com/biomejs/biome/pull/9774)
- fix(markdown\_parser): fix lazy continuation at nested list marker
indent by [@​jfmcdowell](https://redirect.github.com/jfmcdowell)
in [#​9776](https://redirect.github.com/biomejs/biome/pull/9776)
- docs: clarify that elements in scope for useAltText is not
configurable by
[@​yogaraptor](https://redirect.github.com/yogaraptor) in
[#​9773](https://redirect.github.com/biomejs/biome/pull/9773)
- fix(markdown\_parser): fix multi-byte character panic in emphasis
context by [@​jfmcdowell](https://redirect.github.com/jfmcdowell)
in [#​9775](https://redirect.github.com/biomejs/biome/pull/9775)
- perf(core): refactor fix-all logic by
[@​ematipico](https://redirect.github.com/ematipico) in
[#​9755](https://redirect.github.com/biomejs/biome/pull/9755)
- feat(css): add support for scroll-driven animation keyframe selectors
by [@​MeGaNeKoS](https://redirect.github.com/MeGaNeKoS) in
[#​9788](https://redirect.github.com/biomejs/biome/pull/9788)
- fix(format): don't remove trailing comments when formatting is
suppressed by [@​dyc3](https://redirect.github.com/dyc3) in
[#​9790](https://redirect.github.com/biomejs/biome/pull/9790)
- test(markdown\_parser): add reference HTML validation and structural
invariants by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​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
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9783](https://redirect.github.com/biomejs/biome/pull/9783)
- fix: noDelete should not suggest undefined assignment for process.env
by [@​myx0m0p](https://redirect.github.com/myx0m0p) in
[#​9760](https://redirect.github.com/biomejs/biome/pull/9760)
- feat(lint/js): add `useConsistentTestIt` by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9350](https://redirect.github.com/biomejs/biome/pull/9350)
- feat(useExplicitType): relax rule for trivially inferrable types by
[@​dyc3](https://redirect.github.com/dyc3) in
[#​9795](https://redirect.github.com/biomejs/biome/pull/9795)
- chore(deps): update dependency tombi to v0.9.13 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​9819](https://redirect.github.com/biomejs/biome/pull/9819)
- fix(markdown\_parser): split bullet lists when marker type changes
across blank lines by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9785](https://redirect.github.com/biomejs/biome/pull/9785)
- fix(markdown\_parser): recognize setext heading inside blockquote by
[@​jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#​9782](https://redirect.github.com/biomejs/biome/pull/9782)
- chore(deps): update github-actions by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
| |||
14 | 16 | | |
15 | 17 | | |
16 | 18 | | |
| 19 | + | |
| 20 | + | |
17 | 21 | | |
18 | 22 | | |
19 | 23 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
9 | 11 | | |
10 | 12 | | |
0 commit comments