github withastro/astro astro@5.4.0

latest releases: astro@5.4.1, @astrojs/upgrade@0.5.0
one day ago

Minor Changes

  • #12052 5be12b2 Thanks @Fryuni! - Exposes extra APIs for scripting and testing.

    Config helpers

    Two new helper functions exported from astro/config:

    • mergeConfig() allows users to merge partially defined Astro configurations on top of a base config while following the merge rules of updateConfig() available for integrations.
    • validateConfig() allows users to validate that a given value is a valid Astro configuration and fills in default values as necessary.

    These helpers are particularly useful for integration authors and for developers writing scripts that need to manipulate Astro configurations programmatically.

    Programmatic build

    The build API now receives a second optional BuildOptions argument where users can specify:

    • devOutput (default false): output a development-based build similar to code transformed in astro dev.
    • teardownCompiler (default true): teardown the compiler WASM instance after build.

    These options provide more control when running Astro builds programmatically, especially for testing scenarios or custom build pipelines.

  • #13278 4a43c4b Thanks @ematipico! - Adds a new configuration option server.allowedHosts and CLI option --allowed-hosts.

    Now you can specify the hostnames that the dev and preview servers are allowed to respond to. This is useful for allowing additional subdomains, or running the dev server in a web container.

    allowedHosts checks the Host header on HTTP requests from browsers and if it doesn't match, it will reject the request to prevent CSRF and XSS attacks.

    astro dev --allowed-hosts=foo.bar.example.com,bar.example.com
    astro preview --allowed-hosts=foo.bar.example.com,bar.example.com
    // astro.config.mjs
    import { defineConfig } from 'astro/config';
    
    export default defineConfig({
      server: {
        allowedHosts: ['foo.bar.example.com', 'bar.example.com'],
      },
    });

    This feature is the same as Vite's server.allowHosts configuration.

  • #13254 1e11f5e Thanks @p0lyw0lf! - Adds the ability to process and optimize remote images in Markdown files

    Previously, Astro only allowed local images to be optimized when included using ![]() syntax in plain Markdown files. Astro's image service could only display remote images without any processing.

    Now, Astro's image service can also optimize remote images written in standard Markdown syntax. This allows you to enjoy the benefits of Astro's image processing when your images are stored externally, for example in a CMS or digital asset manager.

    No additional configuration is required to use this feature! Any existing remote images written in Markdown will now automatically be optimized. To opt-out of this processing, write your images in Markdown using the HTML <img> tag instead. Note that images located in your public/ folder are still never processed.

Patch Changes

  • #13256 509fa67 Thanks @p0lyw0lf! - Adds experimental responsive image support in Markdown

    Previously, the experimental.responsiveImages feature could only provide responsive images when using the <Image /> and <Picture /> components.

    Now, images written with the ![]() Markdown syntax in Markdown and MDX files will generate responsive images by default when using this experimental feature.

    To try this experimental feature, set experimental.responsiveImages to true in your astro.config.mjs file:

    {
       experimental: {
          responsiveImages: true,
       },
    }

    Learn more about using this feature in the experimental responsive images feature reference.

    For a complete overview, and to give feedback on this experimental API, see the Responsive Images RFC.

  • #13323 80926fa Thanks @ematipico! - Updates esbuild and vite to the latest to avoid false positives audits warnings caused by esbuild.

  • #13313 9e7c71d Thanks @martrapp! - Fixes an issue where a form field named "attributes" shadows the form.attributes property.

  • #12052 5be12b2 Thanks @Fryuni! - Fixes incorrect config update when calling updateConfig from astro:build:setup hook.

    The function previously called a custom update config function made for merging an Astro config. Now it calls the appropriate mergeConfig() utility exported by Vite that updates functional options correctly.

  • #13303 5f72a58 Thanks @ematipico! - Fixes an issue where the dev server was applying second decoding of the URL of the incoming request, causing issues for certain URLs.

  • Updated dependencies [1e11f5e, 1e11f5e]:

    • @astrojs/internal-helpers@0.6.0
    • @astrojs/markdown-remark@6.2.0

Don't miss a new astro release

NewReleases is sending notifications on new releases.