Skip to content

AstroEco is Contributing…

Display your GitHub pull requests using astro-loader-github-prs

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@preact/signals (source) ^2.0.1 -> ^2.0.2 age adoption passing confidence
@types/react (source) ^18.3.19 -> ^18.3.20 age adoption passing confidence
svelte (source) ^5.23.2 -> ^5.25.3 age adoption passing confidence

Configuration

📅 Schedule: Branch creation - "* 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.

👻 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.

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@codspeed/vitest-plugin (source) 4.0.0 -> 4.0.1 age adoption passing confidence
@libsql/client (source) ^0.15.0 -> ^0.15.1 age adoption passing confidence
@preact/signals (source) ^2.0.1 -> ^2.0.2 age adoption passing confidence
@tailwindcss/vite (source) ^4.0.15 -> ^4.0.17 age adoption passing confidence
@types/estree (source) ^1.0.6 -> ^1.0.7 age adoption passing confidence
@types/react (source) ^18.3.19 -> ^18.3.20 age adoption passing confidence
@types/semver (source) ^7.5.8 -> ^7.7.0 age adoption passing confidence
eslint (source) ^9.22.0 -> ^9.23.0 age adoption passing confidence
svelte (source) ^5.23.2 -> ^5.25.3 age adoption passing confidence
tailwindcss (source) ^4.0.15 -> ^4.0.17 age adoption passing confidence
typescript-eslint (source) ^8.27.0 -> ^8.28.0 age adoption passing confidence

Release Notes

CodSpeedHQ/codspeed-node (@​codspeed/vitest-plugin)

v4.0.1

Compare Source

What's Changed

New Contributors

Full Changelog: CodSpeedHQ/codspeed-node@v4.0.0...v4.0.1

libsql/libsql-client-ts (@​libsql/client)

v0.15.1

Compare Source

  • Bump to latest libsql package.
eslint/eslint (eslint)

v9.23.0

Compare Source

typescript-eslint/typescript-eslint (typescript-eslint)

v8.28.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.


Configuration

📅 Schedule: Branch creation - "* 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.

👻 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.

withastro/astro

Changes

getStaticPaths() is run in another scope, that makes it impossible to access Astro render context. For some use cases it is necessary to access the routePattern:

  • Calculate translations and pass a list of translations to the page for the language switcher
  • Helper functions to fill route params automatically
  • ...

This change provides routePattern via GetStaticPathsOptions. It isn't a breaking change as whoever wants to consume it can, but doesn't need to.

Testing

I don't know how to test this. I'm very happy to add tests, if you can point me in the right direction.

Docs

/cc @withastro/maintainers-docs for feedback!

The new options should be mentioned in https://docs.astro.build/en/reference/routing-reference/#getstaticpaths.

withastro/astro

Changes

Testing

Should pass

Docs

N/A. No changeset since it's a refactor

withastro/astro

Changes

  • Fixes a case where automatic fallbacks cannot be used with local fonts on node because FileReader is not implemented. Depends on seek-oss/capsize#223

Testing

Manual

Docs

N/A

withastro/astro

Changes

  • We now throw an error if the response from a font file download is not successful

Testing

N/A

Docs

N/A

withastro/astro

Changes

  • After discussing with @delucis, we came to the conclusion that having sans-serif as a default fallback makes sense so users can benefit from automatic fallback generation by default

Testing

N/A

Docs

Will be documented properly alongside all defaults

withastro/astro

Changes

  • Addresses some of the feedback from the API bash
  • Updates the config to be an array at experimental.fonts
  • Updates the config so providers are passed directly to families
  • Updates the config so the local font provider is inferred if src is provided
  • Updates how font providers are initialized to be smarter
  • Updates the FontProvider interface so it doesn't require a name anymore

Testing

Updated. This PR simplifies types tests a lot

Docs

RFC updated. Docs update will come later, after more feedback from the API bash has been addressed

withastro/astro

Changes

Adds support for automatically-provisioning session storage for Cloudflare KV

Automatically configures Cloudflare KV storage when experimental sessions are enabled

If the experimental.session flag is enabled when using the Cloudflare adapter, Astro will automatically configure the session storage using the Cloudflare KV driver. You can still manually configure the session storage if you need to use a different driver or want to customize the session storage configuration. If you want to use sessions, you will need to create the KV namespace and declare it in your wrangler config. You can do this using the Wrangler CLI:

npx wrangler kv namespace create SESSION

This will log the id of the created namespace. You can then add it to your wrangler.json/wrangler.toml file like this:

// wrangler.json
{
  "kv_namespaces": [
    {
      "binding": "SESSION",
      "id": "<your kv namespace id here>"
    }
  ]
}

By default it uses the binding name SESSION, but if you want to use a different binding name you can do so by passing the sessionKVBindingName option to the adapter. For example:

import { defineConfig } from 'astro/config';
import cloudflare from '@astrojs/cloudflare';
export default defineConfig({
  output: 'server',
  site: `http://example.com`,
  adapter: cloudflare({
    platformProxy: {
      enabled: true,
    },
    sessionKVBindingName: 'MY_SESSION',
  }),
  experimental: {
    session: true,
  }
});

Testing

Adds fixture and test suite. To try it on your own site, use the preview release of @astrojs/cloudflare

Docs

Needs updated docs

lin-stephanie/astro-antfustyle-theme

Description

  • New /shorts page
  • Update CardView, CardItem comps
withastro/starlight

Description

Initially reported in Discord by Chris and Sarah, this PR fixes a list styling issue that can happen when the last child element of a list item is a script tag.

This can naturally happen in Starlight, e.g. in a list of steps where the last element of a step is the first occurence of a set of tabs in the page. The issue is visible in the Starlight documentation of the <Steps> component:

Before After
URL https://starlight.astro.build/components/steps/ https://deploy-preview-3026--astro-starlight.netlify.app/components/steps/
Preview SCR-20250327-kkgd SCR-20250327-kkkr

We cannot really target the built-in tabs component to fix this issue, as we could have more components that could lead to the same issue in the future, or the user could have their own component that triggers the issue.

We also cannot fix this issue if only the last child element of a list item is a script tag, as even if rare, the last n child elements could be script tags too.

This leads to quite the complex selector to try to handle all cases, I tried to comment it as much as possible to make it more understandable.

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/cloudflare@12.4.0

Minor Changes

  • #13514 a9aafec Thanks @ascorbic! - Automatically configures Cloudflare KV storage when experimental sessions are enabled

    If the experimental.session flag is enabled when using the Cloudflare adapter, Astro will automatically configure the session storage using the Cloudflare KV driver. You can still manually configure the session storage if you need to use a different driver or want to customize the session storage configuration. If you want to use sessions, you will need to create the KV namespace and declare it in your wrangler config. You can do this using the Wrangler CLI:

    npx wrangler kv namespace create SESSION

    This will log the id of the created namespace. You can then add it to your wrangler.json/wrangler.toml file like this:

    // wrangler.json
    {
      "kv_namespaces": [
        {
          "binding": "SESSION",
          "id": "<your kv namespace id here>",
        },
      ],
    }

    By default it uses the binding name SESSION, but if you want to use a different binding name you can do so by passing the sessionKVBindingName option to the adapter. For example:

    import { defineConfig } from 'astro/config';
    import cloudflare from '@astrojs/cloudflare';
    export default defineConfig({
      output: 'server',
      site: `http://example.com`,
      adapter: cloudflare({
        platformProxy: {
          enabled: true,
        },
        sessionKVBindingName: 'MY_SESSION',
      }),
      experimental: {
        session: true,
      },
    });

    See the Cloudflare KV docs for more details on setting up KV namespaces.

    See the experimental session docs for more information on configuring session storage.

Patch Changes

  • Updated dependencies []:
    • @astrojs/underscore-redirects@0.6.0

astro@5.5.6

Patch Changes

  • #13429 06de673 Thanks @ematipico! - The ActionAPIContext.rewrite method is deprecated and will be removed in a future major version of Astro
withastro/starlight

Description

  • This PR changes how social links are configured in the Starlight options.

  • It switches from a shorthand object syntax to an array of explicit link items:

    - social: {
    -   github: 'https://github.com/withastro/starlight',
    -   discord: 'https://astro.build/chat',
    - },
    + social: [
    +   { icon: 'github', label: 'GitHub', href: 'https://github.com/withastro/starlight' },
    +   { icon: 'discord', label: 'Discord', href: 'https://astro.build/chat' },
    + ],
  • This is a little unfortunate in that it’s a more verbose configuration approach, but it has a few advantages for long-term maintenance:

    • Icons no longer need dedicated built-in labels and code to be used as social links. Any icon can be used if people want (avoiding us needing to decide what counts as a valid social link and what doesn’t).

    • User control of labels means that less common links can be labelled accurately. For example, we avoided adding an email social icon because the label could vary depending on site language and context. This change allows people to use the existing email icon with a label of their choosing.

    • Following #3024, this should be updated to also support user-installed icons reducing the pressure on Starlight to contain icons for every platform in the known universe.

Not in scope

  • Currently there’s no implementation of localized labels for social links in this PR. There are a few obstacles to implementing that nicely at the moment, and given labels are already not localizable (and for many cases don’t require it where the label is a platform name), we decided to skip that until we refactor some internals to make it easier to support that elegantly.

Also considered

  • I also considered whether some hybrid of our current shorthand syntax and the new explicit syntax could make sense to keep config for common platforms terse, but I decided the slightly less verbose syntax didn’t justify users needing to understand two subtly different link shapes (e.g. some icons not needing an explicit label).
withastro/starlight

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/starlight@0.32.5

Patch Changes

withastro/astro

Changes

  • Closes #13503
  • Dynamically imports actions in SSR

Testing

Adds a cloudflare test

Docs

N/A

withastro/astro

Changes

Handles module not found errors thrown when importing the dist/server/entry.mjs file. If the file itself is missing, the existing error will still be thrown

Testing

Manually. This was replicated by modifying a build output to import a missing package.

Docs

N/A

withastro/starlight

Description

This PR will add SourceHut as an option in the social config. See discussion: #3008 (comment)

withastro/starlight

Description

As I noticed myself, the current documentation does not point out that Starlight's custom middleware may or may not conflict with Astro's middleware.

Related discussion: #3017 (pls comment your thoughts there, this PR is just an example)

withastro/starlight

This PR adds Substack's icon to the social links list.

Substack's icon in Starlight site's header

Optimized SVG with SVGOMG.

withastro/astro

Changes

Upgrades vite to the latest due to a CVE of theirs: GHSA-x574-m823-4x7w

Testing

CI should stay green

Docs

N/A

withastro/starlight

Description

This PR adds a new theme https://github.com/ocavue/starlight-theme-nova to the docs.

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.5.5

Patch Changes

  • #13510 5b14d33 Thanks @florian-lefebvre! - Fixes a case where astro:env secrets used in actions would not be available

  • #13485 018fbe9 Thanks @ascorbic! - Fixes a bug that caused cookies to ignore custom decode function if has() had been called before

  • #13505 a98ae5b Thanks @ematipico! - Updates the dependency vite to the latest.

  • #13483 fc2dcb8 Thanks @ematipico! - Fixes a bug where an Astro adapter couldn't call the middleware when there isn't a route that matches the incoming request.

@astrojs/db@0.14.9

Patch Changes

@astrojs/alpinejs@0.4.4

Patch Changes

@astrojs/cloudflare@12.3.1

Patch Changes

  • #13505 a98ae5b Thanks @ematipico! - Updates the dependency vite to the latest.

  • Updated dependencies []:

    • @astrojs/underscore-redirects@0.6.0

@astrojs/markdoc@0.13.2

Patch Changes

@astrojs/mdx@4.2.2

Patch Changes

@astrojs/netlify@6.2.4

Patch Changes

  • #13505 a98ae5b Thanks @ematipico! - Updates the dependency vite to the latest.

  • Updated dependencies []:

    • @astrojs/underscore-redirects@0.6.0

@astrojs/preact@4.0.7

Patch Changes

@astrojs/react@4.2.2

Patch Changes

@astrojs/solid-js@5.0.6

Patch Changes

@astrojs/svelte@7.0.8

Patch Changes

@astrojs/tailwind@6.0.2

Patch Changes

@astrojs/vue@5.0.8

Patch Changes

@astrojs/studio@0.1.5

Patch Changes

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@playwright/test (source) ^1.51.0 -> ^1.51.1 age adoption passing confidence
@preact/signals (source) 2.0.1 -> 2.0.2 age adoption passing confidence
@tailwindcss/vite (source) ^4.0.12 -> ^4.0.17 age adoption passing confidence
@types/estree (source) ^1.0.6 -> ^1.0.7 age adoption passing confidence
@types/react (source) ^18.3.18 -> ^18.3.20 age adoption passing confidence
@types/semver (source) ^7.5.8 -> ^7.7.0 age adoption passing confidence
astro-remote 0.3.3 -> 0.3.4 age adoption passing confidence
package-manager-detector ^1.0.0 -> ^1.1.0 age adoption passing confidence
rollup (source) ^4.35.0 -> ^4.37.0 age adoption passing confidence
sass ^1.85.1 -> ^1.86.0 age adoption passing confidence
shiki (source) ^3.0.0 -> ^3.2.1 age adoption passing confidence
svelte (source) ^5.22.6 -> ^5.25.3 age adoption passing confidence
tailwindcss (source) ^4.0.12 -> ^4.0.17 age adoption passing confidence
undici (source) ^7.4.0 -> ^7.5.0 age adoption passing confidence
vitest (source) ^3.0.8 -> ^3.0.9 age adoption passing confidence
zod-to-json-schema ^3.24.3 -> ^3.24.5 age adoption passing confidence

Release Notes

preactjs/signals (@​preact/signals)

v2.0.2

Compare Source

Patch Changes
tailwindlabs/tailwindcss (@​tailwindcss/vite)

v4.0.17

Compare Source

Fixed
  • Fix an issue causing the CLI to hang when processing Ruby files (#​17383)

v4.0.16

Compare Source

Added
  • Add support for literal values in --value('…') and --modifier('…') (#​17304)
Fixed
  • Fix class extraction followed by ( in Pug (#​17320)
  • Ensure @keyframes for theme animations are emitted if they are referenced following a comma (#​17352)
  • Vite: Ensure that updates to an imported CSS file are properly propagated after updating source files (#​17347)
  • Pre process Slim templates embedded in Ruby files (#​17336)
  • Error when input and output files resolve to the same file when using the CLI (#​17311)
  • Add missing suggestions when --spacing(--value(integer, number)) is used (#​17308)
  • Add ::-webkit-details-marker pseudo to marker variant (#​17362)
natemoo-re/astro-remote (astro-remote)

v0.3.4

Compare Source

Patch Changes
  • e026603: Fixes a memory leak with marked. Please see issue 33 for more details.
rollup/rollup (rollup)

v4.37.0

Compare Source

2025-03-23

Features
  • Support Musl Linux on Riscv64 architectures (#​5726)
  • Handles class decorators placed before the export keyword (#​5871)
Bug Fixes
  • Log Rust panic messages to the console when using the WASM build (#​5875)
Pull Requests

v4.36.0

Compare Source

2025-03-17

Features
  • Extend renderDynamicImport hook to provide information about static dependencies of the imported module (#​5870)
  • Export several additional types used by Vite (#​5879)
Bug Fixes
  • Do not merge chunks if that would create a top-level await cycle between chunks (#​5843)
Pull Requests
sveltejs/svelte (svelte)

v5.25.3

Compare Source

Patch Changes
  • fix: prevent state runes from being called with spread (#​15585)

v5.25.2

Compare Source

Patch Changes
  • feat: migrate reassigned deriveds to $derived (#​15581)

v5.25.1

Compare Source

Patch Changes
  • fix: prevent dev server from throwing errors when attempting to retrieve the proxied value of an iframe's contentWindow (#​15577)

v5.25.0

Compare Source

Minor Changes

v5.24.1

Compare Source

Patch Changes
  • fix: use get in constructor for deriveds (#​15300)

  • fix: ensure toStore root effect is connected to correct parent effect (#​15574)

v5.24.0

Compare Source

Minor Changes
  • feat: allow state created in deriveds/effects to be written/read locally without self-invalidation (#​15553)
Patch Changes
  • fix: check if DOM prototypes are extensible (#​15569)

  • Keep inlined trailing JSDoc comments of properties when running svelte-migrate (#​15567)

  • fix: simplify set calls for proxyable values (#​15548)

  • fix: don't depend on deriveds created inside the current reaction (#​15564)

nodejs/undici (undici)

v7.5.0

Compare Source

What's Changed

New Contributors

Full Changelog: nodejs/undici@v7.4.0...v7.5.0

StefanTerdell/zod-to-json-schema (zod-to-json-schema)

v3.24.5

Compare Source

v3.24.4

Compare Source


Configuration

📅 Schedule: Branch creation - "* 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.

👻 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.

withastro/astro

This PR introduces a new Brand component that provides a stylish, responsive title element with animation capabilities.

Features

  • Fixed positioning with proper spacing
  • Bold, responsive typography that scales across breakpoints (from text-3xl to text-9xl)
  • Rotated display on small screens and above (sm:rotate-90)
  • Smooth transition animations with customized duration and easing
  • Whitespace handling to prevent text wrapping
  • Origin point set to bottom-left for proper transform behavior

Implementation

The component uses Tailwind CSS classes to handle all styling and responsiveness, making it highly adaptable to different screen sizes without additional CSS.

Usage

<Brand>Your Title Here</Brand>
withastro/starlight

Description

  • Closes #
  • What does this PR change? Give us a brief description.
  • Did you change something visual? A before/after screenshot can be helpful.
withastro/starlight

This PR adds a new link option to LogoConfig so that it becomes possible to choose a destination when clicking the logo.

This comes in handy when it's desired to link back from the docs to the product's website.

withastro/astro

Changes

After discussing with @natemoo-re,

Sprite Mode: We decided it was better to push this off until later. Inlining SVGs alone is a big win for Astro and there are some hurdles to creating a good DX without footguns in adding sprites.

Size Prop: We decided to remove this all together as it is pretty opinionated.

Title Prop: We're good with holding off on this until later as well considering there is a good discussion about how this should be implemented by default. Removing this allows users to control the a11y while we work to provide a better DX.

Default Role Attribute: Similar to above, it isn't obvious what we should apply by default. So we'll remove this in favor of a better solution down the road.

Memory Issue: I highly suspect this was tied to Sprite mode but I can look into it more if it still persists.

Additionally, I added a SVGComponent type that is equivalent to AstroComponentFactory to provide a better DX for passing SVGs down to other Astro components.

References withastro/roadmap#1035

Testing

Ran tests

Docs

Will need to update the docs but will need some help

/cc @withastro/maintainers-docs for feedback!

withastro/astro

Changes

Currently, when a cookie is first parsed from the header the value is cached. This means that if subsequent requests pass a different decode function it will be ignored. This PR changes the behaviour to cache the raw cookie values, and then decode them when getting them. This means the passed decode function will always be used.

Fixes #13078

Testing

Docs

withastro/astro

Changes

Currently there is a strange error on Stackblitz where if the config cannot be loaded because of native addons it fails silently, because it throws an uncatchable error. This PR improves error handling so that those errors can be properly logged. This is not Stackblitz-specific, but does special-case the ERR_DLOPEN_DISABLED error that is thrown. This should be fine, because it's not the sort of error that would ever be recoverable by Vite, as it's due to a setting in Node.

Fixes #13249

Testing

Manually tested on Stackblitz:

https://stackblitz.com/github/ascorbic/withastro-astro-banrd5uv/tree/ascorbic/patch-13439

image

Docs

withastro/starlight

Description

withastro/astro

Changes

Closes #13409

The fixes use the same logic as the dev server. If we can't find a RouteData that matches the incoming request, we seek the /404 route, which we usually have, and pass it to the RenderContext. The RenderContext eventually calls the middleware.

Testing

I added a new test. Hopefully I didn't introduce any regressions

Docs

N/A

withastro/astro

Changes

  • In the config schema, refine and superRefine were only called when validating the user's config
  • With this PR, those validations are moved to another schema, called for the user config (as before) as well as at the end of astro:config:setup for each integration
  • Config related schemas are split in several files for clarity
  • Integrations hooks are refactored
  • Unhandled errors in integration hooks now log which integration and which hook is failing
  • I recommend you review the PR without whitespace changes

Testing

Updated, should pass

Docs

Changeset, no docs update needed I think

withastro/astro

Changes

Fixes #13461 by adding data-astro-rerun

Docs

n.a. / bug fix

withastro/astro

Changes

Generates the correct target URL for external redirects

Fixes #13479

Testing

Added test

Docs

withastro/starlight

Description

  • add my newest plugin to the list
  • modify some other descriptions where I noticed some inconsistencies - mostly dots at end of sentence (please let me know if I should remove those changes if unwanted)
withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@types/react (source) ^18.3.18 -> ^18.3.19 age adoption passing confidence
@vitejs/plugin-vue (source) ^5.2.1 -> ^5.2.3 age adoption passing confidence
@vitejs/plugin-vue-jsx (source) ^4.1.1 -> ^4.1.2 age adoption passing confidence
svelte (source) ^5.22.6 -> ^5.23.2 age adoption passing confidence
vite (source) ^6.2.1 -> ^6.2.2 age adoption passing confidence

Release Notes

vitejs/vite-plugin-vue (@​vitejs/plugin-vue)

v5.2.3

v5.2.2

vitejs/vite-plugin-vue (@​vitejs/plugin-vue-jsx)

v4.1.2

sveltejs/svelte (svelte)

v5.23.2

Compare Source

Patch Changes
  • fix: don't hoist listeners that access non hoistable snippets (#​15534)

v5.23.1

Compare Source

Patch Changes
  • fix: invalidate parent effects when child effects update parent dependencies (#​15506)

  • fix: correctly match :has() selector during css pruning (#​15277)

  • fix: replace undefined with void 0 to avoid edge case (#​15511)

  • fix: allow global-like pseudo-selectors refinement (#​15313)

  • chore: don't distribute unused types definitions (#​15473)

  • fix: add files and group to HTMLInputAttributes in elements.d.ts (#​15492)

  • fix: throw rune_invalid_arguments_length when $state.raw() is used with more than 1 arg (#​15516)

v5.23.0

Compare Source

Minor Changes
  • fix: make values consistent between effects and their cleanup functions (#​15469)
vitejs/vite (vite)

v6.2.2

Compare Source


Configuration

📅 Schedule: Branch creation - "* 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.

👻 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.

withastro/starlight

As discussed today in Talking & Doc'ing, considering we are at the moment only using Renovate for GitHub Actions updates, we want to mostly rely on new pull requests rather than the dashboard.

This PR disables the Renovate Dashboard.

withastro/astro

Changes

Follow up to #13471 to align linking style with what we’d usually do

Testing

n/a

Docs

/cc @withastro/maintainers-docs for feedback!

withastro/starlight

Description

This PR:

  • Closes #2989
  • Set up default values to the ranking property of merged indexes in pagefind to prevent search collision research between the current site and the sites hosting the merged indexes
  • This PR do not changes starlight visual

Test

I've tested locally with 2 variants of the starlight's documentation:

  1. The first variant is the one from the main branch, without any merged indexes nor any modifications
  2. The second one is nearly the same as the one from the main branch, with little modifications:
    1. A markdown file changed, replacing climate impact by climate exchange
    2. And a merge index pointing to the first site on pagefind configuration

To test it I searched for climate exchange (the modified text) on the second site.

Before applying the fix, search shown the original site as first result, and after the fix, modified site was first in search result (due to corp. network policies I can't upload screenshot right now to prove it)

Details

I used this script to build and serve locally the 2 variants:

#! /bin/bash

echo "Installing serve globaly"
npm i -g serve

echo "Building the documentation for port 3001"
if [ -d "dist-3001" ]; then
    rm -rf "dist-3001"
fi
pnpm build
mv dist dist-3001

echo "Changing the content of the documentation"
sed -i 's/climate impact/climate exchange/' src/content/docs/environmental-impact.md
sed -i '52i\ \t\t\tpagefind: { indexWeight: 2.0, mergeIndex: [{ bundlePath: "http://localhost:3001/pagefind/", indexWeight: 0.5, }] },' astro.config.mjs


echo "Building the documentation for port 3002"
if [ -d "dist-3002" ]; then
    rm -rf "dist-3002"
fi
pnpm build
mv dist dist-3002

echo "Serving the 2 sites"
serve -l 3001 --cors ./dist-3001 &
serve -l 3002 --cors ./dist-3002
withastro/astro

Changes

  • Updates the Tailwind integration README to show it is deprecated and remove links to docs which are no longer useful

Testing

n/a — docs only

Docs

cc @withastro/maintainers-docs for feedback!

withastro/starlight

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/starlight@0.32.4

Patch Changes

@astrojs/starlight-tailwind@3.0.1

Patch Changes

withastro/starlight

Description

  • What does this PR change? Updates the peer dep. I made it a patch since v6 doesn't change anything compared to v5
withastro/astro

Changes

Unlike other frameworks, by default, preact and svelte don't replace the target element content when rendering (via render or mount) respectively. This caused fallback content to remain when using client:only. This PR empties the target element before rendering.

Fixes #12513

Testing

Added e2e tests

Docs

withastro/astro

Changes

  • There was a regression in #13401 that made impossible to provide an object without a provider for a family
  • This PR moves some things around to have types working properly

Testing

Updates the types tests

Docs

N/A

withastro/starlight

This PR should hopefully disable packageManager updates.

withastro/starlight

Description

This aims to fix the GitHub labeler action that runs for every PR for compatibility with v5.

Their docs are pretty bad, but IIUC, they introduced different match types which means we need to use a changed-files key for each of our existing labels.

withastro/starlight

Based on https://docs.renovatebot.com/docker/#disable-all-docker-renovation, this PR disables all Docker renovations, e.g. like this one #2981

withastro/astro

Changes

  • Now generates types for the Font component family prop
  • Fixes a bug where the map passed to the virtual module was not using family.as if provided

Testing

Updated + manual

Docs

N/A

withastro/astro

Changes

Currently the Cloudflare adapter attempts to move the _redirects and _routes.json files out of the base dir into the root when a base value is set in the config. This fails, because the files are already created in the root. This PR removes that code path.

Fixes #13162

Testing

Adds tests

Docs

withastro/starlight

This seems like a useful plugin but isn't listed to easily discovered. So I'm raising this PR.

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/cloudflare@12.3.0

Minor Changes

Patch Changes

  • #13463 d5ad591 Thanks @ascorbic! - Fixes a bug that caused builds to fail when a base directory is configured

  • Updated dependencies []:

    • @astrojs/underscore-redirects@0.6.0

astro@5.5.4

Patch Changes

@astrojs/preact@4.0.6

Patch Changes

@astrojs/svelte@7.0.7

Patch Changes

@astrojs/tailwind@6.0.1

Patch Changes

  • #13471 020c542 Thanks @delucis! - Updates the README to indicate that the Tailwind integration is deprecated

@astrojs/vercel@8.1.3

Patch Changes

withastro/astro

Changes

Currently if a user has a custom 404.astro or 500.astro we set the correct status code in the response, but not the correct status text, instead leaving the default OK. This PR ensures the correct text is set too.

Fixes #13259

Testing

Added tests

Docs

withastro/astro

Changes

This PR restores the workflow removed in #13435

The workflow is now fixed: tj-actions/changed-files#2464 (comment)

Testing

Once approved, I will merge this PR and trigger again a renovate bot PR so it can pin the actions via digest.

Docs

N/A

withastro/astro

Changes

Due to the recent events that happened with changed-files, this PR enforces the use of the commit digests for our GH actions, instead of a tag.

I also added a group to renovate, so renovate will make a PR to update them all at once.

Testing

Once merged, renovate should update its dependency board. I will trigger a PR

Docs

N/A

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/sitemap@3.3.0

Minor Changes

astro@5.5.3

Patch Changes

  • #13448 91c9503 Thanks @ematipico! - Upgrade to shiki v3

  • #13448 91c9503 Thanks @ematipico! - Handle server.allowedHosts when the value is true without attempting to push it into an array.

  • #13448 91c9503 Thanks @ematipico! - Fixes a bug that caused some very large data stores to save incomplete data.

  • #13448 91c9503 Thanks @ematipico! - Adds a new function called insertPageRoute to the Astro Container API.

    The new function is useful when testing routes that, for some business logic, use Astro.rewrite.

    For example, if you have a route /blog/post and for some business decision there's a rewrite to /generic-error, the container API implementation will look like this:

    import Post from '../src/pages/Post.astro';
    import GenericError from '../src/pages/GenericError.astro';
    import { experimental_AstroContainer as AstroContainer } from 'astro/container';
    
    const container = await AstroContainer.create();
    container.insertPageRoute('/generic-error', GenericError);
    const result = await container.renderToString(Post);
    console.log(result); // this should print the response from GenericError.astro

    This new method only works for page routes, which means that endpoints aren't supported.

  • #13448 91c9503 Thanks @ematipico! - Fixes a bug that caused the astro add command to ignore the --yes flag for third-party integrations

  • #13448 91c9503 Thanks @ematipico! - Prevent bad value in x-forwarded-host from crashing request

  • #13448 91c9503 Thanks @ematipico! - Fix an issue in the Container API, where the renderToString function doesn't render adequately nested slots when they are components.

  • Updated dependencies [91c9503]:

    • @astrojs/markdown-remark@6.3.1

@astrojs/markdoc@0.13.1

Patch Changes

  • Updated dependencies [91c9503]:
    • @astrojs/markdown-remark@6.3.1

@astrojs/mdx@4.2.1

Patch Changes

@astrojs/markdown-remark@6.3.1

Patch Changes

withastro/astro

Reverts #13427

withastro/astro

Changes

Closes #13371

To avoid possible breaking changes with the canonical tag, now the function that creates the HTML redirect accepts a relative location and an absolution location.

Testing

Added a new test. I also tested it manually to make sure that it keeps working as expected.

Docs

N/A

withastro/starlight

Description

  • Closes # - did not create an issue first
  • Add social icon for npm
  • A work of art:
Screenshot 2025-03-18 at 1 55 39 PM

Can't make it any smaller (SVGOMG makes it larger)

withastro/starlight

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/starlight@0.32.3

Patch Changes

withastro/astro

Changes

Testing

Should still pass

Docs

withastro/docs#11288

withastro/astro

Changes

This follows a RFC review from @matthewp

  • By default, we try to generate automatic fallbacks
  • With this PR, set automaticFallback: false on a family to disable this behaviors

Testing

Adds a test

Docs

RFC has been updated

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
miniflare (source) ^3.20250224.0 -> ^4.20250317.0 age adoption passing confidence

Release Notes

cloudflare/workers-sdk (miniflare)

v4.20250317.0

Compare Source

Minor Changes
Patch Changes

v4.20250310.0

Compare Source

Major Changes

v3.20250310.1

Compare Source

Patch Changes

v3.20250310.0

Compare Source

Patch Changes

Configuration

📅 Schedule: Branch creation - "* 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.

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@libsql/client (source) ^0.14.0 -> ^0.15.0 age adoption passing confidence
@playwright/test (source) 1.51.0 -> 1.51.1 age adoption passing confidence
@tailwindcss/vite (source) ^4.0.12 -> ^4.0.15 age adoption passing confidence
@types/react (source) ^18.3.18 -> ^18.3.19 age adoption passing confidence
alpinejs (source) ^3.14.8 -> ^3.14.9 age adoption passing confidence
fast-xml-parser ^5.0.8 -> ^5.0.9 age adoption passing confidence
nanoid ^5.1.3 -> ^5.1.5 age adoption passing confidence
open-props ^1.7.13 -> ^1.7.14 age adoption passing confidence
package-manager-detector ^1.0.0 -> ^1.1.0 age adoption passing confidence
sass ^1.85.1 -> ^1.86.0 age adoption passing confidence
shiki (source) ^3.0.0 -> ^3.2.1 age adoption passing confidence
svelte (source) ^5.22.6 -> ^5.23.2 age adoption passing confidence
tailwindcss (source) ^4.0.12 -> ^4.0.15 age adoption passing confidence
typescript-eslint (source) ^8.26.1 -> ^8.27.0 age adoption passing confidence
vite (source) ^6.2.1 -> ^6.2.2 age adoption passing confidence
vitest (source) ^3.0.8 -> ^3.0.9 age adoption passing confidence

Release Notes

libsql/libsql-client-ts (@​libsql/client)

v0.15.0

Compare Source

  • Bump to latest libsql package.
microsoft/playwright (@​playwright/test)

v1.51.1

Compare Source

Highlights

https://github.com/microsoft/playwright/issues/35093 - [Regression]: TimeoutOverflowWarning: 2149630.634 does not fit into a 32-bit signed integer
https://github.com/microsoft/playwright/issues/35138 - [Regression]: TypeError: Cannot read properties of undefined (reading 'expectInfo')

Browser Versions

  • Chromium 134.0.6998.35
  • Mozilla Firefox 135.0
  • WebKit 18.4

This version was also tested against the following stable channels:

  • Google Chrome 133
  • Microsoft Edge 133
tailwindlabs/tailwindcss (@​tailwindcss/vite)

v4.0.15

Compare Source

v4.0.14

Compare Source

Fixed
  • Do not extract candidates with JS string interpolation ${ (#​17142)
  • Fix extraction of variants containing . character (#​17153)
  • Fix extracting candidates in Clojure/ClojureScript (#​17087)

v4.0.13

Compare Source

Fixed
  • Fix Haml pre-processing (#​17051)
  • Ensure .node and .wasm files are not scanned for utilities (#​17123)
  • Improve performance when scanning JSON files (#​17125)
  • Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors (#​17094, #​17085, #​17113)
  • Don't create invalid CSS when encountering a link wrapped in square brackets (#​17129)
alpinejs/alpine (alpinejs)

v3.14.9

Compare Source

What's Changed
New Contributors

Full Changelog: alpinejs/alpine@v3.14.8...v3.14.9

NaturalIntelligence/fast-xml-parser (fast-xml-parser)

v5.0.9

Compare Source

ai/nanoid (nanoid)

v5.1.5

Compare Source

  • Fixed latest version on npm after 3.x release.

v5.1.4

Compare Source

  • Fixed latest version on npm after 3.x release.
argyleink/open-props (open-props)

v1.7.14

Compare Source

antfu-collective/package-manager-detector (package-manager-detector)

v1.1.0

Compare Source

   🚀 Features
    View changes on GitHub
sass/dart-sass (sass)

v1.86.0

Compare Source

  • Add support for % as an expression in its own right. It will still be parsed
    as the modulo operator when between two other expressions, but in any other
    context it will be an expression whose value is the unquoted string %.

  • Consider attr() to be a special number function that can be used as a
    channel in color functions.

  • Deprecate user-defined functions named type() so that we can eventually
    support the new CSS type() function.

Dart API
  • Increase the minimum Dart SDK to 3.6.0.
typescript-eslint/typescript-eslint (typescript-eslint)

v8.27.0

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

vitest-dev/vitest (vitest)

v3.0.9

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

Configuration

📅 Schedule: Branch creation - "* 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.

👻 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.

withastro/astro

Changes

  • Fixes: #13342
  • Fix handling of server.allowedHosts when the value is true.
  • Ensures that a boolean true value is accepted without attempting to convert it into an array.

Testing

  • Manually tested by setting allowedHosts: true in astro.config.mjs.
  • Verified that astro info and astro dev no longer throw configuration errors.

Docs

No documentation updates needed as this aligns with existing Vite behavior.

withastro/astro
withastro/astro

Changes

Fixes #13067

In the initial issue, all slots passed to the renderToString function are considered strings, so when we pass them to the renderChild function, the HTML escaper breaks the component.

When a slot is passed to the renderToString function, a new SlotString is created.

I created a SlotString for now, but I don't know if this solution is the best approach (it's my first PR on Astro).
Let me know if it's correct or not. :)

Testing

I added a case inside container-with-vitest\test\Card.test.ts that reproduces the case displayed on the issue here.

Docs

The documentation is already present as mentioned by the initial issue.

withastro/astro

Changes

Refactors the types of ActionAPIContext to not inherit functions from APIContext.

Testing

CI should stay green

Docs

N/A

withastro/astro

Changes

  • If a bad value is provide by this header, we simply ignore it and fallback to the host provided by the host header (if there is one).
  • Fixes #13392

Testing

  • Test added

Docs

N/A, bug fix

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.6.0

Minor Changes

  • #13437 013fa87 Thanks @Vardhaman619! - Handle server.allowedHosts when the value is true without attempting to push it into an array.

Patch Changes

  • #13324 ea74336 Thanks @ematipico! - Upgrade to shiki v3

  • #13372 7783dbf Thanks @ascorbic! - Fixes a bug that caused some very large data stores to save incomplete data.

  • #13358 8c21663 Thanks @ematipico! - Adds a new function called insertPageRoute to the Astro Container API.

    The new function is useful when testing routes that, for some business logic, use Astro.rewrite.

    For example, if you have a route /blog/post and for some business decision there's a rewrite to /generic-error, the container API implementation will look like this:

    import Post from '../src/pages/Post.astro';
    import GenericError from '../src/pages/GenericError.astro';
    import { experimental_AstroContainer as AstroContainer } from 'astro/container';
    
    const container = await AstroContainer.create();
    container.insertPageRoute('/generic-error', GenericError);
    const result = await container.renderToString(Post);
    console.log(result); // this should print the response from GenericError.astro

    This new method only works for page routes, which means that endpoints aren't supported.

  • #13426 565583b Thanks @ascorbic! - Fixes a bug that caused the astro add command to ignore the --yes flag for third-party integrations

  • #13428 9cac9f3 Thanks @matthewp! - Prevent bad value in x-forwarded-host from crashing request

  • #13432 defad33 Thanks @P4tt4te! - Fix an issue in the Container API, where the renderToString function doesn't render adequately nested slots when they are components.

  • Updated dependencies [ea74336]:

    • @astrojs/markdown-remark@6.3.1

@astrojs/sitemap@3.3.0

Minor Changes

@astrojs/markdoc@0.13.1

Patch Changes

  • Updated dependencies [ea74336]:
    • @astrojs/markdown-remark@6.3.1

@astrojs/mdx@4.2.1

Patch Changes

@astrojs/markdown-remark@6.3.1

Patch Changes

withastro/astro

Changes

Ensures that the "x is not an official Astro package" prompt respects the --yes flag

Fixes #13399

Testing

Manually tested.

Docs

withastro/astro

Changes

  • Creates astro errors and uses them

Testing

Updated

Docs

N/A

withastro/astro

Changes

  • Improves vite plugin cleanup

Testing

N/A

Docs

N/A

withastro/astro

Changes

  • Enables styling of sitemap via XSL (eXtensible Styling Language)
  • Passes existing config.xslURL to SiteMapIndexStream Docs Link
    • I assume that a separate config value for sitemap-index.xml is unneeded, as historic examples of XSL for sitemaps handle both the index and map XML files.

Testing

  • I extended the tests that ensured sitemap-0.xml included the XSL to also test that sitemap-index.xml includes it.

Docs

I don't believe the docs need to be updated, as the description of the sitemap plugin's config is the only place I've seen XSL (or xslURL) referenced, and that value's usage doesn't differ in a way that merits documentation. I expected the xslURL value to behave this way already, from the docs.

withastro/astro

Reverts #13347

Closes #13416

Unfortunately that PR created some unwanted regressions, and I am afraid we need to revert it

withastro/starlight

Description

This PR adds found new icons: vscode, zed, vim and jetbrains

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.5.2

Patch Changes

  • #13415 be866a1 Thanks @ascorbic! - Reuses experimental session storage object between requests. This prevents memory leaks and improves performance for drivers that open persistent connections to a database.

  • #13420 2f039b9 Thanks @ematipico! - It fixes an issue that caused some regressions in how styles are bundled.

withastro/astro

Changes

  • Validates the name of the font family, to make sure we can generate a proper css variable name

Testing

Added

Docs

N/A

withastro/astro

Changes

Moves the storage object to a static property on AstroSession, meaning it can be reused between requests. This avoids memory leaks and excessive connections when using drivers that open persistent DB connections.

Fixes #13376

Testing

Tested manually. Passes all session tests.

Docs

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.5.1

Patch Changes

withastro/astro

Changes

Small fix to types

Testing

Docs

withastro/astro

Changes

  • Updates how we read font metrics by switching from fontaine to capsize
  • Capsize was used under the hood by fontaine. But fontaine abstracted it too much so we couldn't do some caching
  • I copied part of fontaine's source which is not tested
  • I updated the code from fontaine so it uses less dependencies, so this PR makes Astro lighter

Testing

Updated

Docs

N/A

withastro/astro

Changes

If Astro detects that sharp is not installed when trying to transform an image it will throw a MissingSharp error. However when this happens during a build, we currently catch it and instead throw a CouldNotTransformImage error, with a message suggesting the image is corrupt. The correct error is buried in the cause. This PR checks if the thrown error is an AstroError, and if so rethrows it rather than throwing a CouldNotTransformImage error. This means that the MissingSharp error is logged correctly.

Testing

Tested manually

Docs

withastro/astro

Changes

  • What does this change?

New PrefetchOptions param eagerness that can be explicitly stated for prefetch() function.

Usecase: letting a browser manage when a page should be prerendered will simplify web site code compared to default behavior (no eagerness passed will automatically default to immediate, causing headcaches if you want to use FIFO strategy available for moderate and conservative args)

Reference doc: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/speculationrules#eagerness

Testing

No tests added, as there weren't for PrefetchOptions

Docs

/cc @withastro/maintainers-docs

prefetch() doc should be updated accordingly to notify users a new option to be passed on

withastro/astro

Changes

Currently if a file is edited in dev, any schema errors will be displayed by the Vite dev server as an UnhandledRejectionError. This is because the schema validation happens in the file watcher, and isn't caught and displayed during the rendering. This ensures that AstroErrors (including InvalidContentEntryDataError) that are caught by the dev server are recognised and displayed directly, rather than as unhandled rejections.

Testing

Tested manually

Docs

withastro/astro

Changes

While working on an adapter, I encountered a scenario where app.match() correctly matches a route, but the dynamic route ultimately returns a 404. In such cases, a prerendered 404 page needs to be served.

Currently, when a prerendered 404 page exists, fetch is used to retrieve it. However, in some environments, it would be useful to provide a custom implementation for fetching the prerendered page.

In my specific use case, I am deploying to a Cloudflare Worker, where not all workers can call themselves. This limitation makes it necessary to have a way to override the default fetch behavior.

This PR introduces support for a user-provided fetch function (string -> Response), which will be used when SSR needs to serve a prerendered 404/500 page.

Testing

  • Added a test for this specific scenario: a server target with a prerendered 404.
  • Updated the test adapter to propagate the custom fetch function.

Docs

withastro/docs#11256

/cc @withastro/maintainers-docs

withastro/astro

Changes

Exposes the functionality implemented in the compiler: withastro/compiler#1055

I added a new experimental flag (name to bikeshed, of course).

Testing

Added a test

Docs

withastro/docs#11211

withastro/astro

Changes

This PR makes a bunch of changes related to the fonts configuration:

  • Extracts schemas to be reused in the Astro config and in types
  • Improves schemas to allow more font options (eg. featureSettings)
  • Adds errors to avoid name conflicts. Consider the errors messages placeholders, we'll refine them once team docs make a proper review
  • I'd like your opinion on a TODO (I added a PR comment as well)

Testing

  • Adds unit tests
  • Disable whitespace sensitivty as I took the opportunity to improve some things in the config validation test

Docs

N/A

withastro/starlight

Description

  • add 6 new icons:

    • VS Code
    • Jetbrains
    • Zed
    • Vim
    • Figma
    • Sketch
  • those icons where optimized with SVGOMG, Number precision: 2

  • Closes #2944 (probably have to manually close, cause discussions dont get closed as issues do...)

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.5.0

Minor Changes

  • #13402 3e7b498 Thanks @ematipico! - Adds a new experimental flag called experimental.preserveScriptOrder that renders <script> and <style> tags in the same order as they are defined.

    When rendering multiple <style> and <script> tags on the same page, Astro currently reverses their order in your generated HTML output. This can give unexpected results, for example CSS styles being overridden by earlier defined style tags when your site is built.

    With the new preserveScriptOrder flag enabled, Astro will generate the styles in the order they are defined:

    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        preserveScriptOrder: true,
      },
    });

    For example, the following component has two <style> tags, and both define the same style for the body tag:

    <p>I am a component</p>
    <style>
      body {
        background: red;
      }
    </style>
    <style>
      body {
        background: yellow;
      }
    </style>

    Once the project is compiled, Astro will create an inline style where yellow appears first, and then red. Ultimately, the red background is applied:

    body {
      background: #ff0;
    }
    body {
      background: red;
    }

    When experimental.preserveScriptOrder is set to true, the order of the two styles is kept as it is, and in the style generated red appears first, and then yellow:

    body {
      background: red;
    }
    body {
      background: #ff0;
    }

    This is a breaking change to how Astro renders project code that contains multiple <style> and <script> tags in the same component. If you were previously compensating for Astro's behavior by writing these out of order, you will need to update your code.

    This will eventually become the new default Astro behavior, so we encourage you to add this experimental style and script ordering as soon as you are able! This will help us test the new behavior and ensure your code is ready when this becomes the new normal.

    For more information as this feature develops, please see the experimental script order docs.

  • #13352 cb886dc Thanks @delucis! - Adds support for a new experimental.headingIdCompat flag

    By default, Astro removes a trailing - from the end of IDs it generates for headings ending with
    special characters. This differs from the behavior of common Markdown processors.

    You can now disable this behavior with a new configuration flag:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        headingIdCompat: true,
      },
    });

    This can be useful when heading IDs and anchor links need to behave consistently across your site
    and other platforms such as GitHub and npm.

    If you are using the rehypeHeadingIds plugin directly, you can also pass this new option:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { rehypeHeadingIds } from '@astrojs/markdown-remark';
    import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source';
    
    export default defineConfig({
      markdown: {
        rehypePlugins: [
          [rehypeHeadingIds, { experimentalHeadingIdCompat: true }],
          otherPluginThatReliesOnHeadingIDs,
        ],
      },
    });
  • #13311 a3327ff Thanks @chrisirhc! - Adds a new configuration option for Markdown syntax highlighting excludeLangs

    This option provides better support for diagramming tools that rely on Markdown code blocks, such as Mermaid.js and D2 by allowing you to exclude specific languages from Astro's default syntax highlighting.

    This option allows you to avoid rendering conflicts with tools that depend on the code not being highlighted without forcing you to disable syntax highlighting for other code blocks.

    The following example configuration will exclude highlighting for mermaid and math code blocks:

    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      markdown: {
        syntaxHighlight: {
          type: 'shiki',
          excludeLangs: ['mermaid', 'math'],
        },
      },
    });

    Read more about this new option in the Markdown syntax highlighting configuration docs.

Patch Changes

  • #13404 4e78b4d Thanks @ascorbic! - Fixes a bug in error handling that saving a content file with a schema error would display an "unhandled rejection" error instead of the correct schema error

  • #13379 d59eb22 Thanks @martrapp! - Fixes an edge case where the client router executed scripts twice when used with a custom swap function that only swaps parts of the DOM.

  • #13393 6b8fdb8 Thanks @renovate! - Updates primsjs to version 1.30.0, which adds support for more languages and fixes a security advisory which does not affect Astro.

  • #13374 7b75bc5 Thanks @ArmandPhilippot! - Fixes the documentation of the i18n configuration where manual was presented as a key of routing instead of an available value.

  • #13380 9bfa6e6 Thanks @martrapp! - Fixes an issue where astro:page-load fires before all scripts are executed

  • #13407 0efdc22 Thanks @ascorbic! - Displays correct error message when sharp isn't installed

  • Updated dependencies [cb886dc, a3327ff]:

    • @astrojs/markdown-remark@6.3.0

@astrojs/markdoc@0.13.0

Minor Changes

  • #13352 cb886dc Thanks @delucis! - Adds support for a new experimental.headingIdCompat flag

    By default, Astro removes a trailing - from the end of IDs it generates for headings ending with
    special characters. This differs from the behavior of common Markdown processors.

    You can now disable this behavior with a new configuration flag:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        headingIdCompat: true,
      },
    });

    This can be useful when heading IDs and anchor links need to behave consistently across your site
    and other platforms such as GitHub and npm.

    If you are using the rehypeHeadingIds plugin directly, you can also pass this new option:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { rehypeHeadingIds } from '@astrojs/markdown-remark';
    import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source';
    
    export default defineConfig({
      markdown: {
        rehypePlugins: [
          [rehypeHeadingIds, { experimentalHeadingIdCompat: true }],
          otherPluginThatReliesOnHeadingIDs,
        ],
      },
    });

Patch Changes

  • Updated dependencies [cb886dc, a3327ff]:
    • @astrojs/markdown-remark@6.3.0

@astrojs/mdx@4.2.0

Minor Changes

  • #13352 cb886dc Thanks @delucis! - Adds support for a new experimental.headingIdCompat flag

    By default, Astro removes a trailing - from the end of IDs it generates for headings ending with
    special characters. This differs from the behavior of common Markdown processors.

    You can now disable this behavior with a new configuration flag:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        headingIdCompat: true,
      },
    });

    This can be useful when heading IDs and anchor links need to behave consistently across your site
    and other platforms such as GitHub and npm.

    If you are using the rehypeHeadingIds plugin directly, you can also pass this new option:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { rehypeHeadingIds } from '@astrojs/markdown-remark';
    import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source';
    
    export default defineConfig({
      markdown: {
        rehypePlugins: [
          [rehypeHeadingIds, { experimentalHeadingIdCompat: true }],
          otherPluginThatReliesOnHeadingIDs,
        ],
      },
    });

Patch Changes

  • Updated dependencies [cb886dc, a3327ff]:
    • @astrojs/markdown-remark@6.3.0

@astrojs/markdown-remark@6.3.0

Minor Changes

  • #13352 cb886dc Thanks @delucis! - Adds support for a new experimental.headingIdCompat flag

    By default, Astro removes a trailing - from the end of IDs it generates for headings ending with
    special characters. This differs from the behavior of common Markdown processors.

    You can now disable this behavior with a new configuration flag:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        headingIdCompat: true,
      },
    });

    This can be useful when heading IDs and anchor links need to behave consistently across your site
    and other platforms such as GitHub and npm.

    If you are using the rehypeHeadingIds plugin directly, you can also pass this new option:

    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    import { rehypeHeadingIds } from '@astrojs/markdown-remark';
    import { otherPluginThatReliesOnHeadingIDs } from 'some/plugin/source';
    
    export default defineConfig({
      markdown: {
        rehypePlugins: [
          [rehypeHeadingIds, { experimentalHeadingIdCompat: true }],
          otherPluginThatReliesOnHeadingIDs,
        ],
      },
    });
  • #13311 a3327ff Thanks @chrisirhc! - Adds a new configuration option for Markdown syntax highlighting excludeLangs

    This option provides better support for diagramming tools that rely on Markdown code blocks, such as Mermaid.js and D2 by allowing you to exclude specific languages from Astro's default syntax highlighting.

    This option allows you to avoid rendering conflicts with tools that depend on the code not being highlighted without forcing you to disable syntax highlighting for other code blocks.

    The following example configuration will exclude highlighting for mermaid and math code blocks:

    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      markdown: {
        syntaxHighlight: {
          type: 'shiki',
          excludeLangs: ['mermaid', 'math'],
        },
      },
    });

    Read more about this new option in the Markdown syntax highlighting configuration docs.

withastro/astro

Changes

Use package-manager-detector to replace preferred-pm and which-pm. It includes features of both of those packages with a smaller dependency footprint. It also includes APIs to get the package-manager-specific command strings so we don't have to handle them manually.

NOTE: It's easier to review some of the changes with whitespace disabled for diffs.

Testing

Tested manually through the CLIs. Here's some screenshots:

image image image

Docs

Added a changeset, but this is mostly an internal change and shouldn't change the detected package manager in most project setups.

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
prismjs 1.29.0 -> 1.30.0 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-53382

Prism (aka PrismJS) through 1.29.0 allows DOM Clobbering (with resultant XSS for untrusted input that contains HTML but does not directly contain JavaScript), because document.currentScript lookup can be shadowed by attacker-injected HTML elements.


Release Notes

PrismJS/prism (prismjs)

v1.30.0

Compare Source


Configuration

📅 Schedule: Branch creation - "" (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.

withastro/astro

Changes

  • What does this change?
  • Be short and concise. Bullet points can help!
  • Before/after screenshots can help as well.
  • Don't forget a changeset! pnpm exec changeset

Testing

Docs

lin-stephanie/astro-antfustyle-theme

Description

This PR updates the Toc.astro to properly support Chinese text anchors. Previously, the anchor links did not account for percent-encoded Chinese characters. As a result, headings containing Chinese text were not correctly recognized.

withastro/astro

Changes

  • Remove trailing spaces from blog example's links.
  • A formatter introduced newlines inside the anchor tags on the blog example's home index.astro page, causing the link to include a trailing space.
  • Not the worst thing, just looks a little unpolished compared to everything else I've experienced getting to know Astro :)
  • I've put the anchor tags on their own lines to avoid this issue, and prevent future formatters from re-introducing the issue (tested with Astro extension's formatter, at least).
  • No changeset because this is in examples/*.

Before

before

After

after

Testing

  • Ran the example locally (cd examples/blog && npm run dev) and it fixes the issue.
  • Ran Astro VS Code extension's formatter, confirmed issue is not re-introduced. (Also tried Prettier's.)

Docs

No docs added - small visual tweak to blog example page links.

withastro/astro

Changes

Closes #13382

Testing

I tested it locally in VSCode. Now the typing error is gone.

Docs

N/A

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@astrojs/svelte (source) ^7.0.5 -> ^7.0.6 age adoption passing confidence
@cloudflare/workers-types ^4.20250303.0 -> ^4.20250310.0 age adoption passing confidence
@netlify/functions ^3.0.0 -> ^3.0.1 age adoption passing confidence
@playwright/test (source) 1.50.1 -> 1.51.0 age adoption passing confidence
@playwright/test (source) ^1.50.1 -> ^1.51.0 age adoption passing confidence
@tailwindcss/vite (source) ^4.0.9 -> ^4.0.12 age adoption passing confidence
acorn ^8.14.0 -> ^8.14.1 age adoption passing confidence
autoprefixer ^10.4.20 -> ^10.4.21 age adoption passing confidence
ci-info ^4.1.0 -> ^4.2.0 age adoption passing confidence
eslint (source) ^9.21.0 -> ^9.22.0 age adoption passing confidence
miniflare (source) ^3.20250214.2 -> ^3.20250224.0 age adoption passing confidence
nanoid ^5.1.2 -> ^5.1.3 age adoption passing confidence
prismjs ^1.29.0 -> ^1.30.0 age adoption passing confidence
publint (source) ^0.3.8 -> ^0.3.9 age adoption passing confidence
rollup (source) ^4.34.9 -> ^4.35.0 age adoption passing confidence
svelte (source) ^5.22.1 -> ^5.22.6 age adoption passing confidence
svelte (source) ^5.21.0 -> ^5.22.6 age adoption passing confidence
svelte2tsx (source) ^0.7.34 -> ^0.7.35 age adoption passing confidence
tailwindcss (source) ^4.0.9 -> ^4.0.12 age adoption passing confidence
typescript-eslint (source) ^8.26.0 -> ^8.26.1 age adoption passing confidence
vite (source) ^6.2.0 -> ^6.2.1 age adoption passing confidence
vitest (source) ^3.0.7 -> ^3.0.8 age adoption passing confidence

Release Notes

withastro/astro (@​astrojs/svelte)

v7.0.6

Compare Source

Patch Changes
cloudflare/workerd (@​cloudflare/workers-types)

v4.20250310.0

Compare Source

netlify/functions (@​netlify/functions)

v3.0.1

Compare Source

Bug Fixes
microsoft/playwright (@​playwright/test)

v1.51.0

Compare Source

tailwindlabs/tailwindcss (@​tailwindcss/vite)

v4.0.12

Compare Source

Fixed
  • Vite: Fix url(…) rebasing in transitively imported CSS files (#​16965)
  • PostCSS: Rebase url(…)s in imported CSS files (#​16965)
  • Ensure utilities are sorted based on their actual property order (#​16995)
  • Ensure strings in Pug and Slim templates are handled correctly (#​17000)
  • Ensure classes between } and { are properly extracted (#​17001)
  • Fix razor/cshtml pre-processing (#​17027)
  • Ensure extracting candidates from JS embedded in a PHP string works as expected (#​17031)

v4.0.11

Compare Source

Fixed
  • Ensure classes containing -- are extracted correctly (#​16972)
  • Ensure classes containing numbers followed by dash or underscore are extracted correctly (#​16980)
  • Ensure arbitrary container queries are extracted correctly (#​16984)
  • Ensure classes ending in [ are extracted in Slim templating language (#​16985)
  • Ensure arbitrary variables with data types are extracted correctly (#​16986)

v4.0.10

Compare Source

Added
  • Add col-<number> and row-<number> utilities for grid-column and grid-row (#​15183)
Fixed
  • Ensure not-* does not remove :is(…) from variants (#​16825)
  • Ensure @keyframes are correctly emitted when using a prefix (#​16850)
  • Don't swallow @utility declarations when @apply is used in nested rules (#​16940)
  • Ensure outline-hidden behaves like outline-none outside of forced colors mode (#​16943)
  • Allow !important on CSS variables again (#​16873)
  • Vite: Do not crash when encountering an .svg file with # or ? in the filename (#​16957)
  • Ensure utilities are properly detected within square brackets (#​16306)
  • Ensure utilities are properly detected using Angular's conditional class binding syntax (#​16306)
  • Ensure utilities starting with numbers are properly extracted from Slim templates (#​16306)
  • Discard arbitrary property candidates that have guaranteed-invalid property names (#​16306)
Changed
  • Removed max-w-auto and max-h-auto utilities as they generate invalid CSS (#​16917)
  • Replaced the existing candidate extractor with a brand new extractor to improve maintainability, correctness, and performance (#​16306)
acornjs/acorn (acorn)

v8.14.1

Compare Source

postcss/autoprefixer (autoprefixer)

v10.4.21

Compare Source

watson/ci-info (ci-info)

v4.2.0

Compare Source

v4.1.0
  • support Appcircle PR 1d42c26
  • support AWS CodeBuild PR e6fcdd2
  • add ci.id to return vendor constant 81fd993
eslint/eslint (eslint)

v9.22.0

Compare Source

cloudflare/workers-sdk (miniflare)

v3.20250224.0

Compare Source

Patch Changes
  • #​8338 2d40989 Thanks @​GregBrimble! - feat: Upload _headers and _redirects if present with Workers Assets as part of wrangler deploy and wrangler versions upload.

  • #​8251 da568e5 Thanks @​dependabot! - chore: update dependencies of "miniflare" package

    The following dependency versions have been updated:

    Dependency From To
    workerd 1.20250214.0 1.20250224.0
    @​cloudflare/workers-types ^4.20250214.0 ^4.20250224.0
  • #​8288 cf14e17 Thanks @​CarmenPopoviciu! - feat: Add assets Proxy Worker skeleton in miniflare

    This commit implements a very basic Proxy Worker skeleton, and wires it in the "pipeline" miniflare creates for assets. This Worker will be incrementally worked on, but for now, the current implementation will forward all incoming requests to the Router Worker, thus leaving the current assets behaviour in local dev, the same.

    This is an experimental feature available under the --x-assets-rpc flag: wrangler dev --x-assets-rpc.

  • #​8355 79c7810 Thanks @​GregBrimble! - fix: Add default empty router config for assets in Miniflare

ai/nanoid (nanoid)

v5.1.3

Compare Source

publint/publint (publint)

v0.3.9

Compare Source

Patch Changes
  • Support the formatMessage utility in the browser. It has a new color: 'html' option to highlight important parts with <strong> tags instead of ANSI colors. It also has a new reference: boolean option so the messages are worded in reference of the message location. (e1cfef0)

  • If formatMessage is passed a package.json object with missing keys, the message part that references the value will now fallback to "undefined" instead of completely erroring out. (45962d1)

rollup/rollup (rollup)

v4.35.0

Compare Source

2025-03-08

Features
  • Pass build errors to the closeBundle hook (#​5867)
Pull Requests
sveltejs/svelte (svelte)

v5.22.6

Compare Source

Patch Changes
  • fix: skip log_if_contains_state if only logging literals (#​15468)

  • fix: Add closedby property to HTMLDialogAttributes type (#​15458)

  • fix: null and warnings for local handlers (#​15460)

v5.22.5

Compare Source

Patch Changes
  • fix: memoize clsx calls (#​15456)

  • fix: respect svelte-ignore hydration_attribute_changed on elements with spread attributes (#​15443)

  • fix: always use setAttribute when setting style (#​15323)

  • fix: make style: directive and CSS handling more robust (#​15418)

v5.22.4

Compare Source

Patch Changes
  • fix: never deduplicate expressions in templates (#​15451)

v5.22.3

Compare Source

Patch Changes
  • fix: run effect roots in tree order (#​15446)
sveltejs/language-tools (svelte2tsx)

v0.7.35

Compare Source

  • fix: take other snippets into account when checking for hoistability (#​2668)
  • fix: disambiguate render in module script (#​2667)
  • fix: properly transform $props.id when $props is assigned to props (#​2694)
  • fix: correctly handle unclosed tags with same type tag inside (#​2682)
  • fix: handle booleanish popover (#​2702)
  • perf: cache files during emitDts (#​2701)
typescript-eslint/typescript-eslint (typescript-eslint)

v8.26.1

Compare Source

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our versioning strategy and releases on our website.

vitejs/vite (vite)

v6.2.1

Compare Source

vitest-dev/vitest (vitest)

v3.0.8

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

Configuration

📅 Schedule: Branch creation - "* 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.

👻 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.

withastro/astro

Changes

The problem was the the content of the toolbar settings overflowed the toolbar. That made it very hard to read the text it looked broken.

I did a few things:

  1. The text of the last row takes up the whole width of the section
  2. If the content is still too large, the developer can scroll the content of the toolbar

Before

Bildschirmfoto 2025-03-09 um 12 37 03

After

Bildschirmaufnahme.2025-03-09.um.12.35.04.mov

Testing

I did some manual testing, by resizing the window and testing the changes on a real iPhone. I did not any automated tests, because there's now way to test this without a visual test. Please correct me if I'm wrong.

Docs

This change does not need documentation, it doesn't change how users
need to interact with Astro.

withastro/astro

Changes

In typescript/lib/lib.dom.d.ts the ViewTransition interface now includes the types property.
Added the property to our simulated viewTransition object for browsers without native support.

https://discord.com/channels/830184174198718474/1055240348970000454/1346390166356361289

Testing

Compiles without errors after removing the @ts-expect-error comment

Docs

n.a. / upstream change

withastro/astro

Changes

Fixes #12858

The original code to execute scripts after swap() made the assumption that all inline scripts
are directly executed when inserted into the DOM. This is not true for inline module scripts,
which are deferred but still executed in order.
Inline module scripts can not be awaited for with onload.
Thus to be able to wait for the execution of all scripts,
we make sure that the last inline module script
is always followed by an external module script.

Testing

new e2e test

Docs

n.a. / bugfix

withastro/astro

Changes

Fixes #13375

Marks scripts executed on initial page load as executed to prevent their re-execution if they are not replaced with the next call to swap.
This might happen if a custom swap() function only swaps part of the DOM and leaves some original scripts in place.

Testing

added e2e test

Docs

n.a. / bug fix

withastro/astro

Changes

This fixes pop-ups and highlights rendering over the audit list window.

Fixes #11114

Testing

Added e2e test.

Docs

withastro/astro

Changes

This fixes a few race condition bugs that manifested in sites with lots of very large markdown files.

Adds a method to the data store object that returns a promise that resolves when saving to disk is complete.

Resets the #dirty flag before saving to disk. The main cause of #13310 was that debounced saves that happened while the large data store file was being written to disk would be lost because the dirty flag was cleared once the file write was complete, missing the fact that more more entries need writing.

Fixes #13310

Testing

Tested with the #13310 repro

Docs

withastro/starlight

Description

  • Closes #
  • What does this PR change? Give us a brief description.
  • Did you change something visual? A before/after screenshot can be helpful.
withastro/starlight

Description

This PR adds dark and light variants for images in Markdown.

Source of inspiration: the corresponding feature in Material for MkDocs

Examples:

sshot-29
sshot-23

withastro/astro

Changes

Those additions should help users that try to use redirects to resolve issues with trailing slashes. Those redirects are not supported ATM. It is quite time consuming to debug those, so having something in the docs about it should save people some time.

More about the issue in #12532 (comment)

Testing

This is a docs change. The test case is in #12532 (comment)

Docs

This is only a docs change.

withastro/starlight

Description

  • Closes #
  • What does this PR change? Adding my starlight site to your showcase :)
  • Did you change something visual?
withastro/astro

Changes

  • This adds an optional as property to a font family
  • The RFC has been updated but TLDR use as if:
    1. You are an integration and want to make sure you don't conflict with fonts declared by the user
    2. Your font name can't be properly converted to a CSS variable name

Testing

Tests updated

Docs

RFC updated

withastro/astro

Changes

This PR removes makeSvgComponent from the exported functions. That function is meant to be used internally and shouldn't be exported.

I added a note at top of the file.

Testing

CI should pass

Docs

N/A

withastro/astro

Changes

  • Adds css variables generations
  • Fixes a bug around fallbacks that impacted css variables
  • RFC has been updated to remove the cssVar prop from the Font component as I'll go with another solution (upcoming PR)

Testing

Adds unit tests

Docs

N/A

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.4.3

Patch Changes

  • #13381 249d52a Thanks @martrapp! - Adds the types property to the viewTransition object when the ClientRouter simulates parts of the View Transition API on browsers w/o native support.

  • #13367 3ce4ad9 Thanks @ematipico! - Adds documentation to various utility functions used for remote image services

  • #13347 d83f92a Thanks @bluwy! - Updates internal CSS chunking behavior for Astro components' scoped styles. This may result in slightly more CSS chunks created, but should allow the scoped styles to only be included on pages that use them.

  • #13388 afadc70 Thanks @ematipico! - Fixes a bug where astro:config/server and astro:config/client had incorrect types.

  • #13355 042d1de Thanks @ematipico! - Adds documentation to the assets utilities for remote service images.

  • #13395 6d1c63f Thanks @bluwy! - Uses package-manager-detector to detect the package manager used in the project

  • #13363 a793636 Thanks @ematipico! - Fixes an issue where the internal function makeSvgComponent was incorrectly exposed as a public API.

  • Updated dependencies [042d1de]:

    • @astrojs/internal-helpers@0.6.1
    • @astrojs/markdown-remark@6.2.1

@astrojs/cloudflare@12.2.4

Patch Changes

  • Updated dependencies [042d1de]:
    • @astrojs/internal-helpers@0.6.1
    • @astrojs/underscore-redirects@0.6.0

@astrojs/markdoc@0.12.11

Patch Changes

  • Updated dependencies [042d1de]:
    • @astrojs/internal-helpers@0.6.1
    • @astrojs/markdown-remark@6.2.1

@astrojs/mdx@4.1.1

Patch Changes

  • Updated dependencies []:
    • @astrojs/markdown-remark@6.2.1

@astrojs/netlify@6.2.3

Patch Changes

  • Updated dependencies [042d1de]:
    • @astrojs/internal-helpers@0.6.1
    • @astrojs/underscore-redirects@0.6.0

@astrojs/node@9.1.3

Patch Changes

  • Updated dependencies [042d1de]:
    • @astrojs/internal-helpers@0.6.1

@astrojs/svelte@7.0.6

Patch Changes

  • #13339 a05e6ab Thanks @Hugos68! - Fixes a case where $props.id() would not be unique across multiple islands

@astrojs/vercel@8.1.2

Patch Changes

  • Updated dependencies [042d1de]:
    • @astrojs/internal-helpers@0.6.1

@astrojs/internal-helpers@0.6.1

Patch Changes

@astrojs/markdown-remark@6.2.1

Patch Changes

  • Updated dependencies [042d1de]:
    • @astrojs/internal-helpers@0.6.1

@astrojs/upgrade@0.5.1

Patch Changes

  • #13395 6d1c63f Thanks @bluwy! - Uses package-manager-detector to detect the package manager used in the project
withastro/astro

Changes

Closes #13264

This PR adds support for Astro.rewrite for the container API. A new method called insertPageRoute has been exposed that will help users to test routes that trigger a possible rewrite.

Testing

I added a new test

Docs

Will create a PR

withastro/astro

Changes

This PR adds the command build:ci to the adapters we recently moved.

That command is used by the ecosystem CI of vite

Testing

Merge it and check with the vite team

Docs

N/A

withastro/starlight

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/starlight-markdoc@0.3.0

Minor Changes

  • #2931 10b93b3 Thanks @HiDeoo! - Adds support for the title, frame, and meta fence attributes to code blocks.

    These new optional attributes add support for Expressive Code text & line markers. The following example renders a code block using a terminal frame with a title:

    ```js {% title="editor.exe" frame="terminal" %}
    console.log('Hello, world!');
    ```

    Any other text or line markers should be specified using the meta fence attribute. For example, the following code block renders a code block using the diff syntax combined with the js language syntax highlighting and the markers text highlighted:

    ```diff {% meta="lang=js 'markers'" %}
      function thisIsJavaScript() {
        // This entire block gets highlighted as JavaScript,
        // and we can still add diff markers to it!
    -   console.log('Old code to be removed')
    +   console.log('New and shiny code!')
      }
    ```

    To learn more about all the available options, check out the Expressive Code documentation.

withastro/astro

Changes

  • Simplifies the cache util
  • Removes duplicated loop while resolving font families
  • Extracts code to a new loadFonts function, making it easier to test
  • Extract things outside of the the vite plugin file
  • Moves constants around to fix a circular dependency problem

Testing

Adds a unit test

Docs

N/A

withastro/astro

Changes

  • Adds a new experimental.headingIdCompat flag
  • Uses this to disable sanitizing heading IDs when set
  • Applies to default Markdown processing as well as the Markdoc and MDX integrations
  • Why? Astro currently strips a single trailing - from heading IDs it generates, deviating from the standard github-slugger behavior that is common to many platforms. The aim would be for us to remove this nonstandard behavior entirely in a future major release.

Testing

Added some tests for headings with special characters

Docs

No docs yet, but this will need experimental feature docs if the basic idea is accepted.

/cc @withastro/maintainers-docs for feedback!

withastro/astro

Changes

Vercel only allows images to be generated with widths that are from a configured allowlist. This PR ensures that experimental responsive images only include allowed sizes.

Fixes #13325

Testing

Adds tests

Docs

withastro/astro

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

astro@5.4.2

Patch Changes

@astrojs/db@0.14.8

Patch Changes

  • #13343 a001a75 Thanks @dreyfus92! - Fix Astro DB seed failing when project path contains spaces. This resolves by properly decoding URL pathnames that contain encoded spaces (%20) before passing them to Vite's ssrLoadModule.

  • Updated dependencies []:

    • @astrojs/studio@0.1.4

@astrojs/partytown@2.1.4

Patch Changes

  • #13109 5c0e0ea Thanks @arnottferels! - Adds support for config.lib, which allows changing the destination of the files:

    export default defineConfig({
    	integrations: [partytown({
    		config: {
    +			lib: '/assets/lib/~partytown/';
    		}
    	})]
    })

@astrojs/vercel@8.1.1

Patch Changes

withastro/astro

Changes

In Markdown, the generated attributes in img elements were not being correctly esacaped. This meant that including > or " in the img alt would break the tag. This isn't a security issue because Markdown is trusted, and you can add an actual script tag if you want.

Fixes #13345

Testing

Added test case

Docs

withastro/astro

Changes

Vite 6.2 has builtin support for treeshaking scoped CSS (vitejs/vite#19418) which we can use to replace our internal implementation copy before.

Testing

Existing tests should pass. There's added test in the past from #10291. If CI fails, maybe there's a bug in Vite.

EDIT: The new behaviour will now properly place scoped styles into its own chunk so that it's only loaded by pages that uses the component's scoped styles. This means the CSS is more granular and accurately loaded, but results in slightly more CSS chunks which causes some tests that did not anticipate it to fail. I've made fixes to the tests for these cases.

Docs

n/a. Shouldn't require a changeset as it's an internal refactor.

withastro/astro

This PR contains the following updates:

Package Change Age Adoption Passing Confidence Type Update
@astrojs/solid-js (source) ^5.0.2 -> ^5.0.5 age adoption passing confidence dependencies patch
@astrojs/svelte (source) ^7.0.3 -> ^7.0.5 age adoption passing confidence dependencies patch
@astrojs/vue (source) ^5.0.4 -> ^5.0.7 age adoption passing confidence dependencies patch
@changesets/changelog-github (source) ^0.5.0 -> ^0.5.1 age adoption passing confidence devDependencies patch
@changesets/cli (source) ^2.27.12 -> ^2.28.1 age adoption passing confidence devDependencies minor
@cloudflare/workers-types ^4.20250109.0 -> ^4.20250303.0 age adoption passing confidence dependencies minor
@fontsource/monofett (source) 5.1.1 -> 5.2.5 age adoption passing confidence dependencies minor
@fontsource/montserrat (source) 5.1.1 -> 5.2.5 age adoption passing confidence dependencies minor
@markdoc/markdoc (source) ^0.4.0 -> ^0.5.1 age adoption passing confidence dependencies minor
@netlify/blobs ^8.1.0 -> ^8.1.1 age adoption passing confidence dependencies patch
@tailwindcss/vite (source) ^4.0.3 -> ^4.0.9 age adoption passing confidence dependencies patch
@vercel/analytics (source) ^1.4.1 -> ^1.5.0 age adoption passing confidence dependencies patch
@vercel/nft ^0.29.0 -> ^0.29.2 age adoption passing confidence dependencies patch
CodSpeedHQ/action v3.2.0 -> v3.4.0 age adoption passing confidence action minor
async-listen ^3.0.1 -> ^3.1.0 age adoption passing confidence dependencies minor
eslint (source) ^9.19.0 -> ^9.21.0 age adoption passing confidence devDependencies minor
expect-type ^1.1.0 -> ^1.2.0 age adoption passing confidence devDependencies minor
fs-fixture ^2.7.0 -> ^2.7.1 age adoption passing confidence devDependencies patch
hast-util-select ^6.0.3 -> ^6.0.4 age adoption passing confidence dependencies patch
hast-util-to-html ^9.0.4 -> ^9.0.5 age adoption passing confidence dependencies patch
linkedom ^0.18.7 -> ^0.18.9 age adoption passing confidence devDependencies patch
miniflare (source) ^3.20241230.1 -> ^3.20250214.2 age adoption passing confidence dependencies minor
mrmime ^2.0.0 -> ^2.0.1 age adoption passing confidence dependencies patch
nanoid ^5.0.9 -> ^5.1.2 age adoption passing confidence dependencies minor
nanostores ^0.11.3 -> ^0.11.4 age adoption passing confidence dependencies patch
open-props ^1.7.12 -> ^1.7.13 age adoption passing confidence dependencies patch
postcss (source) ^8.5.1 -> ^8.5.3 age adoption passing confidence dependencies patch
postcss-preset-env (source) ^10.1.3 -> ^10.1.5 age adoption passing confidence devDependencies patch
preact (source) ^10.25.4 -> ^10.26.4 age adoption passing confidence devDependencies minor
preact (source) ^10.25.4 -> ^10.26.4 age adoption passing confidence dependencies minor
prettier (source) ^3.4.2 -> ^3.5.3 age adoption passing confidence devDependencies minor
publint (source) ^0.3.2 -> ^0.3.8 age adoption passing confidence devDependencies patch
remark-gfm ^4.0.0 -> ^4.0.1 age adoption passing confidence dependencies patch
rollup (source) ^4.30.1 -> ^4.34.9 age adoption passing confidence devDependencies patch
rollup (source) ^4.34.2 -> ^4.34.9 age adoption passing confidence devDependencies patch
sass ^1.83.4 -> ^1.85.1 age adoption passing confidence devDependencies minor
sass ^1.83.4 -> ^1.85.1 age adoption passing confidence dependencies minor
solid-js (source) ^1.9.4 -> ^1.9.5 age adoption passing confidence devDependencies patch
solid-js (source) ^1.9.4 -> ^1.9.5 age adoption passing confidence dependencies patch
svelte (source) ^5.19.7 -> ^5.21.0 age adoption passing confidence devDependencies minor
svelte (source) ^5.17.4 -> ^5.21.0 age adoption passing confidence dependencies minor
svelte (source) ^5.19.7 -> ^5.21.0 age adoption passing confidence dependencies minor
tailwindcss (source) ^4.0.3 -> ^4.0.9 age adoption passing confidence dependencies patch
tsconfck (source) ^3.1.4 -> ^3.1.5 age adoption passing confidence dependencies patch
turbo (source) ^2.4.0 -> ^2.4.4 age adoption passing confidence devDependencies patch
typescript (source) ^5.7.3 -> ^5.8.2 age adoption passing confidence devDependencies minor
typescript (source) ^5.7.3 -> ^5.8.2 age adoption passing confidence dependencies minor
typescript (source) ~5.7.3 -> ~5.8.2 age adoption passing confidence devDependencies minor
typescript-eslint (source) ^8.23.0 -> ^8.26.0 age adoption passing confidence devDependencies minor
undici (source) ^7.3.0 -> ^7.4.0 age adoption passing confidence devDependencies minor
unstorage ^1.14.4 -> ^1.15.0 age adoption passing confidence dependencies minor
vite (source) ^6.0.11 -> ^6.2.0 age adoption passing confidence devDependencies patch
vite-plugin-solid ^2.11.1 -> ^2.11.6 age adoption passing confidence dependencies patch
vite-plugin-vue-devtools (source) ^7.7.1 -> ^7.7.2 age adoption passing confidence dependencies patch
vitefu ^1.0.5 -> ^1.0.6 age adoption passing confidence dependencies patch
vitest (source) ^3.0.5 -> ^3.0.7 age adoption passing confidence dependencies patch
vitest (source) ^3.0.5 -> ^3.0.7 age adoption passing confidence devDependencies patch
wrangler (source) ^3.101.0 -> ^3.112.0 age adoption passing confidence devDependencies minor
wrangler (source) ^3.101.0 -> ^3.112.0 age adoption passing confidence dependencies minor
yocto-spinner ^0.2.0 -> ^0.2.1 age adoption passing confidence dependencies patch
zod (source) ^3.24.1 -> ^3.24.2 age adoption passing confidence dependencies patch
zod-to-json-schema ^3.24.1 -> ^3.24.3 age adoption passing confidence dependencies patch

Release Notes

withastro/astro (@​astrojs/solid-js)

v5.0.5

Compare Source

Patch Changes

v5.0.4

Compare Source

Patch Changes

v5.0.3

Compare Source

Patch Changes
  • #​12887 ea603ae Thanks @​louisescher! - Adds a warning message when multiple JSX-based UI frameworks are being used without either the include or exclude property being set on the integration.
withastro/astro (@​astrojs/svelte)

v7.0.5

Compare Source

Patch Changes

v7.0.4

Compare Source

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

v5.0.7

Compare Source

Patch Changes

v5.0.6

Compare Source

Patch Changes

v5.0.5

Compare Source

Patch Changes
  • #​12887 ea603ae Thanks @​louisescher! - Adds a warning message when multiple JSX-based UI frameworks are being used without either the include or exclude property being set on the integration.
changesets/changesets (@​changesets/changelog-github)

v0.5.1

Compare Source

Patch Changes
cloudflare/workerd (@​cloudflare/workers-types)

v4.20250303.0

Compare Source

v4.20250224.0

Compare Source

v4.20250214.0

Compare Source

fontsource/font-files (@​fontsource/monofett)

v5.2.5

Compare Source

v5.2.4

Compare Source

v5.2.1

Compare Source

v5.2.0

Compare Source

fontsource/font-files (@​fontsource/montserrat)

[v5.2.5](https://redirect.g


Configuration

📅 Schedule: Branch creation - "* 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.

👻 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.

withastro/astro

Changes

adds decodeURIComponent to properly handle the pathname

closes: #13332

Testing

Docs

there's no need to update docs.


Last fetched:  |  Scheduled refresh: Every Saturday

See Customizing GitHub Activity Pages to configure your own

Inspired by prs.atinux.com