Skip to content

chore(deps): update dependency @biomejs/biome to v2.6.2 - #634

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

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

Conversation

@renovate

@renovate renovate Bot commented Jun 12, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@biomejs/biome (source) 2.4.16 → 2.6.2 age confidence
@biomejs/biome (source) 2.4.16 → 2.6.2 age confidence

Release Notes

biomejs/biome (@​biomejs/biome)

v2.6.2

Compare Source

Minor Changes
  • #​11479 5c60ba8 Thanks @​nhedger! - Added a --git flag to biome init. The flag enables Git VCS integration and sets vcs.useIgnoreFile to true in the generated configuration, even when the command runs outside a Git repository.

  • #​11742 3a1356d Thanks @​Netail! - Added the biome migrate stylelint command. It imports a Stylelint configuration and its ignore settings into your Biome configuration, mapping Stylelint rules to their Biome equivalents. Pass --write to apply the changes, and --include-inspired or --include-nursery to migrate additional rules.

  • #​12318 774b5b5 Thanks @​Netail! - Added the new assist action useGraphqlSortedDefinitions, which sorts the named definitions of a GraphQL document, such as types, type extensions, directives, fragments, and operations.

    Invalid:

    type User {
      id: ID!
    }
    
    enum Role {
      ADMIN
      USER
    }
    
    directive @auth on FIELD_DEFINITION
  • #​6886 3479d15 Thanks @​christymcgrory! - biome rage now shows the resolved files.includes and files.ignoreUnknown configuration.

  • #​11102 0874b7f Thanks @​gameroman! - Added support for useTailwindSortedClasses rule in HTML-ish files.

  • #​10711 40de5a0 Thanks @​soconnor-seeq! - Adds a new resolutionKind option for object-syntax plugin entries.

    This allows shared Biome configs in monorepos to load local Grit plugins from the package that declares them instead of resolving plugin paths from the consuming project.

    {
      "plugins": [
        { "path": "./grit/no-debugger.grit", "resolutionKind": "config" },
        { "path": "local-plugin.grit", "resolutionKind": "project" },
        { "path": "local-plugin.grit" }
      ]
    }

    Use resolutionKind: "config" to resolve the plugin from the configuration file that declares it. Use resolutionKind: "project" to resolve the plugin from the consuming project. When omitted, resolutionKind defaults to project. This only affects plugin resolution; includes still apply to end-user project files as usual.

  • #​11432 4befd08 Thanks @​ematipico! - Added biome inspect config to show resolved configuration values and their origins as human-readable diagnostics, including matching overrides.

    Configuration files can also extend other configurations up to ten levels deep. Repeated references to the same resolved file are ignored with an information diagnostic, while resolving multiple versions of one extended package produces an error.

  • #​11477 ab05554 Thanks @​nhedger! - Added automatic Git VCS integration when running biome init inside a Git repository, including from nested directories and Git worktrees. The generated configuration sets vcs.enabled and vcs.useIgnoreFile to true, with vcs.clientKind set to "git".

  • #​11451 1ac4b09 Thanks @​ematipico! - #### YAML is now supported

    Added support for formatting YAML files, both .yaml and .yml extensions

  • #​11432 4befd08 Thanks @​ematipico! - Configuration files can now recursively extend local files and npm package configurations up to ten levels. Every repeated reference participates in the merge, while resolving multiple versions of one extended package produces an error.

  • #​11713 ac6a640 Thanks @​dyc3! - Added support for Grit range() patterns, addressing #​8454. Plugins can filter syntax nodes by optional start_line, start_column, end_line, and end_column bounds.

    For example, this pattern matches function calls contained entirely on line 2.

    range(start_line=2, end_line=2) as $call where {
        $call <: call_expression()
    }
    
  • #​11244 0628b53 Thanks @​ematipico! - Added the new CLI option --profile-type-inference to the commands lint and check.

    The profiler is designed to track the execution time of internal queries and operations, group them by file, and sort them from the most expensive to the least expensive.

    biome lint --profile-type-inference
    profiler ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    
      i Type inference profile (Biome <version>)
    
      src/index.ts
    
        Requests (top 5 of 12 groups; 28 source records; 46 executions)
          1. Promise classification <- nursery/noFloatingPromises
          ...
    
        Queries (top 8 of 25 groups; 61 source records; 94 executions)
          1. Promises / infer_expression_is_promise
          ...
    
        Whole-module inference (top 1 of 1 group; 1 source record; 1 execution)
          1. Import depth limit
          ...
    
      68 files omitted.
    
      ℹ To show all the information, use the --verbose option. The output might be very verbose, so it's advised to analyze a single file.
    
      $ biome lint --profile-type-inference --verbose ./path/to/file.ts
    

    Use --verbose to include detailed timings, attribution, breadth, and implementation references for the top source records in each file.

  • #​12108 4fcb880 Thanks @​ematipico! - Promoted 59 nursery rules to stable groups.

Correctness

Promoted the following rules to the correctness group with error severity. All of them are recommended:

Suspicious

Promoted the following rules to the suspicious group:

Security

Promoted useIframeSandbox to the security group with error severity.

Performance

Promoted the recommended rule useDomNodeTextContent to the performance group with warning severity.

Complexity

Promoted the following rules to the complexity group:

Style

Promoted the following rules to the style group with information severity:

  • useVueConsistentDefinePropsDeclaration

  • useVueNextTickPromise (recommended)

  • noReactNativeLiteralColors

  • useConsistentTestIt

  • useTestHooksInOrder

  • useTestHooksOnTop

  • noPlaywrightEval

  • noPlaywrightElementHandle

  • noPlaywrightWaitForSelector

  • useReduceTypeParameter

  • useNamedCaptureGroup

  • useUnicodeRegex

  • useImportsFirst

  • useVarsOnTop

  • useThisInClassMethods

  • noInlineStyles

  • useDomQuerySelector

  • noTopLevelLiterals

  • #​12206 0f984fb Thanks @​dyc3! - Added the ignoreUsingDeclarations option to noUnusedVariables. When enabled, the rule no longer reports unused variables declared with using or await using, because these declarations clean up their value automatically even when the code never reads it.

    {
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": {
              "options": { "ignoreUsingDeclarations": true }
            }
          }
        }
      }
    }
  • #​12424 6a41490 Thanks @​siketyan! - Removed the javascript.parser.gritMetavariables option. It was intended for internal use only and had no effect on how Biome parses JavaScript and TypeScript files. Biome now reports it as an unknown key and exits with a configuration error, so remove it from your configuration file.

  • #​12055 54870c0 Thanks @​ff1451! - Added the new assist action useGraphqlSortedVariables, which sorts the variable definitions of GraphQL operations.

    Invalid:

    query GetUser($userId: ID!, $includePosts: Boolean = false, $after: String) {
      user(id: $userId) {
        name
      }
    }
  • #​12149 83df808 Thanks @​dyc3! - Added the tailwind.stylesheet option, which points Biome at the CSS file that holds your Tailwind CSS configuration. useTailwindSortedClasses reads the @theme, @utility, and @custom-variant rules in that file and in the local files it imports, so your own theme values, utilities, and variants sort correctly.

    // biome.json
    {
      "tailwind": { "stylesheet": "./src/app.css" }
    }
    /* src/app.css */
    @import "tailwindcss";
    
    @theme {
      --color-brand: #&#8203;3b82f6;
    }
    
    @utility content-auto {
      content-visibility: auto;
    }
    
    @custom-variant theme-midnight (&:where([data-theme="midnight"] *));
  • #​12206 0f984fb Thanks @​dyc3! - Added migration of the ignoreRestSiblings and ignoreUsingDeclarations options of no-unused-vars, @typescript-eslint/no-unused-vars, and unused-imports/no-unused-vars to noUnusedVariables in biome migrate eslint. Options that the ESLint configuration omits are set to ESLint's defaults, so the migrated rule reports the same variables. For example, "no-unused-vars": "error" now migrates ignoreRestSiblings as false.

  • #​11709 32d12cb Thanks @​ematipico! - Added the new command biome inspect file, which returns developer information for the given file.

    biome inspect file path/to/file.ts

    By default, the command returns the CST of the file. The command accepts the following arguments:

    • --ast, which returns the AST of a file.
    • --ir, which returns the formatting IR of a file.
    • --semantic, which returns the semantic model information of a file, if available.
  • #​12221 cb571af Thanks @​dyc3! - The rule noEmptySource now supports Markdown files. It reports files that contain only blank lines and HTML comments. For example, the following file is now reported:

    <!-- TODO -->
  • #​12214 8955b56 Thanks @​dyc3! - The rule noEmptySource now supports YAML files. It reports files with no documents and each document that has no content. For example, the second document in the following code is now reported:

    name: foo
    ---
  • #​12033 8669e53 Thanks @​dyc3! - Added the ignoreElements option to noRedundantRoles. Elements listed in this option are not checked by the rule.

    {
      "linter": {
        "rules": {
          "a11y": {
            "noRedundantRoles": {
              "options": {
                "ignoreElements": ["button"]
              }
            }
          }
        }
      }
    }
  • #​12084 04e3750 Thanks @​dyc3! - The rule noRestrictedElements now supports HTML, Vue, Svelte, and Astro files. For example, with { "elements": { "marquee": "Use CSS animations instead." } }, the following code is now reported:

    <marquee>Breaking news</marquee>
  • #​11408 5a870f2 Thanks @​ematipico! - Added support for distributing named Grit rules, rule presets, and configurations through packages that have a manifest file.

    The field plugins is used to export named Grit plugins, and configs is used to export named configurations.
    Package entries must select a named export: package/rule, package/presets/preset, or package/configs/config. Bare package entries aren't supported.
    Rules consumed from another package are exposed under the consuming package's name, while package authors continue to reference them by their source package inside the manifest.
    Configurations consumed from another package are also exposed under the consuming package's name.

    // biome-manifest.json
    {
      "$schema": "./node_modules/@biomejs/biome/manifest_schema.json",
      "version": 1,
      "plugins": {
        "rules": [
          "@org/shared-rules/noDeprecatedApi",
          "@org/strict-rules/presets/recommended",
          { "useCompanyLogger": "./rules/useCompanyLogger.grit" }
        ],
        "presets": {
          "recommended": [
            "useCompanyLogger",
            "@org/shared-rules/noDeprecatedApi"
          ]
        }
      },
      "configs": [
        "@org/shared-configs/configs/recommended",
        { "base": "./configs/base.json" }
      ]
    }

    The package must publish the manifest and every referenced file, for example, through the files field in package.json.
    Plugin authors can expose their manifest through the biome condition with ./biome-manifest.json as its value.

    // package.json
    {
      "name": "@org/biome-plugin",
      "exports": {
        "biome": "./biome-manifest.json",
        "default": "./index.js"
      },
      "files": ["biome-manifest.json", "rules", "configs"]
    }

    And then, you can load the rules in your biome.json:

    // biome.json
    {
      "plugins": [
        "@org/biome-plugin/useCompanyLogger",
        "@org/biome-plugin/presets/recommended"
      ]
    }

    For more information on how to create a plugin to distribute via npm, check the relative guide.

  • #​12264 90f2eaf Thanks @​dyc3! - Fixed #​11082: glob patterns in the includes option of a plugin are now matched against file paths relative to the directory of the configuration file, the same as files.includes and overrides[].includes.

    Previously, the patterns were matched against the absolute file path, so a pattern such as packages/**/src/** matched no files and the plugin never ran.

    {
      "plugins": [
        { "path": "./my-plugin.grit", "includes": ["packages/**/src/**"] }
      ]
    }

    Patterns that start with **/ keep working. Patterns that contain the absolute path of the project no longer match, and must be rewritten as relative patterns.

  • #​11133 1df00de Thanks @​dlecan! - Added Android (Termux) support to the npm distribution (#​1340). npm install @biomejs/biome now works on Termux through the new @biomejs/cli-android-arm64 and @biomejs/cli-android-x64 packages, which reuse the static musl binaries.

  • #​12132 c5fadc4 Thanks @​ematipico! - Added SCSS support throughout the toolchain. Biome can now format and lint .scss files, and recognizes .module.scss files as CSS Modules.

  • #​10837 754432c Thanks @​JamBalaya56562! - Added support for Google Apps Script (.gs) files.

    They are parsed as JavaScript scripts, so ES module import/export statements are reported as errors (Apps Script has no module system). Common Apps Script service globals (e.g. SpreadsheetApp, DriveApp, Logger) are recognized by noUndeclaredVariables and noGlobalAssign, and the list can be extended through the javascript.globals option.

  • #​11126 fa63050 Thanks @​Punisheroot! - Biome now recognizes files with the .htm extension as HTML.

  • #​12291 6c6619e Thanks @​dyc3! - Changed the dependency that enables the tailwind domain automatically. The domain is now enabled when package.json declares tailwindcss v4 or later, instead of v3 or later, because we are currently targeting Tailwind v4 support. The domain can always be enabled manually.

  • #​11394 de1ad4c Thanks @​ematipico! - #### Markdown is now supported

    Added support for linting and formatting Markdown files. The first version of Biome Markdown parser has 100% compatibility
    against CommonMark.

    Other variants of Markdown, such as GitHub Flavored Markdown (GFM) aren't currently supported; however, we plan to support them soon.

    Formatter and Linter are automatically enabled by default.

    Markdown parser

    The parser comes with an opt-in option to enable frontmatter parsing. When enabled, the first thematic break --- is considered the opening fence of the frontmatter:

    // biome.json
    {
      "markdown": {
        "parser": {
          "frontmatter": true
        }
      }
    }
    ---
    title: Lorem ipsum
    ---

    The parser also comes with an opt-in option called cjkFriendlyEmphasis. When enabled, the parser follows the CommonMark CJK-friendly amendments and recognizes emphasis markers, such as **, placed directly next to Chinese, Japanese, or Korean text. Enable it only when the tool that renders your Markdown supports the same amendments, because the option changes which text Biome formats and lints as emphasis:

    // biome.json
    {
      "markdown": {
        "parser": {
          "cjkFriendlyEmphasis": true
        }
      }
    }

    With the option enabled, the following text is parsed as bold, instead of as literal **:

    **このアスタリスクは強調記号として認識されず、そのまま表示されます。**この文のせいで。
    Markdown formatter

    The formatter has great compatibility with Prettier formatting, more than 90% detected by our infrastructure. The formatter ships with
    a new option called proseWrap, that allows controlling how the Biome formatter should wrap paragraphs.

    For example, when proseWrap is set to always, the formatter will wrap the paragraph to match the configured lineWidth:

    // biome.json
    {
      "markdown": {
        "formatter": {
          "lineWidth": 20,
          "proseWrap": "always"
        }
      }
    }
    Very tiny line width, so
    the paragraph is more
    compact.
    Markdown linter

    The linter ships with a few rules inspired by markdownlint. We plan to ship more rules in the upcoming releases.

    Some rules you can start using already:

    Markdown snippets

    Biome recognizes the code inside fenced code blocks, frontmatter, and HTML blocks as embedded languages, and formats it with
    the formatter of its language and your configuration:

     ```js
    -const   value   =   {a:1,b:2}
    +const value = { a: 1, b: 2 };
     ```

    HTML blocks are formatted only when the HTML formatter is enabled. A block with a syntax error stays as written, and Biome
    still formats the rest of the file.

    The option markdown.formatter.formatEmbeds controls this behavior, and it's enabled by default. Set it to false to keep
    the code of these blocks as written:

    // biome.json
    {
      "markdown": {
        "formatter": {
          "formatEmbeds": false
        }
      }
    }

    The command biome migrate prettier migrates the Prettier option embeddedLanguageFormatting
    to markdown.formatter.formatEmbeds.

    The option markdown.analyzeEmbeds runs the linter and assist actions on the same blocks, with the rules and actions of
    their language, and reports their syntax errors. It's disabled by default, because fenced code blocks usually contain
    examples or partial code:

    // biome.json
    {
      "markdown": {
        "analyzeEmbeds": true
      }
    }
  • #​11634 04c3f5d Thanks @​ematipico! - Added biome inspect plugins to list resolved rules by plugin and importing preset without loading or executing plugin code. Include globs show which files each import targets, and --path selects a target file. Fixed Markdown linter overrides and their configuration inspection.

  • #​12282 a3fa0d6 Thanks @​ff1451! - Added the new assist action useGraphqlSortedArguments, which sorts the arguments of GraphQL fields and directives, and the arguments declared by field and directive definitions.

    Invalid:

    query {
      users(orderBy: NAME, first: 10, after: "cursor") {
        name
      }
    }
  • #​10631 1077238 Thanks @​thibaut-pro! - Added the sortFirst option to the useSortedAttributes action (JSX and HTML). It takes a list of attribute names that are sorted before all other attributes, in the order given, while the remaining attributes keep their usual sort. This is useful to keep attributes such as key first.

    With the following configuration:

    {
      "assist": {
        "actions": {
          "source": {
            "useSortedAttributes": {
              "level": "on",
              "options": { "sortFirst": ["key"] }
            }
          }
        }
      }
    }

    The attributes are reordered so that key comes first:

    // Before
    <div className={styles.investment} key={investment.id} />;
    
    // After
    <div key={investment.id} className={styles.investment} />;
  • #​10424 189b7ba Thanks @​LinusU! - Added the partitionByNewLine option to the useSortedInterfaceMembers assist. When enabled, members separated by a blank line are kept in their own section and sorted only within that section, preserving the logical groupings the author intentionally introduced with empty lines.

Patch Changes
  • #​11953 354f74c Thanks @​Th3S4mur41! - Enhanced the nursery rule useLogicalProperties to check physical CSS values in addition to physical property names.

    The rule recognizes physical values in frame-sizing, anchor-size(), and anchor(), with direction-aware replacements controlled by the existing direction option.

    For justify-content: left and justify-content: right, the rule reports a diagnostic without an automatic replacement because the correct logical alignment depends on the layout axis.

    This is a second part of the rule covering parts of #​9034

  • #​12175 3730b32 Thanks @​dyc3! - Added the nursery rule noDoubleComparison, which reports two comparisons of the same values that can be combined into one. For example, x === y || x < y can be written as x <= y.

  • #​12166 25eb10c Thanks @​dyc3! - Added the new nursery rule noNestedSwitch, which disallows switch statements inside other switch statements.

    switch (n) {
      case 0:
        switch (m) {} // reported
    }
  • #​12170 872ac9f Thanks @​dyc3! - Added the new nursery rule noNestedTemplateLiterals, which disallows template literals written inside other template literals.

    const message = `I have ${color ? `${count} ${color}` : count} apples`;
  • #​12111 f72375f Thanks @​dyc3! - Added the nursery rule noObjectConstructor, which disallows calling the Object constructor without arguments, such as new Object() or Object(). Biome can replace these calls with the object literal {}.

  • #​12254 cb88f07 Thanks @​dyc3! - Added the nursery rule noSvelteClassDirective, which reports Svelte's class: directive. Since Svelte 5.16, the class attribute accepts objects and arrays, and Svelte recommends them over the directive.

    <div class:active={isActive}></div>
  • #​12186 30aa7d2 Thanks @​dyc3! - Added the new nursery rule noUselessDateGetTime, which reports dates converted with .getTime() before being passed to the Date constructor. Passing the date directly, as in new Date(date), already creates a copy.

    const copy = new Date(date.getTime());
  • #​12229 5f8ea6c Thanks @​dyc3! - Added the nursery rule noVueLifecycleAfterAwait, which reports Vue lifecycle hooks, such as onMounted(), that are registered after an await in a component's setup() function. Vue doesn't run these hooks.

    <script>
    import { onMounted } from "vue";
    
    export default {
      async setup() {
        await fetchUser();
        onMounted(() => {});
      },
    };
    </script>
  • #​12077 3dd096f Thanks @​dyc3! - Added the nursery rule noVueRootVIf, which disallows v-if on the only root element of a Vue component template.

    <template>
      <div v-if="visible">Content</div>
    </template>
  • #​12136 b92638b Thanks @​dyc3! - Added the nursery rule noVueShadowNativeEvents, which reports Vue component events named after built-in browser events, such as click or keydown.

    <script setup>
    // Invalid
    const emit = defineEmits(["click"]);
    emit("click");
    </script>
  • #​12135 31a29b6 Thanks @​dyc3! - Added the nursery rule noVueVHtml, which disallows Vue's v-html directive. v-html inserts its value into the page as HTML, so text from users can run code on your page (cross-site scripting, or XSS).

    <template>
      <div v-html="content"></div>
    </template>
  • #​12134 60329af Thanks @​dyc3! - Added the new nursery rule noVueVText, which disallows Vue's v-text directive in favor of text interpolation.

    For example, the following snippet triggers the rule:

    <div v-text="message"></div>
  • #​9817 241b861 Thanks @​dyc3! - Added the new nursery rule noZeroFractions, which disallows numeric literals with redundant zero fractions or dangling dots such as 1.0 and 1.. Biome can now simplify these literals to shorter equivalents.

  • #​12109 b45d426 Thanks @​dyc3! - Added the nursery rule useConsistentJsonFileRead, which enforces a consistent way of reading JSON files before passing them to JSON.parse(). By default, it reports files read as a Buffer; set readAs to "buffer" to report files read as a UTF-8 string instead.

    const packageJson = JSON.parse(await fs.readFile("./package.json"));
  • #​12129 b57f874 Thanks @​dyc3! - Added the new nursery rule useMatchingFunctionName, which requires a named function expression to have the same name as the variable or property it's assigned to.

    // The function name `bar` doesn't match the variable name `foo`.
    const foo = function bar() {};
  • #​12169 0f1ae53 Thanks @​dyc3! - Added the new nursery rule useSimplifiedBooleanReturn, which reports if statements that only return true or false and can be replaced by returning the condition directly.

    function isPositive(value) {
      if (value > 0) {
        return true;
      }
      return false;
    }
  • #​11957 b2db9f2 Thanks @​dyc3! - Added the nursery rule useSvelteKitResolve, which requires internal links and calls to goto(), pushState(), and replaceState() to use paths built with SvelteKit's resolve().

    <a href="/about">About</a>
  • #​12235 b7c1870 Thanks @​dyc3! - Added the nursery rule useSvelteReactiveClasses, which reports Date, Map, Set, URL, and URLSearchParams objects that are modified in Svelte files or exported from Svelte modules. Svelte doesn't detect changes made inside these built-in objects, so the rule suggests the matching classes from svelte/reactivity.

    <script>
      const tags = new Set();
      function addTag(tag) {
        tags.add(tag);
      }
    </script>
  • #​12172 b47674d Thanks @​dyc3! - Added the nursery rule useSvelteShorthandDirective, which enforces the shorthand syntax for Svelte bind:, class:, and style: directives. For example, <input bind:value={value} /> is now reported and can be fixed to <input bind:value />.

  • #​12137 4aeca96 Thanks @​dyc3! - Added the nursery rule useVueMatchingComponentFileName, which requires the name of a Vue component to match its file name. The following component in MyComponent.vue is now reported:

    <script>
    export default {
      name: "MyButton",
    };
    </script>
  • #​12075 de453c0 Thanks @​tionway! - Fixed #​11902: biome migrate --write now successfully migrates empty nested configuration files without introducing an invalid trailing comma.

  • #​12149 83df808 Thanks @​dyc3! - Switched useTailwindSortedClasses to the Tailwind CSS v4 class order. The rule now checks the attributes and functions set in the top-level tailwind configuration, and its own attributes and functions options were removed. Run biome migrate --write to move them to tailwind.attributes, tailwind.mergeFunctions, and tailwind.variantFunctions.

    The rule is now part of the project domain, so enabling it makes Biome scan your project.

  • #​12202 9f1cfde Thanks @​dyc3! - Fixed #​12184: useImportExtensions no longer misses relative imports with .jsx or .tsx extensions when using extensionMappings or forceJsExtensions. The rule reports these imports when the configured replacement resolves to an existing file.

  • #​12081 fd4df34 Thanks @​dyc3! - Added the nursery rule useCapitalizedConstructors, a port of ESLint's new-cap. It reports new expressions whose callee name starts with a lowercase letter, and calls without new whose callee name starts with an uppercase letter.

    const friend = new person();
    const other = Person();
  • #​12061 36aa8c3 Thanks @​dyc3! - Added the nursery rule noExcessiveStatementsPerFunction, a port of ESLint's max-statements. It reports functions that contain more statements than the configured max (default: 10).

  • #​12053 b91a445 Thanks @​dyc3! - Added the nursery rule useVueConsistentEventHyphenation, a port of vue/v-on-event-hyphenation. It enforces a consistent hyphenation style for event names in v-on directives on custom components. By default, hyphenated names are required, so <MyComponent @customEvent="handler" /> is reported.

  • #​12327 2266df2 Thanks @​dyc3! - Improved the performance of the Biome CLI on projects with many files during cleanup.

  • #​12110 cf408d5 Thanks @​dyc3! - Added the recommended nursery rule noOctal, which disallows legacy octal literals such as 071 and decimal literals with leading zeros such as 08. Use 0o71 for explicit octal notation.

  • #​12066 d13d1ba Thanks @​dyc3! - Updated rule source metadata.

  • #​12393 c80f28c Thanks @​ematipico! - Fixed #​12389: the Svelte formatter no longer duplicates binding names when converting redundant bind: initializers to shorthand syntax.

    -<input bind:valuevalue>
    +<input bind:value>
  • #​12325 31a2fb0 Thanks @​dyc3! - Improved the performance of the formatter in files with little or no comments.

  • #​12223 9f246d7 Thanks @​dyc3! - Added the nursery rule noAccidentalBitwiseOperators, which reports the bitwise operators &, |, and |= where the logical operators &&, ||, and ||= were likely intended.

    if (obj & obj.prop) {}
    options = options | {};
  • #​12052 1a6fb41 Thanks @​dyc3! - Added the nursery rule noVueBooleanDefault, which disallows default values for Boolean props in Vue components. Vue already defaults an absent Boolean prop to false.

    <script setup lang="ts">
    withDefaults(defineProps<{ disabled?: boolean }>(), {
      disabled: true,
    });
    </script>
  • #​12177 215288b Thanks @​MustafaKemal0146! - Fixed #​4517: noConfusingVoidType no longer reports void in union types that contain only void and never, such as void | never.

  • #​12461 259a84e Thanks @​ematipico! - Fixed GritQL JSON snippets so patterns such as { $key: $value } can now bind metavariables in object keys and values.

  • #​12185 08cfbd2 Thanks @​dyc3! - Fixed the Tailwind CSS parser splitting dashed utility names. Classes such as drop-shadow!, flex-grow-0, and max-w-screen-lg now keep drop-shadow, flex-grow, and max-w-screen as their utility names.

  • #​12444 ef61338 Thanks @​ematipico! - Fixed the match count reported by biome search. The summary and the matches field of the JSON reporters now count every match, instead of the number of searched files.

  • #​12292 4eadd57 Thanks @​ematipico! - Fixed withastro/compiler-rs#199: processing instructions such as <?xml version="1.0" encoding="UTF-8"?> no longer cause parse errors in Astro and Vue files.

  • #​12152 7a573de Thanks @​dyc3! - Fixed the Tailwind class parser rejecting arbitrary variants whose selector starts with an attribute selector. Classes like [[data-variant=legend]+&]:-mt-1.5 and group-has-[[data-slot=item-description]]/item:self-start now parse correctly.

  • #​12155 851d803 Thanks @​erenbati! - biomejs/biome#11949: Fixed noSelfAssign to detect self-assignments when equivalent property names use dot and bracket notation, including numeric and string-literal keys.

  • #​12112 db7ede6 Thanks @​dyc3! - Added the nursery rule noPromiseExecutorReturn, which disallows returning values from the function passed to new Promise(), because new Promise() ignores them.

    new Promise((resolve) => resolve(1));
  • #​12404 fcd3d74 Thanks @​dyc3! - Fixed #​12374: biome migrate eslint now preserves eqeqeq's null comparison options when configuring noDoubleEquals. Migrating the default ESLint configuration now sets ignoreNull: false, so comparisons such as x == null remain reported.

  • #​12426 0fe3d2b Thanks @​dyc3! - Improved the performance o

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "after 6am and before 6pm"
  • 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 these updates 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 changed the title chore(deps): update dependency @biomejs/biome to v2.5.0 chore(deps): update dependency @biomejs/biome to v2.5.1 Jun 23, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 8528f0f to 5953413 Compare June 23, 2026 10:36
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 5953413 to 1aa0fef Compare July 1, 2026 22:52
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.1 chore(deps): update dependency @biomejs/biome to v2.5.2 Jul 1, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 1aa0fef to 66a1ad5 Compare July 8, 2026 11:28
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.2 chore(deps): update dependency @biomejs/biome to v2.5.3 Jul 8, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 66a1ad5 to 6feb8b8 Compare July 15, 2026 06:09
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.3 chore(deps): update dependency @biomejs/biome to v2.5.4 Jul 15, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 6feb8b8 to 8c1727f Compare July 21, 2026 11:01
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.4 chore(deps): update dependency @biomejs/biome to v2.5.5 Jul 21, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 8c1727f to f9f0e73 Compare July 28, 2026 17:54
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.5 chore(deps): update dependency @biomejs/biome to v2.5.6 Jul 28, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from f9f0e73 to a8676a5 Compare August 4, 2026 16:04
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.6 chore(deps): update dependency @biomejs/biome to v2.5.7 Aug 4, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from a8676a5 to 2bd2f38 Compare August 11, 2026 10:14
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.7 chore(deps): update dependency @biomejs/biome to v2.5.8 Aug 11, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 2bd2f38 to 7883e73 Compare August 18, 2026 02:48
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.8 chore(deps): update dependency @biomejs/biome to v2.5.9 Aug 18, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 7883e73 to ca278ac Compare August 21, 2026 19:32
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.9 chore(deps): update dependency @biomejs/biome to v2.5.10 Aug 21, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from ca278ac to dc69361 Compare August 27, 2026 23:13
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.10 chore(deps): update dependency @biomejs/biome to v2.5.11 Aug 27, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from dc69361 to 54a80e3 Compare September 3, 2026 14:06
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.11 chore(deps): update dependency @biomejs/biome to v2.5.12 Sep 3, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 54a80e3 to ef47fb6 Compare September 10, 2026 14:35
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.12 chore(deps): update dependency @biomejs/biome to v2.5.13 Sep 10, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from ef47fb6 to 0c0f568 Compare September 16, 2026 12:39
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.13 chore(deps): update dependency @biomejs/biome to v2.5.14 Sep 16, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 0c0f568 to 94ee29e Compare October 1, 2026 12:00
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.14 chore(deps): update dependency @biomejs/biome to v2.5.15 Oct 1, 2026
@renovate
renovate Bot force-pushed the renovate/biomejs-biome-2.x branch from 94ee29e to 59dbd1a Compare October 21, 2026 11:54
@renovate renovate Bot changed the title chore(deps): update dependency @biomejs/biome to v2.5.15 chore(deps): update dependency @biomejs/biome to v2.6.2 Oct 21, 2026
@sonarqubecloud

Copy link
Copy Markdown

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