Skip to content

AstroEco is Contributing…

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

withastro/astro

Changes

  • Instead of silently ignoring lower priority routes in case of conflicts, we show a warning for each occurrence.
  • Closes #9832

Testing

New tests reproduce the conflicts and check the warning and error.

Docs

I think the only docs changes are for the experimental flag and error message, which IIRC are generated from the JSDocs, so no changes to be sent separately on Docs.

withastro/astro

fix the problem, we need to ensure that any potentially dangerous characters in the stringified headings are properly escaped before embedding them in the generated JavaScript code. The best way to do this is to escape characters such as <, >, /, \, and certain Unicode line/paragraph separators, as well as control characters, in the output of JSON.stringify(headings). This can be achieved by defining an escapeUnsafeChars function (as in the example) and applying it to the stringified headings before constructing the export statement. The change should be made in packages/integrations/mdx/src/rehype-collect-headings.ts, specifically on line 8, and the function should be defined in the same file or imported if already available.

withastro/starlight

Description

This PR adds the starlight-github-alerts plugin to the documentation plugin showcase.

withastro/astro

Changes

When deciding whether a module update needs a full reload, we check if the module is present in the client module graph. If it isn't, then it's SSR-only and needs a full reload. Currently when editing styles it invalidates both client and SSR modules. However because the SSR module includes an inline flag and the client module doesn't, the HMR check incorrectly thinks it is a server-only module that needs a full reload.

This PR filters out these inline modules so that a full reload isn't triggered. The non-inline version is also invalidated, so it still triggers HMR, but without triggering a full reload.

Fixes #14196

Testing

Adds an e2e test. Previously there were several e2e test for HMR styles, but none of them were the simple case of an inline style with no imports.

Docs

withastro/astro

Changes

We need the App to be fully extendable and more flexible, so it can be used in other environments that aren't Node.js. At the moment it is exclusively used inside adapters, however, we foresee its usage in dev and the possibility of build too.

This PR creates a new abstract BaseApp that implements all the methods inside the App class. The only method that must be implemented is createPipeline.

The function AppPipeline.create has been dramatically simplified, since many of the arguments that we were passing can be computed from the manifest, and some other values were hardcoded. AppPipeline is also exposed because the creation of new "Apps" that extend App requires the implementation of cratePipeline. I didn't create a default implementation of createPipeline because of P and AppPipeline (TypeScript doesn't like it). If you know how to fix it, please let me know how.

The method AppPipeline.getModuleForRoute has been moved inside BasePipeline. There's a chance we could reuse it.

Testing

This is a refactor, so the entire CI should stay green

Docs

N/A

withastro/starlight

Website Carbon Calculator introduced a new model for estimating energy usage, so this PR updates the table to use new measurements. Mostly no change in the ratings but the new model estimates lower CO₂ usage than the earlier version.

I had to update the Docus page being tested as their installation guide repeatedly errored out during testing. (They’re also notably the only entry whose CO₂ usage didn’t decrease this time round, presumably because of changes in their recent release.)

withastro/astro

Changes

This PR removes the use of ssrLoadModule in favour of the new way: pulling a runnable environment and use the function runner.import. Here's the docs: https://vite.dev/guide/api-environment-frameworks.html#runnabledevenvironment

Unfortunately there are few places where we pass the instances of the server, so for my next PR I will refactor those places to accept an environment instead of the instance of the server.

Testing

Current tests should pass

Docs

N/A

withastro/starlight

Description

This PR adds the starlight-changelogs to the resources/plugins page.

withastro/astro

Changes

Adds support for enums on the text column for AstroDB

Testing

Not sure if there is a good way to test this, as per the drizzle docs:

You can define { enum: ["value1", "value2"] } config to infer insert and select types, it won’t check runtime values.

So i would assume it would need type testing similar to the last PR I opened for db.

Docs

Currently there is no docs to specific features/options of the different columns, only "shared options"

If docs are required we should also be sure to document any other missing items from our schema.

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/db@0.17.0

Minor Changes

  • #14190 438adab Thanks @Adammatthiesen! - Adds support for enum support for text columns in Astro DB tables.

    import { column, defineTable } from 'astro:db';
    
    // Table definition
    const UserTable = defineTable({
      columns: {
        id: column.number({ primaryKey: true }),
        name: column.text(),
        rank: column.text({ enum: ['user', 'mod', 'admin'] }),
      },
    });
    
    // Resulting type definition
    type UserTableInferInsert = {
      id: string;
      name: string;
      rank: 'user' | 'mod' | 'admin';
    };

@astrojs/node@9.4.0

Minor Changes

  • #14188 e3422aa Thanks @ascorbic! - Adds support for specifying a host to load prerendered error pages

    By default, if a user defines a custom error page that is prerendered, Astro will load it from the same host as the one that the request is made to. This change allows users to specify a different host for loading prerendered error pages. This can be useful in scenarios such as where the server is running behind a reverse proxy or when prerendered pages are hosted on a different domain.

    To use this feature, set the experimentalErrorPageHost adapter option in your Astro configuration to the desired host URL. For example, if your server is running on localhost and served via a proxy, you can ensure the prerendered error pages are fetched via the localhost URL:

    import { defineConfig } from 'astro/config';
    import node from '@astrojs/node';
    export default defineConfig({
      adapter: node({
        // If your server is running on localhost and served via a proxy, set the host like this to ensure prerendered error pages are fetched via the localhost URL
        experimentalErrorPageHost: 'http://localhost:4321',
      }),
    });

    For more information on enabling and using this experimental feature, see the @astrojs/node adapter docs.

astro@5.12.9

Patch Changes

  • #14020 9518975 Thanks @jp-knj! - Prevent double-prefixed redirect paths when using fallback and redirectToDefaultLocale together

    Fixes an issue where i18n fallback routes would generate double-prefixed paths (e.g., /es/es/test/item1/) when fallback and redirectToDefaultLocale configurations were used together. The fix adds proper checks to prevent double prefixing in route generation.

  • #14199 3e4cb8e Thanks @ascorbic! - Fixes a bug that prevented HMR from working with inline styles

@astrojs/cloudflare@12.6.3

Patch Changes

  • #14066 7abde79 Thanks @alexanderniebuhr! - Refactors the internal solution which powers Astro Sessions when running local development with ˋastro devˋ.

    The adapter now utilizes Cloudflare's local support for Cloudflare KV. This internal change is a drop-in replacement and does not require any change to your projectct code.

    However, you now have the ability to connect to the remote Cloudflare KV Namespace if desired and use production data during local development.

  • Updated dependencies []:

    • @astrojs/underscore-redirects@1.0.0
withastro/astro

Changes

Currently if a user defines a custom error page that is prerendered, Astro will load it from the same host as the one that the request is made to. i.e. if the user made a request to https://example.com/nonexistent, Astro will fetch the custom error page from https://example.com/404.html. This is a problem if the site is running in a container that cannot connect to its own external URL, such as a Docker container that forwards its port. This PR adds a new experimentalErrorPageHost option to the Node adapter that tells it to use a different host to fetch the page. This can be set to the local host and port to ensure it's loaded from inside the container

Fixes #13874

Testing

Added tests

Docs

This will need docs

withastro/astro

Changes

Fix AstroDB asDrizzleTable and schema conversion to correctly align table types with drizzle-orm to prevent loss of variables during type inference.

Before:
image

After:
image

Testing

No tests added, this is a type only change to correct previously broken types.

Docs

This fixes previously broken types. No doc changes needed.

withastro/astro

This PR contains the following updates:

Package Change Age Confidence
tinyexec ^0.3.2 -> ^1.0.1 age confidence

Release Notes

tinylibs/tinyexec (tinyexec)

v1.0.1

Compare Source

What's Changed

New Contributors

Full Changelog: tinylibs/tinyexec@1.0.0...1.0.1

v1.0.0

Compare Source

What's Changed

Full Changelog: tinylibs/tinyexec@0.3.2...1.0.0


Configuration

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

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

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

withastro/astro

This PR contains the following updates:

Package Change Age Confidence
solid-js (source) ^1.9.7 -> ^1.9.8 age confidence
svelte (source) ^5.37.1 -> ^5.38.0 age confidence
svelte2tsx (source) ^0.7.41 -> ^0.7.42 age confidence

Release Notes

solidjs/solid (solid-js)

v1.9.8

Compare Source

sveltejs/svelte (svelte)

v5.38.0

Compare Source

Minor Changes
  • feat: allow await inside @const declarations (#​16542)
Patch Changes
  • fix: remount at any hydration error (#​16248)

  • chore: emit await_reactivity_loss in for await loops (#​16521)

  • fix: emit snippet_invalid_export instead of undefined_export for exported snippets (#​16539)

v5.37.3

Compare Source

Patch Changes
  • fix: reset attribute cache after setting corresponding property (#​16543)

v5.37.2

Compare Source

Patch Changes
  • fix: double event processing in firefox due to event object being garbage collected (#​16527)

  • fix: add bindable dimension attributes types to SVG and MathML elements (#​16525)

  • fix: correctly differentiate static fields before emitting duplicate_class_field (#​16526)

  • fix: prevent last_propagated_event from being DCE'd (#​16538)

sveltejs/language-tools (svelte2tsx)

v0.7.42: svelte2tsx-0.7.42

Compare Source

fix: handle object literal in MustacheTag (https://github.com/sveltejs/language-tools/pull/2805)


Configuration

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

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

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 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

Now a newer version of Vite is being used, and the test works correctly locally, so I want to see if it passes in CI to determine if it’s safe to re-enable it

Testing

Docs

withastro/starlight

Description

Starlight's sl-line-height value was applied even for .not-content. I used the same :not rule that you have elsewhere, but I wonder if this might not be better:

body :not(.not-content *) {
  line-height: var(--sl-line-height);
}

Another possibility might be to set line-height: normal to .not-content, whichever you prefer 😄

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/db@0.16.1

Patch Changes

@astrojs/netlify@6.5.6

Patch Changes

  • #14175 1e1cef0 Thanks @ematipico! - Fixes a bug where the adapter would cause a runtime error when calling astro build in CI environments.
withastro/astro

Changes

This PR bumps netlify deps. I also pinned @netlify/functions because if upgraded, will generate build errors.

Testing

CI should pass

Docs

withastro/astro

Changes

npm is very fussy with peer dependencies, and can easily end up with false positives in its checks when upgrading Astro packages. This is particularly likely when upgrading Astro alongside another package that has a peer dependency on it.

This PR checks to see if installs failed because of a peer dependency issue, and if so retries with the --legacy-peer-deps flag

Fixes #13884

Testing

Added test, and tested manually with the repro from #13884.

To create the test I needed to add support for mocking the shell function. Module mocking isn't supported in Node < 24, so I did it by allowing an optional shell funciton arg to be passed to the install command.

Docs


Last fetched:  |  Scheduled refresh: Every Saturday

See Customizing GitHub Activity Pages to configure your own

Inspired by prs.atinux.com