From 83c88706848521922ccd9cbdd914b653e47309db Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Thu, 9 Nov 2023 09:49:35 -0800 Subject: [PATCH] [ci] release (#9021) Co-authored-by: github-actions[bot] --- .changeset/calm-shirts-battle.md | 5 - .changeset/khaki-glasses-raise.md | 48 ----- .changeset/lovely-pianos-build.md | 28 --- .changeset/many-weeks-sort.md | 43 ----- .changeset/nasty-elephants-provide.md | 5 - .changeset/new-islands-lick.md | 5 - .changeset/quiet-games-film.md | 5 - .changeset/rude-lizards-scream.md | 51 ----- .changeset/sixty-laws-argue.md | 21 -- .changeset/spotty-rings-crash.md | 5 - .changeset/ten-sloths-invent.md | 7 - .changeset/tender-suits-glow.md | 6 - examples/basics/package.json | 2 +- examples/blog/package.json | 4 +- examples/component/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-lit/package.json | 4 +- examples/framework-multiple/package.json | 2 +- examples/framework-preact/package.json | 2 +- examples/framework-react/package.json | 2 +- examples/framework-solid/package.json | 2 +- examples/framework-svelte/package.json | 2 +- examples/framework-vue/package.json | 2 +- examples/hackernews/package.json | 2 +- examples/integration/package.json | 2 +- examples/middleware/package.json | 2 +- examples/minimal/package.json | 2 +- examples/non-html-pages/package.json | 2 +- examples/portfolio/package.json | 2 +- examples/ssr/package.json | 2 +- examples/view-transitions/package.json | 2 +- examples/with-markdoc/package.json | 2 +- examples/with-markdown-plugins/package.json | 4 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 4 +- examples/with-nanostores/package.json | 2 +- examples/with-tailwindcss/package.json | 4 +- examples/with-vite-plugin-pwa/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 202 ++++++++++++++++++++ packages/astro/package.json | 2 +- packages/integrations/lit/CHANGELOG.md | 6 + packages/integrations/lit/package.json | 2 +- packages/integrations/mdx/CHANGELOG.md | 7 + packages/integrations/mdx/package.json | 2 +- packages/markdown/remark/CHANGELOG.md | 6 + packages/markdown/remark/package.json | 2 +- pnpm-lock.yaml | 64 +++---- 48 files changed, 289 insertions(+), 297 deletions(-) delete mode 100644 .changeset/calm-shirts-battle.md delete mode 100644 .changeset/khaki-glasses-raise.md delete mode 100644 .changeset/lovely-pianos-build.md delete mode 100644 .changeset/many-weeks-sort.md delete mode 100644 .changeset/nasty-elephants-provide.md delete mode 100644 .changeset/new-islands-lick.md delete mode 100644 .changeset/quiet-games-film.md delete mode 100644 .changeset/rude-lizards-scream.md delete mode 100644 .changeset/sixty-laws-argue.md delete mode 100644 .changeset/spotty-rings-crash.md delete mode 100644 .changeset/ten-sloths-invent.md delete mode 100644 .changeset/tender-suits-glow.md diff --git a/.changeset/calm-shirts-battle.md b/.changeset/calm-shirts-battle.md deleted file mode 100644 index 023e17f3b8..0000000000 --- a/.changeset/calm-shirts-battle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Add ability to "Click to go editor" on auditted elements in the dev overlay diff --git a/.changeset/khaki-glasses-raise.md b/.changeset/khaki-glasses-raise.md deleted file mode 100644 index 4a0622a424..0000000000 --- a/.changeset/khaki-glasses-raise.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -'astro': minor ---- - -## Integration Hooks to add Middleware - -It's now possible in Astro for an integration to add middleware on behalf of the user. Previously when a third party wanted to provide middleware, the user would need to create a `src/middleware.ts` file themselves. Now, adding third-party middleware is as easy as adding a new integration. - -For integration authors, there is a new `addMiddleware` function in the `astro:config:setup` hook. This function allows you to specify a middleware module and the order in which it should be applied: - -```js -// my-package/middleware.js -import { defineMiddleware } from 'astro:middleware'; - -export const onRequest = defineMiddleware(async (context, next) => { - const response = await next(); - - if(response.headers.get('content-type') === 'text/html') { - let html = await response.text(); - html = minify(html); - return new Response(html, { - status: response.status, - headers: response.headers - }); - } - - return response; -}); -``` - -You can now add your integration's middleware and specify that it runs either before or after the application's own defined middleware (defined in `src/middleware.{js,ts}`) - -```js -// my-package/integration.js -export function myIntegration() { - return { - name: 'my-integration', - hooks: { - 'astro:config:setup': ({ addMiddleware }) => { - addMiddleware({ - entrypoint: 'my-package/middleware', - order: 'pre' - }); - } - } - }; -} -``` diff --git a/.changeset/lovely-pianos-build.md b/.changeset/lovely-pianos-build.md deleted file mode 100644 index d7d512f3cf..0000000000 --- a/.changeset/lovely-pianos-build.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -'astro': minor ---- - -Provides a new, experimental build cache for [Content Collections](https://docs.astro.build/en/guides/content-collections/) as part of the [Incremental Build RFC](https://github.com/withastro/roadmap/pull/763). This includes multiple refactors to Astro's build process to optimize how Content Collections are handled, which should provide significant performance improvements for users with many collections. - -Users building a `static` site can opt-in to preview the new build cache by adding the following flag to your Astro config: - -```js -// astro.config.mjs -export default { - experimental: { - contentCollectionCache: true, - }, -}; -``` - -When this experimental feature is enabled, the files generated from your content collections will be stored in the [`cacheDir`](https://docs.astro.build/en/reference/configuration-reference/#cachedir) (by default, `node_modules/.astro`) and reused between builds. Most CI environments automatically restore files in `node_modules/` by default. - -In our internal testing on the real world [Astro Docs](https://github.com/withastro/docs) project, this feature reduces the bundling step of `astro build` from **133.20s** to **10.46s**, about 92% faster. The end-to-end `astro build` process used to take **4min 58s** and now takes just over `1min` for a total reduction of 80%. - -If you run into any issues with this experimental feature, please let us know! - -You can always bypass the cache for a single build by passing the `--force` flag to `astro build`. - -``` -astro build --force -``` diff --git a/.changeset/many-weeks-sort.md b/.changeset/many-weeks-sort.md deleted file mode 100644 index 621daf8b60..0000000000 --- a/.changeset/many-weeks-sort.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -'astro': minor ---- - -Form support in View Transitions router - -The `` router can now handle form submissions, allowing the same animated transitions and stateful UI retention on form posts that are already available on `` links. With this addition, your Astro project can have animations in all of these scenarios: - -- Clicking links between pages. -- Making stateful changes in forms (e.g. updating site preferences). -- Manually triggering navigation via the `navigate()` API. - -This feature is opt-in for semver reasons and can be enabled by adding the `handleForms` prop to the ` component: - -```astro ---- -// src/layouts/MainLayout.astro -import { ViewTransitions } from 'astro:transitions'; ---- - - - - - - - - - - -``` - -Just as with links, if you don't want the routing handling a form submission, you can opt out on a per-form basis with the `data-astro-reload` property: - -```astro ---- -// src/components/Contact.astro ---- -
- -
-``` - -Form support works on post `method="get"` and `method="post"` forms. diff --git a/.changeset/nasty-elephants-provide.md b/.changeset/nasty-elephants-provide.md deleted file mode 100644 index 8a5ab241a3..0000000000 --- a/.changeset/nasty-elephants-provide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': minor ---- - -Updates the Image Services API to now delete original images from the final build that are not used outside of the optimization pipeline. For users with a large number of these images (e.g. thumbnails), this should reduce storage consumption and deployment times. diff --git a/.changeset/new-islands-lick.md b/.changeset/new-islands-lick.md deleted file mode 100644 index ba1c7b0516..0000000000 --- a/.changeset/new-islands-lick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': minor ---- - -Adds a new property `propertiesToHash` to the Image Services API to allow specifying which properties of `getImage()` / `` / `` should be used for hashing the result files when doing local transformations. For most services, this will include properties such as `src`, `width` or `quality` that directly changes the content of the generated image. diff --git a/.changeset/quiet-games-film.md b/.changeset/quiet-games-film.md deleted file mode 100644 index bb9584d369..0000000000 --- a/.changeset/quiet-games-film.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"astro": minor ---- - -The `` component will now use `jpg` and `jpeg` respectively as fallback formats when the original image is in those formats. diff --git a/.changeset/rude-lizards-scream.md b/.changeset/rude-lizards-scream.md deleted file mode 100644 index 85eaddb12b..0000000000 --- a/.changeset/rude-lizards-scream.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -'astro': minor ---- - -Experimental support for i18n routing. - -Astro's experimental i18n routing API allows you to add your multilingual content with support for configuring a default language, computing relative page URLs, and accepting preferred languages provided by your visitor's browser. You can also specify fallback languages on a per-language basis so that your visitors can always be directed to existing content on your site. - -Enable the experimental routing option by adding an `i18n` object to your Astro configuration with a default location and a list of all languages to support: - -```js -// astro.config.mjs -import {defineConfig} from "astro/config"; - -export default defineConfig({ - experimental: { - i18n: { - defaultLocale: "en", - locales: ["en", "es", "pt-br"] - } - } -}) -``` - -Organize your content folders by locale depending on your `i18n.routingStrategy`, and Astro will handle generating your routes and showing your preferred URLs to your visitors. -``` -├── src -│ ├── pages -│ │ ├── about.astro -│ │ ├── index.astro -│ │ ├── es -│ │ │ ├── about.astro -│ │ │ ├── index.astro -│ │ ├── pt-br -│ │ │ ├── about.astro -│ │ │ ├── index.astro -``` - -Compute relative URLs for your links with `getRelativeLocaleUrl` from the new `astro:i18n` module: - -```astro ---- -import {getRelativeLocaleUrl} from "astro:i18n"; -const aboutUrl = getRelativeLocaleUrl("pt-br", "about"); ---- -

Learn more About this site!

-``` - -Enabling i18n routing also provides two new properties for browser language detection: `Astro.preferredLocale` and `Astro.preferredLocaleList`. These combine the browser's `Accept-Langauge` header, and your site's list of supported languages and can be used to automatically respect your visitor's preferred languages. - -Read more about Astro's [experimental i18n routing](https://docs.astro.build/en/guides/internationalization/) in our documentation. diff --git a/.changeset/sixty-laws-argue.md b/.changeset/sixty-laws-argue.md deleted file mode 100644 index 808106f884..0000000000 --- a/.changeset/sixty-laws-argue.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'astro': minor ---- - -Prefetching is now supported in core - -You can enable prefetching for your site with the `prefetch: true` config. It is enabled by default when using [View Transitions](https://docs.astro.build/en/guides/view-transitions/) and can also be used to configure the `prefetch` behaviour used by View Transitions. - -You can enable prefetching by setting `prefetch:true` in your Astro config: - -```js -// astro.config.js -import { defineConfig } from 'astro/config'; - -export default defineConfig({ - prefetch: true -}) -``` - -This replaces the `@astrojs/prefetch` integration, which is now deprecated and will eventually be removed. -Visit the [Prefetch guide](https://docs.astro.build/en/guides/prefetch/) for more information. diff --git a/.changeset/spotty-rings-crash.md b/.changeset/spotty-rings-crash.md deleted file mode 100644 index c4522f96ed..0000000000 --- a/.changeset/spotty-rings-crash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/lit': patch ---- - -Fix hydration ordering of nested custom elements. Child components will now wait for their parents to hydrate before hydrating themselves. diff --git a/.changeset/ten-sloths-invent.md b/.changeset/ten-sloths-invent.md deleted file mode 100644 index 12c5bdf5fe..0000000000 --- a/.changeset/ten-sloths-invent.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'astro': patch ---- - -Use UInt8Array instead of Buffer for both the input and return values of the `transform()` hook of the Image Service API to ensure compatibility with non-Node runtimes. - -This change is unlikely to affect you, but if you were previously relying on the return value being a Buffer, you may convert an `UInt8Array` to a `Buffer` using `Buffer.from(your_array)`. diff --git a/.changeset/tender-suits-glow.md b/.changeset/tender-suits-glow.md deleted file mode 100644 index a01662ce63..0000000000 --- a/.changeset/tender-suits-glow.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@astrojs/markdown-remark': minor -'astro': minor ---- - -Adds experimental support for multiple shiki themes with the new `markdown.shikiConfig.experimentalThemes` option. diff --git a/examples/basics/package.json b/examples/basics/package.json index 53da20eb4c..1fc38a49e3 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index 13a7db1c7d..07a1b1509f 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/mdx": "^1.1.3", + "@astrojs/mdx": "^1.1.4", "@astrojs/rss": "^3.0.0", "@astrojs/sitemap": "^3.0.3", - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/component/package.json b/examples/component/package.json index 1e2af27106..2be4b426ca 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.4.4" + "astro": "^3.5.0" }, "peerDependencies": { "astro": "^3.0.0" diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index af25272f32..fab8686dbe 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.3.1", "@types/alpinejs": "^3.7.2", "alpinejs": "^3.12.3", - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index 93c4724bf1..e68969e5ea 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/lit": "^3.0.2", + "@astrojs/lit": "^3.0.3", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^3.4.4", + "astro": "^3.5.0", "lit": "^2.8.0" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index 2f94c96d81..86ba2390ee 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -16,7 +16,7 @@ "@astrojs/solid-js": "^3.0.2", "@astrojs/svelte": "^4.0.3", "@astrojs/vue": "^3.0.4", - "astro": "^3.4.4", + "astro": "^3.5.0", "preact": "^10.17.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index 01d80206be..5f2267ef15 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.4.4", + "astro": "^3.5.0", "preact": "^10.17.1" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index 37ceb1c0b4..8e6789dd82 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.0.4", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "astro": "^3.4.4", + "astro": "^3.5.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 b5dc110206..21733e70d6 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.4.4", + "astro": "^3.5.0", "solid-js": "^1.7.11" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 91707a216f..c2b8f03f57 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^4.0.3", - "astro": "^3.4.4", + "astro": "^3.5.0", "svelte": "^4.2.0" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 49c330f501..6ea13d7762 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^3.0.4", - "astro": "^3.4.4", + "astro": "^3.5.0", "vue": "^3.3.4" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index 9370b002d0..3421fa9ba8 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^6.0.3", - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index f3429a883f..3f9eb2a8c1 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.4.4" + "astro": "^3.5.0" }, "peerDependencies": { "astro": "^3.0.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index aa472c86fd..1f6853f9f8 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^6.0.3", - "astro": "^3.4.4", + "astro": "^3.5.0", "html-minifier": "^4.0.0" } } diff --git a/examples/minimal/package.json b/examples/minimal/package.json index 1db1398191..630cb77f3c 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index c58b9abf10..56015e204f 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index eb6a10da5f..662e23e451 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/ssr/package.json b/examples/ssr/package.json index acc2267760..73229d970f 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^6.0.3", "@astrojs/svelte": "^4.0.3", - "astro": "^3.4.4", + "astro": "^3.5.0", "svelte": "^4.2.0" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index db82d8bb14..37daaaad40 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^5.0.2", "@astrojs/node": "^6.0.3", - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index 7f8c83c9d8..9406bb758f 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/markdoc": "^0.7.1", - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index eed5c75e1c..8d1bfeea8e 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": "^3.3.0", - "astro": "^3.4.4", + "@astrojs/markdown-remark": "^3.4.0", + "astro": "^3.5.0", "hast-util-select": "^5.0.5", "rehype-autolink-headings": "^6.1.1", "rehype-slug": "^5.1.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 48d72a4c29..f261984637 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.4.4" + "astro": "^3.5.0" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index 56cba218d8..483ae826d4 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/mdx": "^1.1.3", + "@astrojs/mdx": "^1.1.4", "@astrojs/preact": "^3.0.1", - "astro": "^3.4.4", + "astro": "^3.5.0", "preact": "^10.17.1" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index 27a32bbfc5..4b140e1965 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.0.1", "@nanostores/preact": "^0.5.0", - "astro": "^3.4.4", + "astro": "^3.5.0", "nanostores": "^0.9.3", "preact": "^10.17.1" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index cf3214dace..e98b53af16 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -11,10 +11,10 @@ "astro": "astro" }, "dependencies": { - "@astrojs/mdx": "^1.1.3", + "@astrojs/mdx": "^1.1.4", "@astrojs/tailwind": "^5.0.2", "@types/canvas-confetti": "^1.6.0", - "astro": "^3.4.4", + "astro": "^3.5.0", "autoprefixer": "^10.4.15", "canvas-confetti": "^1.6.0", "postcss": "^8.4.28", diff --git a/examples/with-vite-plugin-pwa/package.json b/examples/with-vite-plugin-pwa/package.json index 79bc2df576..731761e4bd 100644 --- a/examples/with-vite-plugin-pwa/package.json +++ b/examples/with-vite-plugin-pwa/package.json @@ -11,7 +11,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.4.4", + "astro": "^3.5.0", "vite-plugin-pwa": "0.16.4", "workbox-window": "^7.0.0" } diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index 609acfa512..00d87fe8eb 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^3.4.4", + "astro": "^3.5.0", "vitest": "^0.34.2" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index f35eb7bf24..86793a28fc 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,207 @@ # astro +## 3.5.0 + +### Minor Changes + +- [#8869](https://github.com/withastro/astro/pull/8869) [`f5bdfa272`](https://github.com/withastro/astro/commit/f5bdfa272b4270b06bc539c2e382d6730987300c) Thanks [@matthewp](https://github.com/matthewp)! - ## Integration Hooks to add Middleware + + It's now possible in Astro for an integration to add middleware on behalf of the user. Previously when a third party wanted to provide middleware, the user would need to create a `src/middleware.ts` file themselves. Now, adding third-party middleware is as easy as adding a new integration. + + For integration authors, there is a new `addMiddleware` function in the `astro:config:setup` hook. This function allows you to specify a middleware module and the order in which it should be applied: + + ```js + // my-package/middleware.js + import { defineMiddleware } from 'astro:middleware'; + + export const onRequest = defineMiddleware(async (context, next) => { + const response = await next(); + + if (response.headers.get('content-type') === 'text/html') { + let html = await response.text(); + html = minify(html); + return new Response(html, { + status: response.status, + headers: response.headers, + }); + } + + return response; + }); + ``` + + You can now add your integration's middleware and specify that it runs either before or after the application's own defined middleware (defined in `src/middleware.{js,ts}`) + + ```js + // my-package/integration.js + export function myIntegration() { + return { + name: 'my-integration', + hooks: { + 'astro:config:setup': ({ addMiddleware }) => { + addMiddleware({ + entrypoint: 'my-package/middleware', + order: 'pre', + }); + }, + }, + }; + } + ``` + +- [#8854](https://github.com/withastro/astro/pull/8854) [`3e1239e42`](https://github.com/withastro/astro/commit/3e1239e42b99bf069265393dc359bf967fc64902) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Provides a new, experimental build cache for [Content Collections](https://docs.astro.build/en/guides/content-collections/) as part of the [Incremental Build RFC](https://github.com/withastro/roadmap/pull/763). This includes multiple refactors to Astro's build process to optimize how Content Collections are handled, which should provide significant performance improvements for users with many collections. + + Users building a `static` site can opt-in to preview the new build cache by adding the following flag to your Astro config: + + ```js + // astro.config.mjs + export default { + experimental: { + contentCollectionCache: true, + }, + }; + ``` + + When this experimental feature is enabled, the files generated from your content collections will be stored in the [`cacheDir`](https://docs.astro.build/en/reference/configuration-reference/#cachedir) (by default, `node_modules/.astro`) and reused between builds. Most CI environments automatically restore files in `node_modules/` by default. + + In our internal testing on the real world [Astro Docs](https://github.com/withastro/docs) project, this feature reduces the bundling step of `astro build` from **133.20s** to **10.46s**, about 92% faster. The end-to-end `astro build` process used to take **4min 58s** and now takes just over `1min` for a total reduction of 80%. + + If you run into any issues with this experimental feature, please let us know! + + You can always bypass the cache for a single build by passing the `--force` flag to `astro build`. + + ``` + astro build --force + ``` + +- [#8963](https://github.com/withastro/astro/pull/8963) [`fda3a0213`](https://github.com/withastro/astro/commit/fda3a0213b1907fd63076ebc93d92ada3d026461) Thanks [@matthewp](https://github.com/matthewp)! - Form support in View Transitions router + + The `` router can now handle form submissions, allowing the same animated transitions and stateful UI retention on form posts that are already available on `` links. With this addition, your Astro project can have animations in all of these scenarios: + + - Clicking links between pages. + - Making stateful changes in forms (e.g. updating site preferences). + - Manually triggering navigation via the `navigate()` API. + + This feature is opt-in for semver reasons and can be enabled by adding the `handleForms` prop to the ` component: + + ```astro + --- + // src/layouts/MainLayout.astro + import { ViewTransitions } from 'astro:transitions'; + --- + + + + + + + + + + + ``` + + Just as with links, if you don't want the routing handling a form submission, you can opt out on a per-form basis with the `data-astro-reload` property: + + ```astro + --- + // src/components/Contact.astro + --- + +
+ +
+ ``` + + Form support works on post `method="get"` and `method="post"` forms. + +- [#8954](https://github.com/withastro/astro/pull/8954) [`f0031b0a3`](https://github.com/withastro/astro/commit/f0031b0a3959b03d1b28e173982c7e1ca60e735f) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Updates the Image Services API to now delete original images from the final build that are not used outside of the optimization pipeline. For users with a large number of these images (e.g. thumbnails), this should reduce storage consumption and deployment times. + +- [#8984](https://github.com/withastro/astro/pull/8984) [`26b1484e8`](https://github.com/withastro/astro/commit/26b1484e808feee6faca3bd89fb512849a664046) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Adds a new property `propertiesToHash` to the Image Services API to allow specifying which properties of `getImage()` / `` / `` should be used for hashing the result files when doing local transformations. For most services, this will include properties such as `src`, `width` or `quality` that directly changes the content of the generated image. + +- [#9010](https://github.com/withastro/astro/pull/9010) [`100b61ab5`](https://github.com/withastro/astro/commit/100b61ab5a34c1efc571a57ce46832ece97688e5) Thanks [@jasikpark](https://github.com/jasikpark)! - The `` component will now use `jpg` and `jpeg` respectively as fallback formats when the original image is in those formats. + +- [#8974](https://github.com/withastro/astro/pull/8974) [`143bacf39`](https://github.com/withastro/astro/commit/143bacf3962f7b0ed3efe2bdfea844e72e10d288) Thanks [@ematipico](https://github.com/ematipico)! - Experimental support for i18n routing. + + Astro's experimental i18n routing API allows you to add your multilingual content with support for configuring a default language, computing relative page URLs, and accepting preferred languages provided by your visitor's browser. You can also specify fallback languages on a per-language basis so that your visitors can always be directed to existing content on your site. + + Enable the experimental routing option by adding an `i18n` object to your Astro configuration with a default location and a list of all languages to support: + + ```js + // astro.config.mjs + import { defineConfig } from 'astro/config'; + + export default defineConfig({ + experimental: { + i18n: { + defaultLocale: 'en', + locales: ['en', 'es', 'pt-br'], + }, + }, + }); + ``` + + Organize your content folders by locale depending on your `i18n.routingStrategy`, and Astro will handle generating your routes and showing your preferred URLs to your visitors. + + ``` + ├── src + │ ├── pages + │ │ ├── about.astro + │ │ ├── index.astro + │ │ ├── es + │ │ │ ├── about.astro + │ │ │ ├── index.astro + │ │ ├── pt-br + │ │ │ ├── about.astro + │ │ │ ├── index.astro + ``` + + Compute relative URLs for your links with `getRelativeLocaleUrl` from the new `astro:i18n` module: + + ```astro + --- + import { getRelativeLocaleUrl } from 'astro:i18n'; + const aboutUrl = getRelativeLocaleUrl('pt-br', 'about'); + --- + +

Learn more About this site!

+ ``` + + Enabling i18n routing also provides two new properties for browser language detection: `Astro.preferredLocale` and `Astro.preferredLocaleList`. These combine the browser's `Accept-Langauge` header, and your site's list of supported languages and can be used to automatically respect your visitor's preferred languages. + + Read more about Astro's [experimental i18n routing](https://docs.astro.build/en/guides/internationalization/) in our documentation. + +- [#8951](https://github.com/withastro/astro/pull/8951) [`38e21d127`](https://github.com/withastro/astro/commit/38e21d1275a379744bc402ad28ac35bd629d5ff0) Thanks [@bluwy](https://github.com/bluwy)! - Prefetching is now supported in core + + You can enable prefetching for your site with the `prefetch: true` config. It is enabled by default when using [View Transitions](https://docs.astro.build/en/guides/view-transitions/) and can also be used to configure the `prefetch` behaviour used by View Transitions. + + You can enable prefetching by setting `prefetch:true` in your Astro config: + + ```js + // astro.config.js + import { defineConfig } from 'astro/config'; + + export default defineConfig({ + prefetch: true, + }); + ``` + + This replaces the `@astrojs/prefetch` integration, which is now deprecated and will eventually be removed. + Visit the [Prefetch guide](https://docs.astro.build/en/guides/prefetch/) for more information. + +- [#8903](https://github.com/withastro/astro/pull/8903) [`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d) Thanks [@horo-fox](https://github.com/horo-fox)! - Adds experimental support for multiple shiki themes with the new `markdown.shikiConfig.experimentalThemes` option. + +### Patch Changes + +- [#9016](https://github.com/withastro/astro/pull/9016) [`1ecc9aa32`](https://github.com/withastro/astro/commit/1ecc9aa3240b79a3879b1329aa4f671d80e87649) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Add ability to "Click to go editor" on auditted elements in the dev overlay + +- [#9029](https://github.com/withastro/astro/pull/9029) [`29b83e9e4`](https://github.com/withastro/astro/commit/29b83e9e4b906cc0b5d92fae854fb350fc2be7c8) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Use UInt8Array instead of Buffer for both the input and return values of the `transform()` hook of the Image Service API to ensure compatibility with non-Node runtimes. + + This change is unlikely to affect you, but if you were previously relying on the return value being a Buffer, you may convert an `UInt8Array` to a `Buffer` using `Buffer.from(your_array)`. + +- Updated dependencies [[`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d)]: + - @astrojs/markdown-remark@3.4.0 + ## 3.4.4 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 2a51200a47..92f55bc0e2 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "3.4.4", + "version": "3.5.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/integrations/lit/CHANGELOG.md b/packages/integrations/lit/CHANGELOG.md index 37aa498a0c..44880912aa 100644 --- a/packages/integrations/lit/CHANGELOG.md +++ b/packages/integrations/lit/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/lit +## 3.0.3 + +### Patch Changes + +- [#9018](https://github.com/withastro/astro/pull/9018) [`23c9a30ad`](https://github.com/withastro/astro/commit/23c9a30ad859398d62a013d639b5b2716b583331) Thanks [@augustjk](https://github.com/augustjk)! - Fix hydration ordering of nested custom elements. Child components will now wait for their parents to hydrate before hydrating themselves. + ## 3.0.2 ### Patch Changes diff --git a/packages/integrations/lit/package.json b/packages/integrations/lit/package.json index a13cee91da..252a412d17 100644 --- a/packages/integrations/lit/package.json +++ b/packages/integrations/lit/package.json @@ -1,6 +1,6 @@ { "name": "@astrojs/lit", - "version": "3.0.2", + "version": "3.0.3", "description": "Use Lit components within Astro", "type": "module", "types": "./dist/index.d.ts", diff --git a/packages/integrations/mdx/CHANGELOG.md b/packages/integrations/mdx/CHANGELOG.md index 90070e1b90..fabf754e4b 100644 --- a/packages/integrations/mdx/CHANGELOG.md +++ b/packages/integrations/mdx/CHANGELOG.md @@ -1,5 +1,12 @@ # @astrojs/mdx +## 1.1.4 + +### Patch Changes + +- Updated dependencies [[`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d)]: + - @astrojs/markdown-remark@3.4.0 + ## 1.1.3 ### Patch Changes diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index 4576c7b3d1..9ad90c0ad4 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": "1.1.3", + "version": "1.1.4", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", diff --git a/packages/markdown/remark/CHANGELOG.md b/packages/markdown/remark/CHANGELOG.md index 6e98ae4525..13e67c6933 100644 --- a/packages/markdown/remark/CHANGELOG.md +++ b/packages/markdown/remark/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/markdown-remark +## 3.4.0 + +### Minor Changes + +- [#8903](https://github.com/withastro/astro/pull/8903) [`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d) Thanks [@horo-fox](https://github.com/horo-fox)! - Adds experimental support for multiple shiki themes with the new `markdown.shikiConfig.experimentalThemes` option. + ## 3.3.0 ### Minor Changes diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json index 131b87371d..4f5061e4d2 100644 --- a/packages/markdown/remark/package.json +++ b/packages/markdown/remark/package.json @@ -1,6 +1,6 @@ { "name": "@astrojs/markdown-remark", - "version": "3.3.0", + "version": "3.4.0", "type": "module", "author": "withastro", "license": "MIT", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e37c1e33ec..cf80efc759 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -125,13 +125,13 @@ importers: examples/basics: dependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/blog: dependencies: '@astrojs/mdx': - specifier: ^1.1.3 + specifier: ^1.1.4 version: link:../../packages/integrations/mdx '@astrojs/rss': specifier: ^3.0.0 @@ -140,13 +140,13 @@ importers: specifier: ^3.0.3 version: link:../../packages/integrations/sitemap astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/framework-alpine: @@ -161,19 +161,19 @@ importers: specifier: ^3.12.3 version: 3.13.2 astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/framework-lit: dependencies: '@astrojs/lit': - specifier: ^3.0.2 + specifier: ^3.0.3 version: link:../../packages/integrations/lit '@webcomponents/template-shadowroot': specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro lit: specifier: ^2.8.0 @@ -197,7 +197,7 @@ importers: specifier: ^3.0.4 version: link:../../packages/integrations/vue astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -227,7 +227,7 @@ importers: specifier: ^1.2.1 version: 1.2.1(preact@10.18.1) astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -245,7 +245,7 @@ importers: specifier: ^18.2.7 version: 18.2.14 astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -260,7 +260,7 @@ importers: specifier: ^3.0.2 version: link:../../packages/integrations/solid astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro solid-js: specifier: ^1.7.11 @@ -272,7 +272,7 @@ importers: specifier: ^4.0.3 version: link:../../packages/integrations/svelte astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro svelte: specifier: ^4.2.0 @@ -284,7 +284,7 @@ importers: specifier: ^3.0.4 version: link:../../packages/integrations/vue astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro vue: specifier: ^3.3.4 @@ -296,13 +296,13 @@ importers: specifier: ^6.0.3 version: link:../../packages/integrations/node astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/middleware: @@ -311,7 +311,7 @@ importers: specifier: ^6.0.3 version: link:../../packages/integrations/node astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -320,19 +320,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/ssr: @@ -344,7 +344,7 @@ importers: specifier: ^4.0.3 version: link:../../packages/integrations/svelte astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro svelte: specifier: ^4.2.0 @@ -359,7 +359,7 @@ importers: specifier: ^5.0.2 version: link:../../packages/integrations/tailwind astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/with-markdoc: @@ -368,16 +368,16 @@ importers: specifier: ^0.7.1 version: link:../../packages/integrations/markdoc astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/with-markdown-plugins: dependencies: '@astrojs/markdown-remark': - specifier: ^3.3.0 + specifier: ^3.4.0 version: link:../../packages/markdown/remark astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro hast-util-select: specifier: ^5.0.5 @@ -398,19 +398,19 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro examples/with-mdx: dependencies: '@astrojs/mdx': - specifier: ^1.1.3 + specifier: ^1.1.4 version: link:../../packages/integrations/mdx '@astrojs/preact': specifier: ^3.0.1 version: link:../../packages/integrations/preact astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro preact: specifier: ^10.17.1 @@ -425,7 +425,7 @@ importers: specifier: ^0.5.0 version: 0.5.0(nanostores@0.9.4)(preact@10.18.1) astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro nanostores: specifier: ^0.9.3 @@ -437,7 +437,7 @@ importers: examples/with-tailwindcss: dependencies: '@astrojs/mdx': - specifier: ^1.1.3 + specifier: ^1.1.4 version: link:../../packages/integrations/mdx '@astrojs/tailwind': specifier: ^5.0.2 @@ -446,7 +446,7 @@ importers: specifier: ^1.6.0 version: 1.6.2 astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 @@ -464,7 +464,7 @@ importers: examples/with-vite-plugin-pwa: dependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro vite-plugin-pwa: specifier: 0.16.4 @@ -476,7 +476,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^3.4.4 + specifier: ^3.5.0 version: link:../../packages/astro vitest: specifier: ^0.34.2