The web framework for content-driven websites. ⭐️ Star to support our work!
#10799 dc74afca9f5eebc2d61331298d6ef187d92051e0
Thanks @martrapp! - Fixes an issue with persisted non-text input fields that have the focus during view transition navigation.
#10773 35e43ecdaae7adc4b9a0b974192a033568cfb3f0
Thanks @lilnasy! - Improves performance for frequent use of small components.
#10763 63132771373ce1510be3e8814897accc0bf62ef8
Thanks @matthewp! - Invalidate CC cache manifest when lockfile or config changes
#10811 77822a822b04b5113726f713df104e8667333c59
Thanks @AvinashReddy3108! - Update list of available integrations in the astro add
CLI help.
0e22462d1534afc8f7bb6782f86db680c7a5f245
Thanks @gislerro! - Fixes an issue where the root url does not follow the trailingSlash
config optiond4c91cb10924a0627a9e9a80bc549b3c82d043e6
Thanks @NickDubelman! - Expose the Drizzle alias
utility from astro:db
to enable self-joins on a table.#10732 a92e263beb6e0166f1f13c97803d1861793e2a99
Thanks @rishi-raj-jain! - Correctly sets build.assets
directory during vite
config setup
#10776 1607face67051b16d4648555f1001b2a9308e377
Thanks @fshafiee! - Fixes cookies type inference
#10796 90669472df3a05b33f0de46fd2d039e3eba7f7dd
Thanks @bluwy! - Disables streaming when rendering site with output: "static"
#10782 b0589d05538fcc77dd3c38198bf93f3548362cd8
Thanks @nektro! - Handles possible null value when calling which-pm
during dynamic package installation
#10774 308b5d8c122f44e7724bb2f3ad3aa5c43a83e584
Thanks @Princesseuh! - Fixes astro add
sometimes modifying baseUrl
unintentionally
#10783 4dbd545304d1a8af903c8c97f237eb55c988c40b
Thanks @jurajkapsz! - Fixes Picture component specialFormatsFallback fallback check
#10775 06843121450899ecf0390ca4efaff6c9a6fe0f75
Thanks @Princesseuh! - Fixes assets endpoint in serverless returning 404 in certain situations where the website might be under a protected route
#10787 699f4559a279b374bddb3e5e48c72afe2709e8e7
Thanks @martrapp! - Fixes a timing issue in the view transition simulation.
1ce22881c657becf0397b83ac393fb5d2399104c
Thanks @bluwy! - Improves performance when generating the sitemap data#10754 3e7a12c8532411e580fcfdb8445cad8fc8499291
Thanks @rishi-raj-jain! - Fixes an issue where images in MDX required a relative specifier (e.g. ./
)
Now, you can use the standard ![](img.png)
syntax in MDX files for images colocated in the same folder: no relative specifier required!
There is no need to update your project; your existing images will still continue to work. However, you may wish to remove any relative specifiers from these MDX images as they are no longer necessary:
- ![A cute dog](./dog.jpg)
+ ![A cute dog](dog.jpg)
<!-- This dog lives in the same folder as my article! -->
#10770 88ee63a3ba4488c60348cb821034e6d4a057efd0
Thanks @bluwy! - Removes internal MDX processor on buildEnd
to free up memory
#10708 742866c5669a2be4f8b5a4c861cadb933c381415
Thanks @horo-fox! - Limits parallel imports within getCollection()
to prevent EMFILE errors when accessing files
#10755 c6d59b6fb7db20af957a8706c8159c50619235ef
Thanks @ematipico! - Fixes a case where the i18n fallback failed to correctly redirect to the index page with SSR enabled
#10756 c75ededdb401cfa55e1ad2682d5e95494f49604e
Thanks @Princesseuh! - Fixes widths
and densities
not working when using Vercel's Image Optimization.
Note that you still need to make sure that the widths you're outputting are enabled in the imageConfig
property of the Vercel adapter in order for these properties to work.
d1080ea81de0db1d1aed97a65c490766c17ab312
Thanks @delucis! - Improves package.json
metadata fields#10591 39988ef8e2c4c4888543c973e06d9b9939e4ac95
Thanks @mingjunlu! - Adds a new dev toolbar settings option to change the horizontal placement of the dev toolbar on your screen: bottom left, bottom center, or bottom right.
#10689 683d51a5eecafbbfbfed3910a3f1fbf0b3531b99
Thanks @ematipico! - Deprecate support for versions of Node.js older than v18.17.1
for Node.js 18, older than v20.0.3
for Node.js 20, and the complete Node.js v19 release line.
This change is in line with Astro's Node.js support policy.
#10678 2e53b5fff6d292b7acdf8c30a6ecf5e5696846a1
Thanks @ematipico! - Adds a new experimental security option to prevent Cross-Site Request Forgery (CSRF) attacks. This feature is available only for pages rendered on demand:
import { defineConfig } from 'astro/config';
export default defineConfig({
experimental: {
security: {
csrfProtection: {
origin: true,
},
},
},
});
Enabling this setting performs a check that the "origin" header, automatically passed by all modern browsers, matches the URL sent by each Request
.
This experimental "origin" check is executed only for pages rendered on demand, and only for the requests POST,
PATCH,
DELETEand
PUTwith one of the following
content-type` headers: 'application/x-www-form-urlencoded', 'multipart/form-data', 'text/plain'.
It the "origin" header doesn't match the pathname of the request, Astro will return a 403 status code and won't render the page.
#10193 440681e7b74511a17b152af0fd6e0e4dc4014025
Thanks @ematipico! - Adds a new i18n routing option manual
to allow you to write your own i18n middleware:
import { defineConfig } from 'astro/config';
// astro.config.mjs
export default defineConfig({
i18n: {
locales: ['en', 'fr'],
defaultLocale: 'fr',
routing: 'manual',
},
});
Adding routing: "manual"
to your i18n config disables Astro's own i18n middleware and provides you with helper functions to write your own: redirectToDefaultLocale
, notFound
, and redirectToFallback
:
// middleware.js
import { redirectToDefaultLocale } from 'astro:i18n';
export const onRequest = defineMiddleware(async (context, next) => {
if (context.url.startsWith('/about')) {
return next();
} else {
return redirectToDefaultLocale(context, 302);
}
});
Also adds a middleware
function that manually creates Astro's i18n middleware. This allows you to extend Astro's i18n routing instead of completely replacing it. Run middleware
in combination with your own middleware, using the sequence
utility to determine the order:
import { defineMiddleware, sequence } from 'astro:middleware';
import { middleware } from 'astro:i18n'; // Astro's own i18n routing config
export const userMiddleware = defineMiddleware();
export const onRequest = sequence(
userMiddleware,
middleware({
redirectToDefaultLocale: false,
prefixDefaultLocale: true,
})
);
#10671 9e14a78cb05667af9821948c630786f74680090d
Thanks @fshafiee! - Adds the httpOnly
, sameSite
, and secure
options when deleting a cookie
#10747 994337c99f84304df1147a14504659439a9a7326
Thanks @lilnasy! - Fixes an issue where functions could not be used as named slots.
#10750 7e825604ddf90c989537e07939a39dc249343897
Thanks @OliverSpeir! - Fixes a false positive for "Invalid tabindex
on non-interactive element" rule for roleless elements ( div
and span
).
#10745 d51951ce6278d4b59deed938d65e1cb72b5102df
Thanks @lilnasy! - Fixes an issue where CLI commands could not report the reason for failure before exiting.
#10661 e2cd7f4291912dadd4a654bc7917856c58a72a97
Thanks @liruifengv! - Fixed errorOverlay theme toggle bug.
Updated dependencies [ccafa8d230f65c9302421a0ce0a0adc5824bfd55
, 683d51a5eecafbbfbfed3910a3f1fbf0b3531b99
]: