diff --git a/.changeset/angry-swans-fry.md b/.changeset/angry-swans-fry.md
new file mode 100644
index 0000000000..ce5c513d5f
--- /dev/null
+++ b/.changeset/angry-swans-fry.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Redesign Dev Overlay main screen to show more information, such as the coolest integrations, your current Astro version and more.
diff --git a/.changeset/beige-jokes-report.md b/.changeset/beige-jokes-report.md
new file mode 100644
index 0000000000..ecb97328b6
--- /dev/null
+++ b/.changeset/beige-jokes-report.md
@@ -0,0 +1,9 @@
+---
+'@astrojs/mdx': major
+'@astrojs/markdown-remark': major
+'astro': major
+---
+
+Updates the unified, remark, and rehype dependencies to latest. Make sure to update your custom remark and rehype plugins as well to be compatible with the latest versions.
+
+**Potentially breaking change:** The default value of `markdown.remarkRehype.footnoteBackLabel` is changed from `"Back to content"` to `"Back to reference 1"`. See the `mdast-util-to-hast` [commit](https://github.com/syntax-tree/mdast-util-to-hast/commit/56c88e45690be138fad9f0bf367b939d09816863) for more information.
diff --git a/.changeset/big-cooks-notice.md b/.changeset/big-cooks-notice.md
new file mode 100644
index 0000000000..9a0586c73a
--- /dev/null
+++ b/.changeset/big-cooks-notice.md
@@ -0,0 +1,6 @@
+---
+'@astrojs/vercel': major
+'@astrojs/node': major
+---
+
+The internals of the integration have been updated to support Astro 4.0. Make sure to upgrade your Astro version as Astro 3.0 is no longer supported.
diff --git a/.changeset/brown-jars-lick.md b/.changeset/brown-jars-lick.md
new file mode 100644
index 0000000000..0d824e445f
--- /dev/null
+++ b/.changeset/brown-jars-lick.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fixes an issue where links with the same pathname as the current page, but different search params, were not prefetched.
diff --git a/.changeset/calm-baboons-watch.md b/.changeset/calm-baboons-watch.md
new file mode 100644
index 0000000000..a0e8259e96
--- /dev/null
+++ b/.changeset/calm-baboons-watch.md
@@ -0,0 +1,5 @@
+---
+'astro': minor
+---
+
+Update CLI logging experience
diff --git a/.changeset/clever-beds-notice.md b/.changeset/clever-beds-notice.md
new file mode 100644
index 0000000000..6be65bde11
--- /dev/null
+++ b/.changeset/clever-beds-notice.md
@@ -0,0 +1,9 @@
+---
+'astro': major
+---
+
+Removes support for returning simple objects from endpoints (deprecated since Astro 3.0). You should return a `Response` instead.
+
+`ResponseWithEncoding` is also removed. You can refactor the code to return a response with an array buffer instead, which is encoding agnostic.
+
+The types for middlewares have also been revised. To type a middleware function, you should now use `MiddlewareHandler` instead of `MiddlewareResponseHandler`. If you used `defineMiddleware()` to type the function, no changes are needed.
diff --git a/.changeset/famous-eels-trade.md b/.changeset/famous-eels-trade.md
new file mode 100644
index 0000000000..2c3d248987
--- /dev/null
+++ b/.changeset/famous-eels-trade.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Ensure the dev-overlay-window is anchored to the bottom
diff --git a/.changeset/gentle-cobras-wash.md b/.changeset/gentle-cobras-wash.md
new file mode 100644
index 0000000000..1a9245524a
--- /dev/null
+++ b/.changeset/gentle-cobras-wash.md
@@ -0,0 +1,17 @@
+---
+'astro': minor
+---
+
+Adds the `astro preferences` command to manage user preferences. User preferences are specific to individual Astro users, unlike the `astro.config.mjs` file which changes behavior for everyone working on a project.
+
+User preferences are scoped to the current project by default, stored in a local `.astro/settings.json` file. Using the `--global` flag, user preferences can also be applied to every Astro project on the current machine. Global user preferences are stored in an operating system-specific location.
+
+```sh
+# Disable the dev overlay for the current user in the current project
+npm run astro preferences disable devOverlay
+# Disable the dev overlay for the current user in all Astro projects on this machine
+npm run astro preferences --global disable devOverlay
+
+# Check if the dev overlay is enabled for the current user
+npm run astro preferences list devOverlay
+```
diff --git a/.changeset/giant-snails-perform.md b/.changeset/giant-snails-perform.md
new file mode 100644
index 0000000000..e44a0b7306
--- /dev/null
+++ b/.changeset/giant-snails-perform.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/vercel': major
+---
+
+Removes deprecated `analytics` option. Use the `webAnalytics` option instead.
diff --git a/.changeset/green-impalas-fetch.md b/.changeset/green-impalas-fetch.md
new file mode 100644
index 0000000000..02b77375fd
--- /dev/null
+++ b/.changeset/green-impalas-fetch.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fix SVG icons not showing properly in the extended dropdown menu of the dev overlay
diff --git a/.changeset/grumpy-seas-switch.md b/.changeset/grumpy-seas-switch.md
new file mode 100644
index 0000000000..85cf0e22fe
--- /dev/null
+++ b/.changeset/grumpy-seas-switch.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Improve high contrast mode with the Dev Overlay
diff --git a/.changeset/khaki-fans-sell.md b/.changeset/khaki-fans-sell.md
new file mode 100644
index 0000000000..f6d84bdaed
--- /dev/null
+++ b/.changeset/khaki-fans-sell.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/markdown-remark': patch
+---
+
+Fixes `RemarkRehype` type's `handler` and `handlers` properties
diff --git a/.changeset/light-ties-poke.md b/.changeset/light-ties-poke.md
new file mode 100644
index 0000000000..97eceace43
--- /dev/null
+++ b/.changeset/light-ties-poke.md
@@ -0,0 +1,8 @@
+---
+'@astrojs/svelte': major
+'@astrojs/react': patch
+'@astrojs/vue': patch
+'astro': major
+---
+
+Adds Vite 5 support. There are no breaking changes from Astro. Check the [Vite migration guide](https://vitejs.dev/guide/migration.html) for details of the breaking changes from Vite instead.
diff --git a/.changeset/mighty-rats-flow.md b/.changeset/mighty-rats-flow.md
new file mode 100644
index 0000000000..8fbec88baf
--- /dev/null
+++ b/.changeset/mighty-rats-flow.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Update the look and feel of the dev overlay
diff --git a/.changeset/modern-candles-sip.md b/.changeset/modern-candles-sip.md
new file mode 100644
index 0000000000..31e75c4125
--- /dev/null
+++ b/.changeset/modern-candles-sip.md
@@ -0,0 +1,5 @@
+---
+'create-astro': patch
+---
+
+Stop clearing the console on start
diff --git a/.changeset/odd-rivers-happen.md b/.changeset/odd-rivers-happen.md
new file mode 100644
index 0000000000..2490084bc2
--- /dev/null
+++ b/.changeset/odd-rivers-happen.md
@@ -0,0 +1,5 @@
+---
+'astro': major
+---
+
+Removes the opt-in `handleForms` property for ``. Form submissions are now handled by default and can be disabled by setting `data-astro-reload` on relevant `
` elements.
diff --git a/.changeset/plenty-candles-help.md b/.changeset/plenty-candles-help.md
new file mode 100644
index 0000000000..e7ddf8cb4f
--- /dev/null
+++ b/.changeset/plenty-candles-help.md
@@ -0,0 +1,21 @@
+---
+'astro': major
+---
+
+Removes support for Shiki custom language's `path` property. The language JSON file should be imported and passed to the option instead.
+
+```diff
+// astro.config.js
++ import customLang from './custom.tmLanguage.json'
+
+export default defineConfig({
+ markdown: {
+ shikiConfig: {
+ langs: [
+- { path: './custom.tmLanguage.json' },
++ customLang,
+ ],
+ },
+ },
+})
+```
diff --git a/.changeset/pre.json b/.changeset/pre.json
new file mode 100644
index 0000000000..da91f9c8cf
--- /dev/null
+++ b/.changeset/pre.json
@@ -0,0 +1,62 @@
+{
+ "mode": "pre",
+ "tag": "beta",
+ "initialVersions": {
+ "astro": "3.5.5",
+ "@astrojs/prism": "3.0.0",
+ "@astrojs/rss": "3.0.0",
+ "create-astro": "4.5.1",
+ "@astrojs/alpinejs": "0.3.1",
+ "@astrojs/cloudflare": "0.0.0",
+ "@astrojs/lit": "3.0.3",
+ "@astrojs/markdoc": "0.7.2",
+ "@astrojs/mdx": "1.1.5",
+ "@astrojs/netlify": "0.0.0",
+ "@astrojs/node": "6.0.4",
+ "@astrojs/partytown": "2.0.2",
+ "@astrojs/preact": "3.0.1",
+ "@astrojs/prefetch": "0.4.1",
+ "@astrojs/react": "3.0.5",
+ "@astrojs/sitemap": "3.0.3",
+ "@astrojs/solid-js": "3.0.2",
+ "@astrojs/svelte": "4.0.4",
+ "@astrojs/tailwind": "5.0.2",
+ "@astrojs/vercel": "5.2.0",
+ "@astrojs/vue": "3.0.4",
+ "@astrojs/internal-helpers": "0.2.1",
+ "@astrojs/markdown-remark": "3.5.0",
+ "@astrojs/telemetry": "3.0.4",
+ "@astrojs/underscore-redirects": "0.3.3",
+ "@astrojs/upgrade": "0.0.1"
+ },
+ "changesets": [
+ "angry-swans-fry",
+ "beige-jokes-report",
+ "big-cooks-notice",
+ "brown-jars-lick",
+ "calm-baboons-watch",
+ "clever-beds-notice",
+ "famous-eels-trade",
+ "gentle-cobras-wash",
+ "giant-snails-perform",
+ "grumpy-seas-switch",
+ "khaki-fans-sell",
+ "light-ties-poke",
+ "modern-candles-sip",
+ "odd-rivers-happen",
+ "plenty-candles-help",
+ "rude-hairs-whisper",
+ "sharp-starfishes-compete",
+ "shiny-trees-sip",
+ "short-deers-whisper",
+ "slow-hornets-try",
+ "sour-games-burn",
+ "spicy-starfishes-shake",
+ "tasty-dryers-bathe",
+ "three-chairs-sip",
+ "tricky-dragons-explain",
+ "weak-wolves-bow",
+ "wicked-sloths-develop",
+ "wild-apricots-rescue"
+ ]
+}
diff --git a/.changeset/rude-hairs-whisper.md b/.changeset/rude-hairs-whisper.md
new file mode 100644
index 0000000000..a9d7baa4d4
--- /dev/null
+++ b/.changeset/rude-hairs-whisper.md
@@ -0,0 +1,5 @@
+---
+'astro': minor
+---
+
+Renames the `entryPoint` property of the `injectRoute` integrations API to `entrypoint` for consistency. A warning will be shown prompting you to update your code when using the old name.
diff --git a/.changeset/sharp-starfishes-compete.md b/.changeset/sharp-starfishes-compete.md
new file mode 100644
index 0000000000..0eb4f413bc
--- /dev/null
+++ b/.changeset/sharp-starfishes-compete.md
@@ -0,0 +1,20 @@
+---
+'astro': major
+---
+
+This change only affects maintainers of third-party adapters. In the Integration API, the `app.render()` method of the `App` class has been simplified.
+
+Instead of two optional arguments, it now takes a single optional argument that is an object with two optional properties: `routeData` and `locals`.
+```diff
+ app.render(request)
+
+- app.render(request, routeData)
++ app.render(request, { routeData })
+
+- app.render(request, routeData, locals)
++ app.render(request, { routeData, locals })
+
+- app.render(request, undefined, locals)
++ app.render(request, { locals })
+```
+The current signature is deprecated but will continue to function until next major version.
diff --git a/.changeset/shiny-trees-sip.md b/.changeset/shiny-trees-sip.md
new file mode 100644
index 0000000000..991c7aa928
--- /dev/null
+++ b/.changeset/shiny-trees-sip.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/markdown-remark': major
+---
+
+Removes deprecated APIs. All Astro packages had been refactored to not use these APIs.
diff --git a/.changeset/short-deers-whisper.md b/.changeset/short-deers-whisper.md
new file mode 100644
index 0000000000..03e0f44806
--- /dev/null
+++ b/.changeset/short-deers-whisper.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Removes vendored Vite's `importMeta.d.ts` file in favour of Vite 5's new `vite/types/import-meta.d.ts` export
diff --git a/.changeset/slow-hornets-try.md b/.changeset/slow-hornets-try.md
new file mode 100644
index 0000000000..970e7f4910
--- /dev/null
+++ b/.changeset/slow-hornets-try.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/rss': major
+---
+
+Removes the `drafts` option as the feature is deprecated in Astro 3.0
diff --git a/.changeset/sour-games-burn.md b/.changeset/sour-games-burn.md
new file mode 100644
index 0000000000..f0d596603d
--- /dev/null
+++ b/.changeset/sour-games-burn.md
@@ -0,0 +1,13 @@
+---
+"astro": patch
+---
+
+Refactors virtual modules exports. This should not break your project unless you import Astro's internal modules, including:
+
+- `astro/middleware/namespace`
+- `astro/transitions`
+- `astro/transitions/router`
+- `astro/transitions/events`
+- `astro/transitions/types`
+- `astro/prefetch`
+- `astro/i18n`
diff --git a/.changeset/spicy-starfishes-shake.md b/.changeset/spicy-starfishes-shake.md
new file mode 100644
index 0000000000..a283f4d379
--- /dev/null
+++ b/.changeset/spicy-starfishes-shake.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Ensure overlay x-ray z-index is higher than the island
diff --git a/.changeset/tasty-dryers-bathe.md b/.changeset/tasty-dryers-bathe.md
new file mode 100644
index 0000000000..438597e13b
--- /dev/null
+++ b/.changeset/tasty-dryers-bathe.md
@@ -0,0 +1,27 @@
+---
+'@astrojs/upgrade': minor
+---
+
+Initial release!
+
+`@astrojs/upgrade` is an automated command-line tool for upgrading Astro and your official Astro integrations together.
+
+Inside of your existing `astro` project, run the following command to install the `latest` version of your integrations.
+
+**With NPM:**
+
+```bash
+npx @astrojs/upgrade
+```
+
+**With Yarn:**
+
+```bash
+yarn dlx @astrojs/upgrade
+```
+
+**With PNPM:**
+
+```bash
+pnpm dlx @astrojs/upgrade
+```
diff --git a/.changeset/three-chairs-sip.md b/.changeset/three-chairs-sip.md
new file mode 100644
index 0000000000..68bdc0a614
--- /dev/null
+++ b/.changeset/three-chairs-sip.md
@@ -0,0 +1,5 @@
+---
+'astro': minor
+---
+
+Update error log formatting
diff --git a/.changeset/tricky-dragons-explain.md b/.changeset/tricky-dragons-explain.md
new file mode 100644
index 0000000000..78ecb1e957
--- /dev/null
+++ b/.changeset/tricky-dragons-explain.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fixes a number of small user experience bugs with the dev overlay
diff --git a/.changeset/weak-wolves-bow.md b/.changeset/weak-wolves-bow.md
new file mode 100644
index 0000000000..484544cd12
--- /dev/null
+++ b/.changeset/weak-wolves-bow.md
@@ -0,0 +1,5 @@
+---
+'astro': major
+---
+
+Removes deprecated `app.match()` option, `matchNotFound`
diff --git a/.changeset/wicked-sloths-develop.md b/.changeset/wicked-sloths-develop.md
new file mode 100644
index 0000000000..806e027072
--- /dev/null
+++ b/.changeset/wicked-sloths-develop.md
@@ -0,0 +1,11 @@
+---
+'astro': major
+---
+
+Removes deprecated features from Astro 3.0
+
+- Adapters are now required to pass `supportedAstroFeatures` to specify a list of features they support.
+- The `build.split` and `build.excludeMiddleware` options are removed. Use `functionPerRoute` and `edgeMiddleware` from adapters instead.
+- The `markdown.drafts` option and draft feature is removed. Use content collections instead.
+- Lowercase endpoint names are no longer supported. Use uppercase endpoint names instead.
+- `getHeaders()` exported from markdown files is removed. Use `getHeadings()` instead.
diff --git a/.changeset/wild-apricots-rescue.md b/.changeset/wild-apricots-rescue.md
new file mode 100644
index 0000000000..c4a7deea3e
--- /dev/null
+++ b/.changeset/wild-apricots-rescue.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/svelte': major
+---
+
+Drops support for Svelte 3 as `@sveltejs/vite-plugin-svelte` is updated to `3.0.0` which does not support Svelte 3
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 93c348b26f..05a07e1254 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -248,7 +248,7 @@ If you have gotten permission from the core contributors, you can enter into pre
- Run: `pnpm exec changeset pre enter next` in the project root
- Create a new PR from the changes created by this command
- Review, approve, and more the PR to enter prerelease mode.
-- If successful, The "Version Packages" PR (if one exists) will now say "Version Packages (next)".
+- If successful, The "[ci] release" PR (if one exists) will now say "[ci] release (next)".
### Exiting prerelease mode
@@ -257,7 +257,7 @@ Exiting prerelease mode should happen once an experimental release is ready to g
- Run: `pnpm exec changeset pre exit` in the project root
- Create a new PR from the changes created by this command.
- Review, approve, and more the PR to enter prerelease mode.
-- If successful, The "Version Packages (next)" PR (if one exists) will now say "Version Packages".
+- If successful, The "[ci] release (next)" PR (if one exists) will now say "[ci] release".
### Releasing `astro@latest` while in prerelease mode
diff --git a/benchmark/packages/timer/package.json b/benchmark/packages/timer/package.json
index 8ac0398549..a4a3b8df1b 100644
--- a/benchmark/packages/timer/package.json
+++ b/benchmark/packages/timer/package.json
@@ -29,7 +29,7 @@
"astro": "workspace:*"
},
"devDependencies": {
- "@types/server-destroy": "^1.0.1",
+ "@types/server-destroy": "^1.0.3",
"astro": "workspace:*",
"astro-scripts": "workspace:*"
}
diff --git a/benchmark/packages/timer/src/index.ts b/benchmark/packages/timer/src/index.ts
index 49edcb5e86..2ea41af662 100644
--- a/benchmark/packages/timer/src/index.ts
+++ b/benchmark/packages/timer/src/index.ts
@@ -6,6 +6,7 @@ export function getAdapter(): AstroAdapter {
serverEntrypoint: '@benchmark/timer/server.js',
previewEntrypoint: '@benchmark/timer/preview.js',
exports: ['handler'],
+ supportedAstroFeatures: {},
};
}
diff --git a/examples/basics/package.json b/examples/basics/package.json
index 99385b3388..eb6a54f5d0 100644
--- a/examples/basics/package.json
+++ b/examples/basics/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/blog/package.json b/examples/blog/package.json
index 8d219a0169..e57609d87a 100644
--- a/examples/blog/package.json
+++ b/examples/blog/package.json
@@ -11,9 +11,9 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/mdx": "^1.1.5",
- "@astrojs/rss": "^3.0.0",
+ "@astrojs/mdx": "^2.0.0-beta.0",
+ "@astrojs/rss": "^4.0.0-beta.0",
"@astrojs/sitemap": "^3.0.3",
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/component/package.json b/examples/component/package.json
index ea1b79aa81..a69680c6e4 100644
--- a/examples/component/package.json
+++ b/examples/component/package.json
@@ -15,7 +15,7 @@
],
"scripts": {},
"devDependencies": {
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
},
"peerDependencies": {
"astro": "^3.0.0"
diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json
index bb171d9a5d..6604e5712c 100644
--- a/examples/framework-alpine/package.json
+++ b/examples/framework-alpine/package.json
@@ -12,8 +12,8 @@
},
"dependencies": {
"@astrojs/alpinejs": "^0.3.1",
- "@types/alpinejs": "^3.7.2",
- "alpinejs": "^3.12.3",
- "astro": "^3.6.4"
+ "@types/alpinejs": "^3.13.5",
+ "alpinejs": "^3.13.3",
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json
index 642918c902..3ca13d28d0 100644
--- a/examples/framework-lit/package.json
+++ b/examples/framework-lit/package.json
@@ -13,7 +13,7 @@
"dependencies": {
"@astrojs/lit": "^3.0.3",
"@webcomponents/template-shadowroot": "^0.2.1",
- "astro": "^3.6.4",
+ "astro": "^4.0.0-beta.2",
"lit": "^2.8.0"
}
}
diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json
index d0bbc962e5..b8b21e1688 100644
--- a/examples/framework-multiple/package.json
+++ b/examples/framework-multiple/package.json
@@ -12,16 +12,16 @@
},
"dependencies": {
"@astrojs/preact": "^3.0.1",
- "@astrojs/react": "^3.0.6",
+ "@astrojs/react": "^3.0.7-beta.0",
"@astrojs/solid-js": "^3.0.2",
- "@astrojs/svelte": "^4.0.4",
- "@astrojs/vue": "^3.0.4",
- "astro": "^3.6.4",
- "preact": "^10.17.1",
+ "@astrojs/svelte": "^5.0.0-beta.0",
+ "@astrojs/vue": "^4.0.0-beta.0",
+ "astro": "^4.0.0-beta.2",
+ "preact": "^10.19.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "solid-js": "^1.7.11",
- "svelte": "^4.2.0",
- "vue": "^3.3.4"
+ "solid-js": "^1.8.5",
+ "svelte": "^4.2.5",
+ "vue": "^3.3.8"
}
}
diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json
index b3a9a16d04..e7f873c604 100644
--- a/examples/framework-preact/package.json
+++ b/examples/framework-preact/package.json
@@ -13,7 +13,7 @@
"dependencies": {
"@astrojs/preact": "^3.0.1",
"@preact/signals": "^1.2.1",
- "astro": "^3.6.4",
- "preact": "^10.17.1"
+ "astro": "^4.0.0-beta.2",
+ "preact": "^10.19.2"
}
}
diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json
index 0951f6f422..e04ed362cf 100644
--- a/examples/framework-react/package.json
+++ b/examples/framework-react/package.json
@@ -11,10 +11,10 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/react": "^3.0.6",
- "@types/react": "^18.2.21",
- "@types/react-dom": "^18.2.7",
- "astro": "^3.6.4",
+ "@astrojs/react": "^3.0.7-beta.0",
+ "@types/react": "^18.2.37",
+ "@types/react-dom": "^18.2.15",
+ "astro": "^4.0.0-beta.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
}
diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json
index 8e98d49b32..3d4931c523 100644
--- a/examples/framework-solid/package.json
+++ b/examples/framework-solid/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"@astrojs/solid-js": "^3.0.2",
- "astro": "^3.6.4",
- "solid-js": "^1.7.11"
+ "astro": "^4.0.0-beta.2",
+ "solid-js": "^1.8.5"
}
}
diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json
index f921627ec3..7d2d1611f8 100644
--- a/examples/framework-svelte/package.json
+++ b/examples/framework-svelte/package.json
@@ -11,8 +11,8 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/svelte": "^4.0.4",
- "astro": "^3.6.4",
- "svelte": "^4.2.0"
+ "@astrojs/svelte": "^5.0.0-beta.0",
+ "astro": "^4.0.0-beta.2",
+ "svelte": "^4.2.5"
}
}
diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json
index da9a4e26f7..541ce12039 100644
--- a/examples/framework-vue/package.json
+++ b/examples/framework-vue/package.json
@@ -11,8 +11,8 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/vue": "^3.0.4",
- "astro": "^3.6.4",
- "vue": "^3.3.4"
+ "@astrojs/vue": "^4.0.0-beta.0",
+ "astro": "^4.0.0-beta.2",
+ "vue": "^3.3.8"
}
}
diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json
index ccde2aca0f..967471ad4b 100644
--- a/examples/hackernews/package.json
+++ b/examples/hackernews/package.json
@@ -11,7 +11,7 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/node": "^6.1.0",
- "astro": "^3.6.4"
+ "@astrojs/node": "^7.0.0-beta.1",
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/integration/package.json b/examples/integration/package.json
index 6ca7435b49..de9311748c 100644
--- a/examples/integration/package.json
+++ b/examples/integration/package.json
@@ -15,7 +15,7 @@
],
"scripts": {},
"devDependencies": {
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
},
"peerDependencies": {
"astro": "^3.0.0"
diff --git a/examples/middleware/package.json b/examples/middleware/package.json
index 744390cc43..6edecf1a44 100644
--- a/examples/middleware/package.json
+++ b/examples/middleware/package.json
@@ -12,8 +12,8 @@
"server": "node dist/server/entry.mjs"
},
"dependencies": {
- "@astrojs/node": "^6.1.0",
- "astro": "^3.6.4",
+ "@astrojs/node": "^7.0.0-beta.1",
+ "astro": "^4.0.0-beta.2",
"html-minifier": "^4.0.0"
}
}
diff --git a/examples/minimal/package.json b/examples/minimal/package.json
index 510318d044..932767551b 100644
--- a/examples/minimal/package.json
+++ b/examples/minimal/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json
index 150730ebd5..b9250d1dcd 100644
--- a/examples/non-html-pages/package.json
+++ b/examples/non-html-pages/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json
index b2b7e388a9..a3413392b3 100644
--- a/examples/portfolio/package.json
+++ b/examples/portfolio/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/ssr/package.json b/examples/ssr/package.json
index 22600d5f02..999956e216 100644
--- a/examples/ssr/package.json
+++ b/examples/ssr/package.json
@@ -12,9 +12,9 @@
"server": "node dist/server/entry.mjs"
},
"dependencies": {
- "@astrojs/node": "^6.1.0",
- "@astrojs/svelte": "^4.0.4",
- "astro": "^3.6.4",
- "svelte": "^4.2.0"
+ "@astrojs/node": "^7.0.0-beta.1",
+ "@astrojs/svelte": "^5.0.0-beta.0",
+ "astro": "^4.0.0-beta.2",
+ "svelte": "^4.2.5"
}
}
diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json
index bb497b50d3..2fc5d3d54e 100644
--- a/examples/view-transitions/package.json
+++ b/examples/view-transitions/package.json
@@ -10,8 +10,8 @@
"astro": "astro"
},
"devDependencies": {
- "@astrojs/tailwind": "^5.0.2",
- "@astrojs/node": "^6.1.0",
- "astro": "^3.6.4"
+ "@astrojs/tailwind": "^6.0.0-beta.0",
+ "@astrojs/node": "^7.0.0-beta.1",
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json
index 60f20a3c8b..f736a1cb3d 100644
--- a/examples/with-markdoc/package.json
+++ b/examples/with-markdoc/package.json
@@ -11,7 +11,7 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/markdoc": "^0.7.2",
- "astro": "^3.6.4"
+ "@astrojs/markdoc": "^1.0.0-beta.0",
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json
index 354f1515b3..4e928c5463 100644
--- a/examples/with-markdown-plugins/package.json
+++ b/examples/with-markdown-plugins/package.json
@@ -11,11 +11,11 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/markdown-remark": "^3.5.0",
- "astro": "^3.6.4",
- "hast-util-select": "^5.0.5",
- "rehype-autolink-headings": "^6.1.1",
- "rehype-slug": "^5.1.0",
+ "@astrojs/markdown-remark": "^4.0.0-beta.0",
+ "astro": "^4.0.0-beta.2",
+ "hast-util-select": "^6.0.2",
+ "rehype-autolink-headings": "^7.1.0",
+ "rehype-slug": "^6.0.0",
"rehype-toc": "^3.0.2",
"remark-code-titles": "^0.1.2"
}
diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json
index dd11e29e75..32675804a2 100644
--- a/examples/with-markdown-shiki/package.json
+++ b/examples/with-markdown-shiki/package.json
@@ -11,6 +11,6 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^3.6.4"
+ "astro": "^4.0.0-beta.2"
}
}
diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json
index 7bebf6a9a9..76ec4932e0 100644
--- a/examples/with-mdx/package.json
+++ b/examples/with-mdx/package.json
@@ -11,9 +11,9 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/mdx": "^1.1.5",
+ "@astrojs/mdx": "^2.0.0-beta.0",
"@astrojs/preact": "^3.0.1",
- "astro": "^3.6.4",
- "preact": "^10.17.1"
+ "astro": "^4.0.0-beta.2",
+ "preact": "^10.19.2"
}
}
diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json
index 53347ca8a0..3ada3b75c4 100644
--- a/examples/with-nanostores/package.json
+++ b/examples/with-nanostores/package.json
@@ -13,8 +13,8 @@
"dependencies": {
"@astrojs/preact": "^3.0.1",
"@nanostores/preact": "^0.5.0",
- "astro": "^3.6.4",
- "nanostores": "^0.9.3",
- "preact": "^10.17.1"
+ "astro": "^4.0.0-beta.2",
+ "nanostores": "^0.9.5",
+ "preact": "^10.19.2"
}
}
diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json
index d73fd1dbd8..f03a1ac113 100644
--- a/examples/with-tailwindcss/package.json
+++ b/examples/with-tailwindcss/package.json
@@ -11,13 +11,13 @@
"astro": "astro"
},
"dependencies": {
- "@astrojs/mdx": "^1.1.5",
- "@astrojs/tailwind": "^5.0.2",
- "@types/canvas-confetti": "^1.6.0",
- "astro": "^3.6.4",
+ "@astrojs/mdx": "^2.0.0-beta.0",
+ "@astrojs/tailwind": "^6.0.0-beta.0",
+ "@types/canvas-confetti": "^1.6.3",
+ "astro": "^4.0.0-beta.2",
"autoprefixer": "^10.4.15",
- "canvas-confetti": "^1.6.0",
+ "canvas-confetti": "^1.9.1",
"postcss": "^8.4.28",
- "tailwindcss": "^3.3.3"
+ "tailwindcss": "^3.3.5"
}
}
diff --git a/examples/with-vite-plugin-pwa/package.json b/examples/with-vite-plugin-pwa/package.json
index bcb4c32afb..454b8d8ff4 100644
--- a/examples/with-vite-plugin-pwa/package.json
+++ b/examples/with-vite-plugin-pwa/package.json
@@ -11,8 +11,8 @@
"astro": "astro"
},
"dependencies": {
- "astro": "^3.6.4",
- "vite-plugin-pwa": "0.16.4",
+ "astro": "^4.0.0-beta.2",
+ "vite-plugin-pwa": "0.17.0",
"workbox-window": "^7.0.0"
}
}
diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json
index 34723600d4..41161087ba 100644
--- a/examples/with-vitest/package.json
+++ b/examples/with-vitest/package.json
@@ -12,7 +12,7 @@
"test": "vitest"
},
"dependencies": {
- "astro": "^3.6.4",
+ "astro": "^4.0.0-beta.2",
"vitest": "^0.34.2"
}
}
diff --git a/package.json b/package.json
index 8bf7dc459c..98bffa203d 100644
--- a/package.json
+++ b/package.json
@@ -77,23 +77,23 @@
"astro-benchmark": "workspace:*"
},
"devDependencies": {
- "@astrojs/check": "^0.1.0",
+ "@astrojs/check": "^0.3.1",
"@changesets/changelog-github": "^0.4.8",
"@changesets/cli": "^2.26.2",
"@types/node": "^18.17.8",
- "@typescript-eslint/eslint-plugin": "^6.4.1",
- "@typescript-eslint/parser": "^6.4.1",
- "esbuild": "^0.19.2",
- "eslint": "^8.47.0",
+ "@typescript-eslint/eslint-plugin": "^6.11.0",
+ "@typescript-eslint/parser": "^6.11.0",
+ "esbuild": "^0.19.6",
+ "eslint": "^8.54.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-no-only-tests": "^3.1.0",
"eslint-plugin-prettier": "^5.0.0",
"only-allow": "^1.1.1",
"organize-imports-cli": "^0.10.0",
- "prettier": "^3.0.3",
- "prettier-plugin-astro": "^0.12.0",
+ "prettier": "^3.1.0",
+ "prettier-plugin-astro": "^0.12.2",
"tiny-glob": "^0.2.9",
"turbo": "^1.10.12",
- "typescript": "~5.1.6"
+ "typescript": "~5.2.2"
}
}
diff --git a/packages/astro-prism/package.json b/packages/astro-prism/package.json
index eae841073a..d62e819a82 100644
--- a/packages/astro-prism/package.json
+++ b/packages/astro-prism/package.json
@@ -35,7 +35,7 @@
"prismjs": "^1.29.0"
},
"devDependencies": {
- "@types/prismjs": "1.26.0",
+ "@types/prismjs": "1.26.3",
"astro-scripts": "workspace:*"
},
"engines": {
diff --git a/packages/astro-rss/CHANGELOG.md b/packages/astro-rss/CHANGELOG.md
index 26e9c95d73..60327a088e 100644
--- a/packages/astro-rss/CHANGELOG.md
+++ b/packages/astro-rss/CHANGELOG.md
@@ -1,5 +1,11 @@
# @astrojs/rss
+## 4.0.0-beta.0
+
+### Major Changes
+
+- [#9168](https://github.com/withastro/astro/pull/9168) [`153a5abb9`](https://github.com/withastro/astro/commit/153a5abb905042ac68b712514dc9ec387d3e6b17) Thanks [@bluwy](https://github.com/bluwy)! - Removes the `drafts` option as the feature is deprecated in Astro 3.0
+
## 3.0.0
### Major Changes
diff --git a/packages/astro-rss/README.md b/packages/astro-rss/README.md
index 268f58f266..c8485b02e3 100644
--- a/packages/astro-rss/README.md
+++ b/packages/astro-rss/README.md
@@ -28,7 +28,7 @@ Start by [adding a `site` to your project's `astro.config` for link generation](
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
-export async function get(context) {
+export async function GET(context) {
const posts = await getCollection('blog');
return rss({
title: 'Buzz’s Blog',
@@ -55,7 +55,7 @@ Read **[Astro's RSS docs][astro-rss]** for more on using content collections, an
The `rss` default export offers a number of configuration options. Here's a quick reference:
```js
-export function get(context) {
+export function GET(context) {
return rss({
// `` field in output xml
title: 'Buzz’s Blog',
@@ -98,7 +98,7 @@ The base URL to use when generating RSS item links. We recommend using the [endp
```ts
import rss from '@astrojs/rss';
-export const get = (context) =>
+export const GET = (context) =>
rss({
site: context.site,
// ...
@@ -113,14 +113,6 @@ A list of formatted RSS feed items. See [Astro's RSS items documentation](https:
When providing a formatted RSS item list, see the [`RSSFeedItem` type reference](#rssfeeditem).
-### drafts
-
-Type: `boolean (optional)`
-
-**Deprecated**: Manually filter `items` instead.
-
-Set `drafts: true` to include [draft posts](https://docs.astro.build/en/guides/markdown-content/#draft-pages) in the feed output. By default, this option is `false` and draft posts are not included.
-
### stylesheet
Type: `string (optional)`
@@ -136,7 +128,7 @@ A string of valid XML to be injected between your feed's `` and ` rss({
+export const GET = () => rss({
...
customData: 'en-us',
});
@@ -181,7 +173,7 @@ By default, the library will add trailing slashes to the emitted URLs. To preven
```js
import rss from '@astrojs/rss';
-export const get = () =>
+export const GET = () =>
rss({
trailingSlash: false,
});
@@ -361,7 +353,7 @@ This function assumes, but does not verify, you are globbing for items inside `s
// src/pages/rss.xml.js
import rss, { pagesGlobToRssItems } from '@astrojs/rss';
-export async function get(context) {
+export async function GET(context) {
return rss({
title: 'Buzz’s Blog',
description: 'A humble Astronaut’s guide to the stars',
@@ -379,7 +371,7 @@ As `rss()` returns a `Response`, you can also use `getRssString()` to get the RS
// src/pages/rss.xml.js
import { getRssString } from '@astrojs/rss';
-export async function get(context) {
+export async function GET(context) {
const rssString = await getRssString({
title: 'Buzz’s Blog',
...
diff --git a/packages/astro-rss/package.json b/packages/astro-rss/package.json
index c200e6c594..86df612b77 100644
--- a/packages/astro-rss/package.json
+++ b/packages/astro-rss/package.json
@@ -1,7 +1,7 @@
{
"name": "@astrojs/rss",
"description": "Add RSS feeds to your Astro projects",
- "version": "3.0.0",
+ "version": "4.0.0-beta.0",
"type": "module",
"types": "./dist/index.d.ts",
"author": "withastro",
@@ -27,9 +27,9 @@
"test": "mocha --exit --timeout 20000"
},
"devDependencies": {
- "@types/chai": "^4.3.5",
- "@types/chai-as-promised": "^7.1.5",
- "@types/mocha": "^10.0.1",
+ "@types/chai": "^4.3.10",
+ "@types/chai-as-promised": "^7.1.8",
+ "@types/mocha": "^10.0.4",
"astro": "workspace:*",
"astro-scripts": "workspace:*",
"chai": "^4.3.7",
diff --git a/packages/astro-rss/src/index.ts b/packages/astro-rss/src/index.ts
index a611afc163..48c5defe85 100644
--- a/packages/astro-rss/src/index.ts
+++ b/packages/astro-rss/src/index.ts
@@ -27,11 +27,6 @@ export type RSSOptions = {
stylesheet?: z.infer['stylesheet'];
/** Specify custom data in opening of file */
customData?: z.infer['customData'];
- /**
- * Whether to include drafts or not
- * @deprecated Deprecated since version 3.0. Use content collections instead.
- */
- drafts?: z.infer['drafts'];
trailingSlash?: z.infer['trailingSlash'];
};
@@ -48,11 +43,6 @@ export type RSSFeedItem = {
description?: z.infer['description'];
/** Append some other XML-valid data to this item */
customData?: z.infer['customData'];
- /**
- * Whether draft or not
- * @deprecated Deprecated since version 3.0. Use content collections instead.
- */
- draft?: z.infer['draft'];
/** Categories or tags related to the item */
categories?: z.infer['categories'];
/** The item author's email address */
@@ -92,7 +82,6 @@ const rssOptionsValidator = z.object({
return items;
}),
xmlns: z.record(z.string()).optional(),
- drafts: z.boolean().default(false),
stylesheet: z.union([z.string(), z.boolean()]).optional(),
customData: z.string().optional(),
trailingSlash: z.boolean().default(true),
@@ -159,10 +148,7 @@ export function pagesGlobToRssItems(items: GlobResult): Promise {
- const { site } = rssOptions;
- const items = rssOptions.drafts
- ? rssOptions.items
- : rssOptions.items.filter((item) => !item.draft);
+ const { items, site } = rssOptions;
const xmlOptions = {
ignoreAttributes: false,
diff --git a/packages/astro-rss/src/schema.ts b/packages/astro-rss/src/schema.ts
index eb15ecd584..98aa35f812 100644
--- a/packages/astro-rss/src/schema.ts
+++ b/packages/astro-rss/src/schema.ts
@@ -8,7 +8,6 @@ export const rssSchema = z.object({
.refine((value) => !isNaN(value.getTime())),
description: z.string().optional(),
customData: z.string().optional(),
- draft: z.boolean().optional(),
categories: z.array(z.string()).optional(),
author: z.string().optional(),
commentsUrl: z.string().optional(),
diff --git a/packages/astro-rss/test/rss.test.js b/packages/astro-rss/test/rss.test.js
index 5dfb48b32a..cc7bff82b2 100644
--- a/packages/astro-rss/test/rss.test.js
+++ b/packages/astro-rss/test/rss.test.js
@@ -156,36 +156,12 @@ describe('getRssString', () => {
chai.expect(str).to.contain(customData);
});
- it('should filter out entries marked as `draft`', async () => {
- const str = await getRssString({
- title,
- description,
- items: [phpFeedItem, { ...web1FeedItem, draft: true }],
- site,
- });
-
- chai.expect(str).xml.to.equal(validXmlWithoutWeb1FeedResult);
- });
-
- it('should respect drafts option', async () => {
- const str = await getRssString({
- title,
- description,
- items: [phpFeedItem, { ...web1FeedItem, draft: true }],
- site,
- drafts: true,
- });
-
- chai.expect(str).xml.to.equal(validXmlResult);
- });
-
it('should not append trailing slash to URLs with the given option', async () => {
const str = await getRssString({
title,
description,
- items: [phpFeedItem, { ...web1FeedItem, draft: true }],
+ items: [phpFeedItem],
site,
- drafts: true,
trailingSlash: false,
});
diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md
index 0869b69539..8f9d1a2255 100644
--- a/packages/astro/CHANGELOG.md
+++ b/packages/astro/CHANGELOG.md
@@ -1,5 +1,183 @@
# astro
+## 4.0.0-beta.2
+
+### Major Changes
+
+- [#9225](https://github.com/withastro/astro/pull/9225) [`c421a3d17`](https://github.com/withastro/astro/commit/c421a3d17911aeda29b5204f6d568ae87e329eaf) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Removes the opt-in `handleForms` property for ``. Form submissions are now handled by default and can be disabled by setting `data-astro-reload` on relevant `` elements.
+
+- [#9199](https://github.com/withastro/astro/pull/9199) [`49aa215a0`](https://github.com/withastro/astro/commit/49aa215a01ee1c4805316c85bb0aea6cfbc25a31) Thanks [@lilnasy](https://github.com/lilnasy)! - This change only affects maintainers of third-party adapters. In the Integration API, the `app.render()` method of the `App` class has been simplified.
+
+ Instead of two optional arguments, it now takes a single optional argument that is an object with two optional properties: `routeData` and `locals`.
+
+ ```diff
+ app.render(request)
+
+ - app.render(request, routeData)
+ + app.render(request, { routeData })
+
+ - app.render(request, routeData, locals)
+ + app.render(request, { routeData, locals })
+
+ - app.render(request, undefined, locals)
+ + app.render(request, { locals })
+ ```
+
+ The current signature is deprecated but will continue to function until next major version.
+
+- [#9212](https://github.com/withastro/astro/pull/9212) [`c0383ea0c`](https://github.com/withastro/astro/commit/c0383ea0c102cb62b7235823c706a090ba08715f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Removes deprecated `app.match()` option, `matchNotFound`
+
+### Minor Changes
+
+- [#9115](https://github.com/withastro/astro/pull/9115) [`3b77889b4`](https://github.com/withastro/astro/commit/3b77889b47750ed6e17c7858780dc4aae9201b58) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Adds the `astro preferences` command to manage user preferences. User preferences are specific to individual Astro users, unlike the `astro.config.mjs` file which changes behavior for everyone working on a project.
+
+ User preferences are scoped to the current project by default, stored in a local `.astro/settings.json` file. Using the `--global` flag, user preferences can also be applied to every Astro project on the current machine. Global user preferences are stored in an operating system-specific location.
+
+ ```sh
+ # Disable the dev overlay for the current user in the current project
+ npm run astro preferences disable devOverlay
+ # Disable the dev overlay for the current user in all Astro projects on this machine
+ npm run astro preferences --global disable devOverlay
+
+ # Check if the dev overlay is enabled for the current user
+ npm run astro preferences list devOverlay
+ ```
+
+- [#9129](https://github.com/withastro/astro/pull/9129) [`8bfc20511`](https://github.com/withastro/astro/commit/8bfc20511918d675202cdc100d4efab293e5cbac) Thanks [@FredKSchott](https://github.com/FredKSchott)! - Update error log formatting
+
+### Patch Changes
+
+- [#9222](https://github.com/withastro/astro/pull/9222) [`279e3c1b3`](https://github.com/withastro/astro/commit/279e3c1b3d06e7b48f01c0ef8285c3719ac74ace) Thanks [@matthewp](https://github.com/matthewp)! - Ensure the dev-overlay-window is anchored to the bottom
+
+- [#9218](https://github.com/withastro/astro/pull/9218) [`f4401c8c1`](https://github.com/withastro/astro/commit/f4401c8c1fa203431b4e7b2e89381a91b4ef1ac6) Thanks [@matthewp](https://github.com/matthewp)! - Improve high contrast mode with the Dev Overlay
+
+- [#9227](https://github.com/withastro/astro/pull/9227) [`4b8a42406`](https://github.com/withastro/astro/commit/4b8a42406bbdcc68604ea4ecc2a926721fbc4d52) Thanks [@matthewp](https://github.com/matthewp)! - Ensure overlay x-ray z-index is higher than the island
+
+- [#9214](https://github.com/withastro/astro/pull/9214) [`4fe523b00`](https://github.com/withastro/astro/commit/4fe523b0064b323ee46b2574339d96ea8bdb7b2d) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Fixes a number of small user experience bugs with the dev overlay
+
+## 4.0.0-beta.1
+
+### Patch Changes
+
+- [#9118](https://github.com/withastro/astro/pull/9118) [`000e8f465`](https://github.com/withastro/astro/commit/000e8f4654cae9982e21e0a858366c4844139db6) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Redesign Dev Overlay main screen to show more information, such as the coolest integrations, your current Astro version and more.
+
+- [#9118](https://github.com/withastro/astro/pull/9118) [`000e8f465`](https://github.com/withastro/astro/commit/000e8f4654cae9982e21e0a858366c4844139db6) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Fixes an issue where links with the same pathname as the current page, but different search params, were not prefetched.
+
+## 4.0.0-beta.0
+
+### Major Changes
+
+- [#9138](https://github.com/withastro/astro/pull/9138) [`abf601233`](https://github.com/withastro/astro/commit/abf601233f8188d118a8cb063c777478d8d9f1a3) Thanks [@bluwy](https://github.com/bluwy)! - Updates the unified, remark, and rehype dependencies to latest. Make sure to update your custom remark and rehype plugins as well to be compatible with the latest versions.
+
+ **Potentially breaking change:** The default value of `markdown.remarkRehype.footnoteBackLabel` is changed from `"Back to content"` to `"Back to reference 1"`. See the `mdast-util-to-hast` [commit](https://github.com/syntax-tree/mdast-util-to-hast/commit/56c88e45690be138fad9f0bf367b939d09816863) for more information.
+
+- [#9181](https://github.com/withastro/astro/pull/9181) [`cdabf6ef0`](https://github.com/withastro/astro/commit/cdabf6ef02be7220fd2b6bdcef924ceca089381e) Thanks [@bluwy](https://github.com/bluwy)! - Removes support for returning simple objects from endpoints (deprecated since Astro 3.0). You should return a `Response` instead.
+
+ `ResponseWithEncoding` is also removed. You can refactor the code to return a response with an array buffer instead, which is encoding agnostic.
+
+ The types for middlewares have also been revised. To type a middleware function, you should now use `MiddlewareHandler` instead of `MiddlewareResponseHandler`. If you used `defineMiddleware()` to type the function, no changes are needed.
+
+- [#9122](https://github.com/withastro/astro/pull/9122) [`1c48ed286`](https://github.com/withastro/astro/commit/1c48ed286538ab9e354eca4e4dcd7c6385c96721) Thanks [@bluwy](https://github.com/bluwy)! - Adds Vite 5 support. There are no breaking changes from Astro. Check the [Vite migration guide](https://vitejs.dev/guide/migration.html) for details of the breaking changes from Vite instead.
+
+- [#9196](https://github.com/withastro/astro/pull/9196) [`37697a2c5`](https://github.com/withastro/astro/commit/37697a2c5511572dc29c0a4ea46f90c2f62be8e6) Thanks [@bluwy](https://github.com/bluwy)! - Removes support for Shiki custom language's `path` property. The language JSON file should be imported and passed to the option instead.
+
+ ```diff
+ // astro.config.js
+ + import customLang from './custom.tmLanguage.json'
+
+ export default defineConfig({
+ markdown: {
+ shikiConfig: {
+ langs: [
+ - { path: './custom.tmLanguage.json' },
+ + customLang,
+ ],
+ },
+ },
+ })
+ ```
+
+- [#9168](https://github.com/withastro/astro/pull/9168) [`153a5abb9`](https://github.com/withastro/astro/commit/153a5abb905042ac68b712514dc9ec387d3e6b17) Thanks [@bluwy](https://github.com/bluwy)! - Removes deprecated features from Astro 3.0
+
+ - Adapters are now required to pass `supportedAstroFeatures` to specify a list of features they support.
+ - The `build.split` and `build.excludeMiddleware` options are removed. Use `functionPerRoute` and `edgeMiddleware` from adapters instead.
+ - The `markdown.drafts` option and draft feature is removed. Use content collections instead.
+ - Lowercase endpoint names are no longer supported. Use uppercase endpoint names instead.
+ - `getHeaders()` exported from markdown files is removed. Use `getHeadings()` instead.
+
+### Minor Changes
+
+- [#9105](https://github.com/withastro/astro/pull/9105) [`6201bbe96`](https://github.com/withastro/astro/commit/6201bbe96c2a083fb201e4a43a9bd88499821a3e) Thanks [@FredKSchott](https://github.com/FredKSchott)! - Update CLI logging experience
+
+- [#9161](https://github.com/withastro/astro/pull/9161) [`bd0c2e9ae`](https://github.com/withastro/astro/commit/bd0c2e9ae3389a9d3085050c1e8134ae98dff299) Thanks [@bluwy](https://github.com/bluwy)! - Renames the `entryPoint` property of the `injectRoute` integrations API to `entrypoint` for consistency. A warning will be shown prompting you to update your code when using the old name.
+
+### Patch Changes
+
+- [#9149](https://github.com/withastro/astro/pull/9149) [`0fe3a7ed5`](https://github.com/withastro/astro/commit/0fe3a7ed5d7bb1a9fce1623e84ba14104b51223c) Thanks [@bluwy](https://github.com/bluwy)! - Removes vendored Vite's `importMeta.d.ts` file in favour of Vite 5's new `vite/types/import-meta.d.ts` export
+
+- [#9150](https://github.com/withastro/astro/pull/9150) [`710be505c`](https://github.com/withastro/astro/commit/710be505c9ddf416e77a75343d8cae9c497d72c6) Thanks [@bluwy](https://github.com/bluwy)! - Refactors virtual modules exports. This should not break your project unless you import Astro's internal modules, including:
+
+ - `astro/middleware/namespace`
+ - `astro/transitions`
+ - `astro/transitions/router`
+ - `astro/transitions/events`
+ - `astro/transitions/types`
+ - `astro/prefetch`
+ - `astro/i18n`
+
+- Updated dependencies [[`abf601233`](https://github.com/withastro/astro/commit/abf601233f8188d118a8cb063c777478d8d9f1a3), [`addb57c8e`](https://github.com/withastro/astro/commit/addb57c8e80b7b67ec61224666f3a1db5c44410c), [`c7953645e`](https://github.com/withastro/astro/commit/c7953645eeaaf9e87c6db4494b0023d2c1878ff0)]:
+ - @astrojs/markdown-remark@4.0.0-beta.0
+
+## 3.6.4
+
+### Patch Changes
+
+- [#9226](https://github.com/withastro/astro/pull/9226) [`8f8a40e93`](https://github.com/withastro/astro/commit/8f8a40e93d6a0774ba84a6f5db8c42cd81db005e) Thanks [@outofambit](https://github.com/outofambit)! - Fix i18n fallback routing with routing strategy of always-prefix
+
+- [#9179](https://github.com/withastro/astro/pull/9179) [`3f28336d9`](https://github.com/withastro/astro/commit/3f28336d9a52d7e4364d455ee3128d14d10a078a) Thanks [@lilnasy](https://github.com/lilnasy)! - Fixes an issue where the presence of a slot in a page led to an error.
+
+- [#9219](https://github.com/withastro/astro/pull/9219) [`067a65f5b`](https://github.com/withastro/astro/commit/067a65f5b4d163bf1944cf47e6bf891f0b93553f) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Fix edge case where `
-{handleForms ? : ''}