Skip to content

chore(deps): update dependency @biomejs/biome to v2.3.15#1025

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

chore(deps): update dependency @biomejs/biome to v2.3.15#1025
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/biomejs-biome-2.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 9, 2026

This PR contains the following updates:

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

Release Notes

biomejs/biome (@​biomejs/biome)

v2.3.15

Compare Source

Patch Changes
  • #​9019 043b67c Thanks @​dyc3! - Added the lint rule noNestedPromises. This rule detects nested .then() or .catch() calls that could be refactored into flat promise chains.

    // Invalid: nested promise that can be flattened
    doThing().then(function () {
      return doOtherThing().then(console.log);
    });
    
    // Valid: flat promise chain
    doThing()
      .then(() => doOtherThing())
      .then(console.log);

    The rule intelligently allows nesting when the inner callback references variables from the outer scope, as these cases cannot be safely flattened.

  • #​9029 6ebf6c6 Thanks @​ff1451! - Added the nursery rule noUselessReturn. The rule reports redundant return; statements that don't affect the function's control flow.

    // Invalid: return at end of function is redundant
    function foo() {
      doSomething();
      return;
    }
  • #​9017 8bac2da Thanks @​mdevils! - Reverted a behavior change in useExhaustiveDependencies that was accidentally included as part of the #​8802 fix. The change made method calls on objects (e.g., props.data.forEach(...)) report only the object (props.data) as a missing dependency instead of the full member expression. This behavior change will be reconsidered separately.

  • #​9005 c8dbbbe Thanks @​corvid-agent! - Fixed #​8790: The noAssignInExpressions rule no longer reports a false positive when an assignment is used as the expression body of an arrow function (e.g., const f = b => a += b).

  • #​8519 ccdc602 Thanks @​ruidosujeira! - Fixed #​8518, where globally excluded files in a monorepo were still being processed when using "extends": "//".

    When a package-level configuration extends the root configuration with "extends": "//", glob patterns (such as those in files.includes) are now correctly resolved relative to the project root directory, instead of the current workspace directory.

  • #​9033 0628e0a Thanks @​mdevils! - Fixed #​8967. useExhaustiveDependencies no longer reports false positives for variables destructured from a rest pattern.

  • #​9023 8ef9d1d Thanks @​siketyan! - Fixed #​9020: When javascript.jsxRuntime is set to reactClassic, noUnusedImports and useImportType rules now allow importing the React identifier from a package other than react. This aligns the behavior with tsc (--jsx=react), which also allows importing React from any package.

  • #​8646 16fd71d Thanks @​siketyan! - Fixed #​8605: Text expressions in some template languages ({{ expr }} or { expr }) at the top level of an HTML document no longer causes panicking.

  • #​8930 51c158e Thanks @​ANKANJAGTAP! - Fixed #​8917
    useExhaustiveDependencies now correctly detects JSX component identifiers as hook dependencies.

  • #​9009 7d229c7 Thanks @​Netail! - Fixed typo in noPositiveTabindex's quick fix text.

  • #​8758 8c789f1 Thanks @​Pranav2612000! - Updated the useJsxKeyInIterable rule to not run inside Map constructors

  • #​8977 bbe0e0c Thanks @​FrankFMY! - Fixed #​4888.
    noUnusedImports now adds export {} when removing the last import in a TypeScript file to prevent it from becoming an ambient module. This does not apply to embedded scripts in Vue, Svelte, or Astro files, which are already in a module context.

  • #​9016 9d4cfa3 Thanks @​dyc3! - Added eslint migration metadata for the rules @typescript/no-var-requires, @typescript/keyword-spacing, @typescript/func-call-spacing, vue/keyword-spacing, vue/func-call-spacing, and unicorn/empty-brace-spaces,

  • #​8848 2cba2b3 Thanks @​LouisLau-art! - Fixed #​8845. Now useGenericFontNames doesn't trigger when font is declared inside the @supports at-rule.

  • #​8997 a5f3212 Thanks @​mldangelo! - Fixed #​8476.
    useAwaitThenable no longer reports false positives for await on call expressions whose return type cannot be resolved (e.g., cross-module function calls to Node.js builtins or npm packages).

  • #​8978 cc7a478 Thanks @​FrankFMY! - Fixed #​8645.
    useAwait no longer reports async generator functions that use yield*, since yield* in an async generator delegates to an AsyncIterable and requires the async modifier.

v2.3.14

Compare Source

Patch Changes
  • #​8921 29e2435 Thanks @​siketyan! - Fixed #​8759: The useConsistentTypeDefinitions rule no longer converts empty object type declarations into interfaces, as it will conflict with the noEmptyInterface rule and can cause an infinite loop when both rules are enabled.

  • #​8928 ccaeac4 Thanks @​taga3s! - Added the nursery rule useGlobalThis. This rule enforces using globalThis over window, self and global.

  • #​8602 9a18daa Thanks @​dyc3! - Added the new nursery rule noVueArrowFuncInWatch. This rule forbids using arrow functions in watchers in Vue components, because arrow functions do not give access to the component instance (via this), while regular functions do.

  • #​8905 9b1eea8 Thanks @​ryan-m-walker! - Fixed #​8428: Improved parsing recovery when encountering qualified rules inside CSS @page at-rule blocks.

  • #​8900 f788cff Thanks @​mdevils! - Fixed #​8802: useExhaustiveDependencies now correctly suggests dependencies without including callback-scoped variables or method names.

    When accessing object properties with a callback-scoped variable, only the object path is suggested:

    // Now correctly suggests `props.value` instead of `props.value[day]`
    useMemo(() => {
      return WeekdayValues.filter((day) => props.value[day]);
    }, [props.value]);

    When calling methods on objects, only the object is suggested as a dependency:

    // Now correctly suggests `props.data` instead of `props.data.forEach`
    useMemo(() => {
      props.data.forEach((item) => console.log(item));
    }, [props.data]);
  • #​8913 e1e20ea Thanks @​dyc3! - Fixed #​8363: HTML parser no longer crashes when encountering a < character followed by a digit in text content (e.g., <12 months). The parser now correctly emits an "Unescaped < bracket character" error instead of treating <12 as a tag name and crashing.

  • #​8910 2fb63a4 Thanks @​dyc3! - Fixed #​8774: Type aliases with generic parameters that have extends constraints now properly indent comments after the equals sign.

    Previously, comments after the = in type aliases with extends constraints were not indented:

    -type A<B, C extends D> = // Some comment
    -undefined;
    +type A<B, C extends D> =
    +    // Some comment
    +    undefined;
  • #​8916 ea4bd04 Thanks @​ryan-m-walker! - Fixed #​4013, where comments in member chains caused unnecessary line breaks.

    // Before
    aFunction.b().c.d();
    
    // After
    aFunction.b().c.d();
  • #​8945 fa66fe3 Thanks @​fireairforce! - Fixed #​8354: Don't remove quotes when type memeber is new.

    // Input:
    type X = {
      "new"(): string;
      "foo"(): string;
    };
    
    // Format Output:
    type X = {
      "new()": string;
      foo(): string;
    };
  • #​8927 0ef3da5 Thanks @​littleKitchen! - Fixed #​8907: useExhaustiveDependencies now correctly recognizes stable hook results (like useState setters and useRef values) when declared with let.

  • #​8931 4561751 Thanks @​koshin01! - Added the new nursery rule noRedundantDefaultExport, which flags redundant default exports where the default export references the same identifier as a named export.

  • #​8900 f788cff Thanks @​mdevils! - Fixed #​8883: useExhaustiveDependencies no longer produces false positives when props are destructured in the function body of arrow function components without parentheses around the parameter.

    type Props = { msg: string };
    
    // Arrow function without parentheses around `props`
    const Component: React.FC<Props> = (props) => {
      const { msg } = props;
      // Previously, this incorrectly reported `msg` as unnecessary
      useEffect(() => console.log(msg), [msg]);
    };
  • #​8861 3531687 Thanks @​dyc3! - Added the noDeprecatedMediaType CSS rule to flag deprecated media types like tv and handheld.

  • #​8775 7ea71cd Thanks @​igas! - Fixed the noUnnecessararyConditions rule to prevent trigger for optional fallback patterns.

  • #​8860 95f1eea Thanks @​dyc3! - Added the nursery rule noHexColors, which flags the use of hexadecimal color codes in CSS and suggests using named colors or RGB/RGBA/HSL/HSLA formats instead.

  • #​8786 d876a38 Thanks @​Bertie690! - Added the nursery rule useConsistentMethodSignatures.
    Inspired by the similarly named version from typescript-eslint, this rule aims to enforce a consistent style for methods used inside object types and interfaces.

Examples

Invalid code with style set to "property" (the default):

interface Foo {
  method(a: string): void;
}

Invalid code with style set to "method":

type Bar = {
  prop: (a: string) => void;
}
  • #​8864 5e97119 Thanks @​dyc3! - Improved the summary provided by biome migrate eslint to be clearer on why rules were not migrated. Biome now specifies a reason when a rule is not migrated, such as being incompatible with the formatter or not implemented yet. This helps users make more informed decisions when migrating their ESLint configurations to Biome.

  • #​8924 99b4cd1 Thanks @​tmohammad78! - Fixed #​8920: noUnknownFunction now knows about sibling-count, and sibling-index css functions

  • #​8900 f788cff Thanks @​mdevils! - Fixed #​8885: useExhaustiveDependencies no longer incorrectly reports variables as unnecessary dependencies when they are derived from expressions containing post/pre-increment operators (++/--) or compound assignment operators (+=, -=, etc.).

    let renderCount = 0;
    
    export const MyComponent = () => {
      // `count` is now correctly recognized as a required dependency
      // because `renderCount++` can produce different values between renders
      const count = renderCount++;
    
      useEffect(() => {
        console.log(count);
      }, [count]); // no longer reports `count` as unnecessary
    };
  • #​8619 d78e01d Thanks @​Netail! - Added the nursery rule useInputName. Require mutation arguments to be called “input”, and the input type to be called Mutation name + “Input”.

    Invalid:

    type Mutation {
      SetMessage(message: String): String
    }
  • #​8922 871b45e Thanks @​siketyan! - Fixed #​8829: Revamped the noGlobalDirnameFilename rule to catch many false negatives that have not been reported.


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), 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.

🔕 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 added the dependencies label Feb 9, 2026
@safedep
Copy link

safedep bot commented Feb 9, 2026

SafeDep Report Summary

Green Malicious Packages Badge Green Vulnerable Packages Badge Green Risky License Badge

Package Details
Package Malware Vulnerability Risky License Report
icon @biomejs/biome @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-darwin-arm64 @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-darwin-x64 @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-linux-arm64 @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-linux-arm64-musl @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-linux-x64 @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-linux-x64-musl @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-win32-arm64 @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗
icon @biomejs/cli-win32-x64 @ 2.3.15
pnpm-lock.yaml
ok icon
ok icon
ok icon
🔗

This report is generated by SafeDep Github App

@renovate renovate bot changed the title chore(deps): update dependency @biomejs/biome to v2.3.14 chore(deps): update dependency @biomejs/biome to v2.3.15 Feb 12, 2026
@renovate renovate bot force-pushed the renovate/biomejs-biome-2.x branch from 5c4f010 to a7e6a90 Compare February 12, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants