Skip to content

Update dependency @biomejs/biome to v2.4.15#1011

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/biomejs-biome-2.x
Open

Update dependency @biomejs/biome to v2.4.15#1011
renovate[bot] wants to merge 1 commit intomainfrom
renovate/biomejs-biome-2.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Oct 4, 2025

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@biomejs/biome (source) 2.2.42.4.15 age confidence

Release Notes

biomejs/biome (@​biomejs/biome)

v2.4.15

Compare Source

Patch Changes
  • #​9394 ba3480e Thanks @​dyc3! - Added the nursery rule useTestHooksInOrder in the test domain. The rule enforces that Jest/Vitest lifecycle hooks (beforeAll, beforeEach, afterEach, afterAll) are declared in the order they execute, making test setup and teardown easier to reason about.

  • #​10254 e0a54cc Thanks @​dyc3! - Added a new nursery rule useVueNextTickPromise, which enforces Promise syntax when using Vue nextTick.

    For example, the following snippet triggers the rule:

    import { nextTick } from "vue";
    
    nextTick(() => {
      updateDom();
    });
  • #​10219 64aee45 Thanks @​dyc3! - Added a new nursery rule noVueVOnNumberValues, that disallows deprecated number modifiers on Vue v-on directives.

    For example, the following snippet triggers the rule:

    <input @&#8203;keyup.13="submit" />
  • #​10195 7b8d4e1 Thanks @​dyc3! - Added the new nursery rule useVueValidVFor, which validates Vue v-for directives and reports invalid aliases, missing component keys, and keys that do not use iteration variables.

  • #​10238 1110256 Thanks @​dyc3! - Added the recommended nursery rule noVueImportCompilerMacros, which disallows importing Vue compiler macros such as defineProps from vue because they are automatically available.

  • #​10201 1a08f89 Thanks @​realknove! - Fixed #​10193: style/useReadonlyClassProperties no longer reports class properties as readonly-able when they are assigned inside arrow callbacks nested in class property initializers.

  • #​9574 3bd2b6a Thanks @​Conaclos! - Fixed #​9530. The diagnostics of organizeImports are now more detailed and more precise. They are also better at localizing where the issue is.

  • #​10205 a704a6c Thanks @​Conaclos! - Fixed #​10185. `organizeImports now errors when it encounters an unknown predefined group.

    The following configuration is now reported as invalid because :INEXISTENT: is an unknown predefined group.

    {
      "assist": {
        "actions": {
          "source": {
            "organizeImports": { "options": { "groups": [":INEXISTENT:"] } }
          }
        }
      }
    }
  • #​10052 b565bed Thanks @​minseong0324! - Improved noMisleadingReturnType: it now flags union annotations whose extra variants are never returned, and suggests the narrower type (e.g. string | nullstring).

    These functions are now reported because null and number are included in the return annotations but never returned:

    function getUser(): string | null {
      return "hello";
    } // null is never returned
    function getCode(): string | number {
      return "hello";
    } // number is never returned
  • #​10213 ac30057 Thanks @​dyc3! - Fixed #​9450: HTML and Vue element formatting now preserves child line breaks when an element contains another element child on its own line, instead of collapsing the child element onto the same line.

  • #​10275 9ee6c03 Thanks @​solithcy! - Fixed #​10274: Svelte templates with missing expressions no longer parsed as HtmlBogusElement

  • #​10143 56798a7 Thanks @​minseong0324! - noMisleadingReturnType now detects misleading return type annotations when object literal properties are initialized with as const.

    This function is now reported because the return annotation widens a property initialized with as const:

    function f(): { value: string } {
      return { value: "text" as const };
    }
  • #​10143 56798a7 Thanks @​minseong0324! - noUselessTypeConversion now detects redundant conversions on object literal properties initialized with as const.

    This conversion is now reported because message.value is inferred as a string literal:

    const message = { value: "text" as const };
    String(message.value);
  • #​9807 0ae5840 Thanks @​dyc3! - Added the new nursery rule useThisInClassMethods, based on ESLint's class-methods-use-this.

    The rule now reports instance methods, getters, setters, and function-valued instance fields that do not use this, and biome migrate eslint preserves the supported ignoreMethods, ignoreOverrideMethods, and ignoreClassesWithImplements options.

    Invalid:

    class Foo {
      bar() {
        // does not use `this`, invalid
        console.log("Hello Biome");
      }
    }
  • #​10258 e7b18f7 Thanks @​ematipico! - Improved linter performance by narrowing the query nodes for several lint rules, reducing how often they are evaluated.

  • #​10273 04e22a1 Thanks @​dyc3! - Fixed #​10271: The HTML parser now correctly parses of as text content when in text contexts.

  • #​9838 83f7385 Thanks @​dyc3! - Added the nursery rule noBaseToString, which reports stringification sites that fall back to Object's default "[object Object]" formatting. The rule also supports the ignoredTypeNames option.

  • #​10143 56798a7 Thanks @​minseong0324! - useExhaustiveSwitchCases now checks switch statements over object literal properties initialized with as const.

    This switch is now reported because status.kind is inferred as the string literal "ready" but no case handles it:

    const status = { kind: "ready" as const };
    switch (status.kind) {
    }
  • #​10143 56798a7 Thanks @​minseong0324! - useStringStartsEndsWith now detects string index comparisons on object literal properties initialized with as const.

    This comparison is now reported because message.value is inferred as a string literal:

    const message = { value: "hello" as const };
    message.value[0] === "h";

v2.4.14

Compare Source

Patch Changes
  • #​9393 491b171 Thanks @​dyc3! - Added the nursery rule useTestHooksOnTop in the test domain. The rule flags lifecycle hooks (beforeEach, beforeAll, afterEach, afterAll) that appear after test cases in the same block, enforcing that hooks are defined before any test case.

  • #​10157 eefc5ab Thanks @​dyc3! - Fixed #​7882: The HTML parser will now emit better diagnostics when it encounters a void element with a closing tag, such as <br></br>. Previously, the parser would emit multiple diagnostics with conflicting advice. Now it emits a single diagnostic that clearly states that void elements should not have closing tags.

  • #​10054 0e9f569 Thanks @​minseong0324! - noMisleadingReturnType no longer misses widening from concrete object types, class instances, object literals, tuples, functions, and regular expressions to : object.

    A function annotated : object returning an object literal:

    function f(): object {
      return { retry: true };
    }
  • #​10116 53269eb Thanks @​jiwon79! - Fixed #​6201: noUselessEscapeInRegex no longer flags an escaped backslash followed by - as a useless escape. Patterns like /[\\-]/ are now considered valid because the second \ is the escaped backslash, not an unnecessary escape of the trailing dash.

  • #​10092 33d8543 Thanks @​Conaclos! - Fixed #​9097: organizeImports no longer adds a blank line between a never-matched group and a matched group.

    Given the following organizeImports options:

    {
      "groups": [":NODE:", ":BLANK_LINE:", ":PACKAGE:", ":BLANK_LINE:", ":PATH:"]
    }

    The following code...

    // Comment
    import "package";
    import "./file.js";

    ...was organized as:

    +
      // Comment
      import "package";
    +
      import "./file.js";

    A blank line was added even though the group ':NODE:' doesn't match any imports here.
    :BLANK_LINE: between never-matched groups and matched groups are now ignored.
    The code is now organized as:

      // Comment
      import "package";
    +
      import "./file.js";
  • #​10138 a10b6c1 Thanks @​dyc3! - Fixed Vue v-for handling for noUndeclaredVariables and noUnusedVariables. Biome now recognizes variables declared by v-for directives and references to iterated values in Vue templates.

  • #​10115 d428d76 Thanks @​minseong0324! - noMisleadingReturnType no longer reports false positives when a union return type's boolean variant is covered by both true and false returns.

  • #​9922 7acf1e0 Thanks @​dyc3! - Added the new nursery rule noReactStringRefs, which disallows legacy React string refs such as ref="hello" and this.refs.hello.

    Biome also reports template-literal refs such as ref={`hello`}, so React code can consistently migrate to callback refs, createRef(), or useRef().

  • #​10010 f3e76ab Thanks @​dyc3! - Fixed a bug in the LSP file watcher registration so Biome now watches .biome.json and .biome.jsonc configuration files and reloads workspace settings when they change.

  • #​10176 8a40ef8 Thanks @​dyc3! - Fixed #​10011: The noThisInStatic rule no longer reports this when it is used as the constructor target in new this(...), which is required for inherited static factory methods.

  • #​10163 6867e96 Thanks @​jiwon79! - Fixed #​9884: The useSortedAttributes auto-fix no longer corrupts source code when both an outer JSX element and a nested JSX-valued attribute have unsorted attributes in the same pass. Multiple unsorted groups separated by spread or shorthand attributes within the same JSX element are now reported as a single diagnostic.

  • #​10079 d29dd19 Thanks @​Damix48! - Fixed false positive in noAssignInExpressions for Svelte {@&#8203;const} blocks. Assignments in {@&#8203;const name = value} are now correctly recognized as declarations rather than accidental assignments in expressions.

  • #​10080 5d8fdac Thanks @​Damix48! - Fixed parsing of closing parentheses in Svelte {#each} block key expressions. Biome now correctly parses method calls and other parenthesised expressions used as keys.

    For example, the following snippets are now parsed correctly:

    {#each numbers as number, index (number.toString())}
      <p>{number}</p>
    {/each}
    
    {#each numbers as number (key(number))}
      <p>{number}</p>
    {/each}
  • #​10140 e7024b9 Thanks @​solithcy! - Fixed #​10135: Biome no longer crashes on missing Svelte template expressions.

    The following code snippet longer panics:

    {#if }
     <p>^ this would previously crash</p>
    {/if}
    {@&#8203;const }
    <p>    ^ this would also crash</p>
  • #​10111 7818009 Thanks @​jiwon79! - Fixed #​9997: noDuplicateSelectors no longer reports false positives for selectors inside @scope queries. Biome now treats @scope as a separate at-rule context, like @media, @supports, @container, and @starting-style.

    The following snippet is no longer flagged as a duplicate:

    .Example {
      padding: 0;
    }
    
    @&#8203;scope (.theme-dark) {
      .Example {
        color: white;
      }
    }
  • #​9926 d62b331 Thanks @​dyc3! - Added the nursery lint rule useMathMinMax, which prefers Math.min() and Math.max() over equivalent ternary comparisons.

    For example, this code:

    const min = a < b ? a : b;

    is much more readable when rewritten as:

    const min = Math.min(a, b);
  • #​10115 d428d76 Thanks @​minseong0324! - useExhaustiveSwitchCases now flags missing true/false cases for boolean discriminants, including when boolean is a union variant.

  • #​10125 a55a0b6 Thanks @​bmish! - Fixed a resolver bug where packages that define a typed entry point through package.json's main field but omit types were ignored during type-aware resolution. Type-aware rules such as noFloatingPromises can now inspect imports from those packages.

  • #​10117 895e809 Thanks @​denizdogan! - Added support for the corner-shape family of CSS properties and the superellipse()/squircle() value functions, so noUnknownProperty and noUnknownFunction no longer flag them as unknown.

    New known properties: corner-shape, corner-block-end-shape, corner-block-start-shape, corner-bottom-left-shape, corner-bottom-right-shape, corner-bottom-shape, corner-end-end-shape, corner-end-start-shape, corner-inline-end-shape, corner-inline-start-shape, corner-left-shape, corner-right-shape, corner-start-end-shape, corner-start-start-shape, corner-top-left-shape, corner-top-right-shape, corner-top-shape.

    New known value functions: superellipse(), squircle().

  • #​8620 8df8f73 Thanks @​dyc3! - Fixed #​8062: Added support for parsing Vue v-for directives more accurately.

  • #​10191 aa055cd Thanks @​guney! - Now the rule noStaticElementInteractions doesn't trigger custom elements.

  • #​9757 2c62594 Thanks @​dyc3! - Fixed #​9099: the HTML formatter collapsing non-text children (inline elements, Svelte expressions, comments) onto a single line when the source had them on separate lines. Biome now preserves the user's intended line breaks for exclusively non-text children.

    For example, the following Svelte snippet is now preserved instead of being collapsed to <div>{name}<!-- comment --></div>:

    <div>
      {name}<!-- comment -->
    </div>

    Similarly, HTML elements like <span> inside a <div> are now preserved when written on their own line:

    <div>
      <span>text</span>
    </div>
  • #​10105 e7c1a6d Thanks @​jiwon79! - Fixed #​10039: useReadonlyClassProperties now detects unreassigned private members in class expressions and export default classes, not only in class declarations.

    The following patterns are now correctly flagged:

    const AnonClass = class {
      #prop = 123;
      constructor() {
        console.log(this.#prop);
      }
    };
    
    export default class {
      #prop = 123;
      constructor() {
        console.log(this.#prop);
      }
    }
  • #​10141 46a77d0 Thanks @​minseong0324! - Improved noUnnecessaryConditions to detect conditions that are always truthy because they check built-in global class instances such as Date, Map, Set, WeakMap, and Error.

  • #​10178 7b05a89 Thanks @​dyc3! - Fixed #​10177: The HTML parser no longer reports lowercase html or doctype text as invalid after void elements such as <br>.

  • #​10155 0d4595d Thanks @​jiwon79! - Fixed #​10045: the CSS formatter no longer compounds indentation inside nested functional pseudo-classes such as :not(:where(...)), :is(:where(...)), and similar combinations. The same fix also removes one level of unnecessary indentation that was added inside any pseudo-class function whose argument list wrapped onto multiple lines, including :nth-child(... of ...), ::part(...), and :active-view-transition-type(...).
    The following snippet is now correctly formatted, matching Prettier.

    input:not(
      :where(
        [type="submit"],
        [type="checkbox"],
        [type="radio"],
        [type="button"],
        [type="reset"]
      )
    ) {
      inline-size: 100%;
    }
  • #​10112 6f0251e Thanks @​dyc3! - Fixed #​10110: Biome's parser now accepts surrogate code points in JavaScript string \u{...} escapes.

  • #​10141 46a77d0 Thanks @​minseong0324! - Improved noMisleadingReturnType to detect object return annotations that hide built-in global class instances such as Date, Map, Set, WeakMap, and Error.

  • #​10083 4a664c1 Thanks @​ematipico! - Added two new options to noShadow, both defaulting to true to match typescript-eslint's behavior.

    Fixed #​9482: Added ignoreFunctionTypeParameterNameValueShadow option. When enabled, parameter names inside function type annotations (e.g. (options: unknown) => void) are not flagged as shadowing outer variables.

    Fixed #​7812: Added ignoreTypeValueShadow option. When enabled, a value binding that shares its name with a type-only declaration (type alias or interface) is not flagged, since types and values occupy separate namespaces in TypeScript.

  • #​9286 52695cf Thanks @​Hugo-Polloli! - Fixed #​6316: Biome now resolves Svelte $store references to the underlying store binding in semantic analysis, preventing false noUndeclaredVariables diagnostics when the store is declared.

  • #​10188 ae659dd Thanks @​dyc3! - Added a new nursery rule noExcessiveNestedCallbacks, which disallows callbacks nested deeper than the configured maximum.

  • #​9757 2c62594 Thanks @​dyc3! - Fixed #​9450: the HTML formatter now correctly preserves multiline formatting for nested <template> elements (e.g. <template #body>) when the source has children on separate lines. Previously, the children were collapsed onto a single line.

     <template>
       <UModal>
    -    <template #body> <p>content</p> </template>
    +    <template #body>
    +      <p>content</p>
    +    </template>
       </UModal>
     </template>
  • #​10118 c6edcb4 Thanks @​Netail! - Fixed #​10024: biome migrate eslint correctly migrates eslint rules that belong to multiple Biome rules.

v2.4.13

Compare Source

Patch Changes
  • #​9969 c5eb92b Thanks @​officialasishkumar! - Added the nursery rule noUnnecessaryTemplateExpression, which disallows template literals that only contain string literal expressions. These can be replaced with a simpler string literal.

    For example, the following code triggers the rule:

    const a = `${"hello"}`; // can be 'hello'
    const b = `${"prefix"}_suffix`; // can be 'prefix_suffix'
    const c = `${"a"}${"b"}`; // can be 'ab'
  • #​10037 f785e8c Thanks @​minseong0324! - Fixed #​9810: noMisleadingReturnType no longer reports false positives on a getter with a matching setter in the same namespace.

    class Store {
      get status(): string {
        if (Math.random() > 0.5) return "loading";
        return "idle";
      }
      set status(v: string) {}
    }
  • #​10084 5e2f90c Thanks @​jiwon79! - Fixed #​10034: noUselessEscapeInRegex no longer flags escapes of ClassSetReservedPunctuator characters (&, !, #, %, ,, :, ;, <, =, >, @, `, ~) inside v-flag character classes as useless. These characters are reserved as individual code points in v-mode, so the escape is required.

    The following pattern is now considered valid:

    /[a-z\&]/v;
  • #​10063 c9ffa16 Thanks @​Netail! - Added extra rule sources from ESLint CSS. biome migrate eslint should do a bit better detecting rules in your eslint configurations.

  • #​10035 946b50e Thanks @​Netail! - Fixed #​10032: useIframeSandbox now flags if there's no initializer value.

  • #​9865 68fb8d4 Thanks @​dyc3! - Added the new nursery rule useDomNodeTextContent, which prefers textContent over innerText for DOM node text access and destructuring.

    For example, the following snippet triggers the rule:

    const foo = node.innerText;
  • #​10023 bd1e74f Thanks @​ematipico! - Added a new nursery rule noReactNativeDeepImports that disallows deep imports from the react-native package. Internal paths like react-native/Libraries/... are not part of the public API and may change between versions.

    For example, the following code triggers the rule:

    import View from "react-native/Libraries/Components/View/View";
  • #​9885 3dce737 Thanks @​dyc3! - Added a new nursery rule useDomQuerySelector that prefers querySelector() and querySelectorAll() over older DOM query methods such as getElementById() and getElementsByClassName().

  • #​9995 4da9caf Thanks @​siketyan! - Fixed #​9994: Biome now parses nested CSS rules correctly when declarations follow them inside embedded snippets.

  • #​10009 b41cc5a Thanks @​Jayllyz! - Fixed #​10004: noComponentHookFactories no longer reports false positives for object methods and class methods.

  • #​9988 eabf54a Thanks @​Netail! - Tweaked the diagnostics range for useAltText, useButtonType, useHtmlLang, useIframeTitle, useValidAriaRole & useIfameSandbox to report on the opening tag instead of the full tag.

  • #​10043 fc65902 Thanks @​mujpao! - Fixed #​10003: Biome no longer panics when parsing Svelte files containing {#}.

  • #​9815 5cc83b1 Thanks @​dyc3! - Added the new nursery rule noLoopFunc. When enabled, it warns when a function declared inside a loop captures outer variables that can change across iterations.

  • #​9702 ef470ba Thanks @​ryan-m-walker! - Added the nursery rule useRegexpTest that enforces RegExp.prototype.test() over String.prototype.match() and RegExp.prototype.exec() in boolean contexts. test() returns a boolean directly, avoiding unnecessary computation of match results.

    Invalid

    if ("hello world".match(/hello/)) {
    }

    Valid

    if (/hello/.test("hello world")) {
    }
  • #​9743 245307d Thanks @​leetdavid! - Fixed #​2245: Svelte <script> tag language detection when the generics attribute contains > characters (e.g., <script lang="ts" generics="T extends Record<string, unknown>">). Biome now correctly recognizes TypeScript in such script blocks.

  • #​10046 0707de7 Thanks @​Conaclos! - Fixed #​10038: organizeImports now sorts imports in TypeScript modules and declaration files.

      declare module "mymodule" {
    -  	import type { B } from "b";
      	import type { A } from "a";
    +  	import type { B } from "b";
      }
  • #​10012 94ccca9 Thanks @​ematipico! - Added the nursery rule noReactNativeLiteralColors, which disallows color literals inside React Native styles.

    The rule belongs to the reactNative domain. It reports properties whose name contains color and whose value is a string literal when they appear inside a StyleSheet.create(...) call or inside a JSX attribute whose name contains style.

    // Invalid
    const Hello = () => <Text style={{ backgroundColor: "#FFFFFF" }}>hi</Text>;
    
    const styles = StyleSheet.create({
      text: { color: "red" },
    });
    // Valid
    const red = "#f00";
    const styles = StyleSheet.create({
      text: { color: red },
    });
  • #​10005 131019e Thanks @​ematipico! - Added the nursery rule noReactNativeRawText, which disallows raw text outside of <Text> components in React Native.

    The rule belongs to the new reactNative domain.

    // Invalid
    <View>some text</View>
    <View>{'some text'}</View>
    // Valid
    <View>
      <Text>some text</Text>
    </View>

    Additional components can be allowlisted through the skip option:

    {
      "options": {
        "skip": ["Title"]
      }
    }
  • #​9911 1603f78 Thanks @​Netail! - Added the nursery rule noJsxLeakedDollar, which flags text nodes with a trailing $ if the next sibling node is a JSX expression. This could be an unintentional mistake, resulting in a '$' being rendered as text in the output.

    Invalid:

    function MyComponent({ user }) {
      return <div>Hello ${user.name}</div>;
    }
  • #​9999 f42405f Thanks @​minseong0324! - Fixed noMisleadingReturnType incorrectly flagging functions with reassigned let variables.

  • #​10075 295f97f Thanks @​ematipico! - Fixed #9983: Biome now parses functions declared inside Svelte #snippet blocks without throwing errors.

  • #​10006 cf4c1c9 Thanks @​minseong0324! - Fixed #​9810: noMisleadingReturnType incorrectly flagging nested object literals with widened properties.

  • #​10033 11ddc05 Thanks @​ematipico! - Added the nursery rule useReactNativePlatformComponents that ensures platform-specific React Native components (e.g. ProgressBarAndroid, ActivityIndicatorIOS) are only imported in files with a matching platform suffix. It also reports when Android and iOS components are mixed in the same file.

    The following code triggers the rule when the file does not have an .android.js suffix:

    // file.js
    import { ProgressBarAndroid } from "react-native";

v2.4.12

Compare Source

Patch Changes
  • #​9376 9701a33 Thanks @​dyc3! - Added the nursery/noIdenticalTestTitle lint rule. This rule disallows using the same title for two describe blocks or two test cases at the same nesting level.

    describe("foo", () => {});
    describe("foo", () => {
      // invalid: same title as previous describe block
      test("baz", () => {});
      test("baz", () => {}); // invalid: same title as previous test case
    });
  • #​9889 7ae83f2 Thanks @​dyc3! - Improved the diagnostics for useForOf to better explain the problem, why it matters, and how to fix it.

  • #​9916 27dd7b1 Thanks @​Jayllyz! - Added a new nursery rule noComponentHookFactories, that disallows defining React components or custom hooks inside other functions.

    For example, the following snippets trigger the rule:

    function createComponent(label) {
      function MyComponent() {
        return <div>{label}</div>;
      }
      return MyComponent;
    }
    function Parent() {
      function Child() {
        return <div />;
      }
      return <Child />;
    }
  • #​9980 098f1ff Thanks @​ematipico! - Fixed #​9941: Biome now emits a warning diagnostic when a file exceed the files.maxSize limit.

  • #​9942 9956f1d Thanks @​dyc3! - Fixed #​9918: useConsistentTestIt no longer panics when applying fixes to chained calls such as test.for([])("x", () => {});.

  • #​9891 4d9ac51 Thanks @​dyc3! - Improved the noGlobalObjectCalls diagnostic to better explain why calling global objects like Math or JSON is invalid and how to fix it.

  • #​9902 3f4d103 Thanks @​ematipico! - Fixed #​9901: the command lint --write is now idempotent when it's run against HTML-ish files that contains scripts and styles.

  • #​9891 4d9ac51 Thanks @​dyc3! - Improved the noMultiStr diagnostic to explain why escaped multiline strings are discouraged and what to use instead.

  • #​9966 322675e Thanks @​siketyan! - Fixed #​9113: Biome now parses and formats @media and other conditional blocks correctly inside embedded CSS snippets.

  • #​9835 f8d49d9 Thanks @​bmish! - The noFloatingPromises 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 02bd8dd Thanks @​siketyan! - Fixed #​9975: Biome now parses nested CSS selectors correctly inside embedded snippets without requiring an explicit &.

  • #​9949 e0ba71d Thanks @​Netail! - Added the nursery rule useIframeSandbox, which enforces the sandbox attribute for iframe tags.

    Invalid:

    <iframe></iframe>
  • #​9913 d417803 Thanks @​Netail! - Added the nursery rule noJsxNamespace, which disallows JSX namespace syntax.

    Invalid:

    <ns:testcomponent />
  • #​9892 e75d70e Thanks @​dyc3! - Improved the noSelfCompare diagnostic to better explain why comparing a value to itself is suspicious and what to use for NaN checks.

  • #​9861 2cff700 Thanks @​dyc3! - Added the new nursery rule useVarsOnTop, which requires var declarations to appear at the top of their containing scope.

    For example, the following code now triggers the rule:

    function f() {
      doSomething();
      var value = 1;
    }
  • #​9892 e75d70e Thanks @​dyc3! - Improved the noThenProperty diagnostic to better explain why exposing then can create thenable behavior and how to avoid it.

  • #​9892 e75d70e Thanks @​dyc3! - Improved the noShorthandPropertyOverrides diagnostic to explain why later shorthand declarations can unintentionally overwrite earlier longhand properties.

  • #​9978 4847715 Thanks @​mdevils! - Fixed #​9744: useExhaustiveDependencies no longer reports false positives for variables obtained via object destructuring with computed keys, e.g. const { [KEY]: key1 } = props.

  • #​9892 e75d70e Thanks @​dyc3! - Improved the noRootType diagnostic to better explain that the reported root type is disallowed by project configuration and how to proceed.

  • #​9927 7974ab7 Thanks @​dyc3! - Added eslint-plugin-unicorn's no-nested-ternary as a rule source for noNestedTernary

  • #​9873 19ff706 Thanks @​minseong0324! - noMisleadingReturnType now checks class methods, object methods, and getters in addition to functions.

  • #​9888 362b638 Thanks @​dyc3! - Updated metadata for biome migrate eslint to better reflect which ESLint rules are redundant versus unsupported versus unimplemented.

  • #​9892 e75d70e Thanks @​dyc3! - Improved the noAutofocus diagnostic to better explain why autofocus harms accessibility outside allowed modal contexts.

  • #​9982 d6bdf4a Thanks @​dyc3! - Improved performance of noMagicNumbers.
    Biome now maps ESLint no-magic-numbers sources more accurately during biome migrate eslint.

  • #​9889 7ae83f2 Thanks @​dyc3! - Improved the diagnostics for noConstantCondition to better explain the problem, why it matters, and how to

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "every weekend"
  • Automerge
    • "after 8pm and before 8am every weekday,every weekend"

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 9b10726 to 709f3b6 Compare October 11, 2025 01:00
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 709f3b6 to 3c82bc8 Compare October 18, 2025 03:40
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.2.5 Update dependency @biomejs/biome to v2.2.6 Oct 18, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 3c82bc8 to b699a72 Compare October 25, 2025 02:34
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.2.6 Update dependency @biomejs/biome to v2.3.0 Oct 25, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from b699a72 to 99f9284 Compare October 26, 2025 20:29
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.0 Update dependency @biomejs/biome to v2.3.1 Oct 26, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 99f9284 to c49b813 Compare November 1, 2025 02:42
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.1 Update dependency @biomejs/biome to v2.3.2 Nov 1, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from c49b813 to b6983ad Compare November 8, 2025 00:43
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.2 Update dependency @biomejs/biome to v2.3.4 Nov 8, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from b6983ad to bd95564 Compare November 15, 2025 01:03
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.4 Update dependency @biomejs/biome to v2.3.5 Nov 15, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from bd95564 to 8ecbe02 Compare November 22, 2025 00:36
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.5 Update dependency @biomejs/biome to v2.3.7 Nov 22, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 8ecbe02 to d2f4d6b Compare November 29, 2025 01:04
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.7 Update dependency @biomejs/biome to v2.3.8 Nov 29, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from d2f4d6b to 306df68 Compare December 6, 2025 02:50
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 306df68 to b858752 Compare December 20, 2025 01:47
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.8 Update dependency @biomejs/biome to v2.3.10 Dec 20, 2025
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from b858752 to af65c82 Compare January 3, 2026 17:45
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.10 Update dependency @biomejs/biome to v2.3.11 Jan 3, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from af65c82 to 22bcde1 Compare January 24, 2026 02:06
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.11 Update dependency @biomejs/biome to v2.3.12 Jan 24, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 22bcde1 to 94e38a8 Compare January 31, 2026 02:00
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.12 Update dependency @biomejs/biome to v2.3.13 Jan 31, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 94e38a8 to 67d471b Compare February 7, 2026 01:07
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.13 Update dependency @biomejs/biome to v2.3.14 Feb 7, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 67d471b to 0735b2c Compare February 14, 2026 01:34
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.14 Update dependency @biomejs/biome to v2.3.15 Feb 14, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 0735b2c to da4d98e Compare February 15, 2026 17:02
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.3.15 Update dependency @biomejs/biome to v2.4.0 Feb 15, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from da4d98e to d12a1e1 Compare February 21, 2026 01:06
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.0 Update dependency @biomejs/biome to v2.4.4 Feb 21, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch 2 times, most recently from 65721bb to d10ae89 Compare March 7, 2026 00:34
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.4 Update dependency @biomejs/biome to v2.4.6 Mar 7, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from d10ae89 to 751e8f9 Compare March 14, 2026 00:55
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.6 Update dependency @biomejs/biome to v2.4.7 Mar 14, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 751e8f9 to 7cf65a2 Compare March 21, 2026 02:15
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.7 Update dependency @biomejs/biome to v2.4.8 Mar 21, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 7cf65a2 to 6aeacc5 Compare March 28, 2026 01:28
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.8 Update dependency @biomejs/biome to v2.4.9 Mar 28, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 6aeacc5 to 93d2630 Compare April 4, 2026 01:19
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.9 Update dependency @biomejs/biome to v2.4.10 Apr 4, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 93d2630 to 63952fe Compare April 11, 2026 00:35
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.10 Update dependency @biomejs/biome to v2.4.11 Apr 11, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 63952fe to 17516f5 Compare April 18, 2026 01:52
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.11 Update dependency @biomejs/biome to v2.4.12 Apr 18, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 17516f5 to 13f2d02 Compare April 25, 2026 02:04
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.12 Update dependency @biomejs/biome to v2.4.13 Apr 25, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 13f2d02 to d5fa4a8 Compare May 2, 2026 01:11
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.13 Update dependency @biomejs/biome to v2.4.14 May 2, 2026
@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from d5fa4a8 to 77b2d4e Compare May 9, 2026 00:49
@renovate
Copy link
Copy Markdown
Contributor Author

renovate Bot commented May 9, 2026

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pnpm-lock.yaml
warn: This version of pnpm requires at least Node.js v22.13
warn: The current version of Node.js is v20.20.2
warn: Visit https://r.pnpm.io/comp to see the list of past pnpm versions with respective Node.js version support.
node:internal/modules/cjs/loader:1031
      throw new ERR_UNKNOWN_BUILTIN_MODULE(request);
            ^

Error [ERR_UNKNOWN_BUILTIN_MODULE]: No such built-in module: node:sqlite
    at Module._load (node:internal/modules/cjs/loader:1031:13)
    at Module.require (node:internal/modules/cjs/loader:1289:19)
    at require (node:internal/modules/helpers:182:18)
    at ../store/index/lib/index.js (file:///opt/containerbase/tools/pnpm/11.0.9/20.20.2/node_modules/pnpm/dist/pnpm.mjs:16044:25)
    at __init (file:///opt/containerbase/tools/pnpm/11.0.9/20.20.2/node_modules/pnpm/dist/pnpm.mjs:15:56)
    at ../resolving/npm-resolver/lib/index.js (file:///opt/containerbase/tools/pnpm/11.0.9/20.20.2/node_modules/pnpm/dist/pnpm.mjs:26740:5)
    at __init (file:///opt/containerbase/tools/pnpm/11.0.9/20.20.2/node_modules/pnpm/dist/pnpm.mjs:15:56)
    at ../workspace/projects-graph/lib/index.js (file:///opt/containerbase/tools/pnpm/11.0.9/20.20.2/node_modules/pnpm/dist/pnpm.mjs:26886:5)
    at __init (file:///opt/containerbase/tools/pnpm/11.0.9/20.20.2/node_modules/pnpm/dist/pnpm.mjs:15:56)
    at ../workspace/projects-filter/lib/index.js (file:///opt/containerbase/tools/pnpm/11.0.9/20.20.2/node_modules/pnpm/dist/pnpm.mjs:42789:5) {
  code: 'ERR_UNKNOWN_BUILTIN_MODULE'
}

Node.js v20.20.2

@renovate renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 77b2d4e to 67e4e51 Compare May 9, 2026 20:52
@renovate renovate Bot changed the title Update dependency @biomejs/biome to v2.4.14 Update dependency @biomejs/biome to v2.4.15 May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants