diff --git a/.changeset/calm-mails-check.md b/.changeset/calm-mails-check.md deleted file mode 100644 index 7de709c1b0ec7..0000000000000 --- a/.changeset/calm-mails-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"astro": patch ---- - -Fixes an issue where functions could not be used as named slots. diff --git a/.changeset/cold-snakes-train.md b/.changeset/cold-snakes-train.md deleted file mode 100644 index 0bab4f40e60a7..0000000000000 --- a/.changeset/cold-snakes-train.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -"@astrojs/markdown-remark": minor ---- - -Adds a `data-language` attribute on the rendered `pre` elements to expose the highlighted syntax language. - -For example, the following Markdown code block will expose `data-language="python"`: -``` -\```python -def func(): - print('Hello Astro!') -\``` -``` - -This allows retrieving the language in a rehype plugin from `node.properties.dataLanguage` by accessing the `
` element using `{ tagName: "pre" }`:
-```js
-// myRehypePre.js
-import { visit } from "unist-util-visit";
-export default function myRehypePre() {
-  return (tree) => {
-    visit(tree, { tagName: "pre" }, (node) => {
-      const lang = node.properties.dataLanguage;
-      [...]
-    });
-  };
-}
-```
-
-Note: The `
` element is not exposed when using Astro's `` component which outputs flattened HTML.
-
-
-The `data-language` attribute may also be used in css rules:
-```css
-pre::before {
-    content: attr(data-language);
-}
-
-pre[data-language="javascript"] {
-  font-size: 2rem;
-}
-```
-
diff --git a/.changeset/dry-eels-yell.md b/.changeset/dry-eels-yell.md
deleted file mode 100644
index 3b7a20f3a1d3f..0000000000000
--- a/.changeset/dry-eels-yell.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"astro": minor
----
-
-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.
diff --git a/.changeset/empty-rules-type.md b/.changeset/empty-rules-type.md
deleted file mode 100644
index fd4933291b7f8..0000000000000
--- a/.changeset/empty-rules-type.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-"@astrojs/markdoc": minor
-"@astrojs/preact": minor
-"@astrojs/svelte": minor
-"@astrojs/react": minor
-"@astrojs/solid-js": minor
-"@astrojs/mdx": minor
-"@astrojs/vue": minor
-"create-astro": minor
-"@astrojs/prism": minor
-"@astrojs/telemetry": minor
-"@astrojs/upgrade": minor
-"astro": minor
----
-
-Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
-
diff --git a/.changeset/fair-jars-behave.md b/.changeset/fair-jars-behave.md
deleted file mode 100644
index 700b1b883021c..0000000000000
--- a/.changeset/fair-jars-behave.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-"astro": minor
----
-
-Adds a new experimental security option to prevent [Cross-Site Request Forgery (CSRF) attacks](https://owasp.org/www-community/attacks/csrf). This feature is available only for pages rendered on demand:
-
-```js
-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`, `DELETE` and `PUT` with 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.
diff --git a/.changeset/few-mails-kiss.md b/.changeset/few-mails-kiss.md
deleted file mode 100644
index 6bf4fed23986d..0000000000000
--- a/.changeset/few-mails-kiss.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"astro": patch
----
-
-Fixes a false positive for "Invalid `tabindex` on non-interactive element" rule for roleless elements ( `div` and `span` ).
diff --git a/.changeset/late-spoons-knock.md b/.changeset/late-spoons-knock.md
deleted file mode 100644
index 0cca6ce612f74..0000000000000
--- a/.changeset/late-spoons-knock.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"astro": patch
----
-
-Fixes an issue where CLI commands could not report the reason for failure before exiting.
diff --git a/.changeset/little-hornets-give.md b/.changeset/little-hornets-give.md
deleted file mode 100644
index fdbb6492eec0d..0000000000000
--- a/.changeset/little-hornets-give.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-"astro": minor
----
-
-Adds a new i18n routing option `manual` to allow you to write your own i18n middleware:
-
-```js
-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`:
-
-```js
-// 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:
-
-```js title="src/middleware.js"
-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
-  })
-)
-```
diff --git a/.changeset/shaggy-cats-film.md b/.changeset/shaggy-cats-film.md
deleted file mode 100644
index 4aaecea6c026d..0000000000000
--- a/.changeset/shaggy-cats-film.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"astro": minor
----
-
-Adds the `httpOnly`, `sameSite`, and `secure` options when deleting a cookie
diff --git a/.changeset/short-flies-itch.md b/.changeset/short-flies-itch.md
deleted file mode 100644
index 929bdec522aac..0000000000000
--- a/.changeset/short-flies-itch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"astro": patch
----
-
-Fixed errorOverlay theme toggle bug.
diff --git a/examples/basics/package.json b/examples/basics/package.json
index 40fc8695da660..e6967359976c3 100644
--- a/examples/basics/package.json
+++ b/examples/basics/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/blog/package.json b/examples/blog/package.json
index 6a3c24b57ad90..03925559a3a66 100644
--- a/examples/blog/package.json
+++ b/examples/blog/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/mdx": "^2.2.4",
+    "@astrojs/mdx": "^2.3.0",
     "@astrojs/rss": "^4.0.5",
     "@astrojs/sitemap": "^3.1.2",
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/component/package.json b/examples/component/package.json
index 3d946e4172428..422950059d17d 100644
--- a/examples/component/package.json
+++ b/examples/component/package.json
@@ -15,7 +15,7 @@
   ],
   "scripts": {},
   "devDependencies": {
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   },
   "peerDependencies": {
     "astro": "^4.0.0"
diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json
index 4a604ab947952..c8d8d86553978 100644
--- a/examples/framework-alpine/package.json
+++ b/examples/framework-alpine/package.json
@@ -14,6 +14,6 @@
     "@astrojs/alpinejs": "^0.4.0",
     "@types/alpinejs": "^3.13.5",
     "alpinejs": "^3.13.3",
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json
index 7a95577aeb536..407d65877b65f 100644
--- a/examples/framework-lit/package.json
+++ b/examples/framework-lit/package.json
@@ -13,7 +13,7 @@
   "dependencies": {
     "@astrojs/lit": "^4.0.1",
     "@webcomponents/template-shadowroot": "^0.2.1",
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "lit": "^3.1.2"
   }
 }
diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json
index 2e5900dad6658..43ded51971005 100644
--- a/examples/framework-multiple/package.json
+++ b/examples/framework-multiple/package.json
@@ -11,14 +11,14 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/preact": "^3.1.2",
-    "@astrojs/react": "^3.2.0",
-    "@astrojs/solid-js": "^4.0.1",
-    "@astrojs/svelte": "^5.3.0",
-    "@astrojs/vue": "^4.0.11",
+    "@astrojs/preact": "^3.2.0",
+    "@astrojs/react": "^3.3.0",
+    "@astrojs/solid-js": "^4.1.0",
+    "@astrojs/svelte": "^5.4.0",
+    "@astrojs/vue": "^4.1.0",
     "@types/react": "^18.2.37",
     "@types/react-dom": "^18.2.15",
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "preact": "^10.19.2",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json
index 5fcdaa79402d3..870bd442e7408 100644
--- a/examples/framework-preact/package.json
+++ b/examples/framework-preact/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/preact": "^3.1.2",
+    "@astrojs/preact": "^3.2.0",
     "@preact/signals": "^1.2.1",
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "preact": "^10.19.2"
   }
 }
diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json
index 726c9f1ba2075..3ea028b46da03 100644
--- a/examples/framework-react/package.json
+++ b/examples/framework-react/package.json
@@ -11,10 +11,10 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/react": "^3.2.0",
+    "@astrojs/react": "^3.3.0",
     "@types/react": "^18.2.37",
     "@types/react-dom": "^18.2.15",
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
   }
diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json
index d15776f40165b..0695f05c1c357 100644
--- a/examples/framework-solid/package.json
+++ b/examples/framework-solid/package.json
@@ -11,8 +11,8 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/solid-js": "^4.0.1",
-    "astro": "^4.5.18",
+    "@astrojs/solid-js": "^4.1.0",
+    "astro": "^4.6.0",
     "solid-js": "^1.8.5"
   }
 }
diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json
index 806691556a1b9..bc2f8ce3d3aae 100644
--- a/examples/framework-svelte/package.json
+++ b/examples/framework-svelte/package.json
@@ -11,8 +11,8 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/svelte": "^5.3.0",
-    "astro": "^4.5.18",
+    "@astrojs/svelte": "^5.4.0",
+    "astro": "^4.6.0",
     "svelte": "^4.2.5"
   }
 }
diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json
index 042b0878f58ef..f6044a9075a7a 100644
--- a/examples/framework-vue/package.json
+++ b/examples/framework-vue/package.json
@@ -11,8 +11,8 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/vue": "^4.0.11",
-    "astro": "^4.5.18",
+    "@astrojs/vue": "^4.1.0",
+    "astro": "^4.6.0",
     "vue": "^3.3.8"
   }
 }
diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json
index f243a46a1eede..3c45703a66433 100644
--- a/examples/hackernews/package.json
+++ b/examples/hackernews/package.json
@@ -12,6 +12,6 @@
   },
   "dependencies": {
     "@astrojs/node": "^8.2.5",
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/integration/package.json b/examples/integration/package.json
index d10058c6ca9a0..f9b5103cea22b 100644
--- a/examples/integration/package.json
+++ b/examples/integration/package.json
@@ -15,7 +15,7 @@
   ],
   "scripts": {},
   "devDependencies": {
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   },
   "peerDependencies": {
     "astro": "^4.0.0"
diff --git a/examples/middleware/package.json b/examples/middleware/package.json
index ff0365f19d576..d078dcaee950f 100644
--- a/examples/middleware/package.json
+++ b/examples/middleware/package.json
@@ -13,7 +13,7 @@
   },
   "dependencies": {
     "@astrojs/node": "^8.2.5",
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "html-minifier": "^4.0.0"
   },
   "devDependencies": {
diff --git a/examples/minimal/package.json b/examples/minimal/package.json
index c6008d0106c18..a0b8dfcb1cdf8 100644
--- a/examples/minimal/package.json
+++ b/examples/minimal/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json
index f9637318df46a..3b7608d70e1ad 100644
--- a/examples/non-html-pages/package.json
+++ b/examples/non-html-pages/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json
index ef688cad5c5ae..9eb3b2b97e7d8 100644
--- a/examples/portfolio/package.json
+++ b/examples/portfolio/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/ssr/package.json b/examples/ssr/package.json
index 2833723dd4717..667ed53e12b2c 100644
--- a/examples/ssr/package.json
+++ b/examples/ssr/package.json
@@ -13,8 +13,8 @@
   },
   "dependencies": {
     "@astrojs/node": "^8.2.5",
-    "@astrojs/svelte": "^5.3.0",
-    "astro": "^4.5.18",
+    "@astrojs/svelte": "^5.4.0",
+    "astro": "^4.6.0",
     "svelte": "^4.2.5"
   }
 }
diff --git a/examples/starlog/package.json b/examples/starlog/package.json
index 57bd5fb7bd63d..e9efca280ec8f 100644
--- a/examples/starlog/package.json
+++ b/examples/starlog/package.json
@@ -10,7 +10,7 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "sass": "^1.69.5",
     "sharp": "^0.32.6"
   }
diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json
index ff75bb8c538f7..26fe5823ca455 100644
--- a/examples/view-transitions/package.json
+++ b/examples/view-transitions/package.json
@@ -12,6 +12,6 @@
   "devDependencies": {
     "@astrojs/tailwind": "^5.1.0",
     "@astrojs/node": "^8.2.5",
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json
index a14607f9a14ff..193589627c441 100644
--- a/examples/with-markdoc/package.json
+++ b/examples/with-markdoc/package.json
@@ -11,7 +11,7 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/markdoc": "^0.9.5",
-    "astro": "^4.5.18"
+    "@astrojs/markdoc": "^0.10.0",
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json
index d24c98b8b90f3..449c58d709372 100644
--- a/examples/with-markdown-plugins/package.json
+++ b/examples/with-markdown-plugins/package.json
@@ -11,8 +11,8 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/markdown-remark": "^5.0.0",
-    "astro": "^4.5.18",
+    "@astrojs/markdown-remark": "^5.1.0",
+    "astro": "^4.6.0",
     "hast-util-select": "^6.0.2",
     "rehype-autolink-headings": "^7.1.0",
     "rehype-slug": "^6.0.0",
diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json
index 6145c14ac7d02..493ec1a852716 100644
--- a/examples/with-markdown-shiki/package.json
+++ b/examples/with-markdown-shiki/package.json
@@ -11,6 +11,6 @@
     "astro": "astro"
   },
   "dependencies": {
-    "astro": "^4.5.18"
+    "astro": "^4.6.0"
   }
 }
diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json
index 8787400305301..c996b84223db9 100644
--- a/examples/with-mdx/package.json
+++ b/examples/with-mdx/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/mdx": "^2.2.4",
-    "@astrojs/preact": "^3.1.2",
-    "astro": "^4.5.18",
+    "@astrojs/mdx": "^2.3.0",
+    "@astrojs/preact": "^3.2.0",
+    "astro": "^4.6.0",
     "preact": "^10.19.2"
   }
 }
diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json
index 47312f4269a84..7fe2f1dabcef3 100644
--- a/examples/with-nanostores/package.json
+++ b/examples/with-nanostores/package.json
@@ -11,9 +11,9 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/preact": "^3.1.2",
+    "@astrojs/preact": "^3.2.0",
     "@nanostores/preact": "^0.5.0",
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "nanostores": "^0.9.5",
     "preact": "^10.19.2"
   }
diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json
index d3696d1e57fab..20020732a5546 100644
--- a/examples/with-tailwindcss/package.json
+++ b/examples/with-tailwindcss/package.json
@@ -11,10 +11,10 @@
     "astro": "astro"
   },
   "dependencies": {
-    "@astrojs/mdx": "^2.2.4",
+    "@astrojs/mdx": "^2.3.0",
     "@astrojs/tailwind": "^5.1.0",
     "@types/canvas-confetti": "^1.6.3",
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "autoprefixer": "^10.4.15",
     "canvas-confetti": "^1.9.1",
     "postcss": "^8.4.28",
diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json
index fbbbcfd908c7d..b408fa7190b07 100644
--- a/examples/with-vitest/package.json
+++ b/examples/with-vitest/package.json
@@ -12,7 +12,7 @@
     "test": "vitest"
   },
   "dependencies": {
-    "astro": "^4.5.18",
+    "astro": "^4.6.0",
     "vitest": "^1.3.1"
   }
 }
diff --git a/packages/astro-prism/CHANGELOG.md b/packages/astro-prism/CHANGELOG.md
index 35f7f5106b29e..9b7cabaa7473e 100644
--- a/packages/astro-prism/CHANGELOG.md
+++ b/packages/astro-prism/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/prism
 
+## 3.1.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 3.0.0
 
 ### Major Changes
diff --git a/packages/astro-prism/package.json b/packages/astro-prism/package.json
index 584ebce935e36..0a10a764e1464 100644
--- a/packages/astro-prism/package.json
+++ b/packages/astro-prism/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/prism",
-  "version": "3.0.0",
+  "version": "3.1.0",
   "description": "Add Prism syntax highlighting support to your Astro site",
   "author": "withastro",
   "type": "module",
diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md
index 4450a20e07a87..d578a88358001 100644
--- a/packages/astro/CHANGELOG.md
+++ b/packages/astro/CHANGELOG.md
@@ -1,5 +1,95 @@
 # astro
 
+## 4.6.0
+
+### Minor Changes
+
+- [#10591](https://github.com/withastro/astro/pull/10591) [`39988ef8e2c4c4888543c973e06d9b9939e4ac95`](https://github.com/withastro/astro/commit/39988ef8e2c4c4888543c973e06d9b9939e4ac95) Thanks [@mingjunlu](https://github.com/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](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
+- [#10678](https://github.com/withastro/astro/pull/10678) [`2e53b5fff6d292b7acdf8c30a6ecf5e5696846a1`](https://github.com/withastro/astro/commit/2e53b5fff6d292b7acdf8c30a6ecf5e5696846a1) Thanks [@ematipico](https://github.com/ematipico)! - Adds a new experimental security option to prevent [Cross-Site Request Forgery (CSRF) attacks](https://owasp.org/www-community/attacks/csrf). This feature is available only for pages rendered on demand:
+
+  ```js
+  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`, `DELETE`and`PUT`with 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](https://github.com/withastro/astro/pull/10193) [`440681e7b74511a17b152af0fd6e0e4dc4014025`](https://github.com/withastro/astro/commit/440681e7b74511a17b152af0fd6e0e4dc4014025) Thanks [@ematipico](https://github.com/ematipico)! - Adds a new i18n routing option `manual` to allow you to write your own i18n middleware:
+
+  ```js
+  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`:
+
+  ```js
+  // 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:
+
+  ```js title="src/middleware.js"
+  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](https://github.com/withastro/astro/pull/10671) [`9e14a78cb05667af9821948c630786f74680090d`](https://github.com/withastro/astro/commit/9e14a78cb05667af9821948c630786f74680090d) Thanks [@fshafiee](https://github.com/fshafiee)! - Adds the `httpOnly`, `sameSite`, and `secure` options when deleting a cookie
+
+### Patch Changes
+
+- [#10747](https://github.com/withastro/astro/pull/10747) [`994337c99f84304df1147a14504659439a9a7326`](https://github.com/withastro/astro/commit/994337c99f84304df1147a14504659439a9a7326) Thanks [@lilnasy](https://github.com/lilnasy)! - Fixes an issue where functions could not be used as named slots.
+
+- [#10750](https://github.com/withastro/astro/pull/10750) [`7e825604ddf90c989537e07939a39dc249343897`](https://github.com/withastro/astro/commit/7e825604ddf90c989537e07939a39dc249343897) Thanks [@OliverSpeir](https://github.com/OliverSpeir)! - Fixes a false positive for "Invalid `tabindex` on non-interactive element" rule for roleless elements ( `div` and `span` ).
+
+- [#10745](https://github.com/withastro/astro/pull/10745) [`d51951ce6278d4b59deed938d65e1cb72b5102df`](https://github.com/withastro/astro/commit/d51951ce6278d4b59deed938d65e1cb72b5102df) Thanks [@lilnasy](https://github.com/lilnasy)! - Fixes an issue where CLI commands could not report the reason for failure before exiting.
+
+- [#10661](https://github.com/withastro/astro/pull/10661) [`e2cd7f4291912dadd4a654bc7917856c58a72a97`](https://github.com/withastro/astro/commit/e2cd7f4291912dadd4a654bc7917856c58a72a97) Thanks [@liruifengv](https://github.com/liruifengv)! - Fixed errorOverlay theme toggle bug.
+
+- Updated dependencies [[`ccafa8d230f65c9302421a0ce0a0adc5824bfd55`](https://github.com/withastro/astro/commit/ccafa8d230f65c9302421a0ce0a0adc5824bfd55), [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99)]:
+  - @astrojs/markdown-remark@5.1.0
+  - @astrojs/telemetry@3.1.0
+
 ## 4.5.18
 
 ### Patch Changes
diff --git a/packages/astro/package.json b/packages/astro/package.json
index ed449d256f9a8..e60cb18a87a02 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -1,6 +1,6 @@
 {
   "name": "astro",
-  "version": "4.5.18",
+  "version": "4.6.0",
   "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.",
   "type": "module",
   "author": "withastro",
diff --git a/packages/create-astro/CHANGELOG.md b/packages/create-astro/CHANGELOG.md
index 57bb2669efcf3..f6887c0187f06 100644
--- a/packages/create-astro/CHANGELOG.md
+++ b/packages/create-astro/CHANGELOG.md
@@ -1,5 +1,11 @@
 # create-astro
 
+## 4.8.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 4.7.5
 
 ### Patch Changes
diff --git a/packages/create-astro/package.json b/packages/create-astro/package.json
index 4b2fc5872d7e1..c6822ccf5befb 100644
--- a/packages/create-astro/package.json
+++ b/packages/create-astro/package.json
@@ -1,6 +1,6 @@
 {
   "name": "create-astro",
-  "version": "4.7.5",
+  "version": "4.8.0",
   "type": "module",
   "author": "withastro",
   "license": "MIT",
diff --git a/packages/integrations/markdoc/CHANGELOG.md b/packages/integrations/markdoc/CHANGELOG.md
index 53b68a9eb0256..39accccc8ae60 100644
--- a/packages/integrations/markdoc/CHANGELOG.md
+++ b/packages/integrations/markdoc/CHANGELOG.md
@@ -1,5 +1,17 @@
 # @astrojs/markdoc
 
+## 0.10.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
+### Patch Changes
+
+- Updated dependencies [[`ccafa8d230f65c9302421a0ce0a0adc5824bfd55`](https://github.com/withastro/astro/commit/ccafa8d230f65c9302421a0ce0a0adc5824bfd55), [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99)]:
+  - @astrojs/markdown-remark@5.1.0
+  - @astrojs/prism@3.1.0
+
 ## 0.9.5
 
 ### Patch Changes
diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json
index 883d61f30c7ea..c928fbb200c4f 100644
--- a/packages/integrations/markdoc/package.json
+++ b/packages/integrations/markdoc/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/markdoc",
   "description": "Add support for Markdoc in your Astro site",
-  "version": "0.9.5",
+  "version": "0.10.0",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/mdx/CHANGELOG.md b/packages/integrations/mdx/CHANGELOG.md
index e5bc40fa877b6..6817c8c665172 100644
--- a/packages/integrations/mdx/CHANGELOG.md
+++ b/packages/integrations/mdx/CHANGELOG.md
@@ -1,5 +1,16 @@
 # @astrojs/mdx
 
+## 2.3.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
+### Patch Changes
+
+- Updated dependencies [[`ccafa8d230f65c9302421a0ce0a0adc5824bfd55`](https://github.com/withastro/astro/commit/ccafa8d230f65c9302421a0ce0a0adc5824bfd55)]:
+  - @astrojs/markdown-remark@5.1.0
+
 ## 2.2.4
 
 ### Patch Changes
diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json
index 4fc7d2b9a1a39..ac9e775a66bea 100644
--- a/packages/integrations/mdx/package.json
+++ b/packages/integrations/mdx/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/mdx",
   "description": "Add support for MDX pages in your Astro site",
-  "version": "2.2.4",
+  "version": "2.3.0",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/preact/CHANGELOG.md b/packages/integrations/preact/CHANGELOG.md
index 0d4f2c20731c5..6bf4b5590abc2 100644
--- a/packages/integrations/preact/CHANGELOG.md
+++ b/packages/integrations/preact/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/preact
 
+## 3.2.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 3.1.2
 
 ### Patch Changes
diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json
index 9861046d15832..31256b838f009 100644
--- a/packages/integrations/preact/package.json
+++ b/packages/integrations/preact/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/preact",
   "description": "Use Preact components within Astro",
-  "version": "3.1.2",
+  "version": "3.2.0",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/react/CHANGELOG.md b/packages/integrations/react/CHANGELOG.md
index 97d33dad7876b..eaa10cb4358a9 100644
--- a/packages/integrations/react/CHANGELOG.md
+++ b/packages/integrations/react/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/react
 
+## 3.3.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 3.2.0
 
 ### Minor Changes
diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json
index b7555bf28cc11..b69eb944953a0 100644
--- a/packages/integrations/react/package.json
+++ b/packages/integrations/react/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@astrojs/react",
   "description": "Use React components within Astro",
-  "version": "3.2.0",
+  "version": "3.3.0",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/integrations/solid/CHANGELOG.md b/packages/integrations/solid/CHANGELOG.md
index 560f87beb6dde..80b1edf4925a8 100644
--- a/packages/integrations/solid/CHANGELOG.md
+++ b/packages/integrations/solid/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/solid-js
 
+## 4.1.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 4.0.1
 
 ### Patch Changes
diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json
index 819759a7b8706..95e1bf194c471 100644
--- a/packages/integrations/solid/package.json
+++ b/packages/integrations/solid/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/solid-js",
-  "version": "4.0.1",
+  "version": "4.1.0",
   "description": "Use Solid components within Astro",
   "type": "module",
   "types": "./dist/index.d.ts",
diff --git a/packages/integrations/svelte/CHANGELOG.md b/packages/integrations/svelte/CHANGELOG.md
index a532cc744ccdc..65c2a2bdc6d60 100644
--- a/packages/integrations/svelte/CHANGELOG.md
+++ b/packages/integrations/svelte/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/svelte
 
+## 5.4.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 5.3.0
 
 ### Minor Changes
diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json
index 0c7c77b502306..499a8bf847047 100644
--- a/packages/integrations/svelte/package.json
+++ b/packages/integrations/svelte/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/svelte",
-  "version": "5.3.0",
+  "version": "5.4.0",
   "description": "Use Svelte components within Astro",
   "type": "module",
   "types": "./dist/index.d.ts",
diff --git a/packages/integrations/vue/CHANGELOG.md b/packages/integrations/vue/CHANGELOG.md
index 8d050d16a5efe..5031c649e82fe 100644
--- a/packages/integrations/vue/CHANGELOG.md
+++ b/packages/integrations/vue/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/vue
 
+## 4.1.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 4.0.11
 
 ### Patch Changes
diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json
index 18f48bfff678e..db48b34b3140e 100644
--- a/packages/integrations/vue/package.json
+++ b/packages/integrations/vue/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/vue",
-  "version": "4.0.11",
+  "version": "4.1.0",
   "description": "Use Vue components within Astro",
   "type": "module",
   "types": "./dist/index.d.ts",
diff --git a/packages/markdown/remark/CHANGELOG.md b/packages/markdown/remark/CHANGELOG.md
index d90ae3f8de5f1..916ff1210e1a7 100644
--- a/packages/markdown/remark/CHANGELOG.md
+++ b/packages/markdown/remark/CHANGELOG.md
@@ -1,5 +1,54 @@
 # @astrojs/markdown-remark
 
+## 5.1.0
+
+### Minor Changes
+
+- [#10538](https://github.com/withastro/astro/pull/10538) [`ccafa8d230f65c9302421a0ce0a0adc5824bfd55`](https://github.com/withastro/astro/commit/ccafa8d230f65c9302421a0ce0a0adc5824bfd55) Thanks [@604qgc](https://github.com/604qgc)! - Adds a `data-language` attribute on the rendered `pre` elements to expose the highlighted syntax language.
+
+  For example, the following Markdown code block will expose `data-language="python"`:
+
+  ````
+  \```python
+  def func():
+      print('Hello Astro!')
+  \```
+  ````
+
+  This allows retrieving the language in a rehype plugin from `node.properties.dataLanguage` by accessing the `
` element using `{ tagName: "pre" }`:
+
+  ```js
+  // myRehypePre.js
+  import { visit } from "unist-util-visit";
+  export default function myRehypePre() {
+    return (tree) => {
+      visit(tree, { tagName: "pre" }, (node) => {
+        const lang = node.properties.dataLanguage;
+        [...]
+      });
+    };
+  }
+  ```
+
+  Note: The `
` element is not exposed when using Astro's `` component which outputs flattened HTML.
+
+  The `data-language` attribute may also be used in css rules:
+
+  ```css
+  pre::before {
+    content: attr(data-language);
+  }
+
+  pre[data-language='javascript'] {
+    font-size: 2rem;
+  }
+  ```
+
+### Patch Changes
+
+- Updated dependencies [[`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99)]:
+  - @astrojs/prism@3.1.0
+
 ## 5.0.0
 
 ### Major Changes
diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json
index 19df222368998..5e2c8975c78e8 100644
--- a/packages/markdown/remark/package.json
+++ b/packages/markdown/remark/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/markdown-remark",
-  "version": "5.0.0",
+  "version": "5.1.0",
   "type": "module",
   "author": "withastro",
   "license": "MIT",
@@ -34,7 +34,7 @@
     "test": "astro-scripts test \"test/**/*.test.js\""
   },
   "dependencies": {
-    "@astrojs/prism": "^3.0.0",
+    "@astrojs/prism": "^3.1.0",
     "github-slugger": "^2.0.0",
     "hast-util-from-html": "^2.0.0",
     "hast-util-to-text": "^4.0.0",
diff --git a/packages/telemetry/CHANGELOG.md b/packages/telemetry/CHANGELOG.md
index 1d4cdff53cd40..43e7fd7353300 100644
--- a/packages/telemetry/CHANGELOG.md
+++ b/packages/telemetry/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/telemetry
 
+## 3.1.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 3.0.4
 
 ### Patch Changes
diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json
index d325fec14eb7d..9c4d269bfcf25 100644
--- a/packages/telemetry/package.json
+++ b/packages/telemetry/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/telemetry",
-  "version": "3.0.4",
+  "version": "3.1.0",
   "type": "module",
   "types": "./dist/index.d.ts",
   "author": "withastro",
diff --git a/packages/upgrade/CHANGELOG.md b/packages/upgrade/CHANGELOG.md
index 2f68c8428b3da..78a62f35263c8 100644
--- a/packages/upgrade/CHANGELOG.md
+++ b/packages/upgrade/CHANGELOG.md
@@ -1,5 +1,11 @@
 # @astrojs/upgrade
 
+## 0.3.0
+
+### Minor Changes
+
+- [#10689](https://github.com/withastro/astro/pull/10689) [`683d51a5eecafbbfbfed3910a3f1fbf0b3531b99`](https://github.com/withastro/astro/commit/683d51a5eecafbbfbfed3910a3f1fbf0b3531b99) Thanks [@ematipico](https://github.com/ematipico)! - Upgrades the minimum version of Node.js to `v18.20.1`. This change is in line with Astro's [Node.js support policy](https://docs.astro.build/en/upgrade-astro/#support).
+
 ## 0.2.3
 
 ### Patch Changes
diff --git a/packages/upgrade/package.json b/packages/upgrade/package.json
index 4869b0b0b4202..9612dbbfbfdc1 100644
--- a/packages/upgrade/package.json
+++ b/packages/upgrade/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@astrojs/upgrade",
-  "version": "0.2.3",
+  "version": "0.3.0",
   "type": "module",
   "author": "withastro",
   "license": "MIT",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 72bef2899fd6b..84b9c8e649a02 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -134,13 +134,13 @@ importers:
   examples/basics:
     dependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/blog:
     dependencies:
       '@astrojs/mdx':
-        specifier: ^2.2.4
+        specifier: ^2.3.0
         version: link:../../packages/integrations/mdx
       '@astrojs/rss':
         specifier: ^4.0.5
@@ -149,13 +149,13 @@ importers:
         specifier: ^3.1.2
         version: link:../../packages/integrations/sitemap
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/component:
     devDependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/framework-alpine:
@@ -170,7 +170,7 @@ importers:
         specifier: ^3.13.3
         version: 3.13.8
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/framework-lit:
@@ -182,7 +182,7 @@ importers:
         specifier: ^0.2.1
         version: 0.2.1
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       lit:
         specifier: ^3.1.2
@@ -191,19 +191,19 @@ importers:
   examples/framework-multiple:
     dependencies:
       '@astrojs/preact':
-        specifier: ^3.1.2
+        specifier: ^3.2.0
         version: link:../../packages/integrations/preact
       '@astrojs/react':
-        specifier: ^3.2.0
+        specifier: ^3.3.0
         version: link:../../packages/integrations/react
       '@astrojs/solid-js':
-        specifier: ^4.0.1
+        specifier: ^4.1.0
         version: link:../../packages/integrations/solid
       '@astrojs/svelte':
-        specifier: ^5.3.0
+        specifier: ^5.4.0
         version: link:../../packages/integrations/svelte
       '@astrojs/vue':
-        specifier: ^4.0.11
+        specifier: ^4.1.0
         version: link:../../packages/integrations/vue
       '@types/react':
         specifier: ^18.2.37
@@ -212,7 +212,7 @@ importers:
         specifier: ^18.2.15
         version: 18.2.24
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       preact:
         specifier: ^10.19.2
@@ -236,13 +236,13 @@ importers:
   examples/framework-preact:
     dependencies:
       '@astrojs/preact':
-        specifier: ^3.1.2
+        specifier: ^3.2.0
         version: link:../../packages/integrations/preact
       '@preact/signals':
         specifier: ^1.2.1
         version: 1.2.1(preact@10.20.1)
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       preact:
         specifier: ^10.19.2
@@ -251,7 +251,7 @@ importers:
   examples/framework-react:
     dependencies:
       '@astrojs/react':
-        specifier: ^3.2.0
+        specifier: ^3.3.0
         version: link:../../packages/integrations/react
       '@types/react':
         specifier: ^18.2.37
@@ -260,7 +260,7 @@ importers:
         specifier: ^18.2.15
         version: 18.2.24
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       react:
         specifier: ^18.2.0
@@ -272,10 +272,10 @@ importers:
   examples/framework-solid:
     dependencies:
       '@astrojs/solid-js':
-        specifier: ^4.0.1
+        specifier: ^4.1.0
         version: link:../../packages/integrations/solid
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       solid-js:
         specifier: ^1.8.5
@@ -284,10 +284,10 @@ importers:
   examples/framework-svelte:
     dependencies:
       '@astrojs/svelte':
-        specifier: ^5.3.0
+        specifier: ^5.4.0
         version: link:../../packages/integrations/svelte
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       svelte:
         specifier: ^4.2.5
@@ -296,10 +296,10 @@ importers:
   examples/framework-vue:
     dependencies:
       '@astrojs/vue':
-        specifier: ^4.0.11
+        specifier: ^4.1.0
         version: link:../../packages/integrations/vue
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       vue:
         specifier: ^3.3.8
@@ -311,13 +311,13 @@ importers:
         specifier: ^8.2.5
         version: link:../../packages/integrations/node
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/integration:
     devDependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/middleware:
@@ -326,7 +326,7 @@ importers:
         specifier: ^8.2.5
         version: link:../../packages/integrations/node
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       html-minifier:
         specifier: ^4.0.0
@@ -339,19 +339,19 @@ importers:
   examples/minimal:
     dependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/non-html-pages:
     dependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/portfolio:
     dependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/ssr:
@@ -360,10 +360,10 @@ importers:
         specifier: ^8.2.5
         version: link:../../packages/integrations/node
       '@astrojs/svelte':
-        specifier: ^5.3.0
+        specifier: ^5.4.0
         version: link:../../packages/integrations/svelte
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       svelte:
         specifier: ^4.2.5
@@ -372,7 +372,7 @@ importers:
   examples/starlog:
     dependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       sass:
         specifier: ^1.69.5
@@ -390,25 +390,25 @@ importers:
         specifier: ^5.1.0
         version: link:../../packages/integrations/tailwind
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/with-markdoc:
     dependencies:
       '@astrojs/markdoc':
-        specifier: ^0.9.5
+        specifier: ^0.10.0
         version: link:../../packages/integrations/markdoc
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/with-markdown-plugins:
     dependencies:
       '@astrojs/markdown-remark':
-        specifier: ^5.0.0
+        specifier: ^5.1.0
         version: link:../../packages/markdown/remark
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       hast-util-select:
         specifier: ^6.0.2
@@ -429,19 +429,19 @@ importers:
   examples/with-markdown-shiki:
     dependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
 
   examples/with-mdx:
     dependencies:
       '@astrojs/mdx':
-        specifier: ^2.2.4
+        specifier: ^2.3.0
         version: link:../../packages/integrations/mdx
       '@astrojs/preact':
-        specifier: ^3.1.2
+        specifier: ^3.2.0
         version: link:../../packages/integrations/preact
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       preact:
         specifier: ^10.19.2
@@ -450,13 +450,13 @@ importers:
   examples/with-nanostores:
     dependencies:
       '@astrojs/preact':
-        specifier: ^3.1.2
+        specifier: ^3.2.0
         version: link:../../packages/integrations/preact
       '@nanostores/preact':
         specifier: ^0.5.0
         version: 0.5.1(nanostores@0.9.5)(preact@10.20.1)
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       nanostores:
         specifier: ^0.9.5
@@ -468,7 +468,7 @@ importers:
   examples/with-tailwindcss:
     dependencies:
       '@astrojs/mdx':
-        specifier: ^2.2.4
+        specifier: ^2.3.0
         version: link:../../packages/integrations/mdx
       '@astrojs/tailwind':
         specifier: ^5.1.0
@@ -477,7 +477,7 @@ importers:
         specifier: ^1.6.3
         version: 1.6.4
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       autoprefixer:
         specifier: ^10.4.15
@@ -495,7 +495,7 @@ importers:
   examples/with-vitest:
     dependencies:
       astro:
-        specifier: ^4.5.18
+        specifier: ^4.6.0
         version: link:../../packages/astro
       vitest:
         specifier: ^1.3.1
@@ -5333,7 +5333,7 @@ importers:
   packages/markdown/remark:
     dependencies:
       '@astrojs/prism':
-        specifier: ^3.0.0
+        specifier: ^3.1.0
         version: link:../../astro-prism
       github-slugger:
         specifier: ^2.0.0