Skip to content

fix(deps): update @astrojs packages#1301

Merged
lacolaco merged 1 commit into
mainfrom
renovate/@astrojs-packages
Feb 1, 2026
Merged

fix(deps): update @astrojs packages#1301
lacolaco merged 1 commit into
mainfrom
renovate/@astrojs-packages

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Jan 17, 2026

This PR contains the following updates:

Package Change Age Confidence
@astrojs/node (source) 9.5.19.5.2 age confidence
@astrojs/rss (source) 4.0.144.0.15 age confidence
@astrojs/sitemap (source) 3.6.13.7.0 age confidence
astro (source) 5.16.85.16.15 age confidence

Release Notes

withastro/astro (@​astrojs/node)

v9.5.2

Compare Source

Patch Changes
withastro/astro (@​astrojs/rss)

v4.0.15

Compare Source

Patch Changes
withastro/astro (@​astrojs/sitemap)

v3.7.0

Compare Source

Minor Changes
  • #​14471 4296373 Thanks @​Slackluky! - Adds the ability to split sitemap generation into chunks based on customizable logic. This allows for better management of large sitemaps and improved performance. The new chunks option in the sitemap configuration allows users to define functions that categorize sitemap items into different chunks. Each chunk is then written to a separate sitemap file.

    integrations: [
      sitemap({
        serialize(item) { th
          return item
        },
        chunks: { // this property will be treated last on the configuration
          'blog': (item) => {  // will produce a sitemap file with `blog` name (sitemap-blog-0.xml)
            if (/blog/.test(item.url)) { // filter path that will be included in this specific sitemap file
              item.changefreq = 'weekly';
              item.lastmod = new Date();
              item.priority = 0.9; // define specific properties for this filtered path
              return item;
            }
          },
          'glossary': (item) => {
            if (/glossary/.test(item.url)) {
              item.changefreq = 'weekly';
              item.lastmod = new Date();
              item.priority = 0.7;
              return item;
            }
          }
    
          // the rest of the path will be stored in `sitemap-pages.0.xml`
        },
      }),
    ],
    
    
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

v5.16.11

Compare Source

Patch Changes

v5.16.10

Compare Source

Patch Changes
  • 2fa19c4 - Improved error handling in the rendering phase

    Added defensive validation in App.render() and #renderError() to provide a descriptive error message when a route module doesn't have a valid page function.

  • #​15199 d8e64ef Thanks @​ArmandPhilippot! - Fixes the links to Astro Docs so that they match the current docs structure.

  • #​15169 b803d8b Thanks @​rururux! - fix: fix image 500 error when moving dist directory in standalone Node

  • #​14622 9b35c62 Thanks @​aprici7y! - Fixes CSS url() references to public assets returning 404 in dev mode when base path is configured

  • #​15219 43df4ce Thanks @​matthewp! - Upgrades the diff package to v8

v5.16.9

Compare Source

Patch Changes
  • #​15174 37ab65a Thanks @​florian-lefebvre! - Adds Google Icons to built-in font providers

    To start using it, access it on fontProviders:

    import { defineConfig, fontProviders } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        fonts: [
          {
            name: 'Material Symbols Outlined',
            provider: fontProviders.googleicons(),
            cssVariable: '--font-material',
          },
        ],
      },
    });
  • #​15150 a77c4f4 Thanks @​matthewp! - Fixes hydration for framework components inside MDX when using Astro.slots.render()

    Previously, when multiple framework components with client:* directives were passed as named slots to an Astro component in MDX, only the first slot would hydrate correctly. Subsequent slots would render their HTML but fail to include the necessary hydration scripts.

  • #​15130 9b726c4 Thanks @​florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API only

    Changes how font providers are implemented with updates to the FontProvider type

    This is an implementation detail that changes how font providers are created. This process allows Astro to take more control rather than relying directly on unifont types. All of Astro's built-in font providers have been updated to reflect this new type, and can be configured as before. However, using third-party unifont providers that rely on unifont types will require an update to your project code.

    Previously, an Astro FontProvider was made of a config and a runtime part. It relied directly on unifont types, which allowed a simple configuration for third-party unifont providers, but also coupled Astro's implementation to unifont, which was limiting.

    Astro's font provider implementation is now only made of a config part with dedicated hooks. This allows for the separation of config and runtime, but requires you to create a font provider object in order to use custom font providers (e.g. third-party unifont providers, or private font registeries).

What should I do?

If you were using a 3rd-party unifont font provider, you will now need to write an Astro FontProvider using it under the hood. For example:

// astro.config.ts
import { defineConfig } from "astro/config";
import { acmeProvider, type AcmeOptions } from '@&#8203;acme/unifont-provider'
+import type { FontProvider } from "astro";
+import type { InitializedProvider } from 'unifont';

+function acme(config?: AcmeOptions): FontProvider {
+	const provider = acmeProvider(config);
+	let initializedProvider: InitializedProvider | undefined;
+	return {
+		name: provider._name,
+		config,
+		async init(context) {
+			initializedProvider = await provider(context);
+		},
+		async resolveFont({ familyName, ...rest }) {
+			return await initializedProvider?.resolveFont(familyName, rest);
+		},
+		async listFonts() {
+			return await initializedProvider?.listFonts?.();
+		},
+	};
+}

export default defineConfig({
    experimental: {
        fonts: [{
-            provider: acmeProvider({ /* ... */ }),
+            provider: acme({ /* ... */ }),
            name: "Material Symbols Outlined",
            cssVariable: "--font-material"
        }]
    }
});
  • #​15147 9cd5b87 Thanks @​matthewp! - Fixes scripts in components not rendering when a sibling <Fragment slot="..."> exists but is unused

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 17, 2026

Renovate PR Review Results

⚖️ Safety Assessment: ✅ Safe

🔍 Release Content Analysis

Astro Core (5.16.8 → 5.16.15)

Bug Fixes (Non-Breaking):

  • Fixed CSS double-bundling when the same CSS file is imported in multiple locations (5.16.11)
  • Fixed hydration for React components nested inside HTML elements in MDX files (5.16.12)
  • Fixed hydration for framework components inside MDX when using Astro.slots.render() (5.16.9)
  • Fixed CSS url() references to public assets returning 404 in dev mode when base path is configured (5.16.10)
  • Fixed CSS assetsPrefix with remote URLs incorrectly prepending a forward slash (5.16.12)
  • Fixed styles not being included for conditionally rendered Svelte 5 components in production builds (5.16.12)
  • Reintroduced CSS deduplication for hydrated client components (5.16.12)
  • Fixed image 500 error when moving dist directory in standalone Node (5.16.10)
  • Improved error handling in the rendering phase (5.16.10)
  • Upgraded the diff package to v8 (5.16.10)
  • Updates to the latest version of devalue (5.16.11)

Experimental Fonts API Changes (Breaking - Not Applicable):
Multiple breaking changes were made to the experimental Fonts API across versions 5.16.9-5.16.14, including:

  • Changes to FontProvider implementation (5.16.9)
  • Updates to local provider configuration (5.16.14)
  • Changes to getFontData() helper function (5.16.12)
  • These changes only affect projects using experimental.fonts configuration

@astrojs/node (9.5.1 → 9.5.2)

  • Fixed prerendered pages not correctly rendered when using middleware mode (9.5.2)
  • Fixed image 500 error when moving dist directory in standalone Node (9.5.2)

@astrojs/rss (4.0.14 → 4.0.15)

  • Documentation fix: Updated links to Astro Docs to match current docs structure (4.0.15)

@astrojs/sitemap (3.6.1 → 3.7.0)

New Feature (Backward Compatible):

  • Added ability to split sitemap generation into chunks based on customizable logic (3.7.0)
  • New optional chunks configuration property allows categorizing sitemap items into separate files
  • Existing configurations continue to work without modification

🎯 Impact Scope Investigation

Direct Package Usage Analysis

@astrojs/sitemap:

  • Used in: astro.config.ts:2,20
  • Current configuration: sitemap() with no arguments
  • Impact: No impact - new chunks feature is optional, existing zero-config usage continues to work

@astrojs/rss:

  • Used in: Multiple RSS feed generation files (9 files)
    • src/pages/index.xml.ts
    • src/pages/index.en.xml.ts
    • src/pages/index.full.xml.ts
    • src/pages/index.en.full.xml.ts
    • Category and tag feed files
  • Current usage: Standard RSS generation with basic options (title, description, items)
  • Impact: No impact - only documentation links were updated

@astrojs/node:

  • Used in: astro.config.ts:14,58-60
  • Configuration: node({ mode: 'standalone' })
  • Impact: Positive - fixes related to standalone mode and image handling

astro:

  • Core framework used throughout the project
  • Current setup uses: React integration, markdown rendering, static output
  • Client-side hydration: Uses client:idle directive in PostDetailPage.astro:114
  • Impact: Positive - bug fixes improve MDX hydration and CSS handling

Experimental Features Check

  • No experimental Fonts API usage detected in codebase
  • No experimental configuration in astro.config.ts
  • No usage of fontProviders, getFontData(), or fontData
  • Result: Breaking changes to experimental Fonts API do not affect this project

Configuration Impact

  • No usage of build.assetsPrefix with remote URLs
  • No MDX files in the project
  • React components use standard hydration directives
  • Result: All fixes are beneficial without requiring changes

Dependency Chain Analysis

  • Updated transitive dependencies:
    • devalue: 5.6.1 → 5.6.2
    • diff: 5.2.0 → 8.0.3 (major update, internal to Astro)
    • fast-xml-parser: 5.3.1 → 5.3.3
    • chokidar: 4.0.3 → 5.0.0 (major update, internal to Astro)
    • lru-cache: 10.4.3 → 11.2.5 (major update, internal to Astro)
    • Various other internal dependencies
  • All transitive dependency updates are handled internally by Astro packages
  • No breaking changes exposed to user code

💡 Recommended Actions

Immediate Actions:

  1. Merge this PR - All changes are backward compatible
  2. 🧪 Verify after deployment:
    • Check RSS feeds are generating correctly (no functional changes expected, just documentation updates)
    • Verify sitemap.xml is generated correctly (no changes to default behavior)
    • Test article pages with ArticleSummarizer component (React hydration fixes may improve reliability)
    • Confirm image assets load correctly in production (fixes for standalone Node mode)

Optional Future Enhancements:

  • Consider using the new sitemap chunks feature (added in @astrojs/sitemap 3.7.0) to organize sitemap by content type if the site grows large:
    sitemap({
      chunks: {
        'posts': (item) => /posts/.test(item.url) ? { ...item, priority: 0.9 } : undefined,
        'tags': (item) => /tags/.test(item.url) ? { ...item, priority: 0.7 } : undefined,
      }
    })

No Manual Migration Required:

  • All API changes are either bug fixes or additive features
  • No code modifications needed
  • No configuration changes required

🔗 Reference Links

Generated by koki-develop/claude-renovate-review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 17, 2026

🚀 Preview deployment ready!

✅ Preview URL: https://pr-1301---web-njpdbbjcea-an.a.run.app
📝 Commit SHA: abb50a0 (view commit)

This comment was automatically generated by the deploy-preview workflow.

@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from 6308ccd to 2fa366c Compare January 17, 2026 22:48
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from 2fa366c to 718be43 Compare January 18, 2026 01:08
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from 718be43 to 11bc5eb Compare January 18, 2026 21:40
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from 11bc5eb to d5877d9 Compare January 21, 2026 05:16
@renovate renovate Bot changed the title fix(deps): update dependency astro to v5.16.9 fix(deps): update @astrojs packages Jan 21, 2026
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from d5877d9 to f618252 Compare January 21, 2026 18:26
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from f618252 to d2e3434 Compare January 26, 2026 15:06
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from d2e3434 to e25b352 Compare January 27, 2026 10:07
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from e25b352 to 3fe33a3 Compare January 27, 2026 18:46
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from 3fe33a3 to 97ffb71 Compare January 28, 2026 09:15
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from 97ffb71 to 81826bb Compare January 30, 2026 14:23
@renovate renovate Bot force-pushed the renovate/@astrojs-packages branch from 81826bb to abb50a0 Compare January 30, 2026 14:41
@lacolaco lacolaco merged commit 96e4fa1 into main Feb 1, 2026
8 checks passed
@lacolaco lacolaco deleted the renovate/@astrojs-packages branch February 1, 2026 08:36
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.

1 participant