fix(deps): update all dependencies
This MR contains the following updates:
Note: The pre-commit
manager in Renovate is not supported by the pre-commit
maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.
Release Notes
withastro/astro (@astrojs/node)
v9.3.3
Patch Changes
- Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1
v9.3.2
Patch Changes
- Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0
v9.3.1
Patch Changes
-
#14148
e4d74ba
Thanks @ColoredCarrot! - fix(node): emit set-cookie header from middlewares for not-found routes (#14136)
v9.3.0
Minor Changes
-
#14012
a125a14
Thanks @florian-lefebvre! - Adds a new experimental configuration optionexperimentalDisableStreaming
to allow you to opt out of Astro's default HTML streaming for pages rendered on demand.HTML streaming helps with performance and generally provides a better visitor experience. In most cases, disabling streaming is not recommended.
However, when you need to disable HTML streaming (e.g. your host only supports non-streamed HTML caching at the CDN level), you can now opt out of the default behavior:
import { defineConfig } from 'astro/config'; import node from '@​astrojs/node'; export default defineConfig({ adapter: node({ mode: 'standalone', + experimentalDisableStreaming: true, }), });
-
#13972
db8f8be
Thanks @ematipico! - Adds support for the experimental static headers Astro feature.When the feature is enabled via the option
experimentalStaticHeaders
, and experimental Content Security Policy is enabled, the adapter will generateResponse
headers for static pages, which allows support for CSP directives that are not supported inside a<meta>
tag (e.g.frame-ancestors
).import { defineConfig } from 'astro/config'; import node from '@​astrojs/node'; export default defineConfig({ adapter: node({ mode: 'standalone', experimentalStaticHeaders: true, }), experimental: { cps: true, }, });
v9.2.2
Patch Changes
-
#13507
660e83f
Thanks @TheOtterlord! - Handle errors where a module is not found when loading the server entrypoint
withastro/astro (astro)
v5.12.8
Patch Changes
-
0567fb7
Thanks @ascorbic! - Adds//
to list of internal path prefixes that do not have automated trailing slash handling -
#13894
b36e72f
Thanks @florian-lefebvre! - Removes Astro Studio commands from the CLI help -
Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1
- @astrojs/markdown-remark@6.3.5
v5.12.7
Patch Changes
-
#14169
f4e8889
Thanks @ascorbic! - Skips trailing slash handling for paths that start with/.
. -
#14170
34e6b3a
Thanks @ematipico! - Fixes an issue where static redirects couldn't correctly generate a redirect when the destination is a prerendered route, and theoutput
is set to"server"
. -
#14169
f4e8889
Thanks @ascorbic! - Fixes a bug that prevented images from being displayed in dev when using the Netlify adapter withtrailingSlash
set toalways
-
Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0
- @astrojs/markdown-remark@6.3.4
v5.12.6
Patch Changes
-
#14153
29e9283
Thanks @jp-knj! - Fixes a regression introduced by a recent optimisation of how SVG images are emitted during the build. -
#14156
592f08d
Thanks @TheOtterlord! - Fix the client router not submitting forms if the active URL contained a hash -
#14160
d2e25c6
Thanks @ascorbic! - Fixes a bug that meant some remote image URLs could cause invalid filenames to be used for processed images -
#14167
62bd071
Thanks @ascorbic! - Fixes a bug that prevented destroyed sessions from being deleted from storage unless the session had been loaded
v5.12.5
Patch Changes
-
#14059
19f53eb
Thanks @benosmac! - Fixes a bug in i18n implementation, where Astro didn't emit the correct pages whenfallback
is enabled, and a locale uses a catch-all route, e.g.src/pages/es/[...catchAll].astro
-
#14155
31822c3
Thanks @ascorbic! - Fixes a bug that caused an error "serverEntrypointModule[_start] is not a function" in some adapters
v5.12.4
Patch Changes
-
#14031
e9206c1
Thanks @jp-knj! - Optimized the build pipeline for SVG images. Now, Astro doesn't reprocess images that have already been processed. -
#14132
976879a
Thanks @ematipico! - Fixes a bug where the propertyAstro.routePattern
/context.routePattern
wasn't updated when using a rewrite via middleware. -
#14131
aafc4d7
Thanks @florian-lefebvre! - Fixes a case where an error occurring in a middleware would show the dev overlay instead of the custom500.astro
page -
#14127
2309ada
Thanks @florian-lefebvre! - Upgrades zod -
#14134
186c201
Thanks @ascorbic! - Throws a more helpful error in dev if trying to use a server island without an adapter -
#14129
3572d85
Thanks @ematipico! - Fixes a bug where the CSP headers was incorrectly added to a page when using an adapter.
v5.12.3
Patch Changes
-
#14119
14807a4
Thanks @ascorbic! - Fixes a bug that caused builds to fail if a client directive was mistakenly added to an Astro component -
#14001
4b03d9c
Thanks @dnek! - Fixes an issue wheregetImage()
assigned the resized base URL to the srcset URL ofImageTransform
, which matched the width, height, and format of the original image.
v5.12.2
Patch Changes
-
#14071
d2cb35d
Thanks @Grisoly! - Exposes theCode
componentlang
prop type:import type { CodeLanguage } from 'astro';
-
#14111
5452ee6
Thanks @ascorbic! - Fixes a bug that prevented "key" from being used as a prop for Astro components in MDX -
#14106
b5b39e4
Thanks @ascorbic! - Exits with non-zero exit code when config has an error -
#14112
37458b3
Thanks @ascorbic! - Fixes a bug that meant that SVG components could no longer be serialized withJSON.stringify
-
#14061
c7a7dd5
Thanks @jonasgeiler! - Add module declaration for?no-inline
asset imports -
#14109
5a08fa2
Thanks @ascorbic! - Throw a more helpful error if defineLiveCollection is used outside of a live.config file -
#14110
e7dd4e1
Thanks @ascorbic! - Warn if duplicate IDs are found by file loader
v5.12.1
Patch Changes
-
#14094
22e9087
Thanks @ascorbic! - Correct types to allowpriority
on all images -
#14091
26c6b6d
Thanks @ascorbic! - Fixes a bug that caused a type error when defining session options without a driver -
#14082
93322cb
Thanks @louisescher! - Fixes an issue where Astro's default 404 route would incorrectly match routes containing "/404" in dev -
#14089
687d253
Thanks @florian-lefebvre! - Fixes a case whereastro:env
would not load the right environments variables in dev -
#14092
6692c71
Thanks @ascorbic! - Improves error handling in live collections -
#14074
144a950
Thanks @abcfy2! - Fixes a bug that caused some image service builds to fail -
#14092
6692c71
Thanks @ascorbic! - Fixes a case where zod could not be imported fromastro:content
virtual module in live collection config
v5.12.0
Minor Changes
-
#13971
fe35ee2
Thanks @adamhl8! - Adds an experimental flagrawEnvValues
to disable coercion ofimport.meta.env
values (e.g. converting strings to other data types) that are populated fromprocess.env
Astro allows you to configure a type-safe schema for your environment variables, and converts variables imported via
astro:env
into the expected type.However, Astro also converts your environment variables used through
import.meta.env
in some cases, and this can prevent access to some values such as the strings"true"
(which is converted to a boolean value), and"1"
(which is converted to a number).The
experimental.rawEnvValues
flag disables coercion ofimport.meta.env
values that are populated fromprocess.env
, allowing you to use the raw value.To enable this feature, add the experimental flag in your Astro config:
import { defineConfig } from "astro/config" export default defineConfig({ + experimental: { + rawEnvValues: true, + } })
If you were relying on this coercion, you may need to update your project code to apply it manually:
- const enabled: boolean = import.meta.env.ENABLED + const enabled: boolean = import.meta.env.ENABLED === "true"
See the experimental raw environment variables reference docs for more information.
-
#13941
6bd5f75
Thanks @aditsachde! - Adds support for TOML files to Astro's built-inglob()
andfile()
content loaders.In Astro 5.2, Astro added support for using TOML frontmatter in Markdown files instead of YAML. However, if you wanted to use TOML files as local content collection entries themselves, you needed to write your own loader.
Astro 5.12 now directly supports loading data from TOML files in content collections in both the
glob()
and thefile()
loaders.If you had added your own TOML content parser for the
file()
loader, you can now remove it as this functionality is now included:// src/content.config.ts import { defineCollection } from "astro:content"; import { file } from "astro/loaders"; - import { parse as parseToml } from "toml"; const dogs = defineCollection({ - loader: file("src/data/dogs.toml", { parser: (text) => parseToml(text) }), + loader: file("src/data/dogs.toml") schema: /* ... */ })
Note that TOML does not support top-level arrays. Instead, the
file()
loader considers each top-level table to be an independent entry. The table header is populated in theid
field of the entry object.See Astro's content collections guide for more information on using the built-in content loaders.
Patch Changes
- Updated dependencies [
6bd5f75
]:- @astrojs/markdown-remark@6.3.3
v5.11.2
Patch Changes
-
#14064
2eb77d8
Thanks @jp-knj! - Allows usingtsconfig
compilerOptions.paths
without settingcompilerOptions.baseUrl
-
#14068
10189c0
Thanks @jsparkdev! - Fixes the incorrect CSS import path shown in the terminal message during Tailwind integration setup.
v5.11.1
Patch Changes
-
#14045
3276b79
Thanks @ghubo! - Fixes a problem where importing animated.avif
files returns aNoImageMetadata
error. -
#14041
0c4d5f8
Thanks @dixslyf! - Fixes a<ClientRouter />
bug where the fallback view transition animations when exiting a page ran too early for browsers that do not support the View Transition API. This bug preventedevent.viewTransition?.skipTransition()
from skipping the page exit animation when used in anastro:before-swap
event hook.
v5.11.0
Minor Changes
-
#13972
db8f8be
Thanks @ematipico! - Updates theNodeApp.match()
function in the Adapter API to accept a second, optional parameter to allow adapter authors to add headers to static, prerendered pages.NodeApp.match(request)
currently checks whether there is a route that matches the givenRequest
. If there is a prerendered route, the function returnsundefined
, because static routes are already rendered and their headers cannot be updated.When the new, optional boolean parameter is passed (e.g.
NodeApp.match(request, true)
), Astro will return the first matched route, even when it's a prerendered route. This allows your adapter to now access static routes and provides the opportunity to set headers for these pages, for example, to implement a Content Security Policy (CSP).
Patch Changes
-
#14029
42562f9
Thanks @ematipico! - Fixes a bug where server islands wouldn't be correctly rendered when they are rendered inside fragments.Now the following examples work as expected:
v5.10.2
Patch Changes
-
#14000
3cbedae
Thanks @feelixe! - Fix routePattern JSDoc examples to show correct return values -
#13990
de6cfd6
Thanks @isVivek99! - Fixes a case whereastro:config/client
andastro:config/server
virtual modules would not contain config passed to integrationsupdateConfig()
during the build -
#14019
a160d1e
Thanks @ascorbic! - Removes the requirement to settype: 'live'
when defining experimental live content collectionsPreviously, live collections required a
type
andloader
configured. Now, Astro can determine that your collection is alive
collection without defining it explicitly.This means it is now safe to remove
type: 'live'
from your collections defined insrc/live.config.ts
:import { defineLiveCollection } from 'astro:content'; import { storeLoader } from '@​mystore/astro-loader'; const products = defineLiveCollection({ - type: 'live', loader: storeLoader({ apiKey: process.env.STORE_API_KEY, endpoint: 'https://api.mystore.com/v1', }), }); export const collections = { products };
This is not a breaking change: your existing live collections will continue to work even if you still include
type: 'live'
. However, we suggest removing this line at your earliest convenience for future compatibility when the feature becomes stable and this config option may be removed entirely. -
#13966
598da21
Thanks @msamoylov! - Fixes a broken link on the default 404 page in development
v5.10.1
Patch Changes
-
#13988
609044c
Thanks @ascorbic! - Fixes a bug in live collections that caused it to incorrectly complain about the collection being defined in the wrong file -
#13909
b258d86
Thanks @isVivek99! - Fixes rendering of special boolean attributes for custom elements -
#13983
e718375
Thanks @florian-lefebvre! - Fixes a case where the toolbar audit would incorrectly flag images processed by Astro in content collections documents -
#13999
f077b68
Thanks @ascorbic! - AddslastModified
field to experimental live collection cache hintsLive loaders can now set a
lastModified
field in the cache hints for entries and collections to indicate when the data was last modified. This is then available in thecacheHint
field returned bygetCollection
andgetEntry
. -
#13987
08f34b1
Thanks @ematipico! - Adds an informative message in dev mode when the CSP feature is enabled. -
#14005
82aad62
Thanks @ematipico! - Fixes a bug where inline styles and scripts didn't work when CSP was enabled. Now when adding<styles>
elements inside an Astro component, their hashes care correctly computed. -
#13985
0b4c641
Thanks @jsparkdev! - Updates wrong link
v5.10.0
Minor Changes
-
#13917
e615216
Thanks @ascorbic! - Adds a newpriority
attribute for Astro's image components.This change introduces a new
priority
option for the<Image />
and<Picture />
components, which automatically sets theloading
,decoding
, andfetchpriority
attributes to their optimal values for above-the-fold images which should be loaded immediately.It is a boolean prop, and you can use the shorthand syntax by simply adding
priority
as a prop to the<Image />
or<Picture />
component. When set, it will apply the following attributes:loading="eager"
decoding="sync"
fetchpriority="high"
The individual attributes can still be set manually if you need to customize your images further.
By default, the Astro
<Image />
component generates<img>
tags that lazy-load their content by settingloading="lazy"
anddecoding="async"
. This improves performance by deferring the loading of images that are not immediately visible in the viewport, and gives the best scores in performance audits like Lighthouse.The new
priority
attribute will override those defaults and automatically add the best settings for your high-priority assets.This option was previously available for experimental responsive images, but now it is a standard feature for all images.
Usage
<Image src="/path/to/image.jpg" alt="An example image" priority />
[!Note] You should only use the
priority
option for images that are critical to the initial rendering of the page, and ideally only one image per page. This is often an image identified as the LCP element when running Lighthouse tests. Using it for too many images will lead to performance issues, as it forces the browser to load those images immediately, potentially blocking the rendering of other content.
-
#13917
e615216
Thanks @ascorbic! - The responsive images feature introduced behind a flag in v5.0.0 is no longer experimental and is available for general use.The new responsive images feature in Astro automatically generates optimized images for different screen sizes and resolutions, and applies the correct attributes to ensure that images are displayed correctly on all devices.
Enable the
image.responsiveStyles
option in your Astro config. Then, set alayout
attribute on any or component, or configure a defaultimage.layout
, for instantly responsive images with automatically generatedsrcset
andsizes
attributes based on the image's dimensions and the layout type.Displaying images correctly on the web can be challenging, and is one of the most common performance issues seen in sites. This new feature simplifies the most challenging part of the process: serving your site visitor an image optimized for their viewing experience, and for your website's performance.
For full details, see the updated Image guide.
Migration from Experimental Responsive Images
The experimental.responsiveImages
flag has been removed, and all experimental image configuration options have been renamed to their final names.
If you were using the experimental responsive images feature, you'll need to update your configuration:
Remove the experimental flag
export default defineConfig({
experimental: {
- responsiveImages: true,
},
});
Update image configuration options
During the experimental phase, default styles were applied automatically to responsive images. Now, you need to explicitly set the responsiveStyles
option to true
if you want these styles applied.
export default defineConfig({
image: {
+ responsiveStyles: true,
},
});
The experimental image configuration options have been renamed:
Before:
export default defineConfig({
image: {
experimentalLayout: 'constrained',
experimentalObjectFit: 'cover',
experimentalObjectPosition: 'center',
experimentalBreakpoints: [640, 750, 828, 1080, 1280],
experimentalDefaultStyles: true,
},
experimental: {
responsiveImages: true,
},
});
After:
export default defineConfig({
image: {
layout: 'constrained',
objectFit: 'cover',
objectPosition: 'center',
breakpoints: [640, 750, 828, 1080, 1280],
responsiveStyles: true, // This is now *false* by default
},
});
Component usage remains the same
The layout
, fit
, and position
props on <Image>
and <Picture>
components work exactly the same as before:
<Image
src={myImage}
alt="A responsive image"
layout="constrained"
fit="cover"
position="center"
/>
If you weren't using the experimental responsive images feature, no changes are required.
Please see the Image guide for more information on using responsive images in Astro.
-
#13685
3c04c1f
Thanks @ascorbic! - Adds experimental support for live content collectionsLive content collections are a new type of content collection that fetch their data at runtime rather than build time. This allows you to access frequently-updated data from CMSs, APIs, databases, or other sources using a unified API, without needing to rebuild your site when the data changes.
Live collections vs build-time collections
In Astro 5.0, the content layer API added support for adding diverse content sources to content collections. You can create loaders that fetch data from any source at build time, and then access it inside a page via getEntry()
and getCollection()
. The data is cached between builds, giving fast access and updates.
However there is no method for updating the data store between builds, meaning any updates to the data need a full site deploy, even if the pages are rendered on-demand. This means that content collections are not suitable for pages that update frequently. Instead, today these pages tend to access the APIs directly in the frontmatter. This works, but leads to a lot of boilerplate, and means users don't benefit from the simple, unified API that content loaders offer. In most cases users tend to individually create loader libraries that they share between pages.
Live content collections solve this problem by allowing you to create loaders that fetch data at runtime, rather than build time. This means that the data is always up-to-date, without needing to rebuild the site.
How to use
To enable live collections add the experimental.liveContentCollections
flag to your astro.config.mjs
file:
{
experimental: {
liveContentCollections: true,
},
}
Then create a new src/live.config.ts
file (alongside your src/content.config.ts
if you have one) to define your live collections with a live loader and optionally a schema using the new defineLiveCollection()
function from the astro:content
module.
import { defineLiveCollection } from 'astro:content';
import { storeLoader } from '@​mystore/astro-loader';
const products = defineLiveCollection({
type: 'live',
loader: storeLoader({
apiKey: process.env.STORE_API_KEY,
endpoint: 'https://api.mystore.com/v1',
}),
});
export const collections = { products };
You can then use the dedicated getLiveCollection()
and getLiveEntry()
functions to access your live data:
v5.9.4
Patch Changes
-
#13951
7eb88f1
Thanks @ascorbic! - Fixes a issue that caused errors when using an adapter-provided session driver with custom options -
#13953
448bddc
Thanks @zaitovalisher! - Fixes a bug where quotes were not added to the 'strict-dynamic' CSP directive
v5.9.3
Patch Changes
-
#13923
a9ac5ed
Thanks @ematipico! - BREAKING CHANGE to the experimental Content Security Policy (CSP) onlyChanges the behavior of experimental Content Security Policy (CSP) to now serve hashes differently depending on whether or not a page is prerendered:
- Via the
<meta>
element for static pages. - Via the
Response
headercontent-security-policy
for on-demand rendered pages.
This new strategy allows you to add CSP content that is not supported in a
<meta>
element (e.g.report-uri
,frame-ancestors
, and sandbox directives) to on-demand rendered pages.No change to your project code is required as this is an implementation detail. However, this will result in a different HTML output for pages that are rendered on demand. Please check your production site to verify that CSP is working as intended.
To keep up to date with this developing feature, or to leave feedback, visit the CSP Roadmap proposal.
- Via the
-
#13926
953a249
Thanks @ematipico! - Adds a new Astro Adapter Feature calledexperimentalStaticHeaders
to allow your adapter to receive theHeaders
for rendered static pages.Adapters that enable support for this feature can access header values directly, affecting their handling of some Astro features such as Content Security Policy (CSP). For example, Astro will no longer serve the CSP
<meta http-equiv="content-security-policy">
element in static pages to adapters with this support.Astro will serve the value of the header inside a map that can be retrieved from the hook
astro:build:generated
. Adapters can read this mapping and use their hosting headers capabilities to create a configuration file.A new field called
experimentalRouteToHeaders
will contain a map ofMap<IntegrationResolvedRoute, Headers>
where theHeaders
type contains the headers emitted by the rendered static route.To enable support for this experimental Astro Adapter Feature, add it to your
adapterFeatures
in your adapter config:// my-adapter.mjs export default function createIntegration() { return { name: '@​example/my-adapter', hooks: { 'astro:config:done': ({ setAdapter }) => { setAdapter({ name: '@​example/my-adapter', serverEntrypoint: '@​example/my-adapter/server.js', adapterFeatures: { experimentalStaticHeaders: true, }, }); }, }, }; }
See the Adapter API docs for more information about providing adapter features.
-
#13697
af83b85
Thanks @benosmac! - Fixes issues with fallback route pattern matching wheni18n.routing.fallbackType
isrewrite
.- Adds conditions for route matching in
generatePath
when building fallback routes and checking for existing translated pages
Now for a route to be matched it needs to be inside a named
[locale]
folder. This fixes an issue whereroute.pattern.test()
incorrectly matched dynamic routes, causing the page to be skipped.- Adds conditions for route matching in
findRouteToRewrite
Now the requested pathname must exist in
route.distURL
for a dynamic route to match. This fixes an issue whereroute.pattern.test()
incorrectly matched dynamic routes, causing the build to fail. - Adds conditions for route matching in
-
#13924
1cd8c3b
Thanks @qw-in! - Fixes an edge case whereisPrerendered
was incorrectly set tofalse
for static redirects. -
#13926
953a249
Thanks @ematipico! - Fixes an issue where the experimental CSPmeta
element wasn't placed in the<head>
element as early as possible, causing these policies to not apply to styles and scripts that came before themeta
element.
v5.9.2
Patch Changes
-
#13919
423fe60
Thanks @ematipico! - Fixes a bug where Astro added quotes to the CSP resources.Only certain resources require quotes (e.g.
'self'
but nothttps://cdn.example.com
), so Astro no longer adds quotes to any resources. You must now provide the quotes yourself for resources such as'self'
when necessary:export default defineConfig({ experimental: { csp: { styleDirective: { resources: [ - "self", + "'self'", "https://cdn.example.com" ] } } } })
-
#13914
76c5480
Thanks @ematipico! - BREAKING CHANGE to the experimental Content Security Policy feature onlyRemoves support for experimental Content Security Policy (CSP) when using the
<ClientRouter />
component for view transitions.It is no longer possible to enable experimental CSP while using Astro's view transitions. Support was already unstable with the
<ClientRouter />
because CSP required making its underlying implementation asynchronous. This caused breaking changes for several users and therefore, this MR removes support completely.If you are currently using the component for view transitions, please remove the experimental CSP flag as they cannot be used together.
import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { - csp: true } });
Alternatively, to continue using experimental CSP in your project, you can consider migrating to the browser native View Transition API and remove the
<ClientRouter />
from your project. You may be able to achieve similar results if you are not using Astro's enhancements to the native View Transitions and Navigation APIs.Support might be reintroduced in future releases. You can follow this experimental feature's development in the CSP RFC.
v5.9.1
Patch Changes
-
#13899
7a1303d
Thanks @reknih! - Fix bug where error pages would return invalid bodies if the upstream response was compressed -
#13902
051bc30
Thanks @arHSM! - Fixes a bug where vite virtual module ids were incorrectly added in the dev server -
#13905
81f71ca
Thanks @jsparkdev! - Fixes wrong contents in CSP meta tag. -
#13907
8246bcc
Thanks @martrapp! - Fixes a bug that caused view transition names to be lost. -
#13901
37fa0a2
Thanks @ansg191! - fix fallback not being removed when server island is rendered
v5.9.0
Minor Changes
-
#13802
0eafe14
Thanks @ematipico! - Adds experimental Content Security Policy (CSP) supportCSP is an important feature to provide fine-grained control over resources that can or cannot be downloaded and executed by a document. In particular, it can help protect against cross-site scripting (XSS) attacks.
Enabling this feature adds additional security to Astro's handling of processed and bundled scripts and styles by default, and allows you to further configure these, and additional, content types. This new experimental feature has been designed to work in every Astro rendering environment (static pages, dynamic pages and single page applications), while giving you maximum flexibility and with type-safety in mind.
It is compatible with most of Astro's features such as client islands, and server islands, although Astro's view transitions using the
<ClientRouter />
are not yet fully supported. Inline scripts are not supported out of the box, but you can provide your own hashes for external and inline scripts.To enable this feature, add the experimental flag in your Astro config:
// astro.config.mjs import { defineConfig } from 'astro/config'; export default defineConfig({ experimental: { csp: true, }, });
For more information on enabling and using this feature in your project, see the Experimental CSP docs.
For a complete overview, and to give feedback on this experimental API, see the Content Security Policy RFC.
-
#13850
1766d22
Thanks @ascorbic! - Provides a Markdown renderer to content loadersWhen creating a content loader, you will now have access to a
renderMarkdown
function that allows you to render Markdown content directly within your loaders. It uses the same settings and plugins as the renderer used for Markdown files in Astro, and follows any Markdown settings you have configured in your Astro project.This allows you to render Markdown content from various sources, such as a CMS or other data sources, directly in your loaders without needing to preprocess the Markdown content separately.
import type { Loader } from 'astro/loaders'; import { loadFromCMS } from './cms'; export function myLoader(settings): Loader { return { name: 'my-loader', async load({ renderMarkdown, store }) { const entries = await loadFromCMS(); store.clear(); for (const entry of entries) { // Assume each entry has a 'content' field with markdown content store.set({ id: entry.id, data: entry, rendered: await renderMarkdown(entry.content), }); } }, }; }
The return value of
renderMarkdown
is an object with two properties:html
andmetadata
. These match therendered
property of content entries in content collections, so you can use them to render the content in your components or pages.
v5.8.2
Patch Changes
-
#13877
5a7797f
Thanks @yuhang-dong! - Fixes a bug that causedAstro.rewrite
to fail when used insequence
d middleware -
#13872
442b841
Thanks @isVivek99! - Fixes rendering of thedownload
attribute when it has a boolean value
v5.8.1
Patch Changes
-
#13037
de2fc9b
Thanks @nanarino! - Fixes rendering of thepopover
attribute when it has a boolean value -
#13851
45ae95a
Thanks @ascorbic! - Allows disabling default styles for responsive imagesThis change adds a new
image.experimentalDefaultStyles
option that allows you to disable the default styles applied to responsive images.When using experimental responsive images, Astro applies default styles to ensure the images resize correctly. In most cases this is what you want – and they are applied with low specificity so your own styles override them. However in some cases you may want to disable these default styles entirely. This is particularly useful when using Tailwind 4, because it uses CSS cascade layers to apply styles, making it difficult to override the default styles.
image.experimentalDefaultStyles
is a boolean option that defaults totrue
, so you can change it in your Astro config file like this:export default { image: { experimentalDefaultStyles: false, }, experimental: { responsiveImages: true, }, };
-
#13858
cb1a168
Thanks @florian-lefebvre! - Fixes the warning shown when client directives are used on Astro components -
#12574
da266d0
Thanks @apatel369! - Allows using server islands in mdx files -
#13843
fbcfa68
Thanks @z1haze! - Export typeAstroSession
to allow use in explicitly typed safe code.
v5.8.0
Minor Changes
-
#13809
3c3b492
Thanks @ascorbic! - Increases minimum Node.js version to 18.20.8Node.js 18 has now reached end-of-life and should not be used. For now, Astro will continue to support Node.js 18.20.8, which is the final LTS release of Node.js 18, as well as Node.js 20 and Node.js 22 or later. We will drop support for Node.js 18 in a future release, so we recommend upgrading to Node.js 22 as soon as possible. See Astro's Node.js support policy for more details.
⚠️ Important note for users of Cloudflare Pages: The current build image for Cloudflare Pages uses Node.js 18.17.1 by default, which is no longer supported by Astro. If you are using Cloudflare Pages you should override the default Node.js version to Node.js 22. This does not affect users of Cloudflare Workers, which uses Node.js 22 by default.
Patch Changes
- Updated dependencies [
3c3b492
]:- @astrojs/telemetry@3.3.0
- @astrojs/markdown-remark@6.3.2
v5.7.14
Patch Changes
-
#13773
3aa5337
Thanks @sijad! - Ignores lightningcss unsupported pseudo-class warning. -
#13833
5a6d2ae
Thanks @ascorbic! - Fixes an issue where session modules would fail to resolve in Node.js < 20.6 -
#13383
f7f712c
Thanks @Haberkamp! - Stop toolbar settings from overflowing -
#13794
85b19d8
Thanks @alexcarpenter! - Exclude pre tags froma11y-no-noninteractive-tabindex
audit check. -
#13373
50ef568
Thanks @jpwienekus! - Fixes a bug where highlights and tooltips render over the audit list window. -
#13769
e9fc456
Thanks @romanstetsyk! - Expand ActionError codes to include all IANA-registered HTTP error codes. -
#13668
866285a
Thanks @sapphi-red! - Replaces internal CSS chunking behavior for Astro components' scoped styles to use Vite'scssScopeTo
feature. The feature is a port of Astro's implementation so this should not change the behavior.
v5.7.13
Patch Changes
-
#13761
a2e8463
Thanks @jp-knj! - Adds new content collections errors -
#13788
7d0b7ac
Thanks @florian-lefebvre! - Fixes a case where an error would not be thrown when using the<Font />
component from the experimental fonts API without adding fonts in the Astro config -
#13784
d7a1889
Thanks @florian-lefebvre! - Fixes the experimental fonts API to correctly takeconfig.base
,config.build.assets
andconfig.build.assetsPrefix
into account -
#13777
a56b8ea
Thanks @L4Ph! - Fixed an issue where looping GIF animation would stop when converted to WebP -
#13566
0489d8f
Thanks @TheOtterlord! - Fix build errors being ignored when build.concurrency > 1
v5.7.12
Patch Changes
-
#13752
a079c21
Thanks @florian-lefebvre! - Improves handling of font URLs not ending with a file extension when using the experimental fonts API -
#13750
7d3127d
Thanks @martrapp! - Allows the ClientRouter to open new tabs or windows when submitting forms by clicking while holding the Cmd, Ctrl, or Shift key. -
#13765
d874fe0
Thanks @florian-lefebvre! - Fixes a case where font sources with relative protocol URLs would fail when using the experimental fonts API -
#13640
5e582e7
Thanks @florian-lefebvre! - Allows inferringweight
andstyle
when using the local provider of the experimental fonts APIIf you want Astro to infer those properties directly from your local font files, leave them undefined:
{ // No weight specified: infer style: 'normal'; // Do not infer }
v5.7.11
Patch Changes
-
#13734
30aec73
Thanks @ascorbic! - Loosen content layer schema types -
#13751
5816b8a
Thanks @florian-lefebvre! - Updatesunifont
to support subsets when using thegoogle
provider with the experimental fonts API -
#13756
d4547ba
Thanks @florian-lefebvre! - Adds a terminal warning when a remote provider returns no data for a family when using the experimental fonts API -
#13742
f599463
Thanks @florian-lefebvre! - Fixes optimized fallback css generation to properly add asrc
when using the experimental fonts API -
#13740
6935540
Thanks @vixalien! - Fix cookies set after middleware did a rewrite withnext(url)
not being applied -
#13759
4a56d0a
Thanks @jp-knj! - Improved the error handling of certain error cases.
v5.7.10
Patch Changes
-
#13731
c3e80c2
Thanks @jsparkdev! - update vite to latest version for fixing CVE
v5.7.9
Patch Changes
-
#13711
2103991
Thanks @ascorbic! - Fixes height for responsive images
v5.7.8
Patch Changes
-
#13715
b32dffa
Thanks @florian-lefebvre! - Updatesunifont
to fix a case where aunicodeRange
related error would be thrown when using the experimental fonts API
v5.7.7
Patch Changes
-
#13705
28f8716
Thanks @florian-lefebvre! - Updates unifont to latest and adds support forfetch
options from remote providers when using the experimental fonts API -
#13692
60d5be4
Thanks @Le0Developer! - Fixes a bug where Astro couldn't probably useinferSize
for images that contain apostrophe'
in their name. -
#13698
ab98f88
Thanks @sarah11918! - Improves the configuration reference docs for theadapter
entry with more relevant text and links. -
#13706
b4929ae
Thanks @ascorbic! - Fixes typechecking for content config schema -
#13653
a7b2dc6
Thanks @florian-lefebvre! - Reduces the amount of preloaded files for the local provider when using the experimental fonts API -
#13653
a7b2dc6
Thanks @florian-lefebvre! - Fixes a case where invalid CSS was emitted when using an experimental fonts API family name containing a space
v5.7.6
Patch Changes
-
#13703
659904b
Thanks @ascorbic! - Fixes a bug where empty fallbacks could not be provided when using the experimental fonts API -
#13680
18e1b97
Thanks @florian-lefebvre! - Improves theUnsupportedExternalRedirect
error message to include more details such as the concerned destination -
#13703
659904b
Thanks @ascorbic! - Simplifies styles for experimental responsive images⚠️ BREAKING CHANGE FOR EXPERIMENTAL RESPONSIVE IMAGES ONLY⚠️ The generated styles for image layouts are now simpler and easier to override. Previously the responsive image component used CSS to set the size and aspect ratio of the images, but this is no longer needed. Now the styles just include
object-fit
andobject-position
for all images, and setsmax-width: 100%
for constrained images andwidth: 100%
for full-width images.This is an implementation change only, and most users will see no change. However, it may affect any custom styles you have added to your responsive images. Please check your rendered images to determine whether any change to your CSS is needed.
The styles now use the
:where()
pseudo-class, which has a specificity of 0, meaning that it is easy to override with your own styles. You can now be sure that your own classes will always override the applied styles, as will global styles onimg
.An exception is Tailwind 4, which uses cascade layers, meaning the rules are always lower specificity. Astro supports browsers that do not support cascade layers, so we cannot use this. If you need to override the styles using Tailwind 4, you must use
!important
classes. Do check if this is needed though: there may be a layout that is more appropriate for your use case. -
#13703
659904b
Thanks @ascorbic! - Adds warnings about using local font files in thepublicDir
when the experimental fonts API is enabled. -
#13703
659904b
Thanks @ascorbic! - Renames experimental responsive image layout option from "responsive" to "constrained"⚠️ BREAKING CHANGE FOR EXPERIMENTAL RESPONSIVE IMAGES ONLY⚠️ The layout option called
"responsive"
is renamed to"constrained"
to better reflect its behavior.The previous name was causing confusion, because it is also the name of the feature. The
responsive
layout option is specifically for images that are displayed at the requested size, unless they do not fit the width of their container, at which point they would be scaled down to fit. They do not get scaled beyond the intrinsic size of the source image, or thewidth
prop if provided.It became clear from user feedback that many people (understandably) thought that they needed to set
layout
toresponsive
if they wanted to use responsive images. They then struggled with overriding styles to make the image scale up for full-width hero images, for example, when they should have been usingfull-width
layout. Renaming the layout toconstrained
should make it clearer that this layout is for when you want to constrain the maximum size of the image, but allow it to scale-down.
Upgrading
If you set a default image.experimentalLayout
in your astro.config.mjs
, or set it on a per-image basis using the layout
prop, you will need to change all occurences to constrained
:
// astro.config.mjs
export default {
image: {
- experimentalLayout: 'responsive',
+ experimentalLayout: 'constrained',
},
}
squidfunk/mkdocs-material (mkdocs-material)
v9.6.16
: mkdocs-material-9.6.16
- Fixed #8349: Info plugin doesn't correctly detect virtualenv in some cases
- Fixed #8334: Find-in-page detects matches in hidden search result list
v9.6.15
: mkdocs-material-9.6.15
- Updated Mongolian translations
- Improved semantic markup of "edit this page" button
- Improved info plugin virtual environment resolution
- Fixed #8291: Large font size setting throws of breakpoints in JavaScript
v9.6.14
: mkdocs-material-9.6.14
- Fixed #8215: Social plugin crashes when CairoSVG is updated to 2.8
v9.6.13
: mkdocs-material-9.6.13
mkdocstrings/python (mkdocstrings-python)
v1.16.12
Bug Fixes
v1.16.11
Bug Fixes
- Fix highlighting for signature with known special names like
__init__
(7f95686 by Timothée Mazzucotelli). Issue-mkdocstrings-757 - Use default font-size for parameter headings (0a35b20 by Timothée Mazzucotelli). Issue-mkdocstrings-697
- Prevent uppercasing H5 titles (by Material for MkDocs) (ba66969 by Timothée Mazzucotelli). Issue-mkdocstrings-697, Issue-276
- Use configured heading even when signature is not separated (096960a by Timothée Mazzucotelli). Issue-mkdocstrings-767, MR-278
- Render attribute names without full path in ToC (d4e618a by David Lee). Issue-271, MR-272
python-poetry/poetry (poetry)
v2.1.4
Changed
- Require
virtualenv<20.33
to work around an issue where Poetry uses the wrong Python version (#10491). - Improve the error messages for the validation of the
pyproject.toml
file (#10471).
Fixed
- Fix an issue where project plugins were installed even though
poetry install
was called with--no-plugins
(#10405). - Fix an issue where dependency resolution failed for self-referential extras with duplicate dependencies (#10488).
Docs
- Clarify how to include files that were automatically excluded via VCS ignore settings (#10442).
- Clarify the behavior of
poetry add
if no version constraint is explicitly specified (#10445).
v2.1.3
Changed
- Require
importlib-metadata<8.7
for Python 3.9 because of a breaking change in importlib-metadata 8.7 (#10374).
Fixed
- Fix an issue where re-locking failed for incomplete multiple-constraints dependencies with explicit sources (#10324).
- Fix an issue where the
--directory
option did not work if a plugin, which accesses the poetry instance during its activation, was installed (#10352). - Fix an issue where
poetry env activate -v
printed additional information to stdout instead of stderr so that the output could not be used as designed (#10353). - Fix an issue where the original error was not printed if building a git dependency failed (#10366).
- Fix an issue where wheels for the wrong platform were installed in rare cases. (#10361).
2.1.3
)
poetry-core (- Fix an issue where the union of specific inverse or partially inverse markers was not simplified (#858).
- Fix an issue where optional dependencies defined in the
project
section were treated as non-optional when a source was defined for them in thetool.poetry
section (#857). - Fix an issue where markers with
===
were not parsed correctly (#860). - Fix an issue where local versions with upper case letters caused an error (#859).
- Fix an issue where
extra
markers with a value starting with "in" were not validated correctly (#862).
uis/devops/continuous-delivery/ci-templates (uis/devops/continuous-delivery/ci-templates)
v7.6.2
: 7.6.2
7.6.2 (2025-07-22)
Bug Fixes
- handling having set CI_APPLICATION_REPOSITORY with multi target docker builds (1dc6987)
v7.6.1
: 7.6.1
7.6.1 (2025-07-16)
Bug Fixes
v7.6.0
: 7.6.0
7.6.0 (2025-07-10)
Features
- terraform: add tfplan.json to artefact list (710623f)
Bug Fixes
- terraform: restrict plan artefact access (723e094)
v7.5.3
: 7.5.3
7.5.3 (2025-07-10)
v7.5.2
: 7.5.2
7.5.2 (2025-07-10)
v7.5.1
: 7.5.1
7.5.1 (2025-07-10)
Bug Fixes
- maven.gitlab-ci.yml: added missing GKE_RUNNER_TAG for cache-debug job (22df4e5)
v7.5.0
: 7.5.0
7.5.0 (2025-07-03)
Features
- add compile_vulnerability_allowlist as a pre-req for the container_scanning job (94ae968)
v7.4.0
: 7.4.0
7.4.0 (2025-07-01)
Features
- keep trivy output in fixed directory (5ce35ee)
v7.3.2
: 7.3.2
7.3.2 (2025-06-26)
v7.3.1
: 7.3.1
7.3.1 (2025-06-26)
v7.3.0
: 7.3.0
7.3.0 (2025-06-26)
Features
- renovate: add all YAML files to gitlabci manager (1dc5db5)
v7.2.2
: 7.2.2
7.2.2 (2025-06-26)
Bug Fixes
v7.2.1
: 7.2.1
7.2.1 (2025-06-26)
Bug Fixes
v7.2.0
: 7.2.0
7.2.0 (2025-06-23)
Features
v7.1.0
: 7.1.0
7.1.0 (2025-06-19)
Features
v7.0.2
: 7.0.2
7.0.2 (2025-06-17)
v7.0.1
: 7.0.1
7.0.1 (2025-06-17)
Bug Fixes
v7.0.0
: 7.0.0
7.0.0 (2025-06-17)
⚠️ BREAKING CHANGES
- add the common-pipeline, commitlint, and release-it
Features
- add the common-pipeline, commitlint, and release-it (8fbf3a9)
v6.15.0
Changed
-
terraform-module.yml
: Add support for Terraform testing with additional cleanup scripts.
Fixed
-
terraform-module.yml
: Override thetflint
job so that theterraform_standard_module_structure
rule is applied. -
terraform-module.yml
: Override thepre-commit
job to avoid duplication of ourterraform-fmt
,tflint
, andtrivy
jobs.
v6.14.2
v6.14.1
v6.14.0
v6.13.0
v6.12.3
v6.12.2
Fixed
- terraform-module: override .
test-job-rules
fromterraform-lint.yml
as theterraform-module.yml
template needs to support Auto-DevOps.
v6.12.1
v6.12.0
v6.11.0
Changed
-
terraform-lint
: use customtflint
docker image for thetflint
job. This image includes the UIS DevOps customtflint
ruleset. -
terraform-lint
: move default tflint arguments to a$TFLINT_ARGS
variable to allow repositories to override if required. -
terraform-module
: enabletflint
in our Terraform reusable module pipeline.
v6.10.0
Fixed
-
terraform-pipeline
: Partially revert changes made in v5.1.0.- Plan jobs for branch push pipelines will be reverted.
- Manual apply jobs for the development environment will remain in the merge request pipelines.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.