⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jan 30, 2026

This PR contains the following updates:

Package Change Age Confidence
@biomejs/biome (source) 2.3.112.3.13 age confidence
@biomejs/biome (source) 2.3.112.3.13 age confidence
@iconify-json/line-md 1.2.131.2.14 age confidence
accessible-astro-components (source) 5.1.15.1.2 age confidence
astro (source) 5.16.115.16.15 age confidence
pnpm (source) 10.28.110.28.2 age confidence

Release Notes

biomejs/biome (@​biomejs/biome)

v2.3.13

Compare Source

Patch Changes
  • #​8815 f924f23 Thanks @​dyc3! - Improved useVueValidVOn to be more closely aligned with the source rule. It will now properly allow modifiers for all possible keyboard events. It should have better performance when there are no violations of the rule as well.

    Now treated valid:

    <div @&#8203;keydown.arrow-down="handler"></div>
    <div @&#8203;keydown.a="handler"></div>
    <div @&#8203;keydown.b="handler"></div>
    <div @&#8203;keydown.27="foo"></div>
  • #​8856 85f81f9 Thanks @​dyc3! - Fixed #​8710: Biome now parses Vue dynamic slot shorthand arguments that use template literals in [].

  • #​8850 2a190e0 Thanks @​dyc3! - Fixed #​8708: Tailwind @utility directives now parse functional utility names like px-* when Tailwind directives are enabled.

  • #​8863 79386e0 Thanks @​dyc3! - Fixed an issue with biome migrate eslint where it couldn't detect rules for CSS, GraphQL, and HTML.

  • #​8771 6f56b6e Thanks @​lghuahua! - Fix the --reporter=summary output incorrectly merging and displaying wrong issue counts for different rules. Fixes #​8730

  • #​8714 ac3a71f Thanks @​Netail! - Added new nursery rule use-consistent-enum-value-type. This rule disallows enums from having both number and string members.

v2.3.12

Compare Source

Patch Changes
  • #​8653 047576d Thanks @​dyc3! - Added new nursery rule noDuplicateAttributes to forbid duplicate attributes in HTML elements.

  • #​8648 96d09f4 Thanks @​BaeSeokJae! - Added a new nursery rule noVueOptionsApi.

    Biome now reports Vue Options API usage, which is incompatible with Vue 3.6's Vapor Mode.
    This rule detects Options API patterns in <script> blocks, defineComponent(), and createApp() calls,
    helping prepare codebases for Vapor Mode adoption.

    For example, the following now triggers this rule:

    <script>
    export default {
      data() {
        return { count: 0 };
      },
    };
    </script>
  • #​8832 b08270b Thanks @​Exudev! - Fixed #​8809, #​7985, and #​8136: the noSecrets rule no longer reports false positives on common CamelCase identifiers like paddingBottom, backgroundColor, unhandledRejection, uncaughtException, and IngestGatewayLogGroup.

    The entropy calculation algorithm now uses "average run length" to distinguish between legitimate CamelCase patterns (which have longer runs of same-case letters) and suspicious alternating case patterns (which have short runs).

  • #​8793 c19fb0e Thanks @​TheBaconWizard! - Properly handle parameters metavariables for arrow_function GritQL queries. The following biome search command no longer throws an error:

    biome search 'arrow_function(parameters=$parameters, body=$body)'
  • #​8561 981affb Thanks @​wataryooou! - Fixed noUnusedVariables to ignore type parameters declared in ambient contexts such as declare module blocks.

  • #​8817 652cfbb Thanks @​dyc3! - Fixed #​8765: The HTML parser can now parse directive modifiers with a single colon, e.g. @keydown.:.

  • #​8704 a1914d4 Thanks @​Netail! - Added the nursery rule noRootType.
    Disallow the usage of specified root types. (e.g. mutation and/or subscription)

    Invalid:

    {
      "options": {
        "disallow": ["mutation"]
      }
    }
    type Mutation {
      SetMessage(message: String): String
    }
  • #​8712 251b47b Thanks @​Netail! - Renamed the following GraphQL nursery rules to match the Biome standard:

    • useUniqueArgumentNames -> noDuplicateArgumentNames
    • useUniqueFieldDefinitionNames -> noDuplicateFieldDefinitionNames
    • useUniqueGraphqlOperationName -> noDuplicateGraphqlOperationName
    • useUniqueInputFieldNames -> noDuplicateInputFieldNames
    • useUniqueVariableNames -> noDuplicateVariableNames

    Run the biome migrate --write command to automatically update the configuration file.

  • #​7602 957cd8e Thanks @​kedevked! - Added the nursery lint rule useErrorCause.

    This rule enforces that errors caught in a catch clause are not rethrown without wrapping them in a new Error object and specifying the original error as the cause. This helps preserve the error’s stack trace and context for better debugging.

    It can be configured with the following option:

    • requireCatchParameter: (default: true)
      • When true, the rule requires that catch clauses have a parameter. If a throw statement appears inside a catch clause without a parameter, it will be flagged.

    Invalid examples:

    try {
      foo();
    } catch {
      throw new Error("fail");
    }
    try {
      foo();
    } catch (err) {
      throw new Error(err.message);
    }

    Valid examples:

    try {
      foo();
    } catch (err) {
      throw new Error("fail", { cause: err });
    }
    try {
      foo();
    } catch (error) {
      throw new Error("Something went wrong", { cause: error });
    }

    Valid example when requireCatchParameter is false:

    Valid:

    try {
      foo();
    } catch {
      throw new Error("fail");
    }
  • #​8725 95aba98 Thanks @​dyc3! - Fixed #​8715: The CSS parser will now recover slightly better if a semicolon is missing from Tailwind's @apply at-rule.

  • #​8616 4ee3bda Thanks @​Netail! - Added the nursery rule useLoneAnonymousOperation. Disallow anonymous operations when more than one operation specified in document.

    Invalid:

    query {
      fieldA
    }
    
    query B {
      fieldB
    }
  • #​8624 291c9f2 Thanks @​taga3s! - Added the nursery rule useInlineScriptId to the Next.js domain.
    This rule enforces id attribute on next/script components with inline content or dangerouslySetInnerHTML.

    The following code is invalid:

    import Script from "next/script";
    
    export default function Page() {
      return (
        <Script>{`console.log('Hello');`}</Script> // must have `id` attribute
      );
    }
  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​3512:
    useExhaustiveDependencies now properly handles nested destructuring patterns
    from hook results.

    const [[x, y], setXY] = useState([1, 2]);
    useEffect(() => {
      console.log(x, y);
    }, [x, y]); // x and y are now correctly recognized as unstable
  • #​8757 17ed9d3 Thanks @​Netail! - Added the nursery rule noDivRegex. Disallow equal signs explicitly at the beginning of regular expressions.

    Invalid:

    var f = function () {
      return /=foo/;
    };
  • #​8836 aab1d17 Thanks @​dyc3! - Fixed #​7858: Biome now parses Astro files with empty frontmatter blocks.

  • #​8755 3a15c29 Thanks @​arturalkaim! - Fixed #​6670. The $filename metavariable can now be used in GritQL where clauses to filter matches by filename.

  • #​8821 63e68a1 Thanks @​playhardgopro! - Fixed several bugs in Vue conditional rules (useVueValidVIf, useVueValidVElse, and useVueValidVElseIf) related to whitespace handling, newlines, and self-closing tags.

  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​3685:
    useExhaustiveDependencies now properly handles transparent expression
    wrappers like non-null assertions and type assertions in dependency comparisons.

    useMemo(() => Boolean(myObj!.x), [myObj!.x]); // No longer reports incorrect diagnostics
    useMemo(() => myObj!.x?.y === true, [myObj!.x?.y]); // Now correctly matches dependencies
  • #​8597 f764007 Thanks @​Netail! - Added the nursery rule noDuplicateEnumValueNames. Enforce unique enum value names.

    Invalid:

    enum A {
      TEST
      TesT
    }
  • #​8679 33dfd7c Thanks @​ematipico! - Fixed #​8678. Now Biome correctly parses components inside Vue, Svelte and Astro files when they have the same name of self-closing elements.

  • #​8617 31a9bfe Thanks @​Netail! - Added the nursery rule useLoneExecutableDefinition. Require queries, mutations, subscriptions or fragments to be located in separate files.

    Invalid:

    query Foo {
      id
    }
    
    fragment Bar on Baz {
      id
    }
  • #​8697 8519669 Thanks @​Faizanq! - Added the nursery lint rule noExcessiveLinesPerFile to CSS and GraphQL.

  • #​8711 365f7aa Thanks @​Netail! - Added new nursery rule noDuplicateEnumValues, which disallows defining an enum with multiple members initialized to the same value.

  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​5914:
    useExhaustiveDependencies now properly handles variables declared in the same
    statement.

    const varA = Math.random(),
      varB = useMemo(() => varA, [varA]); // varA is now correctly recognized as needed
  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​8427:
    useExhaustiveDependencies now properly resolves variable references to detect
    captured dependencies.

    const fe = fetchEntity;
    useEffect(() => {
      fe(id);
    }, [id, fe]); // fe is now correctly detected as needed
  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​8484:
    useExhaustiveDependencies now properly handles member access on stable hook
    results.

    const stableObj = useStable();
    useMemo(() => {
      return stableObj.stableValue; // stableObj.stableValue is now correctly recognized as stable
    }, []);
  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​7982:
    useExhaustiveDependencies now properly handles callback expressions with type
    assertions.

    const callback = useCallback(
      (() => {
        return count * 2;
      }) as Function,
      [count], // count is now correctly detected
    );
  • #​8766 39eb545 Thanks @​Netail! - Fixed #​8761: Reverted wrapping the URL of rule descriptions with <>, causing broken URLs in VSCode.

  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​3080:
    useExhaustiveDependencies now properly analyzes captures within referenced
    functions passed to hooks.

    function myEffect() {
      console.log(foo, bar);
    }
    useEffect(myEffect, [foo, bar]); // foo and bar are now correctly detected
  • #​8740 4962ed0 Thanks @​Netail! - Extra rule source references. biome migrate eslint should do a bit better detecting rules in your eslint configurations.

  • #​8776 395746f Thanks @​codiini! - Fixed #​6003: noUselessUndefinedInitialization no longer reports exported variables initialized to undefined. In Svelte 4, this pattern is used to declare optional component props.

  • #​8767 0d15370 Thanks @​mdevils! - Fixed #​4248:
    useExhaustiveDependencies now correctly handles function props passed as
    callbacks.

    const data = React.useMemo(getData, [getData]); // getData is now correctly recognized as needed
  • #​8819 bc191ff Thanks @​Netail! - Fixed #​6567:
    noUnknownProperty now ignores unknown properties in at-rules which support descriptors.

  • #​8787 adb652f Thanks @​tuyuritio! - Fixed #​8777: Add support for :active-view-transition pseudo-class.

  • #​8639 6577e32 Thanks @​ohnoah! - Added the nursery lint rule noExcessiveLinesPerFile.
    Biome now reports files that exceed a configurable line limit.

    // maxLines: 2
    const a = 1;
    const b = 2;
    const c = 3;
  • #​8753 71b5c6e Thanks @​Netail! - Added the nursery rule noExcessiveClassesPerFile. Enforce a maximum number of classes per file.

    Invalid:

    class Foo {}
    class Bar {}
  • #​8754 d6b2bda Thanks @​Netail! - Added the nursery rule noFloatingClasses. Disallow new operators outside of assignments or comparisons.

    Invalid:

    new Date();
incluud/accessible-astro-components (accessible-astro-components)

v5.1.2

Compare Source

Code Refactoring

  • Update color variables in CSS to better allow for theme customization when used with the Accessible Astro themes (Mark Teekman)

Chores

  • Update README to enhance project descriptions and correct typos (Mark Teekman)
  • Bump version to 5.1.2 in package.json (Mark Teekman)
withastro/astro (astro)

v5.16.15

Compare Source

Patch Changes
  • #​15286 0aafc83 Thanks @​florian-lefebvre! - Fixes a case where font providers provided as class instances may not work when using the experimental Fonts API. It affected the local provider

v5.16.14

Compare Source

Patch Changes
  • #​15213 c775fce Thanks @​florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API only

    Updates how the local provider must be used when using the experimental Fonts API

    Previously, there were 2 kinds of font providers: remote and local.

    Font providers are now unified. If you are using the local provider, the process for configuring local fonts must be updated:

    -import { defineConfig } from "astro/config";
    +import { defineConfig, fontProviders } from "astro/config";
    
    export default defineConfig({
        experimental: {
            fonts: [{
                name: "Custom",
                cssVariable: "--font-custom",
    -            provider: "local",
    +            provider: fontProviders.local(),
    +            options: {
                variants: [
                    {
                        weight: 400,
                        style: "normal",
                        src: ["./src/assets/fonts/custom-400.woff2"]
                    },
                    {
                        weight: 700,
                        style: "normal",
                        src: ["./src/assets/fonts/custom-700.woff2"]
                    }
                    // ...
                ]
    +            }
            }]
        }
    });

    Once configured, there is no change to using local fonts in your project. However, you should inspect your deployed site to confirm that your new font configuration is being applied.

    See the experimental Fonts API docs for more information.

  • #​15213 c775fce Thanks @​florian-lefebvre! - Exposes root on FontProvider init() context

    When building a custom FontProvider for the experimental Fonts API, the init() method receives a context. This context now exposes a root URL, useful for resolving local files:

    import type { FontProvider } from "astro";
    
    export function registryFontProvider(): FontProvider {
      return {
        // ...
    -    init: async ({ storage }) => {
    +    init: async ({ storage, root }) => {
            // ...
        },
      };
    }
  • #​15185 edabeaa Thanks @​EricGrill! - Add .vercel to .gitignore when adding the Vercel adapter via astro add vercel

v5.16.13

Compare Source

Patch Changes
  • #​15182 cb60ee1 Thanks @​florian-lefebvre! - Adds a new getFontBuffer() method to retrieve font file buffers when using the experimental Fonts API

    The getFontData() helper function from astro:assets was introduced in 5.14.0 to provide access to font family data for use outside of Astro. One of the goals of this API was to be able to retrieve buffers using URLs.

    However, it turned out to be impactical and even impossible during prerendering.

    Astro now exports a new getFontBuffer() helper function from astro:assets to retrieve font file buffers from URL returned by getFontData(). For example, when using satori to generate OpenGraph images:

    // src/pages/og.png.ts
    
    import type{ APIRoute } from "astro"
    -import { getFontData } from "astro:assets"
    +import { getFontData, getFontBuffer } from "astro:assets"
    import satori from "satori"
    
    export const GET: APIRoute = (context) => {
      const data = getFontData("--font-roboto")
    
      const svg = await satori(
        <div style={{ color: "black" }}>hello, world</div>,
        {
          width: 600,
          height: 400,
          fonts: [
            {
              name: "Roboto",
    -          data: await fetch(new URL(data[0].src[0].url, context.url.origin)).then(res => res.arrayBuffer()),
    +          data: await getFontBuffer(data[0].src[0].url),
              weight: 400,
              style: "normal",
            },
          ],
        },
      )
    
      // ...
    }

    See the experimental Fonts API documentation for more information.

v5.16.12

Compare Source

Patch Changes
  • #​15175 47ae148 Thanks @​florian-lefebvre! - Allows experimental Font providers to specify family options

    Previously, an Astro FontProvider could only accept options at the provider level when called. That could result in weird data structures for family-specific options.

    Astro FontProviders can now declare family-specific options, by specifying a generic:

    // font-provider.ts
    import type { FontProvider } from "astro";
    import { retrieveFonts, type Fonts } from "./utils.js",
    
    interface Config {
      token: string;
    }
    
    +interface FamilyOptions {
    +    minimal?: boolean;
    +}
    
    -export function registryFontProvider(config: Config): FontProvider {
    +export function registryFontProvider(config: Config): FontProvider<FamilyOptions> {
      let data: Fonts = {}
    
      return {
        name: "registry",
        config,
        init: async () => {
          data = await retrieveFonts(token);
        },
        listFonts: () => {
          return Object.keys(data);
        },
    -    resolveFont: ({ familyName, ...rest }) => {
    +    // options is typed as FamilyOptions
    +    resolveFont: ({ familyName, options, ...rest }) => {
          const fonts = data[familyName];
          if (fonts) {
            return { fonts };
          }
          return undefined;
        },
      };
    }

    Once the font provider is registered in the Astro config, types are automatically inferred:

    // astro.config.ts
    import { defineConfig } from "astro/config";
    import { registryFontProvider } from "./font-provider";
    
    export default defineConfig({
        experimental: {
            fonts: [{
                provider: registryFontProvider({
                  token: "..."
                }),
                name: "Custom",
                cssVariable: "--font-custom",
    +            options: {
    +                minimal: true
    +            }
            }]
        }
    });
  • #​15175 47ae148 Thanks @​florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API only

    Updates how options are passed to the Google and Google Icons font providers when using the experimental Fonts API

    Previously, the Google and Google Icons font providers accepted options that were specific to given font families.

    These options must now be set using the options property instead. For example using the Google provider:

    import { defineConfig, fontProviders } from "astro/config";
    
    export default defineConfig({
        experimental: {
            fonts: [{
                name: 'Inter',
                cssVariable: '--astro-font-inter',
                weights: ['300 900'],
    -            provider: fontProviders.google({
    -                experimental: {
    -                    variableAxis: {
    -                        Inter: { opsz: ['14..32'] }
    -                    }
    -                }
    -            }),
    +            provider: fontProviders.google(),
    +            options: {
    +                experimental: {
    +                    variableAxis: { opsz: ['14..32'] }
    +                }
    +            }
            }]
        }
    })
  • #​15200 c0595b3 Thanks @​florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API only

    Removes getFontData() exported from astro:assets with fontData when using the experimental Fonts API

    Accessing font data can be useful for advanced use cases, such as generating meta tags or Open Graph images. Before, we exposed a getFontData() helper function to retrieve the font data for a given cssVariable. That was however limiting for programmatic usages that need to access all font data.

    The getFontData() helper function is removed and replaced by a new fontData object:

    -import { getFontData } from "astro:assets";
    -const data = getFontData("--font-roboto")
    
    +import { fontData } from "astro:assets";
    +const data = fontData["--font-roboto"]

    We may reintroduce getFontData() later on for a more friendly DX, based on your feedback.

  • #​15254 8d84b30 Thanks @​lamalex! - Fixes CSS assetsPrefix with remote URLs incorrectly prepending a forward slash

    When using build.assetsPrefix with a remote URL (e.g., https://cdn.example.com) for CSS assets, the generated <link> elements were incorrectly getting a / prepended to the full URL, resulting in invalid URLs like /https://cdn.example.com/assets/style.css.

    This fix checks if the stylesheet link is a remote URL before prepending the forward slash.

  • #​15178 731f52d Thanks @​kedarvartak! - Fixes an issue where stopping the dev server with q+enter incorrectly created a dist folder and copied font files when using the experimental Fonts API

  • #​15230 3da6272 Thanks @​rahuld109! - Fixes greedy regex in error message markdown rendering that caused link syntax examples to capture extra characters

  • #​15253 2a6315a Thanks @​matthewp! - Fixes hydration for React components nested inside HTML elements in MDX files

  • #​15227 9a609f4 Thanks @​matthewp! - Fixes styles not being included for conditionally rendered Svelte 5 components in production builds

  • #​14607 ee52160 Thanks @​simensfo! - Reintroduces css deduplication for hydrated client components. Ensures assets already added to a client chunk are not flagged as orphaned

pnpm/pnpm (pnpm)

v10.28.2

Compare Source


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, on day 1 of the month ( * 0-3 1 * * ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

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

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • 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 dependency Dependency updates label Jan 30, 2026
@renovate renovate bot added the dependency Dependency updates label Jan 30, 2026
@netlify
Copy link

netlify bot commented Jan 30, 2026

Deploy Preview for gitify ready!

Name Link
🔨 Latest commit adb1c09
🔍 Latest deploy log https://app.netlify.com/projects/gitify/deploys/697d33f32a18370008d4b9e7
😎 Deploy Preview https://deploy-preview-593--gitify.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 90 (🔴 down 8 from production)
Accessibility: 97 (no change from production)
Best Practices: 100 (no change from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@setchy setchy merged commit 57ac5d4 into main Jan 30, 2026
9 checks passed
@setchy setchy deleted the renovate/patch-npm-non-major branch January 30, 2026 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependency Dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant