diff --git a/.changeset/pre.json b/.changeset/pre.json
index 99f40b214c8a8..69589d47996fa 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -34,16 +34,18 @@
"changesets": [
"afraid-apricots-buy",
"blue-boats-relax",
+ "brave-elephants-fly",
"breezy-colts-promise",
"chatty-teachers-sit",
"chilly-terms-know",
"clean-donuts-walk",
"cuddly-shoes-press",
"curvy-walls-kneel",
+ "dry-worms-knock",
+ "eighty-bags-cross",
"eighty-boxes-applaud",
- "empty-spoons-kiss",
"five-jars-hear",
- "forty-spies-train",
+ "fuzzy-pugs-live",
"giant-rocks-thank",
"healthy-ads-scream",
"heavy-seahorses-poke",
@@ -55,6 +57,7 @@
"long-months-rule",
"many-garlics-lick",
"mean-donkeys-switch",
+ "mighty-stingrays-press",
"modern-bears-deny",
"moody-waves-think",
"nasty-crabs-worry",
@@ -70,8 +73,11 @@
"sharp-worms-sniff",
"small-ties-sort",
"spotty-garlics-cheat",
+ "strange-sheep-film",
"ten-students-repair",
+ "ten-walls-tap",
"twelve-comics-march",
- "twenty-cobras-push"
+ "twenty-cobras-push",
+ "violet-goats-grab"
]
}
diff --git a/examples/basics/package.json b/examples/basics/package.json
index d8be60597d998..6ba9df6d7f5d1 100644
--- a/examples/basics/package.json
+++ b/examples/basics/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/blog/package.json b/examples/blog/package.json
index 7265f2f2c909c..ea7bba9a2c907 100644
--- a/examples/blog/package.json
+++ b/examples/blog/package.json
@@ -14,6 +14,6 @@
"@astrojs/mdx": "^4.0.0-alpha.2",
"@astrojs/rss": "^4.0.7",
"@astrojs/sitemap": "^3.1.6",
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/component/package.json b/examples/component/package.json
index 287b931fb1316..13609b2b23aba 100644
--- a/examples/component/package.json
+++ b/examples/component/package.json
@@ -15,7 +15,7 @@
],
"scripts": {},
"devDependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
},
"peerDependencies": {
"astro": "^4.0.0"
diff --git a/examples/container-with-vitest/package.json b/examples/container-with-vitest/package.json
index d192a9d11b38c..19266af1dd00a 100644
--- a/examples/container-with-vitest/package.json
+++ b/examples/container-with-vitest/package.json
@@ -12,7 +12,7 @@
"test": "vitest run"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"@astrojs/react": "^3.6.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json
index 99f8933392802..ed02a2a5c55b7 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.10",
"alpinejs": "^3.14.1",
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json
index 568c1f72ceeb5..c7a8159130b17 100644
--- a/examples/framework-multiple/package.json
+++ b/examples/framework-multiple/package.json
@@ -18,7 +18,7 @@
"@astrojs/vue": "^5.0.0-alpha.0",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"preact": "^10.23.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json
index fe4c2e27c9576..fa4db6bc80188 100644
--- a/examples/framework-preact/package.json
+++ b/examples/framework-preact/package.json
@@ -13,7 +13,7 @@
"dependencies": {
"@astrojs/preact": "^3.5.3",
"@preact/signals": "^1.3.0",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"preact": "^10.23.2"
}
}
diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json
index e814ea45895f2..a0effb6a016da 100644
--- a/examples/framework-react/package.json
+++ b/examples/framework-react/package.json
@@ -14,7 +14,7 @@
"@astrojs/react": "^3.6.2",
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"react": "^18.3.1",
"react-dom": "^18.3.1"
}
diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json
index e00e56146294f..5002bb9a8b69d 100644
--- a/examples/framework-solid/package.json
+++ b/examples/framework-solid/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"@astrojs/solid-js": "^4.4.1",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"solid-js": "^1.8.22"
}
}
diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json
index da249f7f9bff6..4dbcbda27106e 100644
--- a/examples/framework-svelte/package.json
+++ b/examples/framework-svelte/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"@astrojs/svelte": "^6.0.0-alpha.0",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"svelte": "^4.2.19"
}
}
diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json
index 7b797e7a32fcc..de6bc4b761f28 100644
--- a/examples/framework-vue/package.json
+++ b/examples/framework-vue/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"@astrojs/vue": "^5.0.0-alpha.0",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"vue": "^3.4.38"
}
}
diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json
index 88ebb0c77a168..ba39a098cb6f5 100644
--- a/examples/hackernews/package.json
+++ b/examples/hackernews/package.json
@@ -12,6 +12,6 @@
},
"dependencies": {
"@astrojs/node": "^9.0.0-alpha.1",
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/integration/package.json b/examples/integration/package.json
index 1b3cf734664c7..9bb5380a76190 100644
--- a/examples/integration/package.json
+++ b/examples/integration/package.json
@@ -15,7 +15,7 @@
],
"scripts": {},
"devDependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
},
"peerDependencies": {
"astro": "^4.0.0"
diff --git a/examples/middleware/package.json b/examples/middleware/package.json
index c4442a2febcd6..b5b258d5ba9d5 100644
--- a/examples/middleware/package.json
+++ b/examples/middleware/package.json
@@ -13,7 +13,7 @@
},
"dependencies": {
"@astrojs/node": "^9.0.0-alpha.1",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"html-minifier": "^4.0.0"
},
"devDependencies": {
diff --git a/examples/minimal/package.json b/examples/minimal/package.json
index 6d4836a965b01..ed6d92798fd1d 100644
--- a/examples/minimal/package.json
+++ b/examples/minimal/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json
index 3e0fc489af112..3b0fdf468642d 100644
--- a/examples/non-html-pages/package.json
+++ b/examples/non-html-pages/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json
index fb4eeb9f9c8a9..84782d0286719 100644
--- a/examples/portfolio/package.json
+++ b/examples/portfolio/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/server-islands/package.json b/examples/server-islands/package.json
index 8a41764536c82..84a43a672e77e 100644
--- a/examples/server-islands/package.json
+++ b/examples/server-islands/package.json
@@ -17,7 +17,7 @@
"@tailwindcss/forms": "^0.5.9",
"@types/react": "^18.3.5",
"@types/react-dom": "^18.3.0",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"postcss": "^8.4.43",
"react": "^18.3.1",
"react-dom": "^18.3.1",
diff --git a/examples/ssr/package.json b/examples/ssr/package.json
index d25f5f4a11c6e..98b2c37fe2385 100644
--- a/examples/ssr/package.json
+++ b/examples/ssr/package.json
@@ -14,7 +14,7 @@
"dependencies": {
"@astrojs/node": "^9.0.0-alpha.1",
"@astrojs/svelte": "^6.0.0-alpha.0",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"svelte": "^4.2.19"
}
}
diff --git a/examples/starlog/package.json b/examples/starlog/package.json
index f4f8605e230ab..ec255e51c8958 100644
--- a/examples/starlog/package.json
+++ b/examples/starlog/package.json
@@ -10,7 +10,7 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"sass": "^1.77.8",
"sharp": "^0.33.3"
}
diff --git a/examples/toolbar-app/package.json b/examples/toolbar-app/package.json
index aa832cb668b3e..2e91f896519d2 100644
--- a/examples/toolbar-app/package.json
+++ b/examples/toolbar-app/package.json
@@ -15,6 +15,6 @@
"./app": "./dist/app.js"
},
"devDependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json
index f5dd2717d33f5..0678b74b78f98 100644
--- a/examples/view-transitions/package.json
+++ b/examples/view-transitions/package.json
@@ -12,6 +12,6 @@
"devDependencies": {
"@astrojs/tailwind": "^6.0.0-alpha.0",
"@astrojs/node": "^9.0.0-alpha.1",
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json
index 14152bb8ba684..7516637758f74 100644
--- a/examples/with-markdoc/package.json
+++ b/examples/with-markdoc/package.json
@@ -12,6 +12,6 @@
},
"dependencies": {
"@astrojs/markdoc": "^1.0.0-alpha.1",
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json
index 9edad4072e944..f0c25d0885910 100644
--- a/examples/with-markdown-plugins/package.json
+++ b/examples/with-markdown-plugins/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"@astrojs/markdown-remark": "^6.0.0-alpha.1",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"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 d278d1e848428..e28cb8d120e00 100644
--- a/examples/with-markdown-shiki/package.json
+++ b/examples/with-markdown-shiki/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6"
+ "astro": "^5.0.0-alpha.7"
}
}
diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json
index c1e3586c92a3b..07a400adc8be1 100644
--- a/examples/with-mdx/package.json
+++ b/examples/with-mdx/package.json
@@ -12,8 +12,8 @@
},
"dependencies": {
"@astrojs/mdx": "^4.0.0-alpha.2",
- "@astrojs/preact": "^3.5.2",
- "astro": "^5.0.0-alpha.6",
+ "@astrojs/preact": "^3.5.3",
+ "astro": "^5.0.0-alpha.7",
"preact": "^10.23.2"
}
}
diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json
index 060c952004859..fa8b4697128e3 100644
--- a/examples/with-nanostores/package.json
+++ b/examples/with-nanostores/package.json
@@ -13,7 +13,7 @@
"dependencies": {
"@astrojs/preact": "^3.5.3",
"@nanostores/preact": "^0.5.2",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"nanostores": "^0.11.3",
"preact": "^10.23.2"
}
diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json
index 0e295fa7c5116..b25a27f868e99 100644
--- a/examples/with-tailwindcss/package.json
+++ b/examples/with-tailwindcss/package.json
@@ -14,7 +14,7 @@
"@astrojs/mdx": "^4.0.0-alpha.2",
"@astrojs/tailwind": "^6.0.0-alpha.0",
"@types/canvas-confetti": "^1.6.4",
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"autoprefixer": "^10.4.20",
"canvas-confetti": "^1.9.3",
"postcss": "^8.4.45",
diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json
index 7aa75dcea9245..0790d01d88fa9 100644
--- a/examples/with-vitest/package.json
+++ b/examples/with-vitest/package.json
@@ -12,7 +12,7 @@
"test": "vitest"
},
"dependencies": {
- "astro": "^5.0.0-alpha.6",
+ "astro": "^5.0.0-alpha.7",
"vitest": "^2.0.5"
}
}
diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md
index eaf252d703cfc..f54edfcd422e6 100644
--- a/packages/astro/CHANGELOG.md
+++ b/packages/astro/CHANGELOG.md
@@ -1,5 +1,192 @@
# astro
+## 5.0.0-alpha.7
+
+### Major Changes
+
+- [#11864](https://github.com/withastro/astro/pull/11864) [`ee38b3a`](https://github.com/withastro/astro/commit/ee38b3a94697fe883ce8300eff9f001470b8adb6) Thanks [@ematipico](https://github.com/ematipico)! - ### [changed]: `entryPoint` type inside the hook `astro:build:ssr`
+ In Astro v4.x, the `entryPoint` type was `RouteData`.
+
+ Astro v5.0 the `entryPoint` type is `IntegrationRouteData`, which contains a subset of the `RouteData` type. The fields `isIndex` and `fallbackRoutes` were removed.
+
+ #### What should I do?
+
+ Update your adapter to change the type of `entryPoint` from `RouteData` to `IntegrationRouteData`.
+
+ ```diff
+ -import type {RouteData} from 'astro';
+ +import type {IntegrationRouteData} from "astro"
+
+ -function useRoute(route: RouteData) {
+ +function useRoute(route: IntegrationRouteData) {
+
+ }
+ ```
+
+- [#11908](https://github.com/withastro/astro/pull/11908) [`518433e`](https://github.com/withastro/astro/commit/518433e433fe69ee3bbbb1f069181cd9eb69ec9a) Thanks [@Princesseuh](https://github.com/Princesseuh)! - The `image.endpoint` config now allow customizing the route of the image endpoint in addition to the entrypoint. This can be useful in niche situations where the default route `/_image` conflicts with an existing route or your local server setup.
+
+ ```js
+ import { defineConfig } from 'astro/config';
+
+ defineConfig({
+ image: {
+ endpoint: {
+ route: '/image',
+ entrypoint: './src/image_endpoint.ts',
+ },
+ },
+ });
+ ```
+
+- [#11864](https://github.com/withastro/astro/pull/11864) [`ee38b3a`](https://github.com/withastro/astro/commit/ee38b3a94697fe883ce8300eff9f001470b8adb6) Thanks [@ematipico](https://github.com/ematipico)! - ### [changed]: `routes` type inside the hook `astro:build:done`
+ In Astro v4.x, the `routes` type was `RouteData`.
+
+ Astro v5.0 the `routes` type is `IntegrationRouteData`, which contains a subset of the `RouteData` type. The fields `isIndex` and `fallbackRoutes` were removed.
+
+ #### What should I do?
+
+ Update your adapter to change the type of `routes` from `RouteData` to `IntegrationRouteData`.
+
+ ```diff
+ -import type {RouteData} from 'astro';
+ +import type {IntegrationRouteData} from "astro"
+
+ -function useRoute(route: RouteData) {
+ +function useRoute(route: IntegrationRouteData) {
+
+ }
+ ```
+
+- [#11864](https://github.com/withastro/astro/pull/11864) [`ee38b3a`](https://github.com/withastro/astro/commit/ee38b3a94697fe883ce8300eff9f001470b8adb6) Thanks [@ematipico](https://github.com/ematipico)! - ### [changed]: `RouteData.distURL` is now an array
+ In Astro v4.x, `RouteData.distURL` was `undefined` or a `URL`
+
+ Astro v5.0, `RouteData.distURL` is `undefined` or an array of `URL`. This was a bug, because a route can generate multiple files on disk, especially when using dynamic routes such as `[slug]` or `[...slug]`.
+
+ #### What should I do?
+
+ Update your code to handle `RouteData.distURL` as an array.
+
+ ```diff
+ if (route.distURL) {
+ - if (route.distURL.endsWith('index.html')) {
+ - // do something
+ - }
+ + for (const url of route.distURL) {
+ + if (url.endsWith('index.html')) {
+ + // do something
+ + }
+ + }
+ }
+ ```
+
+### Minor Changes
+
+- [#11955](https://github.com/withastro/astro/pull/11955) [`d813262`](https://github.com/withastro/astro/commit/d8132626b05f150341c0628d6078fdd86b89aaed) Thanks [@matthewp](https://github.com/matthewp)! - [Server Islands](https://astro.build/blog/future-of-astro-server-islands/) introduced behind an experimental flag in [v4.12.0](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md#4120) is no longer experimental and is available for general use.
+
+ Server islands are Astro's solution for highly cacheable pages of mixed static and dynamic content. They allow you to specify components that should run on the server, allowing the rest of the page to be more aggressively cached, or even generated statically.
+
+ Turn any `.astro` component into a server island by adding the `server:defer` directive and optionally, fallback placeholder content. It will be rendered dynamically at runtime outside the context of the rest of the page, allowing you to add longer cache headers for the pages, or even prerender them.
+
+ ```astro
+ ---
+ import Avatar from '../components/Avatar.astro';
+ import GenericUser from '../components/GenericUser.astro';
+ ---
+
+ Page Title
+